@plures/design-dojo 0.2.0 → 0.3.0
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.
- package/dist/app/ChatInput.svelte.d.ts +1 -0
- package/dist/app/ChatView.svelte.d.ts +1 -0
- package/dist/app/ChatView.types.d.ts +10 -0
- package/dist/app/FirstRunWizard.svelte.d.ts +1 -0
- package/dist/app/FirstRunWizard.types.d.ts +11 -0
- package/dist/app/MemorySidebar.svelte.d.ts +1 -0
- package/dist/app/MemorySidebar.types.d.ts +9 -0
- package/dist/app/ProcedureEditor.svelte.d.ts +1 -0
- package/dist/app/ProcedureEditor.types.d.ts +9 -0
- package/dist/app/SettingsPanel.svelte.d.ts +1 -0
- package/dist/app/SettingsPanel.types.d.ts +19 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +1073 -445
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
|
-
import { getContext as
|
|
3
|
+
import { getContext as Be, setContext as Fe, untrack as ge } from "svelte";
|
|
4
4
|
const He = {
|
|
5
5
|
/** Gentle hover, focus ring expansion */
|
|
6
6
|
gentle: { stiffness: 120, damping: 14, mass: 1, restThreshold: 0.01 },
|
|
@@ -13,657 +13,1285 @@ const He = {
|
|
|
13
13
|
/** Tooltip, popover */
|
|
14
14
|
quick: { stiffness: 500, damping: 30, mass: 0.5, restThreshold: 0.01 }
|
|
15
15
|
};
|
|
16
|
-
function
|
|
17
|
-
const { stiffness:
|
|
16
|
+
function Re(H, t, S) {
|
|
17
|
+
const { stiffness: f, damping: l, mass: x } = t, y = H.value - H.target, p = -f * y, w = -l * H.velocity, v = (p + w) / x, P = H.velocity + v * S, R = H.value + P * S, M = Math.abs(P) < t.restThreshold && Math.abs(R - H.target) < t.restThreshold;
|
|
18
18
|
return {
|
|
19
|
-
value:
|
|
20
|
-
velocity:
|
|
21
|
-
target:
|
|
22
|
-
done:
|
|
19
|
+
value: M ? H.target : R,
|
|
20
|
+
velocity: M ? 0 : P,
|
|
21
|
+
target: H.target,
|
|
22
|
+
done: M
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
function
|
|
26
|
-
const
|
|
27
|
-
let
|
|
28
|
-
value:
|
|
25
|
+
function fe(H, t = "snappy", S) {
|
|
26
|
+
const f = typeof t == "string" ? He[t] : t;
|
|
27
|
+
let l = {
|
|
28
|
+
value: H,
|
|
29
29
|
velocity: 0,
|
|
30
|
-
target:
|
|
30
|
+
target: H,
|
|
31
31
|
done: !0
|
|
32
|
-
},
|
|
33
|
-
function v
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
32
|
+
}, x = null, y = null;
|
|
33
|
+
function p(v) {
|
|
34
|
+
y === null && (y = v);
|
|
35
|
+
const P = Math.min((v - y) / 1e3, 0.064);
|
|
36
|
+
y = v, l = Re(l, f, P), S(l.value), l.done ? (x = null, y = null) : x = requestAnimationFrame(p);
|
|
37
37
|
}
|
|
38
|
-
function
|
|
39
|
-
|
|
38
|
+
function w() {
|
|
39
|
+
x === null && (y = null, x = requestAnimationFrame(p));
|
|
40
40
|
}
|
|
41
41
|
return {
|
|
42
42
|
/** Set a new target value. Animation starts automatically. */
|
|
43
|
-
set(
|
|
44
|
-
|
|
43
|
+
set(v) {
|
|
44
|
+
l.target = v, l.done = !1, w();
|
|
45
45
|
},
|
|
46
46
|
/** Jump to value immediately (no animation). */
|
|
47
|
-
jump(
|
|
48
|
-
|
|
47
|
+
jump(v) {
|
|
48
|
+
l = { value: v, velocity: 0, target: v, done: !0 }, S(v);
|
|
49
49
|
},
|
|
50
50
|
/** Add velocity impulse (e.g., from a flick gesture). */
|
|
51
|
-
impulse(
|
|
52
|
-
|
|
51
|
+
impulse(v) {
|
|
52
|
+
l.velocity += v, l.done = !1, w();
|
|
53
53
|
},
|
|
54
54
|
/** Stop animation. */
|
|
55
55
|
stop() {
|
|
56
|
-
|
|
56
|
+
x !== null && (cancelAnimationFrame(x), x = null, y = null);
|
|
57
57
|
},
|
|
58
58
|
/** Get current value. */
|
|
59
59
|
get value() {
|
|
60
|
-
return
|
|
60
|
+
return l.value;
|
|
61
61
|
},
|
|
62
62
|
/** Whether the spring has settled. */
|
|
63
63
|
get done() {
|
|
64
|
-
return
|
|
64
|
+
return l.done;
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
const
|
|
69
|
-
function
|
|
70
|
-
|
|
68
|
+
const Ne = Symbol("tui");
|
|
69
|
+
function Ke(H) {
|
|
70
|
+
Fe(Ne, H);
|
|
71
71
|
}
|
|
72
|
-
function
|
|
73
|
-
return
|
|
72
|
+
function me() {
|
|
73
|
+
return Be(Ne) ?? (() => !1);
|
|
74
74
|
}
|
|
75
|
-
var
|
|
76
|
-
function
|
|
75
|
+
var Oe = e.from_html('<span class="tui-border-l svelte-5blyfe">╠</span><!><span class="tui-border-r svelte-5blyfe">╣</span>', 1), qe = e.from_html("<button><!></button>");
|
|
76
|
+
function $t(H, t) {
|
|
77
77
|
e.push(t, !0);
|
|
78
|
-
let
|
|
79
|
-
const
|
|
80
|
-
let
|
|
81
|
-
const
|
|
78
|
+
let S = e.prop(t, "variant", 3, "solid"), f = e.prop(t, "size", 3, "md"), l = e.prop(t, "disabled", 3, !1), x = e.prop(t, "tui", 3, !1);
|
|
79
|
+
const y = me(), p = e.derived(() => x() || y());
|
|
80
|
+
let w = e.state(void 0), v = e.state(1), P = e.state(1), R = e.state(0), M, C, U;
|
|
81
|
+
const I = typeof window < "u" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1;
|
|
82
82
|
e.user_effect(() => {
|
|
83
|
-
if (!
|
|
84
|
-
return
|
|
85
|
-
|
|
83
|
+
if (!I)
|
|
84
|
+
return M = fe(1, "snappy", (E) => e.set(v, E, !0)), C = fe(1, "snappy", (E) => e.set(P, E, !0)), U = fe(0, "gentle", (E) => e.set(R, E, !0)), () => {
|
|
85
|
+
M == null || M.stop(), C == null || C.stop(), U == null || U.stop();
|
|
86
86
|
};
|
|
87
87
|
});
|
|
88
|
-
function
|
|
89
|
-
|
|
88
|
+
function b() {
|
|
89
|
+
l() || I || (M == null || M.set(0.96), C == null || C.set(0.3));
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
|
|
91
|
+
function g() {
|
|
92
|
+
l() || I || (M == null || M.set(1), C == null || C.set(1));
|
|
93
93
|
}
|
|
94
|
-
function
|
|
95
|
-
|
|
94
|
+
function d() {
|
|
95
|
+
l() || I || (M == null || M.set(1), C == null || C.set(1));
|
|
96
96
|
}
|
|
97
|
-
function
|
|
98
|
-
if (
|
|
99
|
-
e.set(
|
|
97
|
+
function L() {
|
|
98
|
+
if (I) {
|
|
99
|
+
e.set(R, 1);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
U == null || U.set(1);
|
|
103
103
|
}
|
|
104
|
-
function
|
|
105
|
-
if (
|
|
106
|
-
e.set(
|
|
104
|
+
function h() {
|
|
105
|
+
if (I) {
|
|
106
|
+
e.set(R, 0);
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
|
-
|
|
109
|
+
U == null || U.set(0);
|
|
110
110
|
}
|
|
111
|
-
var
|
|
112
|
-
let
|
|
113
|
-
var
|
|
111
|
+
var m = qe();
|
|
112
|
+
let i, _;
|
|
113
|
+
var k = e.child(m);
|
|
114
114
|
{
|
|
115
|
-
var
|
|
116
|
-
var
|
|
117
|
-
e.snippet(
|
|
118
|
-
},
|
|
119
|
-
var
|
|
120
|
-
e.snippet(
|
|
115
|
+
var G = (E) => {
|
|
116
|
+
var K = Oe(), j = e.sibling(e.first_child(K));
|
|
117
|
+
e.snippet(j, () => t.children), e.next(), e.append(E, K);
|
|
118
|
+
}, o = (E) => {
|
|
119
|
+
var K = e.comment(), j = e.first_child(K);
|
|
120
|
+
e.snippet(j, () => t.children), e.append(E, K);
|
|
121
121
|
};
|
|
122
|
-
e.if(
|
|
123
|
-
e.get(
|
|
122
|
+
e.if(k, (E) => {
|
|
123
|
+
e.get(p) ? E(G) : E(o, !1);
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
|
-
e.reset(
|
|
127
|
-
|
|
128
|
-
transform: e.get(
|
|
129
|
-
"--shadow-depth": e.get(
|
|
130
|
-
"--focus-opacity": e.get(
|
|
126
|
+
e.reset(m), e.bind_this(m, (E) => e.set(w, E), () => e.get(w)), e.template_effect(() => {
|
|
127
|
+
i = e.set_class(m, 1, `btn btn-${S() ?? ""} btn-${f() ?? ""}`, "svelte-5blyfe", i, { disabled: l(), tui: e.get(p) }), m.disabled = l(), _ = e.set_style(m, "", _, {
|
|
128
|
+
transform: e.get(p) ? void 0 : `scale(${e.get(v)})`,
|
|
129
|
+
"--shadow-depth": e.get(p) ? void 0 : e.get(P),
|
|
130
|
+
"--focus-opacity": e.get(R)
|
|
131
131
|
});
|
|
132
|
-
}), e.delegated("click",
|
|
133
|
-
var
|
|
134
|
-
(
|
|
135
|
-
}), e.delegated("pointerdown",
|
|
132
|
+
}), e.delegated("click", m, function(...E) {
|
|
133
|
+
var K;
|
|
134
|
+
(K = t.onclick) == null || K.apply(this, E);
|
|
135
|
+
}), e.delegated("pointerdown", m, b), e.delegated("pointerup", m, g), e.event("pointerleave", m, d), e.event("focus", m, L), e.event("blur", m, h), e.append(H, m), e.pop();
|
|
136
136
|
}
|
|
137
137
|
e.delegate(["click", "pointerdown", "pointerup"]);
|
|
138
|
-
var
|
|
139
|
-
function
|
|
138
|
+
var Ve = e.from_html('<span class="toggle-label svelte-197v0i2"> </span>'), je = e.from_html('<label><!> <div class="toggle-track svelte-197v0i2" role="switch"><div class="toggle-thumb svelte-197v0i2"></div></div></label>');
|
|
139
|
+
function Ge(H, t) {
|
|
140
140
|
e.push(t, !0);
|
|
141
|
-
let
|
|
142
|
-
const
|
|
143
|
-
let
|
|
141
|
+
let S = e.prop(t, "checked", 15, !1), f = e.prop(t, "disabled", 3, !1), l = e.prop(t, "label", 3, ""), x = e.state(e.proxy(S() ? 1 : 0)), y = e.state(0);
|
|
142
|
+
const p = typeof window < "u" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1;
|
|
143
|
+
let w, v;
|
|
144
144
|
e.user_effect(() => {
|
|
145
|
-
if (!
|
|
146
|
-
return
|
|
147
|
-
|
|
145
|
+
if (!p)
|
|
146
|
+
return w = fe(S() ? 1 : 0, "snappy", (d) => e.set(x, d, !0)), v = fe(0, "gentle", (d) => e.set(y, d, !0)), () => {
|
|
147
|
+
w == null || w.stop(), v == null || v.stop();
|
|
148
148
|
};
|
|
149
149
|
}), e.user_effect(() => {
|
|
150
|
-
|
|
150
|
+
p ? e.set(x, S() ? 1 : 0, !0) : w == null || w.set(S() ? 1 : 0);
|
|
151
151
|
});
|
|
152
|
-
function
|
|
153
|
-
var
|
|
154
|
-
|
|
152
|
+
function P() {
|
|
153
|
+
var d;
|
|
154
|
+
f() || (S(!S()), (d = t.onchange) == null || d.call(t, S()));
|
|
155
155
|
}
|
|
156
|
-
function
|
|
157
|
-
(
|
|
156
|
+
function R(d) {
|
|
157
|
+
(d.key === " " || d.key === "Enter") && (d.preventDefault(), P());
|
|
158
158
|
}
|
|
159
|
-
var
|
|
160
|
-
let
|
|
161
|
-
var
|
|
159
|
+
var M = je();
|
|
160
|
+
let C;
|
|
161
|
+
var U = e.child(M);
|
|
162
162
|
{
|
|
163
|
-
var
|
|
164
|
-
var
|
|
165
|
-
e.reset(
|
|
163
|
+
var I = (d) => {
|
|
164
|
+
var L = Ve(), h = e.child(L, !0);
|
|
165
|
+
e.reset(L), e.template_effect(() => e.set_text(h, l())), e.append(d, L);
|
|
166
166
|
};
|
|
167
|
-
e.if(
|
|
168
|
-
|
|
167
|
+
e.if(U, (d) => {
|
|
168
|
+
l() && d(I);
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
|
-
var
|
|
172
|
-
let
|
|
173
|
-
e.reset(
|
|
174
|
-
(
|
|
175
|
-
|
|
171
|
+
var b = e.sibling(U, 2);
|
|
172
|
+
let g;
|
|
173
|
+
e.reset(M), e.template_effect(
|
|
174
|
+
(d) => {
|
|
175
|
+
C = e.set_class(M, 1, "toggle-wrapper svelte-197v0i2", null, C, { disabled: f() }), e.set_attribute(b, "aria-checked", S()), e.set_attribute(b, "tabindex", f() ? -1 : 0), g = e.set_style(b, "", g, d);
|
|
176
176
|
},
|
|
177
177
|
[
|
|
178
178
|
() => ({
|
|
179
|
-
"--thumb-x": e.get(
|
|
180
|
-
"--track-color": `color-mix(in srgb, var(--color-accent, #6366f1) ${Math.round(e.get(
|
|
181
|
-
"--focus-opacity": e.get(
|
|
179
|
+
"--thumb-x": e.get(x),
|
|
180
|
+
"--track-color": `color-mix(in srgb, var(--color-accent, #6366f1) ${Math.round(e.get(x) * 100)}%, var(--surface-2, #2a2a2a) ${Math.round((1 - e.get(x)) * 100)}%)`,
|
|
181
|
+
"--focus-opacity": e.get(y)
|
|
182
182
|
})
|
|
183
183
|
]
|
|
184
|
-
), e.delegated("click",
|
|
184
|
+
), e.delegated("click", b, P), e.delegated("keydown", b, R), e.event("focus", b, () => p ? e.set(y, 1) : v == null ? void 0 : v.set(1)), e.event("blur", b, () => p ? e.set(y, 0) : v == null ? void 0 : v.set(0)), e.append(H, M), e.pop();
|
|
185
185
|
}
|
|
186
186
|
e.delegate(["click", "keydown"]);
|
|
187
|
-
var
|
|
188
|
-
function
|
|
187
|
+
var Ye = e.from_html('<div class="tui-panel svelte-1ps7oei"><div class="tui-panel-top svelte-1ps7oei"> </div> <div class="tui-panel-body svelte-1ps7oei"><span class="tui-panel-side svelte-1ps7oei">║</span> <div class="tui-panel-content svelte-1ps7oei"><!></div> <span class="tui-panel-side svelte-1ps7oei">║</span></div> <div class="tui-panel-bottom svelte-1ps7oei"> </div></div>'), Je = e.from_html('<div class="glass svelte-1ps7oei"><!></div>');
|
|
188
|
+
function ea(H, t) {
|
|
189
189
|
e.push(t, !0);
|
|
190
|
-
let
|
|
191
|
-
const
|
|
192
|
-
var
|
|
190
|
+
let S = e.prop(t, "blur", 3, 20), f = e.prop(t, "opacity", 3, 0.6), l = e.prop(t, "radius", 3, "var(--radius-md, 10px)"), x = e.prop(t, "padding", 3, "var(--space-4, 16px)"), y = e.prop(t, "tui", 3, !1), p = e.prop(t, "cols", 3, 20);
|
|
191
|
+
const w = me(), v = e.derived(() => y() || w()), P = e.derived(() => "═".repeat(p()));
|
|
192
|
+
var R = e.comment(), M = e.first_child(R);
|
|
193
193
|
{
|
|
194
|
-
var
|
|
195
|
-
var
|
|
196
|
-
let
|
|
197
|
-
var
|
|
198
|
-
e.reset(
|
|
199
|
-
var
|
|
200
|
-
e.snippet(
|
|
201
|
-
var
|
|
202
|
-
e.reset(
|
|
203
|
-
|
|
204
|
-
}), e.append(
|
|
205
|
-
},
|
|
206
|
-
var
|
|
207
|
-
let
|
|
208
|
-
var
|
|
209
|
-
e.snippet(
|
|
210
|
-
"--blur": `${
|
|
211
|
-
"--bg-opacity":
|
|
212
|
-
"border-radius":
|
|
213
|
-
padding:
|
|
214
|
-
})), e.append(
|
|
194
|
+
var C = (I) => {
|
|
195
|
+
var b = Ye();
|
|
196
|
+
let g;
|
|
197
|
+
var d = e.child(b), L = e.child(d);
|
|
198
|
+
e.reset(d);
|
|
199
|
+
var h = e.sibling(d, 2), m = e.sibling(e.child(h), 2), i = e.child(m);
|
|
200
|
+
e.snippet(i, () => t.children), e.reset(m), e.next(2), e.reset(h);
|
|
201
|
+
var _ = e.sibling(h, 2), k = e.child(_);
|
|
202
|
+
e.reset(_), e.reset(b), e.template_effect(() => {
|
|
203
|
+
g = e.set_style(b, "", g, { padding: x() }), e.set_text(L, `╔${e.get(P) ?? ""}╗`), e.set_text(k, `╚${e.get(P) ?? ""}╝`);
|
|
204
|
+
}), e.append(I, b);
|
|
205
|
+
}, U = (I) => {
|
|
206
|
+
var b = Je();
|
|
207
|
+
let g;
|
|
208
|
+
var d = e.child(b);
|
|
209
|
+
e.snippet(d, () => t.children), e.reset(b), e.template_effect(() => g = e.set_style(b, "", g, {
|
|
210
|
+
"--blur": `${S() ?? ""}px`,
|
|
211
|
+
"--bg-opacity": f(),
|
|
212
|
+
"border-radius": l(),
|
|
213
|
+
padding: x()
|
|
214
|
+
})), e.append(I, b);
|
|
215
215
|
};
|
|
216
|
-
e.if(
|
|
217
|
-
e.get(
|
|
216
|
+
e.if(M, (I) => {
|
|
217
|
+
e.get(v) ? I(C) : I(U, !1);
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
|
-
e.append(
|
|
220
|
+
e.append(H, R), e.pop();
|
|
221
221
|
}
|
|
222
|
-
var
|
|
223
|
-
function
|
|
222
|
+
var We = e.from_html('<div><div class="chat-tui__msg-border svelte-10e5u2c" aria-hidden="true"> </div> <div class="chat-tui__msg-body svelte-10e5u2c"><span class="chat-tui__msg-side svelte-10e5u2c" aria-hidden="true">│</span> <div class="chat-tui__msg-content svelte-10e5u2c"> </div> <span class="chat-tui__msg-side svelte-10e5u2c" aria-hidden="true">│</span></div> <div class="chat-tui__msg-border svelte-10e5u2c" aria-hidden="true"> </div></div>'), Qe = e.from_html('<div class="chat-tui__indicator svelte-10e5u2c" role="status" aria-live="polite"><span tabindex="0" role="button" class="svelte-10e5u2c"> </span></div>'), Xe = e.from_html('<div tabindex="0" role="log" aria-live="polite" aria-label="Chat messages"><div class="chat-tui__border svelte-10e5u2c" aria-hidden="true"></div> <div class="chat-tui__body svelte-10e5u2c"><span class="chat-tui__side svelte-10e5u2c" aria-hidden="true">│</span> <div class="chat-tui__content svelte-10e5u2c"><!> <!></div> <span class="chat-tui__side svelte-10e5u2c" aria-hidden="true">│</span></div> <div class="chat-tui__border svelte-10e5u2c" aria-hidden="true"></div></div>'), Ze = e.from_html('<span class="chat-gui__msg-time svelte-10e5u2c"> </span>'), $e = e.from_html('<div><div class="chat-gui__msg-header svelte-10e5u2c"><span class="chat-gui__msg-author svelte-10e5u2c"> </span> <!></div> <div class="chat-gui__msg-body svelte-10e5u2c"> </div></div>'), et = e.from_html('<button class="chat-gui__indicator svelte-10e5u2c" aria-live="polite" aria-label="Jump to latest messages"> </button>'), tt = e.from_html('<div role="log" aria-live="polite" aria-label="Chat messages"><div class="chat-gui__scroll svelte-10e5u2c" tabindex="0" role="region" aria-label="Scrollable message history"><div class="chat-gui__messages svelte-10e5u2c"><!> <div class="chat-gui__sentinel svelte-10e5u2c" aria-hidden="true"></div></div></div> <!></div>');
|
|
223
|
+
function ta(H, t) {
|
|
224
224
|
e.push(t, !0);
|
|
225
|
-
let
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
let
|
|
225
|
+
let S = e.prop(t, "tui", 3, !1), f = e.prop(t, "showTimestamps", 3, !0), l = e.prop(t, "class", 3, "");
|
|
226
|
+
const x = me(), y = e.derived(() => S() || x());
|
|
227
|
+
Ke(() => e.get(y));
|
|
228
|
+
let p = e.state(void 0), w = e.state(void 0), v = e.state(!0), P = e.state(0), R = e.state(0), M = e.state(0);
|
|
229
229
|
e.user_effect(() => {
|
|
230
|
-
const
|
|
231
|
-
if (
|
|
232
|
-
const
|
|
233
|
-
e.set(
|
|
230
|
+
const c = t.messages.length;
|
|
231
|
+
if (c !== e.get(M)) {
|
|
232
|
+
const z = c - e.get(M);
|
|
233
|
+
e.set(M, c, !0), e.get(v) ? (e.set(P, 0), e.set(R, c, !0), C()) : z > 0 && e.set(P, e.get(P) + z);
|
|
234
234
|
}
|
|
235
235
|
});
|
|
236
|
-
function h() {
|
|
237
|
-
typeof requestAnimationFrame < "u" && requestAnimationFrame(() => C());
|
|
238
|
-
}
|
|
239
236
|
function C() {
|
|
240
|
-
|
|
237
|
+
typeof requestAnimationFrame < "u" && requestAnimationFrame(() => U());
|
|
241
238
|
}
|
|
242
|
-
function
|
|
243
|
-
|
|
244
|
-
|
|
239
|
+
function U() {
|
|
240
|
+
e.get(p) && (e.get(p).scrollTop = e.get(p).scrollHeight);
|
|
241
|
+
}
|
|
242
|
+
function I() {
|
|
243
|
+
var c;
|
|
244
|
+
e.set(v, !0), e.set(P, 0), e.set(R, t.messages.length, !0), U(), (c = t.onscrolltolatest) == null || c.call(t);
|
|
245
245
|
}
|
|
246
|
-
function
|
|
247
|
-
if (!e.get(
|
|
248
|
-
const { scrollTop:
|
|
246
|
+
function b() {
|
|
247
|
+
if (!e.get(p)) return;
|
|
248
|
+
const { scrollTop: c, scrollHeight: z, clientHeight: B } = e.get(p), a = z - c - B, s = e.get(v);
|
|
249
249
|
e.set(
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
v,
|
|
251
|
+
a < 8
|
|
252
252
|
// 8px tolerance
|
|
253
|
-
), e.get(
|
|
253
|
+
), e.get(v) && !s && (e.set(P, 0), e.set(R, t.messages.length, !0));
|
|
254
254
|
}
|
|
255
|
-
function
|
|
256
|
-
if (!e.get(
|
|
257
|
-
const { clientHeight:
|
|
258
|
-
switch (
|
|
255
|
+
function g(c) {
|
|
256
|
+
if (!e.get(p)) return;
|
|
257
|
+
const { clientHeight: z } = e.get(p);
|
|
258
|
+
switch (c.key) {
|
|
259
259
|
case "PageUp":
|
|
260
|
-
|
|
260
|
+
c.preventDefault(), e.get(p).scrollBy({ top: -z, behavior: "smooth" });
|
|
261
261
|
break;
|
|
262
262
|
case "PageDown":
|
|
263
|
-
|
|
263
|
+
c.preventDefault(), e.get(p).scrollBy({ top: z, behavior: "smooth" });
|
|
264
264
|
break;
|
|
265
265
|
case "Home":
|
|
266
|
-
|
|
266
|
+
c.preventDefault(), e.get(p).scrollTo({ top: 0, behavior: "smooth" });
|
|
267
267
|
break;
|
|
268
268
|
case "End":
|
|
269
|
-
|
|
269
|
+
c.preventDefault(), U();
|
|
270
270
|
break;
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
|
-
let
|
|
274
|
-
const
|
|
273
|
+
let d = e.state(0);
|
|
274
|
+
const L = 10, h = e.derived(() => e.get(d) >= Math.max(0, t.messages.length - L)), m = e.derived(() => e.get(h) ? 0 : Math.max(0, t.messages.length - (e.get(d) + L))), i = e.derived(() => t.messages.slice(e.get(d), e.get(d) + L));
|
|
275
275
|
e.user_effect(() => {
|
|
276
|
-
e.get(
|
|
276
|
+
e.get(y) && e.get(h) && e.set(d, Math.max(0, t.messages.length - L), !0);
|
|
277
277
|
});
|
|
278
|
-
function
|
|
279
|
-
e.set(
|
|
278
|
+
function _() {
|
|
279
|
+
e.set(d, Math.max(0, e.get(d) - 1), !0);
|
|
280
280
|
}
|
|
281
|
-
function
|
|
282
|
-
e.set(
|
|
281
|
+
function k() {
|
|
282
|
+
e.set(d, Math.min(Math.max(0, t.messages.length - L), e.get(d) + 1), !0);
|
|
283
283
|
}
|
|
284
|
-
function
|
|
285
|
-
e.set(
|
|
284
|
+
function G() {
|
|
285
|
+
e.set(d, Math.max(0, e.get(d) - L), !0);
|
|
286
286
|
}
|
|
287
|
-
function
|
|
288
|
-
e.set(
|
|
287
|
+
function o() {
|
|
288
|
+
e.set(d, Math.min(Math.max(0, t.messages.length - L), e.get(d) + L), !0);
|
|
289
289
|
}
|
|
290
|
-
function
|
|
291
|
-
e.set(
|
|
290
|
+
function E() {
|
|
291
|
+
e.set(d, 0);
|
|
292
292
|
}
|
|
293
|
-
function
|
|
294
|
-
e.set(
|
|
293
|
+
function K() {
|
|
294
|
+
e.set(d, Math.max(0, t.messages.length - L), !0);
|
|
295
295
|
}
|
|
296
|
-
function
|
|
297
|
-
var
|
|
298
|
-
|
|
296
|
+
function j() {
|
|
297
|
+
var c;
|
|
298
|
+
K(), (c = t.onscrolltolatest) == null || c.call(t);
|
|
299
299
|
}
|
|
300
|
-
function
|
|
301
|
-
switch (
|
|
300
|
+
function Y(c) {
|
|
301
|
+
switch (c.key) {
|
|
302
302
|
case "ArrowUp":
|
|
303
|
-
|
|
303
|
+
c.preventDefault(), _();
|
|
304
304
|
break;
|
|
305
305
|
case "ArrowDown":
|
|
306
|
-
|
|
306
|
+
c.preventDefault(), k();
|
|
307
307
|
break;
|
|
308
308
|
case "PageUp":
|
|
309
|
-
|
|
309
|
+
c.preventDefault(), G();
|
|
310
310
|
break;
|
|
311
311
|
case "PageDown":
|
|
312
|
-
|
|
312
|
+
c.preventDefault(), o();
|
|
313
313
|
break;
|
|
314
314
|
case "Home":
|
|
315
|
-
|
|
315
|
+
c.preventDefault(), E();
|
|
316
316
|
break;
|
|
317
317
|
case "End":
|
|
318
|
-
|
|
318
|
+
c.preventDefault(), K();
|
|
319
319
|
break;
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
function
|
|
323
|
-
return
|
|
322
|
+
function X(c) {
|
|
323
|
+
return c.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
324
324
|
}
|
|
325
|
-
function
|
|
326
|
-
return
|
|
325
|
+
function D(c) {
|
|
326
|
+
return f() ? `${c.author} · ${X(c.timestamp)}` : c.author;
|
|
327
327
|
}
|
|
328
|
-
var
|
|
328
|
+
var N = e.comment(), V = e.first_child(N);
|
|
329
329
|
{
|
|
330
|
-
var
|
|
331
|
-
var
|
|
332
|
-
|
|
333
|
-
var
|
|
334
|
-
e.each(
|
|
335
|
-
const
|
|
336
|
-
var
|
|
337
|
-
let
|
|
338
|
-
var
|
|
339
|
-
e.reset(
|
|
340
|
-
var
|
|
341
|
-
e.reset(
|
|
342
|
-
var
|
|
343
|
-
e.reset(
|
|
344
|
-
|
|
345
|
-
"chat-tui__msg--user": e.get(
|
|
346
|
-
"chat-tui__msg--system": e.get(
|
|
347
|
-
}), e.set_text(
|
|
348
|
-
}), e.append(
|
|
330
|
+
var r = (c) => {
|
|
331
|
+
var z = Xe(), B = e.child(z);
|
|
332
|
+
B.textContent = `┌─ Chat ${"─".repeat(38) ?? ""}┐`;
|
|
333
|
+
var a = e.sibling(B, 2), s = e.sibling(e.child(a), 2), n = e.child(s);
|
|
334
|
+
e.each(n, 17, () => e.get(i), (A) => A.id, (A, F) => {
|
|
335
|
+
const J = e.derived(() => D(e.get(F))), W = e.derived(() => 38), $ = e.derived(() => `╭─ ${e.get(J)} ${"─".repeat(Math.max(0, e.get(W) - e.get(J).length - 3))}╮`), ce = e.derived(() => `╰${"─".repeat(e.get(W) + 1)}╯`);
|
|
336
|
+
var de = We();
|
|
337
|
+
let te;
|
|
338
|
+
var ie = e.child(de), ve = e.child(ie, !0);
|
|
339
|
+
e.reset(ie);
|
|
340
|
+
var le = e.sibling(ie, 2), ne = e.sibling(e.child(le), 2), re = e.child(ne, !0);
|
|
341
|
+
e.reset(ne), e.next(2), e.reset(le);
|
|
342
|
+
var Z = e.sibling(le, 2), _e = e.child(Z, !0);
|
|
343
|
+
e.reset(Z), e.reset(de), e.template_effect(() => {
|
|
344
|
+
te = e.set_class(de, 1, "chat-tui__msg svelte-10e5u2c", null, te, {
|
|
345
|
+
"chat-tui__msg--user": e.get(F).type === "user",
|
|
346
|
+
"chat-tui__msg--system": e.get(F).type === "system"
|
|
347
|
+
}), e.set_text(ve, e.get($)), e.set_text(re, e.get(F).content), e.set_text(_e, e.get(ce));
|
|
348
|
+
}), e.append(A, de);
|
|
349
349
|
});
|
|
350
|
-
var
|
|
350
|
+
var u = e.sibling(n, 2);
|
|
351
351
|
{
|
|
352
|
-
var
|
|
353
|
-
var
|
|
354
|
-
e.reset(
|
|
352
|
+
var T = (A) => {
|
|
353
|
+
var F = Qe(), J = e.child(F), W = e.child(J);
|
|
354
|
+
e.reset(J), e.reset(F), e.template_effect(() => e.set_text(W, `▼ ${e.get(m) ?? ""} new ${e.get(m) === 1 ? "message" : "messages"}`)), e.delegated("click", J, j), e.delegated("keydown", J, ($) => ($.key === "Enter" || $.key === " ") && j()), e.append(A, F);
|
|
355
355
|
};
|
|
356
|
-
e.if(
|
|
357
|
-
e.get(
|
|
356
|
+
e.if(u, (A) => {
|
|
357
|
+
e.get(m) > 0 && A(T);
|
|
358
358
|
});
|
|
359
359
|
}
|
|
360
|
-
e.reset(
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
},
|
|
364
|
-
var
|
|
365
|
-
e.each(
|
|
366
|
-
var
|
|
367
|
-
let
|
|
368
|
-
var
|
|
369
|
-
e.reset(
|
|
370
|
-
var
|
|
360
|
+
e.reset(s), e.next(2), e.reset(a);
|
|
361
|
+
var O = e.sibling(a, 2);
|
|
362
|
+
O.textContent = `└${"─".repeat(40) ?? ""}┘`, e.reset(z), e.template_effect(() => e.set_class(z, 1, `chat-tui ${l() ?? ""}`, "svelte-10e5u2c")), e.delegated("keydown", z, Y), e.append(c, z);
|
|
363
|
+
}, q = (c) => {
|
|
364
|
+
var z = tt(), B = e.child(z), a = e.child(B), s = e.child(a);
|
|
365
|
+
e.each(s, 17, () => t.messages, (O) => O.id, (O, A) => {
|
|
366
|
+
var F = $e();
|
|
367
|
+
let J;
|
|
368
|
+
var W = e.child(F), $ = e.child(W), ce = e.child($, !0);
|
|
369
|
+
e.reset($);
|
|
370
|
+
var de = e.sibling($, 2);
|
|
371
371
|
{
|
|
372
|
-
var
|
|
373
|
-
var
|
|
374
|
-
e.reset(
|
|
372
|
+
var te = (le) => {
|
|
373
|
+
var ne = Ze(), re = e.child(ne, !0);
|
|
374
|
+
e.reset(ne), e.template_effect((Z) => e.set_text(re, Z), [() => X(e.get(A).timestamp)]), e.append(le, ne);
|
|
375
375
|
};
|
|
376
|
-
e.if(
|
|
377
|
-
|
|
376
|
+
e.if(de, (le) => {
|
|
377
|
+
f() && le(te);
|
|
378
378
|
});
|
|
379
379
|
}
|
|
380
|
-
e.reset(
|
|
381
|
-
var
|
|
382
|
-
e.reset(
|
|
383
|
-
|
|
384
|
-
"chat-gui__msg--user": e.get(
|
|
385
|
-
"chat-gui__msg--agent": e.get(
|
|
386
|
-
"chat-gui__msg--system": e.get(
|
|
387
|
-
}), e.set_text(
|
|
388
|
-
}), e.append(
|
|
380
|
+
e.reset(W);
|
|
381
|
+
var ie = e.sibling(W, 2), ve = e.child(ie, !0);
|
|
382
|
+
e.reset(ie), e.reset(F), e.template_effect(() => {
|
|
383
|
+
J = e.set_class(F, 1, "chat-gui__msg svelte-10e5u2c", null, J, {
|
|
384
|
+
"chat-gui__msg--user": e.get(A).type === "user",
|
|
385
|
+
"chat-gui__msg--agent": e.get(A).type === "agent",
|
|
386
|
+
"chat-gui__msg--system": e.get(A).type === "system"
|
|
387
|
+
}), e.set_text(ce, e.get(A).author), e.set_text(ve, e.get(A).content);
|
|
388
|
+
}), e.append(O, F);
|
|
389
389
|
});
|
|
390
|
-
var
|
|
391
|
-
e.bind_this(
|
|
392
|
-
var
|
|
390
|
+
var n = e.sibling(s, 2);
|
|
391
|
+
e.bind_this(n, (O) => e.set(w, O), () => e.get(w)), e.reset(a), e.reset(B), e.bind_this(B, (O) => e.set(p, O), () => e.get(p));
|
|
392
|
+
var u = e.sibling(B, 2);
|
|
393
393
|
{
|
|
394
|
-
var
|
|
395
|
-
var
|
|
396
|
-
e.reset(
|
|
394
|
+
var T = (O) => {
|
|
395
|
+
var A = et(), F = e.child(A);
|
|
396
|
+
e.reset(A), e.template_effect(() => e.set_text(F, `▼ ${e.get(P) ?? ""} new ${e.get(P) === 1 ? "message" : "messages"}`)), e.delegated("click", A, I), e.append(O, A);
|
|
397
397
|
};
|
|
398
|
-
e.if(
|
|
399
|
-
e.get(
|
|
398
|
+
e.if(u, (O) => {
|
|
399
|
+
e.get(P) > 0 && !e.get(v) && O(T);
|
|
400
400
|
});
|
|
401
401
|
}
|
|
402
|
-
e.reset(
|
|
402
|
+
e.reset(z), e.template_effect(() => e.set_class(z, 1, `chat-gui ${l() ?? ""}`, "svelte-10e5u2c")), e.event("scroll", B, b), e.delegated("keydown", B, g), e.append(c, z);
|
|
403
403
|
};
|
|
404
|
-
e.if(
|
|
405
|
-
e.get(
|
|
404
|
+
e.if(V, (c) => {
|
|
405
|
+
e.get(y) ? c(r) : c(q, !1);
|
|
406
406
|
});
|
|
407
407
|
}
|
|
408
|
-
e.append(
|
|
408
|
+
e.append(H, N), e.pop();
|
|
409
409
|
}
|
|
410
410
|
e.delegate(["keydown", "click"]);
|
|
411
|
-
var
|
|
412
|
-
function
|
|
411
|
+
var at = e.from_html(' <span class="search-tui__cursor svelte-1xnd4ea">█</span> ', 1), st = e.from_html('<span class="search-tui__result-gap svelte-1xnd4ea"> </span> <span class="search-tui__result-score svelte-1xnd4ea"> </span>', 1), lt = e.from_html('<div role="option" tabindex="-1"><span class="search-tui__side search-tui__side--dim svelte-1xnd4ea">│</span> <span class="search-tui__result-content svelte-1xnd4ea"><span class="search-tui__result-prefix svelte-1xnd4ea"> </span> <span class="search-tui__result-text svelte-1xnd4ea"> </span> <!></span> <span class="search-tui__side search-tui__side--dim svelte-1xnd4ea">│</span></div>'), it = e.from_html('<div class="search-tui__separator svelte-1xnd4ea"> </div> <div role="listbox" aria-label="Search suggestions" class="svelte-1xnd4ea"></div>', 1), nt = e.from_html('<label><div> </div> <div class="search-tui__row svelte-1xnd4ea"><span>│</span> <span><!></span> <span>│</span></div> <!> <div class="search-tui__bottom svelte-1xnd4ea"> </div> <input class="search-tui__hidden svelte-1xnd4ea" type="text" aria-label="Search" role="combobox" aria-autocomplete="list" aria-haspopup="listbox"/></label>'), rt = e.from_html('<mark class="search-gui__highlight svelte-1xnd4ea"> </mark>'), dt = e.from_html('<span class="search-gui__score svelte-1xnd4ea"> </span>'), ot = e.from_html('<li role="option" tabindex="-1"><span class="search-gui__option-text svelte-1xnd4ea"></span> <!></li>'), ct = e.from_html('<ul class="search-gui__dropdown svelte-1xnd4ea" role="listbox" aria-label="Search suggestions"></ul>'), vt = e.from_html('<div><div><span class="search-gui__icon svelte-1xnd4ea" aria-hidden="true">⌕</span> <input class="search-gui__input svelte-1xnd4ea" type="text" aria-label="Search" role="combobox" aria-autocomplete="list" aria-haspopup="listbox"/></div> <!></div>');
|
|
412
|
+
function aa(H, t) {
|
|
413
413
|
e.push(t, !0);
|
|
414
|
-
let
|
|
415
|
-
const
|
|
416
|
-
let
|
|
417
|
-
function
|
|
414
|
+
let S = e.prop(t, "tui", 3, !1), f = e.prop(t, "value", 15, ""), l = e.prop(t, "placeholder", 3, "Search..."), x = e.prop(t, "maxSuggestions", 3, 8), y = e.prop(t, "debounceMs", 3, 100), p = e.prop(t, "showScores", 3, !0), w = e.prop(t, "class", 3, ""), v = e.prop(t, "cols", 3, 48);
|
|
415
|
+
const P = me(), R = e.derived(() => S() || P());
|
|
416
|
+
let M = e.state(void 0), C = e.state(!1), U = e.state(0), I = e.state(e.proxy([])), b = e.state(-1), g = e.state(!1);
|
|
417
|
+
function d() {
|
|
418
418
|
if (typeof crypto < "u" && typeof crypto.randomUUID == "function")
|
|
419
419
|
return `search-listbox-${crypto.randomUUID()}`;
|
|
420
420
|
if (typeof crypto < "u" && typeof crypto.getRandomValues == "function") {
|
|
421
|
-
const
|
|
422
|
-
return crypto.getRandomValues(
|
|
421
|
+
const a = new Uint32Array(1);
|
|
422
|
+
return crypto.getRandomValues(a), `search-listbox-${a[0].toString(36)}`;
|
|
423
423
|
}
|
|
424
424
|
return `search-listbox-${Date.now().toString(36)}`;
|
|
425
425
|
}
|
|
426
|
-
const
|
|
427
|
-
let
|
|
428
|
-
const
|
|
429
|
-
const
|
|
430
|
-
return `┌${
|
|
431
|
-
})()),
|
|
432
|
-
const
|
|
433
|
-
if (!e.get(
|
|
434
|
-
return
|
|
426
|
+
const L = d();
|
|
427
|
+
let h;
|
|
428
|
+
const m = e.derived(() => Math.max(6, v())), i = e.derived(() => e.get(m) - 2), _ = e.derived(() => (() => {
|
|
429
|
+
const a = "Search", s = Math.max(0, e.get(i) - 4), u = `─ ${a.length > s ? a.substring(0, s) : a} `, T = Math.max(0, e.get(i) - u.length);
|
|
430
|
+
return `┌${u}${"─".repeat(T)}┐`;
|
|
431
|
+
})()), k = e.derived(() => `├${"─".repeat(e.get(i))}┤`), G = e.derived(() => `└${"─".repeat(e.get(i))}┘`), o = e.derived(() => {
|
|
432
|
+
const a = f() ?? "", s = a.length, n = Math.min(Math.max(0, e.get(U)), s);
|
|
433
|
+
if (!e.get(C))
|
|
434
|
+
return a ? {
|
|
435
435
|
kind: "text",
|
|
436
|
-
text:
|
|
436
|
+
text: a.substring(0, e.get(i)).padEnd(e.get(i), " ")
|
|
437
437
|
} : {
|
|
438
438
|
kind: "placeholder",
|
|
439
|
-
text: (
|
|
439
|
+
text: (l() || "").substring(0, e.get(i)).padEnd(e.get(i), " ")
|
|
440
440
|
};
|
|
441
|
-
const
|
|
442
|
-
let
|
|
443
|
-
|
|
444
|
-
const
|
|
445
|
-
return { kind: "cursor", before:
|
|
441
|
+
const u = e.get(i) - 1;
|
|
442
|
+
let T;
|
|
443
|
+
s <= u ? T = 0 : (T = Math.min(n, s - u), T = Math.max(0, T), n < T && (T = n));
|
|
444
|
+
const O = a.substring(T, n), A = a.substring(n, T + u), F = " ".repeat(Math.max(0, u - O.length - A.length));
|
|
445
|
+
return { kind: "cursor", before: O, after: A, pad: F };
|
|
446
446
|
});
|
|
447
|
-
function
|
|
448
|
-
const
|
|
449
|
-
if (
|
|
450
|
-
const
|
|
451
|
-
return { prefix:
|
|
447
|
+
function E(a, s) {
|
|
448
|
+
const n = s === e.get(b) ? "› " : " ";
|
|
449
|
+
if (p()) {
|
|
450
|
+
const u = `★ ${a.score.toFixed(2)}`, T = " ", O = Math.max(0, e.get(i) - n.length - T.length - u.length), A = a.text.length > O ? a.text.substring(0, O - 1) + "…" : a.text.padEnd(O, " ");
|
|
451
|
+
return { prefix: n, text: A, gap: T, score: u };
|
|
452
452
|
} else {
|
|
453
|
-
const
|
|
454
|
-
return { prefix:
|
|
453
|
+
const u = Math.max(0, e.get(i) - n.length), T = a.text.length > u ? a.text.substring(0, u - 1) + "…" : a.text.padEnd(u, " ");
|
|
454
|
+
return { prefix: n, text: T, gap: "", score: "" };
|
|
455
455
|
}
|
|
456
456
|
}
|
|
457
|
-
async function
|
|
458
|
-
if (!
|
|
459
|
-
e.set(
|
|
457
|
+
async function K(a) {
|
|
458
|
+
if (!a.trim()) {
|
|
459
|
+
e.set(I, [], !0), e.set(g, !1), e.set(b, -1);
|
|
460
460
|
return;
|
|
461
461
|
}
|
|
462
462
|
try {
|
|
463
|
-
const
|
|
464
|
-
e.set(
|
|
463
|
+
const s = await t.onSearch(a);
|
|
464
|
+
e.set(I, s.slice(0, x()), !0), e.set(b, -1), e.set(g, e.get(I).length > 0);
|
|
465
465
|
} catch {
|
|
466
|
-
e.set(
|
|
466
|
+
e.set(I, [], !0), e.set(g, !1);
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
function
|
|
470
|
-
|
|
469
|
+
function j(a) {
|
|
470
|
+
f(a.text), e.set(I, [], !0), e.set(g, !1), e.set(b, -1), t.onSelect(a);
|
|
471
471
|
}
|
|
472
|
-
function
|
|
473
|
-
const
|
|
474
|
-
|
|
472
|
+
function Y(a) {
|
|
473
|
+
const s = a.target;
|
|
474
|
+
f(s.value), D(), clearTimeout(h), h = setTimeout(() => K(f() ?? ""), y());
|
|
475
475
|
}
|
|
476
|
-
function
|
|
477
|
-
|
|
476
|
+
function X(a) {
|
|
477
|
+
a.key === "ArrowDown" ? (a.preventDefault(), e.get(I).length > 0 && e.set(b, Math.min(e.get(b) + 1, e.get(I).length - 1), !0)) : a.key === "ArrowUp" ? (a.preventDefault(), e.get(I).length > 0 && e.set(b, Math.max(e.get(b) - 1, -1), !0)) : a.key === "Enter" ? (a.preventDefault(), e.get(b) >= 0 && e.get(b) < e.get(I).length && j(e.get(I)[e.get(b)])) : a.key === "Escape" && (e.set(I, [], !0), e.set(g, !1), e.set(b, -1)), D();
|
|
478
478
|
}
|
|
479
|
-
function
|
|
480
|
-
const
|
|
481
|
-
|
|
482
|
-
e.set(
|
|
483
|
-
}) : e.set(
|
|
479
|
+
function D() {
|
|
480
|
+
const a = e.get(M);
|
|
481
|
+
a && (typeof queueMicrotask < "u" ? queueMicrotask(() => {
|
|
482
|
+
e.set(U, a.selectionStart ?? (f() ?? "").length, !0);
|
|
483
|
+
}) : e.set(U, a.selectionStart ?? (f() ?? "").length, !0));
|
|
484
484
|
}
|
|
485
|
-
function
|
|
486
|
-
e.set(
|
|
485
|
+
function N() {
|
|
486
|
+
e.set(C, !0), D(), (f() ?? "").trim() && e.get(I).length > 0 && e.set(g, !0);
|
|
487
487
|
}
|
|
488
|
-
function
|
|
489
|
-
e.set(
|
|
488
|
+
function V() {
|
|
489
|
+
e.set(C, !1), setTimeout(
|
|
490
490
|
() => {
|
|
491
|
-
e.set(
|
|
491
|
+
e.set(g, !1);
|
|
492
492
|
},
|
|
493
493
|
150
|
|
494
494
|
);
|
|
495
495
|
}
|
|
496
|
-
function
|
|
497
|
-
if (!
|
|
498
|
-
const
|
|
499
|
-
return
|
|
500
|
-
{ text:
|
|
501
|
-
{ text:
|
|
502
|
-
{ text:
|
|
496
|
+
function r(a, s) {
|
|
497
|
+
if (!s.trim()) return [{ text: a, match: !1 }];
|
|
498
|
+
const n = a.toLowerCase(), u = s.trim().toLowerCase(), T = n.indexOf(u);
|
|
499
|
+
return T < 0 ? [{ text: a, match: !1 }] : [
|
|
500
|
+
{ text: a.slice(0, T), match: !1 },
|
|
501
|
+
{ text: a.slice(T, T + u.length), match: !0 },
|
|
502
|
+
{ text: a.slice(T + u.length), match: !1 }
|
|
503
503
|
];
|
|
504
504
|
}
|
|
505
|
-
var
|
|
505
|
+
var q = e.comment(), c = e.first_child(q);
|
|
506
506
|
{
|
|
507
|
-
var
|
|
508
|
-
var
|
|
509
|
-
let x;
|
|
510
|
-
var _ = e.child(d);
|
|
507
|
+
var z = (a) => {
|
|
508
|
+
var s = nt();
|
|
511
509
|
let n;
|
|
512
|
-
var
|
|
513
|
-
|
|
514
|
-
var
|
|
515
|
-
|
|
516
|
-
var
|
|
517
|
-
let
|
|
518
|
-
var
|
|
510
|
+
var u = e.child(s);
|
|
511
|
+
let T;
|
|
512
|
+
var O = e.child(u, !0);
|
|
513
|
+
e.reset(u);
|
|
514
|
+
var A = e.sibling(u, 2), F = e.child(A);
|
|
515
|
+
let J;
|
|
516
|
+
var W = e.sibling(F, 2);
|
|
517
|
+
let $;
|
|
518
|
+
var ce = e.child(W);
|
|
519
519
|
{
|
|
520
|
-
var
|
|
521
|
-
var
|
|
522
|
-
e.template_effect(() => e.set_text(
|
|
523
|
-
},
|
|
524
|
-
var
|
|
525
|
-
e.template_effect(() => e.set_text(
|
|
526
|
-
},
|
|
527
|
-
var
|
|
520
|
+
var de = (Q) => {
|
|
521
|
+
var ae = e.text();
|
|
522
|
+
e.template_effect(() => e.set_text(ae, e.get(o).text)), e.append(Q, ae);
|
|
523
|
+
}, te = (Q) => {
|
|
524
|
+
var ae = e.text();
|
|
525
|
+
e.template_effect(() => e.set_text(ae, e.get(o).text)), e.append(Q, ae);
|
|
526
|
+
}, ie = (Q) => {
|
|
527
|
+
var ae = at(), se = e.first_child(ae, !0), oe = e.sibling(se, 2);
|
|
528
528
|
e.template_effect(() => {
|
|
529
|
-
e.set_text(
|
|
530
|
-
}), e.append(
|
|
529
|
+
e.set_text(se, e.get(o).before), e.set_text(oe, `${e.get(o).after ?? ""}${e.get(o).pad ?? ""}`);
|
|
530
|
+
}), e.append(Q, ae);
|
|
531
531
|
};
|
|
532
|
-
e.if(
|
|
533
|
-
e.get(
|
|
532
|
+
e.if(ce, (Q) => {
|
|
533
|
+
e.get(o).kind === "placeholder" ? Q(de) : e.get(o).kind === "text" ? Q(te, 1) : Q(ie, !1);
|
|
534
534
|
});
|
|
535
535
|
}
|
|
536
|
-
e.reset(
|
|
537
|
-
var
|
|
538
|
-
let
|
|
539
|
-
e.reset(
|
|
540
|
-
var
|
|
536
|
+
e.reset(W);
|
|
537
|
+
var ve = e.sibling(W, 2);
|
|
538
|
+
let le;
|
|
539
|
+
e.reset(A);
|
|
540
|
+
var ne = e.sibling(A, 2);
|
|
541
541
|
{
|
|
542
|
-
var
|
|
543
|
-
var
|
|
544
|
-
e.reset(
|
|
545
|
-
var
|
|
546
|
-
e.each(
|
|
547
|
-
const
|
|
548
|
-
var
|
|
549
|
-
let
|
|
550
|
-
var
|
|
542
|
+
var re = (Q) => {
|
|
543
|
+
var ae = it(), se = e.first_child(ae), oe = e.child(se, !0);
|
|
544
|
+
e.reset(se);
|
|
545
|
+
var pe = e.sibling(se, 2);
|
|
546
|
+
e.each(pe, 21, () => e.get(I), e.index, (De, Te, be) => {
|
|
547
|
+
const he = e.derived(() => E(e.get(Te), be));
|
|
548
|
+
var ue = lt();
|
|
549
|
+
let Me;
|
|
550
|
+
var ze = e.sibling(e.child(ue), 2), xe = e.child(ze), Ee = e.child(xe, !0);
|
|
551
551
|
e.reset(xe);
|
|
552
|
-
var
|
|
553
|
-
e.reset(
|
|
554
|
-
var
|
|
552
|
+
var ye = e.sibling(xe, 2), Ae = e.child(ye, !0);
|
|
553
|
+
e.reset(ye);
|
|
554
|
+
var Ie = e.sibling(ye, 2);
|
|
555
555
|
{
|
|
556
|
-
var
|
|
557
|
-
var
|
|
556
|
+
var Le = (ke) => {
|
|
557
|
+
var Pe = st(), we = e.first_child(Pe), Se = e.child(we, !0);
|
|
558
558
|
e.reset(we);
|
|
559
559
|
var Ce = e.sibling(we, 2), Ue = e.child(Ce, !0);
|
|
560
560
|
e.reset(Ce), e.template_effect(() => {
|
|
561
|
-
e.set_text(
|
|
562
|
-
}), e.append(
|
|
561
|
+
e.set_text(Se, e.get(he).gap), e.set_text(Ue, e.get(he).score);
|
|
562
|
+
}), e.append(ke, Pe);
|
|
563
563
|
};
|
|
564
|
-
e.if(
|
|
565
|
-
e.get(
|
|
564
|
+
e.if(Ie, (ke) => {
|
|
565
|
+
e.get(he).score && ke(Le);
|
|
566
566
|
});
|
|
567
567
|
}
|
|
568
|
-
e.reset(
|
|
569
|
-
|
|
570
|
-
}), e.delegated("mousedown",
|
|
571
|
-
}), e.reset(
|
|
572
|
-
e.set_text(
|
|
573
|
-
}), e.append(
|
|
568
|
+
e.reset(ze), e.next(2), e.reset(ue), e.template_effect(() => {
|
|
569
|
+
Me = e.set_class(ue, 1, "search-tui__result svelte-1xnd4ea", null, Me, { "search-tui__result--selected": be === e.get(b) }), e.set_attribute(ue, "aria-selected", be === e.get(b)), e.set_text(Ee, e.get(he).prefix), e.set_text(Ae, e.get(he).text);
|
|
570
|
+
}), e.delegated("mousedown", ue, () => j(e.get(Te))), e.append(De, ue);
|
|
571
|
+
}), e.reset(pe), e.template_effect(() => {
|
|
572
|
+
e.set_text(oe, e.get(k)), e.set_attribute(pe, "id", L);
|
|
573
|
+
}), e.append(Q, ae);
|
|
574
574
|
};
|
|
575
|
-
e.if(
|
|
576
|
-
e.get(
|
|
575
|
+
e.if(ne, (Q) => {
|
|
576
|
+
e.get(g) && e.get(I).length > 0 && Q(re);
|
|
577
577
|
});
|
|
578
578
|
}
|
|
579
|
-
var
|
|
580
|
-
e.reset(
|
|
581
|
-
var
|
|
582
|
-
e.remove_input_defaults(
|
|
583
|
-
|
|
584
|
-
"search-tui__content--placeholder": e.get(
|
|
585
|
-
}),
|
|
586
|
-
}), e.delegated("input",
|
|
587
|
-
},
|
|
588
|
-
var
|
|
589
|
-
let
|
|
590
|
-
var
|
|
591
|
-
e.remove_input_defaults(
|
|
592
|
-
var
|
|
579
|
+
var Z = e.sibling(ne, 2), _e = e.child(Z, !0);
|
|
580
|
+
e.reset(Z);
|
|
581
|
+
var ee = e.sibling(Z, 2);
|
|
582
|
+
e.remove_input_defaults(ee), e.bind_this(ee, (Q) => e.set(M, Q), () => e.get(M)), e.reset(s), e.template_effect(() => {
|
|
583
|
+
n = e.set_class(s, 1, `search-tui ${w() ?? ""}`, "svelte-1xnd4ea", n, { focused: e.get(C) }), T = e.set_class(u, 1, "search-tui__top svelte-1xnd4ea", null, T, { focused: e.get(C) }), e.set_text(O, e.get(_)), J = e.set_class(F, 1, "search-tui__side svelte-1xnd4ea", null, J, { focused: e.get(C) }), $ = e.set_class(W, 1, "search-tui__content svelte-1xnd4ea", null, $, {
|
|
584
|
+
"search-tui__content--placeholder": e.get(o).kind === "placeholder"
|
|
585
|
+
}), le = e.set_class(ve, 1, "search-tui__side svelte-1xnd4ea", null, le, { focused: e.get(C) }), e.set_text(_e, e.get(G)), e.set_value(ee, f()), e.set_attribute(ee, "aria-controls", L), e.set_attribute(ee, "aria-expanded", e.get(g));
|
|
586
|
+
}), e.delegated("input", ee, Y), e.delegated("keydown", ee, X), e.event("focus", ee, N), e.event("blur", ee, V), e.delegated("click", ee, D), e.event("select", ee, D), e.append(a, s);
|
|
587
|
+
}, B = (a) => {
|
|
588
|
+
var s = vt(), n = e.child(s);
|
|
589
|
+
let u;
|
|
590
|
+
var T = e.sibling(e.child(n), 2);
|
|
591
|
+
e.remove_input_defaults(T), e.bind_this(T, (F) => e.set(M, F), () => e.get(M)), e.reset(n);
|
|
592
|
+
var O = e.sibling(n, 2);
|
|
593
593
|
{
|
|
594
|
-
var
|
|
595
|
-
var
|
|
596
|
-
e.each(
|
|
597
|
-
const
|
|
598
|
-
var
|
|
599
|
-
let
|
|
600
|
-
var
|
|
601
|
-
e.each(
|
|
602
|
-
var
|
|
594
|
+
var A = (F) => {
|
|
595
|
+
var J = ct();
|
|
596
|
+
e.each(J, 21, () => e.get(I), e.index, (W, $, ce) => {
|
|
597
|
+
const de = e.derived(() => r(e.get($).text, f() ?? ""));
|
|
598
|
+
var te = ot();
|
|
599
|
+
let ie;
|
|
600
|
+
var ve = e.child(te);
|
|
601
|
+
e.each(ve, 21, () => e.get(de), e.index, (re, Z) => {
|
|
602
|
+
var _e = e.comment(), ee = e.first_child(_e);
|
|
603
603
|
{
|
|
604
|
-
var
|
|
605
|
-
var
|
|
606
|
-
e.reset(
|
|
607
|
-
},
|
|
608
|
-
var
|
|
609
|
-
e.template_effect(() => e.set_text(
|
|
604
|
+
var Q = (se) => {
|
|
605
|
+
var oe = rt(), pe = e.child(oe, !0);
|
|
606
|
+
e.reset(oe), e.template_effect(() => e.set_text(pe, e.get(Z).text)), e.append(se, oe);
|
|
607
|
+
}, ae = (se) => {
|
|
608
|
+
var oe = e.text();
|
|
609
|
+
e.template_effect(() => e.set_text(oe, e.get(Z).text)), e.append(se, oe);
|
|
610
610
|
};
|
|
611
|
-
e.if(
|
|
612
|
-
e.get(
|
|
611
|
+
e.if(ee, (se) => {
|
|
612
|
+
e.get(Z).match ? se(Q) : se(ae, !1);
|
|
613
613
|
});
|
|
614
614
|
}
|
|
615
|
-
e.append(
|
|
616
|
-
}), e.reset(
|
|
617
|
-
var
|
|
615
|
+
e.append(re, _e);
|
|
616
|
+
}), e.reset(ve);
|
|
617
|
+
var le = e.sibling(ve, 2);
|
|
618
618
|
{
|
|
619
|
-
var
|
|
620
|
-
var
|
|
621
|
-
e.reset(
|
|
619
|
+
var ne = (re) => {
|
|
620
|
+
var Z = dt(), _e = e.child(Z);
|
|
621
|
+
e.reset(Z), e.template_effect((ee) => e.set_text(_e, `★ ${ee ?? ""}`), [() => e.get($).score.toFixed(2)]), e.append(re, Z);
|
|
622
622
|
};
|
|
623
|
-
e.if(
|
|
624
|
-
|
|
623
|
+
e.if(le, (re) => {
|
|
624
|
+
p() && re(ne);
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
|
-
e.reset(
|
|
628
|
-
|
|
629
|
-
}), e.delegated("mousedown",
|
|
630
|
-
}), e.reset(
|
|
627
|
+
e.reset(te), e.template_effect(() => {
|
|
628
|
+
ie = e.set_class(te, 1, "search-gui__option svelte-1xnd4ea", null, ie, { "search-gui__option--selected": ce === e.get(b) }), e.set_attribute(te, "aria-selected", ce === e.get(b));
|
|
629
|
+
}), e.delegated("mousedown", te, () => j(e.get($))), e.event("mouseenter", te, () => e.set(b, ce, !0)), e.append(W, te);
|
|
630
|
+
}), e.reset(J), e.template_effect(() => e.set_attribute(J, "id", L)), e.append(F, J);
|
|
631
631
|
};
|
|
632
|
-
e.if(
|
|
633
|
-
e.get(
|
|
632
|
+
e.if(O, (F) => {
|
|
633
|
+
e.get(g) && e.get(I).length > 0 && F(A);
|
|
634
634
|
});
|
|
635
635
|
}
|
|
636
|
-
e.reset(
|
|
637
|
-
e.set_class(
|
|
638
|
-
}), e.delegated("input",
|
|
636
|
+
e.reset(s), e.template_effect(() => {
|
|
637
|
+
e.set_class(s, 1, `search-gui ${w() ?? ""}`, "svelte-1xnd4ea"), u = e.set_class(n, 1, "search-gui__field svelte-1xnd4ea", null, u, { "search-gui__field--focused": e.get(C) }), e.set_value(T, f()), e.set_attribute(T, "placeholder", l()), e.set_attribute(T, "aria-controls", L), e.set_attribute(T, "aria-expanded", e.get(g));
|
|
638
|
+
}), e.delegated("input", T, Y), e.delegated("keydown", T, X), e.event("focus", T, N), e.event("blur", T, V), e.append(a, s);
|
|
639
639
|
};
|
|
640
|
-
e.if(
|
|
641
|
-
e.get(
|
|
640
|
+
e.if(c, (a) => {
|
|
641
|
+
e.get(R) ? a(z) : a(B, !1);
|
|
642
642
|
});
|
|
643
643
|
}
|
|
644
|
-
e.append(
|
|
644
|
+
e.append(H, q), e.pop();
|
|
645
645
|
}
|
|
646
646
|
e.delegate(["mousedown", "input", "keydown", "click"]);
|
|
647
|
-
var
|
|
648
|
-
function
|
|
649
|
-
let
|
|
650
|
-
var
|
|
651
|
-
let
|
|
647
|
+
var _t = e.from_html('<span aria-hidden="true"></span>');
|
|
648
|
+
function sa(H, t) {
|
|
649
|
+
let S = e.prop(t, "size", 3, 16), f = e.prop(t, "color", 3, "currentColor"), l = e.prop(t, "class", 3, "");
|
|
650
|
+
var x = _t();
|
|
651
|
+
let y;
|
|
652
652
|
e.template_effect(() => {
|
|
653
|
-
e.set_class(
|
|
654
|
-
"font-size": `${
|
|
655
|
-
color:
|
|
656
|
-
"line-height": `${
|
|
653
|
+
e.set_class(x, 1, `nf ${t.icon ?? ""} ${l() ?? ""}`, "svelte-81k4o2"), y = e.set_style(x, "", y, {
|
|
654
|
+
"font-size": `${S() ?? ""}px`,
|
|
655
|
+
color: f(),
|
|
656
|
+
"line-height": `${S() ?? ""}px`
|
|
657
|
+
});
|
|
658
|
+
}), e.append(H, x);
|
|
659
|
+
}
|
|
660
|
+
var ut = e.from_html('<div class="chat-view__system svelte-hdrk38"> </div>'), gt = e.from_html('<span class="chat-view__time svelte-hdrk38"> </span>'), pt = e.from_html('<div class="chat-view__streaming svelte-hdrk38" aria-label="Generating response"><span class="chat-view__dot svelte-hdrk38"></span> <span class="chat-view__dot svelte-hdrk38"></span> <span class="chat-view__dot svelte-hdrk38"></span></div>'), ht = e.from_html('<div class="chat-view__content svelte-hdrk38"><!></div>'), ft = e.from_html('<div><div class="chat-view__bubble-header svelte-hdrk38"><span class="chat-view__author svelte-hdrk38"> </span> <!></div> <!></div>'), mt = e.from_html("<div><!></div>"), bt = e.from_html('<button class="chat-view__jump svelte-hdrk38" aria-live="polite" aria-label="Jump to latest messages"> </button>'), xt = e.from_html('<div role="log" aria-live="polite" aria-label="Chat messages"><div class="chat-view__scroll svelte-hdrk38" tabindex="0" role="region" aria-label="Scrollable message history"><div class="chat-view__messages svelte-hdrk38"><!> <div class="chat-view__sentinel svelte-hdrk38" aria-hidden="true"></div></div></div> <!></div>');
|
|
661
|
+
function la(H, t) {
|
|
662
|
+
e.push(t, !0);
|
|
663
|
+
let S = e.prop(t, "showTimestamps", 3, !0), f = e.prop(t, "class", 3, ""), l = e.state(void 0), x = e.state(!0), y = e.state(0), p = e.state(0);
|
|
664
|
+
e.user_effect(() => {
|
|
665
|
+
const i = t.messages.length;
|
|
666
|
+
if (i !== e.get(p)) {
|
|
667
|
+
const _ = i - e.get(p);
|
|
668
|
+
e.set(p, i, !0), e.get(x) ? (e.set(y, 0), w()) : _ > 0 && e.set(y, e.get(y) + _);
|
|
669
|
+
}
|
|
670
|
+
});
|
|
671
|
+
function w() {
|
|
672
|
+
typeof requestAnimationFrame < "u" && requestAnimationFrame(() => v());
|
|
673
|
+
}
|
|
674
|
+
function v() {
|
|
675
|
+
e.get(l) && (e.get(l).scrollTop = e.get(l).scrollHeight);
|
|
676
|
+
}
|
|
677
|
+
function P() {
|
|
678
|
+
var i;
|
|
679
|
+
e.set(x, !0), e.set(y, 0), v(), (i = t.onscrolltolatest) == null || i.call(t);
|
|
680
|
+
}
|
|
681
|
+
function R() {
|
|
682
|
+
if (!e.get(l)) return;
|
|
683
|
+
const { scrollTop: i, scrollHeight: _, clientHeight: k } = e.get(l), G = e.get(x);
|
|
684
|
+
e.set(x, _ - i - k < 8), e.get(x) && !G && e.set(y, 0);
|
|
685
|
+
}
|
|
686
|
+
function M(i) {
|
|
687
|
+
if (!e.get(l)) return;
|
|
688
|
+
const _ = e.get(l).clientHeight;
|
|
689
|
+
switch (i.key) {
|
|
690
|
+
case "PageUp":
|
|
691
|
+
i.preventDefault(), e.get(l).scrollBy({ top: -_, behavior: "smooth" });
|
|
692
|
+
break;
|
|
693
|
+
case "PageDown":
|
|
694
|
+
i.preventDefault(), e.get(l).scrollBy({ top: _, behavior: "smooth" });
|
|
695
|
+
break;
|
|
696
|
+
case "Home":
|
|
697
|
+
i.preventDefault(), e.get(l).scrollTo({ top: 0, behavior: "smooth" });
|
|
698
|
+
break;
|
|
699
|
+
case "End":
|
|
700
|
+
i.preventDefault(), v();
|
|
701
|
+
break;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
function C(i) {
|
|
705
|
+
return i.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
706
|
+
}
|
|
707
|
+
function U(i) {
|
|
708
|
+
return i.split(/(```[\s\S]*?```)/g).map((k, G) => {
|
|
709
|
+
if (G % 2 === 1)
|
|
710
|
+
return `<pre class="md-pre"><code>${C(k.slice(3, -3).replace(/^\n/, "").replace(/\n$/, ""))}</code></pre>`;
|
|
711
|
+
let o = C(k);
|
|
712
|
+
return o = o.replace(/`([^`]+)`/g, '<code class="md-code">$1</code>'), o = o.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>"), o = o.replace(/\*([^*\n]+)\*/g, "<em>$1</em>"), o = o.replace(/\n/g, "<br>"), o;
|
|
713
|
+
}).join("");
|
|
714
|
+
}
|
|
715
|
+
function I(i) {
|
|
716
|
+
return i.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
717
|
+
}
|
|
718
|
+
var b = xt(), g = e.child(b), d = e.child(g), L = e.child(d);
|
|
719
|
+
e.each(L, 17, () => t.messages, (i) => i.id, (i, _) => {
|
|
720
|
+
var k = mt();
|
|
721
|
+
let G;
|
|
722
|
+
var o = e.child(k);
|
|
723
|
+
{
|
|
724
|
+
var E = (j) => {
|
|
725
|
+
var Y = ut(), X = e.child(Y, !0);
|
|
726
|
+
e.reset(Y), e.template_effect(() => e.set_text(X, e.get(_).content)), e.append(j, Y);
|
|
727
|
+
}, K = (j) => {
|
|
728
|
+
var Y = ft();
|
|
729
|
+
let X;
|
|
730
|
+
var D = e.child(Y), N = e.child(D), V = e.child(N, !0);
|
|
731
|
+
e.reset(N);
|
|
732
|
+
var r = e.sibling(N, 2);
|
|
733
|
+
{
|
|
734
|
+
var q = (a) => {
|
|
735
|
+
var s = gt(), n = e.child(s, !0);
|
|
736
|
+
e.reset(s), e.template_effect((u) => e.set_text(n, u), [() => I(e.get(_).timestamp)]), e.append(a, s);
|
|
737
|
+
};
|
|
738
|
+
e.if(r, (a) => {
|
|
739
|
+
S() && a(q);
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
e.reset(D);
|
|
743
|
+
var c = e.sibling(D, 2);
|
|
744
|
+
{
|
|
745
|
+
var z = (a) => {
|
|
746
|
+
var s = pt();
|
|
747
|
+
e.append(a, s);
|
|
748
|
+
}, B = (a) => {
|
|
749
|
+
var s = ht(), n = e.child(s);
|
|
750
|
+
e.html(n, () => U(e.get(_).content)), e.reset(s), e.append(a, s);
|
|
751
|
+
};
|
|
752
|
+
e.if(c, (a) => {
|
|
753
|
+
e.get(_).streaming ? a(z) : a(B, !1);
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
e.reset(Y), e.template_effect(() => {
|
|
757
|
+
X = e.set_class(Y, 1, "chat-view__bubble svelte-hdrk38", null, X, {
|
|
758
|
+
"chat-view__bubble--user": e.get(_).type === "user",
|
|
759
|
+
"chat-view__bubble--agent": e.get(_).type === "agent" || !e.get(_).type
|
|
760
|
+
}), e.set_text(V, e.get(_).author);
|
|
761
|
+
}), e.append(j, Y);
|
|
762
|
+
};
|
|
763
|
+
e.if(o, (j) => {
|
|
764
|
+
e.get(_).type === "system" ? j(E) : j(K, !1);
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
e.reset(k), e.template_effect(() => G = e.set_class(k, 1, "chat-view__row svelte-hdrk38", null, G, {
|
|
768
|
+
"chat-view__row--user": e.get(_).type === "user",
|
|
769
|
+
"chat-view__row--agent": e.get(_).type === "agent" || !e.get(_).type,
|
|
770
|
+
"chat-view__row--system": e.get(_).type === "system"
|
|
771
|
+
})), e.append(i, k);
|
|
772
|
+
}), e.next(2), e.reset(d), e.reset(g), e.bind_this(g, (i) => e.set(l, i), () => e.get(l));
|
|
773
|
+
var h = e.sibling(g, 2);
|
|
774
|
+
{
|
|
775
|
+
var m = (i) => {
|
|
776
|
+
var _ = bt(), k = e.child(_);
|
|
777
|
+
e.reset(_), e.template_effect(() => e.set_text(k, `▼ ${e.get(y) ?? ""} new ${e.get(y) === 1 ? "message" : "messages"}`)), e.delegated("click", _, P), e.append(i, _);
|
|
778
|
+
};
|
|
779
|
+
e.if(h, (i) => {
|
|
780
|
+
e.get(y) > 0 && !e.get(x) && i(m);
|
|
657
781
|
});
|
|
658
|
-
}
|
|
782
|
+
}
|
|
783
|
+
e.reset(b), e.template_effect(() => e.set_class(b, 1, `chat-view ${f() ?? ""}`, "svelte-hdrk38")), e.event("scroll", g, R), e.delegated("keydown", g, M), e.append(H, b), e.pop();
|
|
659
784
|
}
|
|
785
|
+
e.delegate(["keydown", "click"]);
|
|
786
|
+
var yt = e.from_html('<div class="chat-input__attachment svelte-bicrdd"><span class="chat-input__attachment-name svelte-bicrdd"> </span> <button class="chat-input__attachment-remove svelte-bicrdd" aria-label="Remove attachment" type="button">✕</button></div>'), kt = e.from_html('<div><!> <div class="chat-input__row svelte-bicrdd"><button class="chat-input__attach-btn svelte-bicrdd" type="button" aria-label="Attach file" title="Attach file">📎</button> <textarea class="chat-input__textarea svelte-bicrdd" rows="1" aria-label="Message input" aria-multiline="true"></textarea> <button class="chat-input__send-btn svelte-bicrdd" type="button" aria-label="Send message"><svg class="chat-input__send-icon svelte-bicrdd" viewBox="0 0 20 20" fill="none" aria-hidden="true"><path d="M3 10L17 3L10 17L9 11L3 10Z" fill="currentColor" stroke="currentColor" stroke-width="0.5" stroke-linejoin="round"></path></svg></button></div> <input class="chat-input__file-hidden svelte-bicrdd" type="file" aria-hidden="true" tabindex="-1"/></div>');
|
|
787
|
+
function ia(H, t) {
|
|
788
|
+
e.push(t, !0);
|
|
789
|
+
let S = e.prop(t, "value", 15, ""), f = e.prop(t, "placeholder", 3, "Type a message…"), l = e.prop(t, "disabled", 3, !1), x = e.prop(t, "maxRows", 3, 5), y = e.prop(t, "class", 3, ""), p = e.state(void 0), w = e.state(void 0), v = e.state(void 0);
|
|
790
|
+
function P() {
|
|
791
|
+
const o = e.get(p);
|
|
792
|
+
if (!o) return;
|
|
793
|
+
o.style.height = "auto";
|
|
794
|
+
const K = parseInt(getComputedStyle(o).lineHeight || "20", 10) * x() + parseInt(getComputedStyle(o).paddingTop || "0", 10) * 2;
|
|
795
|
+
o.style.height = Math.min(o.scrollHeight, K) + "px";
|
|
796
|
+
}
|
|
797
|
+
function R(o) {
|
|
798
|
+
S(o.target.value), P();
|
|
799
|
+
}
|
|
800
|
+
function M(o) {
|
|
801
|
+
o.key === "Enter" && !o.shiftKey && (o.preventDefault(), C());
|
|
802
|
+
}
|
|
803
|
+
function C() {
|
|
804
|
+
var E;
|
|
805
|
+
const o = (S() ?? "").trim();
|
|
806
|
+
!o && !e.get(v) || ((E = t.onsend) == null || E.call(t, o, e.get(v)), S(""), e.set(v, void 0), e.get(p) && (e.get(p).style.height = "auto"));
|
|
807
|
+
}
|
|
808
|
+
function U() {
|
|
809
|
+
var o;
|
|
810
|
+
(o = e.get(w)) == null || o.click();
|
|
811
|
+
}
|
|
812
|
+
function I(o) {
|
|
813
|
+
var K;
|
|
814
|
+
const E = o.target;
|
|
815
|
+
e.set(v, (K = E.files) == null ? void 0 : K[0], !0), E.value = "";
|
|
816
|
+
}
|
|
817
|
+
function b() {
|
|
818
|
+
e.set(v, void 0);
|
|
819
|
+
}
|
|
820
|
+
var g = kt();
|
|
821
|
+
let d;
|
|
822
|
+
var L = e.child(g);
|
|
823
|
+
{
|
|
824
|
+
var h = (o) => {
|
|
825
|
+
var E = yt(), K = e.child(E), j = e.child(K);
|
|
826
|
+
e.reset(K);
|
|
827
|
+
var Y = e.sibling(K, 2);
|
|
828
|
+
e.reset(E), e.template_effect(() => e.set_text(j, `📎 ${e.get(v).name ?? ""}`)), e.delegated("click", Y, b), e.append(o, E);
|
|
829
|
+
};
|
|
830
|
+
e.if(L, (o) => {
|
|
831
|
+
e.get(v) && o(h);
|
|
832
|
+
});
|
|
833
|
+
}
|
|
834
|
+
var m = e.sibling(L, 2), i = e.child(m), _ = e.sibling(i, 2);
|
|
835
|
+
e.remove_textarea_child(_), e.bind_this(_, (o) => e.set(p, o), () => e.get(p));
|
|
836
|
+
var k = e.sibling(_, 2);
|
|
837
|
+
e.reset(m);
|
|
838
|
+
var G = e.sibling(m, 2);
|
|
839
|
+
e.bind_this(G, (o) => e.set(w, o), () => e.get(w)), e.reset(g), e.template_effect(
|
|
840
|
+
(o) => {
|
|
841
|
+
d = e.set_class(g, 1, `chat-input ${y() ?? ""}`, "svelte-bicrdd", d, { "chat-input--disabled": l() }), i.disabled = l(), e.set_attribute(_, "placeholder", f()), _.disabled = l(), e.set_value(_, S()), k.disabled = o;
|
|
842
|
+
},
|
|
843
|
+
[
|
|
844
|
+
() => l() || !(S() ?? "").trim() && !e.get(v)
|
|
845
|
+
]
|
|
846
|
+
), e.delegated("click", i, U), e.delegated("input", _, R), e.delegated("keydown", _, M), e.delegated("click", k, C), e.delegated("change", G, I), e.append(H, g), e.pop();
|
|
847
|
+
}
|
|
848
|
+
e.delegate(["click", "input", "keydown", "change"]);
|
|
849
|
+
var wt = e.from_html('<p class="memory-sidebar__empty svelte-1kg6yxg"> </p>'), Tt = e.from_html('<div class="memory-sidebar__item svelte-1kg6yxg" role="listitem"><div class="memory-sidebar__item-row svelte-1kg6yxg"><span> </span> <span class="memory-sidebar__time svelte-1kg6yxg"> </span></div> <p class="memory-sidebar__content svelte-1kg6yxg"> </p></div>'), Mt = e.from_html('<aside aria-label="Memories"><div class="memory-sidebar__header svelte-1kg6yxg"><h2 class="memory-sidebar__title svelte-1kg6yxg">Memories</h2> <span class="memory-sidebar__count svelte-1kg6yxg"> </span></div> <div class="memory-sidebar__search svelte-1kg6yxg"><span class="memory-sidebar__search-icon svelte-1kg6yxg" aria-hidden="true">⌕</span> <input class="memory-sidebar__search-input svelte-1kg6yxg" type="search" placeholder="Search memories…" aria-label="Search memories"/></div> <div class="memory-sidebar__list svelte-1kg6yxg" role="list"><!></div></aside>');
|
|
850
|
+
function na(H, t) {
|
|
851
|
+
e.push(t, !0);
|
|
852
|
+
let S = e.prop(t, "class", 3, ""), f = e.state("");
|
|
853
|
+
const l = e.derived(() => e.get(f).trim() ? t.memories.filter((g) => g.content.toLowerCase().includes(e.get(f).trim().toLowerCase())) : t.memories), x = {
|
|
854
|
+
fact: "Fact",
|
|
855
|
+
goal: "Goal",
|
|
856
|
+
preference: "Pref",
|
|
857
|
+
context: "Context",
|
|
858
|
+
other: "Other"
|
|
859
|
+
};
|
|
860
|
+
function y(g) {
|
|
861
|
+
const d = Date.now() - g.getTime(), L = Math.floor(d / 1e3);
|
|
862
|
+
if (L < 60) return "just now";
|
|
863
|
+
const h = Math.floor(L / 60);
|
|
864
|
+
if (h < 60) return `${h}m ago`;
|
|
865
|
+
const m = Math.floor(h / 60);
|
|
866
|
+
return m < 24 ? `${m}h ago` : `${Math.floor(m / 24)}d ago`;
|
|
867
|
+
}
|
|
868
|
+
var p = Mt(), w = e.child(p), v = e.sibling(e.child(w), 2), P = e.child(v, !0);
|
|
869
|
+
e.reset(v), e.reset(w);
|
|
870
|
+
var R = e.sibling(w, 2), M = e.sibling(e.child(R), 2);
|
|
871
|
+
e.remove_input_defaults(M), e.reset(R);
|
|
872
|
+
var C = e.sibling(R, 2), U = e.child(C);
|
|
873
|
+
{
|
|
874
|
+
var I = (g) => {
|
|
875
|
+
var d = wt(), L = e.child(d, !0);
|
|
876
|
+
e.reset(d), e.template_effect((h) => e.set_text(L, h), [
|
|
877
|
+
() => e.get(f).trim() ? "No memories match your search." : "No memories yet."
|
|
878
|
+
]), e.append(g, d);
|
|
879
|
+
}, b = (g) => {
|
|
880
|
+
var d = e.comment(), L = e.first_child(d);
|
|
881
|
+
e.each(L, 17, () => e.get(l), (h) => h.id, (h, m) => {
|
|
882
|
+
var i = Tt(), _ = e.child(i), k = e.child(_), G = e.child(k, !0);
|
|
883
|
+
e.reset(k);
|
|
884
|
+
var o = e.sibling(k, 2), E = e.child(o, !0);
|
|
885
|
+
e.reset(o), e.reset(_);
|
|
886
|
+
var K = e.sibling(_, 2), j = e.child(K, !0);
|
|
887
|
+
e.reset(K), e.reset(i), e.template_effect(
|
|
888
|
+
(Y) => {
|
|
889
|
+
e.set_class(k, 1, `memory-sidebar__badge memory-sidebar__badge--${e.get(m).category ?? ""}`, "svelte-1kg6yxg"), e.set_text(G, x[e.get(m).category]), e.set_text(E, Y), e.set_text(j, e.get(m).content);
|
|
890
|
+
},
|
|
891
|
+
[() => y(e.get(m).timestamp)]
|
|
892
|
+
), e.append(h, i);
|
|
893
|
+
}), e.append(g, d);
|
|
894
|
+
};
|
|
895
|
+
e.if(U, (g) => {
|
|
896
|
+
e.get(l).length === 0 ? g(I) : g(b, !1);
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
e.reset(C), e.reset(p), e.template_effect(() => {
|
|
900
|
+
e.set_class(p, 1, `memory-sidebar ${S() ?? ""}`, "svelte-1kg6yxg"), e.set_text(P, e.get(l).length);
|
|
901
|
+
}), e.bind_value(M, () => e.get(f), (g) => e.set(f, g)), e.append(H, p), e.pop();
|
|
902
|
+
}
|
|
903
|
+
var zt = e.from_html('<option class="svelte-1igku3k"> </option>'), Pt = e.from_html('<label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">Channel ID</span> <input class="settings-panel__input svelte-1igku3k" type="text" placeholder="Channel / room ID" autocomplete="off" spellcheck="false"/></label>'), Ct = e.from_html('<label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">Bot Token</span> <input class="settings-panel__input svelte-1igku3k" type="password" placeholder="Token…" autocomplete="off"/></label> <!>', 1), Nt = e.from_html('<section aria-label="Agent settings"><div class="settings-panel__section svelte-1igku3k"><h3 class="settings-panel__section-title svelte-1igku3k">Model</h3> <label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">Provider URL</span> <input class="settings-panel__input svelte-1igku3k" type="url" placeholder="http://localhost:11434" autocomplete="off" spellcheck="false"/></label> <label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">API Key</span> <div class="settings-panel__input-row svelte-1igku3k"><input class="settings-panel__input svelte-1igku3k" placeholder="sk-…" autocomplete="off"/> <button class="settings-panel__toggle-btn svelte-1igku3k" type="button"> </button></div></label> <label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">Model Name</span> <input class="settings-panel__input svelte-1igku3k" type="text" placeholder="llama3.2" autocomplete="off" spellcheck="false"/></label></div> <div class="settings-panel__section svelte-1igku3k"><h3 class="settings-panel__section-title svelte-1igku3k">Channel</h3> <label class="settings-panel__field svelte-1igku3k"><span class="settings-panel__label svelte-1igku3k">Type</span> <select class="settings-panel__select svelte-1igku3k"></select></label> <!></div> <div class="settings-panel__actions svelte-1igku3k"><button class="settings-panel__btn settings-panel__btn--ghost svelte-1igku3k" type="button">Reset</button> <button class="settings-panel__btn settings-panel__btn--solid svelte-1igku3k" type="button">Save Settings</button></div></section>');
|
|
904
|
+
function ra(H, t) {
|
|
905
|
+
e.push(t, !0);
|
|
906
|
+
const S = { providerUrl: "", apiKey: "", modelName: "" }, f = { type: "none", token: "", channelId: "" };
|
|
907
|
+
let l = e.prop(t, "class", 3, ""), x = e.state(e.proxy(ge(() => {
|
|
908
|
+
var r;
|
|
909
|
+
return ((r = t.settings) == null ? void 0 : r.model.providerUrl) ?? "";
|
|
910
|
+
}))), y = e.state(e.proxy(ge(() => {
|
|
911
|
+
var r;
|
|
912
|
+
return ((r = t.settings) == null ? void 0 : r.model.apiKey) ?? "";
|
|
913
|
+
}))), p = e.state(e.proxy(ge(() => {
|
|
914
|
+
var r;
|
|
915
|
+
return ((r = t.settings) == null ? void 0 : r.model.modelName) ?? "";
|
|
916
|
+
}))), w = e.state(e.proxy(ge(() => {
|
|
917
|
+
var r;
|
|
918
|
+
return ((r = t.settings) == null ? void 0 : r.channel.type) ?? "none";
|
|
919
|
+
}))), v = e.state(e.proxy(ge(() => {
|
|
920
|
+
var r;
|
|
921
|
+
return ((r = t.settings) == null ? void 0 : r.channel.token) ?? "";
|
|
922
|
+
}))), P = e.state(e.proxy(ge(() => {
|
|
923
|
+
var r;
|
|
924
|
+
return ((r = t.settings) == null ? void 0 : r.channel.channelId) ?? "";
|
|
925
|
+
}))), R = e.state(!1);
|
|
926
|
+
const M = [
|
|
927
|
+
{ value: "none", label: "None" },
|
|
928
|
+
{ value: "discord", label: "Discord" },
|
|
929
|
+
{ value: "telegram", label: "Telegram" },
|
|
930
|
+
{ value: "slack", label: "Slack" },
|
|
931
|
+
{ value: "matrix", label: "Matrix" }
|
|
932
|
+
], C = e.derived(() => e.get(w) === "discord" || e.get(w) === "slack" || e.get(w) === "matrix");
|
|
933
|
+
function U() {
|
|
934
|
+
var r;
|
|
935
|
+
(r = t.onsave) == null || r.call(t, {
|
|
936
|
+
model: {
|
|
937
|
+
providerUrl: e.get(x),
|
|
938
|
+
apiKey: e.get(y),
|
|
939
|
+
modelName: e.get(p)
|
|
940
|
+
},
|
|
941
|
+
channel: {
|
|
942
|
+
type: e.get(w),
|
|
943
|
+
token: e.get(v),
|
|
944
|
+
channelId: e.get(P)
|
|
945
|
+
}
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
function I() {
|
|
949
|
+
const r = t.settings ?? { model: S, channel: f };
|
|
950
|
+
e.set(x, r.model.providerUrl, !0), e.set(y, r.model.apiKey, !0), e.set(p, r.model.modelName, !0), e.set(w, r.channel.type, !0), e.set(v, r.channel.token, !0), e.set(P, r.channel.channelId, !0);
|
|
951
|
+
}
|
|
952
|
+
var b = Nt(), g = e.child(b), d = e.sibling(e.child(g), 2), L = e.sibling(e.child(d), 2);
|
|
953
|
+
e.remove_input_defaults(L), e.reset(d);
|
|
954
|
+
var h = e.sibling(d, 2), m = e.sibling(e.child(h), 2), i = e.child(m);
|
|
955
|
+
e.remove_input_defaults(i);
|
|
956
|
+
var _ = e.sibling(i, 2), k = e.child(_, !0);
|
|
957
|
+
e.reset(_), e.reset(m), e.reset(h);
|
|
958
|
+
var G = e.sibling(h, 2), o = e.sibling(e.child(G), 2);
|
|
959
|
+
e.remove_input_defaults(o), e.reset(G), e.reset(g);
|
|
960
|
+
var E = e.sibling(g, 2), K = e.sibling(e.child(E), 2), j = e.sibling(e.child(K), 2);
|
|
961
|
+
e.each(j, 21, () => M, e.index, (r, q) => {
|
|
962
|
+
var c = zt(), z = e.child(c, !0);
|
|
963
|
+
e.reset(c);
|
|
964
|
+
var B = {};
|
|
965
|
+
e.template_effect(() => {
|
|
966
|
+
e.set_text(z, e.get(q).label), B !== (B = e.get(q).value) && (c.value = (c.__value = e.get(q).value) ?? "");
|
|
967
|
+
}), e.append(r, c);
|
|
968
|
+
}), e.reset(j), e.reset(K);
|
|
969
|
+
var Y = e.sibling(K, 2);
|
|
970
|
+
{
|
|
971
|
+
var X = (r) => {
|
|
972
|
+
var q = Ct(), c = e.first_child(q), z = e.sibling(e.child(c), 2);
|
|
973
|
+
e.remove_input_defaults(z), e.reset(c);
|
|
974
|
+
var B = e.sibling(c, 2);
|
|
975
|
+
{
|
|
976
|
+
var a = (s) => {
|
|
977
|
+
var n = Pt(), u = e.sibling(e.child(n), 2);
|
|
978
|
+
e.remove_input_defaults(u), e.reset(n), e.bind_value(u, () => e.get(P), (T) => e.set(P, T)), e.append(s, n);
|
|
979
|
+
};
|
|
980
|
+
e.if(B, (s) => {
|
|
981
|
+
e.get(C) && s(a);
|
|
982
|
+
});
|
|
983
|
+
}
|
|
984
|
+
e.bind_value(z, () => e.get(v), (s) => e.set(v, s)), e.append(r, q);
|
|
985
|
+
};
|
|
986
|
+
e.if(Y, (r) => {
|
|
987
|
+
e.get(w) !== "none" && r(X);
|
|
988
|
+
});
|
|
989
|
+
}
|
|
990
|
+
e.reset(E);
|
|
991
|
+
var D = e.sibling(E, 2), N = e.child(D), V = e.sibling(N, 2);
|
|
992
|
+
e.reset(D), e.reset(b), e.template_effect(() => {
|
|
993
|
+
e.set_class(b, 1, `settings-panel ${l() ?? ""}`, "svelte-1igku3k"), e.set_attribute(i, "type", e.get(R) ? "text" : "password"), e.set_attribute(_, "aria-label", e.get(R) ? "Hide API key" : "Show API key"), e.set_text(k, e.get(R) ? "🙈" : "👁");
|
|
994
|
+
}), e.bind_value(L, () => e.get(x), (r) => e.set(x, r)), e.bind_value(i, () => e.get(y), (r) => e.set(y, r)), e.delegated("click", _, () => e.set(R, !e.get(R))), e.bind_value(o, () => e.get(p), (r) => e.set(p, r)), e.bind_select_value(j, () => e.get(w), (r) => e.set(w, r)), e.delegated("click", N, I), e.delegated("click", V, U), e.append(H, b), e.pop();
|
|
995
|
+
}
|
|
996
|
+
e.delegate(["click"]);
|
|
997
|
+
var Dt = e.from_html('<p class="proc-editor__empty svelte-nac98f">No procedures yet. Click "+ Add" to create one.</p>'), Et = e.from_html('<input class="proc-editor__name-input svelte-nac98f" type="text" aria-label="Procedure name"/>'), At = e.from_html('<span class="proc-editor__name svelte-nac98f"> </span>'), It = e.from_html('<span class="proc-editor__desc svelte-nac98f"> </span>'), Lt = e.from_html('<div class="proc-editor__item-fields svelte-nac98f"><label class="proc-editor__field svelte-nac98f"><span class="proc-editor__field-label svelte-nac98f">Event Type</span> <input class="proc-editor__field-input svelte-nac98f" type="text" placeholder="message" aria-label="Event type"/></label> <label class="proc-editor__field svelte-nac98f"><span class="proc-editor__field-label svelte-nac98f">Priority</span> <input class="proc-editor__field-input proc-editor__field-input--narrow svelte-nac98f" type="number" min="0" max="999" aria-label="Priority"/></label></div>'), St = e.from_html('<div class="proc-editor__item-meta svelte-nac98f"><span class="proc-editor__chip svelte-nac98f"> </span> <span class="proc-editor__chip svelte-nac98f"> </span></div>'), Ut = e.from_html('<div role="listitem"><div class="proc-editor__item-main svelte-nac98f"><!> <div class="proc-editor__item-info svelte-nac98f"><!> <!></div> <div class="proc-editor__item-actions svelte-nac98f"><button class="proc-editor__icon-btn svelte-nac98f" type="button" aria-label="Edit procedure" title="Edit">✏️</button> <button class="proc-editor__icon-btn proc-editor__icon-btn--danger svelte-nac98f" type="button" aria-label="Delete procedure" title="Delete">🗑</button></div></div> <!></div>'), Bt = e.from_html('<div aria-label="Procedure editor"><div class="proc-editor__header svelte-nac98f"><h3 class="proc-editor__title svelte-nac98f">Procedures</h3> <button class="proc-editor__add-btn svelte-nac98f" type="button" aria-label="Add procedure">+ Add</button></div> <div class="proc-editor__list svelte-nac98f" role="list"><!></div></div>');
|
|
998
|
+
function da(H, t) {
|
|
999
|
+
e.push(t, !0);
|
|
1000
|
+
let S = e.prop(t, "procedures", 27, () => e.proxy([])), f = e.prop(t, "class", 3, ""), l = e.state(e.proxy(S().map((h) => ({ ...h })))), x = e.state(null);
|
|
1001
|
+
function y() {
|
|
1002
|
+
var h;
|
|
1003
|
+
(h = t.onchange) == null || h.call(t, e.get(l).map((m) => ({ ...m })));
|
|
1004
|
+
}
|
|
1005
|
+
function p(h, m) {
|
|
1006
|
+
e.set(l, e.get(l).map((i) => i.id === h ? { ...i, enabled: m } : i), !0), y();
|
|
1007
|
+
}
|
|
1008
|
+
function w(h, m) {
|
|
1009
|
+
e.set(l, e.get(l).map((i) => i.id === h ? { ...i, eventType: m } : i), !0);
|
|
1010
|
+
}
|
|
1011
|
+
function v(h, m) {
|
|
1012
|
+
const i = parseInt(m, 10);
|
|
1013
|
+
isNaN(i) || e.set(l, e.get(l).map((_) => _.id === h ? { ..._, priority: i } : _), !0);
|
|
1014
|
+
}
|
|
1015
|
+
function P(h) {
|
|
1016
|
+
e.set(x, null), y();
|
|
1017
|
+
}
|
|
1018
|
+
function R(h) {
|
|
1019
|
+
e.set(l, e.get(l).filter((m) => m.id !== h), !0), e.get(x) === h && e.set(x, null), y();
|
|
1020
|
+
}
|
|
1021
|
+
function M() {
|
|
1022
|
+
const h = typeof crypto < "u" && typeof crypto.randomUUID == "function" ? `proc-${crypto.randomUUID()}` : `proc-${Date.now()}-${Math.random().toString(36).slice(2)}`, m = {
|
|
1023
|
+
id: h,
|
|
1024
|
+
name: "New Procedure",
|
|
1025
|
+
enabled: !0,
|
|
1026
|
+
eventType: "message",
|
|
1027
|
+
priority: 0
|
|
1028
|
+
};
|
|
1029
|
+
e.set(l, [...e.get(l), m], !0), e.set(x, h, !0), y();
|
|
1030
|
+
}
|
|
1031
|
+
var C = Bt(), U = e.child(C), I = e.sibling(e.child(U), 2);
|
|
1032
|
+
e.reset(U);
|
|
1033
|
+
var b = e.sibling(U, 2), g = e.child(b);
|
|
1034
|
+
{
|
|
1035
|
+
var d = (h) => {
|
|
1036
|
+
var m = Dt();
|
|
1037
|
+
e.append(h, m);
|
|
1038
|
+
}, L = (h) => {
|
|
1039
|
+
var m = e.comment(), i = e.first_child(m);
|
|
1040
|
+
e.each(i, 17, () => e.get(l), (_) => _.id, (_, k) => {
|
|
1041
|
+
var G = Ut();
|
|
1042
|
+
let o;
|
|
1043
|
+
var E = e.child(G), K = e.child(E);
|
|
1044
|
+
Ge(K, {
|
|
1045
|
+
get checked() {
|
|
1046
|
+
return e.get(k).enabled;
|
|
1047
|
+
},
|
|
1048
|
+
onchange: (s) => p(e.get(k).id, s)
|
|
1049
|
+
});
|
|
1050
|
+
var j = e.sibling(K, 2), Y = e.child(j);
|
|
1051
|
+
{
|
|
1052
|
+
var X = (s) => {
|
|
1053
|
+
var n = Et();
|
|
1054
|
+
e.remove_input_defaults(n), e.template_effect(() => e.set_value(n, e.get(k).name)), e.delegated("input", n, (u) => {
|
|
1055
|
+
const T = u.target.value;
|
|
1056
|
+
e.set(l, e.get(l).map((O) => O.id === e.get(k).id ? { ...O, name: T } : O), !0);
|
|
1057
|
+
}), e.event("blur", n, () => P(e.get(k).id)), e.delegated("keydown", n, (u) => u.key === "Enter" && P(e.get(k).id)), e.append(s, n);
|
|
1058
|
+
}, D = (s) => {
|
|
1059
|
+
var n = At(), u = e.child(n, !0);
|
|
1060
|
+
e.reset(n), e.template_effect(() => e.set_text(u, e.get(k).name)), e.append(s, n);
|
|
1061
|
+
};
|
|
1062
|
+
e.if(Y, (s) => {
|
|
1063
|
+
e.get(x) === e.get(k).id ? s(X) : s(D, !1);
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
var N = e.sibling(Y, 2);
|
|
1067
|
+
{
|
|
1068
|
+
var V = (s) => {
|
|
1069
|
+
var n = It(), u = e.child(n, !0);
|
|
1070
|
+
e.reset(n), e.template_effect(() => e.set_text(u, e.get(k).description)), e.append(s, n);
|
|
1071
|
+
};
|
|
1072
|
+
e.if(N, (s) => {
|
|
1073
|
+
e.get(k).description && s(V);
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
e.reset(j);
|
|
1077
|
+
var r = e.sibling(j, 2), q = e.child(r), c = e.sibling(q, 2);
|
|
1078
|
+
e.reset(r), e.reset(E);
|
|
1079
|
+
var z = e.sibling(E, 2);
|
|
1080
|
+
{
|
|
1081
|
+
var B = (s) => {
|
|
1082
|
+
var n = Lt(), u = e.child(n), T = e.sibling(e.child(u), 2);
|
|
1083
|
+
e.remove_input_defaults(T), e.reset(u);
|
|
1084
|
+
var O = e.sibling(u, 2), A = e.sibling(e.child(O), 2);
|
|
1085
|
+
e.remove_input_defaults(A), e.reset(O), e.reset(n), e.template_effect(() => {
|
|
1086
|
+
e.set_value(T, e.get(k).eventType), e.set_value(A, e.get(k).priority);
|
|
1087
|
+
}), e.delegated("input", T, (F) => w(e.get(k).id, F.target.value)), e.delegated("input", A, (F) => v(e.get(k).id, F.target.value)), e.append(s, n);
|
|
1088
|
+
}, a = (s) => {
|
|
1089
|
+
var n = St(), u = e.child(n), T = e.child(u);
|
|
1090
|
+
e.reset(u);
|
|
1091
|
+
var O = e.sibling(u, 2), A = e.child(O);
|
|
1092
|
+
e.reset(O), e.reset(n), e.template_effect(() => {
|
|
1093
|
+
e.set_text(T, `⚡ ${e.get(k).eventType ?? ""}`), e.set_text(A, `↑ ${e.get(k).priority ?? ""}`);
|
|
1094
|
+
}), e.append(s, n);
|
|
1095
|
+
};
|
|
1096
|
+
e.if(z, (s) => {
|
|
1097
|
+
e.get(x) === e.get(k).id ? s(B) : s(a, !1);
|
|
1098
|
+
});
|
|
1099
|
+
}
|
|
1100
|
+
e.reset(G), e.template_effect(() => o = e.set_class(G, 1, "proc-editor__item svelte-nac98f", null, o, { "proc-editor__item--disabled": !e.get(k).enabled })), e.delegated("click", q, () => e.set(x, e.get(x) === e.get(k).id ? null : e.get(k).id, !0)), e.delegated("click", c, () => R(e.get(k).id)), e.append(_, G);
|
|
1101
|
+
}), e.append(h, m);
|
|
1102
|
+
};
|
|
1103
|
+
e.if(g, (h) => {
|
|
1104
|
+
e.get(l).length === 0 ? h(d) : h(L, !1);
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
e.reset(b), e.reset(C), e.template_effect(() => e.set_class(C, 1, `proc-editor ${f() ?? ""}`, "svelte-nac98f")), e.delegated("click", I, M), e.append(H, C), e.pop();
|
|
1108
|
+
}
|
|
1109
|
+
e.delegate(["click", "input", "keydown"]);
|
|
1110
|
+
var Ft = e.from_svg('<svg viewBox="0 0 12 12" fill="none" aria-hidden="true" width="12" height="12"><path d="M2 6l3 3 5-5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg>'), Ht = e.from_html('<div class="wizard__step-connector svelte-nud89b" aria-hidden="true"><div class="wizard__step-connector-fill svelte-nud89b"></div></div>'), Rt = e.from_html('<div role="listitem"><div class="wizard__step-dot svelte-nud89b"><!></div> <span class="wizard__step-label svelte-nud89b"> </span></div> <!>', 1), Kt = e.from_html('<div class="wizard__step-content svelte-nud89b"><h2 class="wizard__step-heading svelte-nud89b">Name your agent</h2> <p class="wizard__step-desc svelte-nud89b">Give your agent a unique name. You can change this later in settings.</p> <label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">Agent Name</span> <input class="wizard__input svelte-nud89b" type="text" placeholder="e.g. praxis" aria-label="Agent name"/></label></div>'), Ot = e.from_html('<div class="wizard__step-content svelte-nud89b"><h2 class="wizard__step-heading svelte-nud89b">Pick a model</h2> <p class="wizard__step-desc svelte-nud89b">Connect to an LLM provider. Ollama running locally is a great start.</p> <label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">Provider URL</span> <input class="wizard__input svelte-nud89b" type="url" placeholder="http://localhost:11434" aria-label="Provider URL"/></label> <label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">API Key <span class="wizard__optional svelte-nud89b">(optional)</span></span> <div class="wizard__input-row svelte-nud89b"><input class="wizard__input svelte-nud89b" placeholder="sk-…" autocomplete="off" aria-label="API key"/> <button class="wizard__toggle-btn svelte-nud89b" type="button"> </button></div></label> <label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">Model Name</span> <input class="wizard__input svelte-nud89b" type="text" placeholder="llama3.2" aria-label="Model name"/></label></div>'), qt = e.from_html('<option class="svelte-nud89b"> </option>'), Vt = e.from_html('<label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">Bot Token</span> <input class="wizard__input svelte-nud89b" type="password" placeholder="Token…" autocomplete="off" aria-label="Bot token"/></label>'), jt = e.from_html('<div class="wizard__step-content svelte-nud89b"><h2 class="wizard__step-heading svelte-nud89b">Connect a channel</h2> <p class="wizard__step-desc svelte-nud89b">Give your agent a place to talk. You can skip this and add channels later.</p> <label class="wizard__field svelte-nud89b"><span class="wizard__field-label svelte-nud89b">Channel Type</span> <select class="wizard__select svelte-nud89b" aria-label="Channel type"></select></label> <!></div>'), Gt = e.from_html(`<div class="wizard__step-content wizard__step-content--done svelte-nud89b"><div class="wizard__done-icon svelte-nud89b" aria-hidden="true">🎉</div> <h2 class="wizard__step-heading svelte-nud89b">You're all set!</h2> <p class="wizard__step-desc svelte-nud89b"><strong> </strong> is ready. You can adjust model and channel settings
|
|
1111
|
+
at any time from the settings panel.</p> <dl class="wizard__summary svelte-nud89b"><dt class="svelte-nud89b">Agent</dt> <dd class="svelte-nud89b"> </dd> <dt class="svelte-nud89b">Model</dt> <dd class="svelte-nud89b"> </dd> <dt class="svelte-nud89b">Channel</dt><dd class="svelte-nud89b"> </dd></dl></div>`), Yt = e.from_html('<button class="wizard__btn wizard__btn--ghost svelte-nud89b" type="button">← Back</button>'), Jt = e.from_html("<div></div>"), Wt = e.from_html('<button class="wizard__btn wizard__btn--solid svelte-nud89b" type="button"> </button>'), Qt = e.from_html('<div aria-label="First run setup wizard"><div class="wizard__steps svelte-nud89b" role="list"></div> <div class="wizard__body svelte-nud89b"><!></div> <div class="wizard__nav svelte-nud89b"><!> <!></div></div>');
|
|
1112
|
+
function oa(H, t) {
|
|
1113
|
+
e.push(t, !0);
|
|
1114
|
+
let S = e.prop(t, "class", 3, ""), f = e.state("name"), l = e.state(""), x = e.state(""), y = e.state(""), p = e.state(""), w = e.state("none"), v = e.state("");
|
|
1115
|
+
const P = ["name", "model", "channel", "done"], R = {
|
|
1116
|
+
name: "Name Agent",
|
|
1117
|
+
model: "Pick Model",
|
|
1118
|
+
channel: "Connect Channel",
|
|
1119
|
+
done: "Done"
|
|
1120
|
+
}, M = e.derived(() => P.indexOf(e.get(f)));
|
|
1121
|
+
e.derived(() => e.get(M) / (P.length - 1) * 100);
|
|
1122
|
+
const C = e.derived(() => () => {
|
|
1123
|
+
switch (e.get(f)) {
|
|
1124
|
+
case "name":
|
|
1125
|
+
return e.get(l).trim().length > 0;
|
|
1126
|
+
case "model":
|
|
1127
|
+
return e.get(p).trim().length > 0;
|
|
1128
|
+
case "channel":
|
|
1129
|
+
return !0;
|
|
1130
|
+
case // channel is optional
|
|
1131
|
+
"done":
|
|
1132
|
+
return !1;
|
|
1133
|
+
}
|
|
1134
|
+
});
|
|
1135
|
+
function U() {
|
|
1136
|
+
var N;
|
|
1137
|
+
const D = P.indexOf(e.get(f));
|
|
1138
|
+
D < P.length - 1 && e.set(f, P[D + 1], !0), e.get(f) === "done" && ((N = t.oncomplete) == null || N.call(t, {
|
|
1139
|
+
agentName: e.get(l),
|
|
1140
|
+
providerUrl: e.get(x),
|
|
1141
|
+
apiKey: e.get(y),
|
|
1142
|
+
modelName: e.get(p),
|
|
1143
|
+
channelType: e.get(w),
|
|
1144
|
+
channelToken: e.get(v)
|
|
1145
|
+
}));
|
|
1146
|
+
}
|
|
1147
|
+
function I() {
|
|
1148
|
+
const D = P.indexOf(e.get(f));
|
|
1149
|
+
D > 0 && e.set(f, P[D - 1], !0);
|
|
1150
|
+
}
|
|
1151
|
+
const b = [
|
|
1152
|
+
{ value: "none", label: "None" },
|
|
1153
|
+
{ value: "discord", label: "Discord" },
|
|
1154
|
+
{ value: "telegram", label: "Telegram" },
|
|
1155
|
+
{ value: "slack", label: "Slack" },
|
|
1156
|
+
{ value: "matrix", label: "Matrix" }
|
|
1157
|
+
];
|
|
1158
|
+
let g = e.state(!1);
|
|
1159
|
+
var d = Qt(), L = e.child(d);
|
|
1160
|
+
e.each(L, 21, () => P, e.index, (D, N, V) => {
|
|
1161
|
+
var r = Rt(), q = e.first_child(r);
|
|
1162
|
+
let c;
|
|
1163
|
+
var z = e.child(q), B = e.child(z);
|
|
1164
|
+
{
|
|
1165
|
+
var a = (A) => {
|
|
1166
|
+
var F = Ft();
|
|
1167
|
+
e.append(A, F);
|
|
1168
|
+
}, s = (A) => {
|
|
1169
|
+
var F = e.text();
|
|
1170
|
+
F.nodeValue = V + 1, e.append(A, F);
|
|
1171
|
+
};
|
|
1172
|
+
e.if(B, (A) => {
|
|
1173
|
+
V < e.get(M) ? A(a) : A(s, !1);
|
|
1174
|
+
});
|
|
1175
|
+
}
|
|
1176
|
+
e.reset(z);
|
|
1177
|
+
var n = e.sibling(z, 2), u = e.child(n, !0);
|
|
1178
|
+
e.reset(n), e.reset(q);
|
|
1179
|
+
var T = e.sibling(q, 2);
|
|
1180
|
+
{
|
|
1181
|
+
var O = (A) => {
|
|
1182
|
+
var F = Ht(), J = e.child(F);
|
|
1183
|
+
let W;
|
|
1184
|
+
e.reset(F), e.template_effect(() => W = e.set_style(J, "", W, { width: V < e.get(M) ? "100%" : "0%" })), e.append(A, F);
|
|
1185
|
+
};
|
|
1186
|
+
e.if(T, (A) => {
|
|
1187
|
+
V < P.length - 1 && A(O);
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1190
|
+
e.template_effect(() => {
|
|
1191
|
+
c = e.set_class(q, 1, "wizard__step svelte-nud89b", null, c, {
|
|
1192
|
+
"wizard__step--active": e.get(N) === e.get(f),
|
|
1193
|
+
"wizard__step--done": V < e.get(M)
|
|
1194
|
+
}), e.set_attribute(q, "aria-current", e.get(N) === e.get(f) ? "step" : void 0), e.set_text(u, R[e.get(N)]);
|
|
1195
|
+
}), e.append(D, r);
|
|
1196
|
+
}), e.reset(L);
|
|
1197
|
+
var h = e.sibling(L, 2), m = e.child(h);
|
|
1198
|
+
{
|
|
1199
|
+
var i = (D) => {
|
|
1200
|
+
var N = Kt(), V = e.sibling(e.child(N), 4), r = e.sibling(e.child(V), 2);
|
|
1201
|
+
e.remove_input_defaults(r), e.reset(V), e.reset(N), e.delegated("keydown", r, (q) => q.key === "Enter" && e.get(C)() && U()), e.bind_value(r, () => e.get(l), (q) => e.set(l, q)), e.append(D, N);
|
|
1202
|
+
}, _ = (D) => {
|
|
1203
|
+
var N = Ot(), V = e.sibling(e.child(N), 4), r = e.sibling(e.child(V), 2);
|
|
1204
|
+
e.remove_input_defaults(r), e.reset(V);
|
|
1205
|
+
var q = e.sibling(V, 2), c = e.sibling(e.child(q), 2), z = e.child(c);
|
|
1206
|
+
e.remove_input_defaults(z);
|
|
1207
|
+
var B = e.sibling(z, 2), a = e.child(B, !0);
|
|
1208
|
+
e.reset(B), e.reset(c), e.reset(q);
|
|
1209
|
+
var s = e.sibling(q, 2), n = e.sibling(e.child(s), 2);
|
|
1210
|
+
e.remove_input_defaults(n), e.reset(s), e.reset(N), e.template_effect(() => {
|
|
1211
|
+
e.set_attribute(z, "type", e.get(g) ? "text" : "password"), e.set_attribute(B, "aria-label", e.get(g) ? "Hide API key" : "Show API key"), e.set_text(a, e.get(g) ? "🙈" : "👁");
|
|
1212
|
+
}), e.bind_value(r, () => e.get(x), (u) => e.set(x, u)), e.bind_value(z, () => e.get(y), (u) => e.set(y, u)), e.delegated("click", B, () => e.set(g, !e.get(g))), e.delegated("keydown", n, (u) => u.key === "Enter" && e.get(C)() && U()), e.bind_value(n, () => e.get(p), (u) => e.set(p, u)), e.append(D, N);
|
|
1213
|
+
}, k = (D) => {
|
|
1214
|
+
var N = jt(), V = e.sibling(e.child(N), 4), r = e.sibling(e.child(V), 2);
|
|
1215
|
+
e.each(r, 21, () => b, e.index, (z, B) => {
|
|
1216
|
+
var a = qt(), s = e.child(a, !0);
|
|
1217
|
+
e.reset(a);
|
|
1218
|
+
var n = {};
|
|
1219
|
+
e.template_effect(() => {
|
|
1220
|
+
e.set_text(s, e.get(B).label), n !== (n = e.get(B).value) && (a.value = (a.__value = e.get(B).value) ?? "");
|
|
1221
|
+
}), e.append(z, a);
|
|
1222
|
+
}), e.reset(r), e.reset(V);
|
|
1223
|
+
var q = e.sibling(V, 2);
|
|
1224
|
+
{
|
|
1225
|
+
var c = (z) => {
|
|
1226
|
+
var B = Vt(), a = e.sibling(e.child(B), 2);
|
|
1227
|
+
e.remove_input_defaults(a), e.reset(B), e.bind_value(a, () => e.get(v), (s) => e.set(v, s)), e.append(z, B);
|
|
1228
|
+
};
|
|
1229
|
+
e.if(q, (z) => {
|
|
1230
|
+
e.get(w) !== "none" && z(c);
|
|
1231
|
+
});
|
|
1232
|
+
}
|
|
1233
|
+
e.reset(N), e.bind_select_value(r, () => e.get(w), (z) => e.set(w, z)), e.append(D, N);
|
|
1234
|
+
}, G = (D) => {
|
|
1235
|
+
var N = Gt(), V = e.sibling(e.child(N), 4), r = e.child(V), q = e.child(r, !0);
|
|
1236
|
+
e.reset(r), e.next(), e.reset(V);
|
|
1237
|
+
var c = e.sibling(V, 2), z = e.sibling(e.child(c), 2), B = e.child(z, !0);
|
|
1238
|
+
e.reset(z);
|
|
1239
|
+
var a = e.sibling(z, 4), s = e.child(a, !0);
|
|
1240
|
+
e.reset(a);
|
|
1241
|
+
var n = e.sibling(a, 3), u = e.child(n, !0);
|
|
1242
|
+
e.reset(n), e.reset(c), e.reset(N), e.template_effect(() => {
|
|
1243
|
+
e.set_text(q, e.get(l)), e.set_text(B, e.get(l)), e.set_text(s, e.get(p) || "—"), e.set_text(u, e.get(w) === "none" ? "None" : e.get(w));
|
|
1244
|
+
}), e.append(D, N);
|
|
1245
|
+
};
|
|
1246
|
+
e.if(m, (D) => {
|
|
1247
|
+
e.get(f) === "name" ? D(i) : e.get(f) === "model" ? D(_, 1) : e.get(f) === "channel" ? D(k, 2) : e.get(f) === "done" && D(G, 3);
|
|
1248
|
+
});
|
|
1249
|
+
}
|
|
1250
|
+
e.reset(h);
|
|
1251
|
+
var o = e.sibling(h, 2), E = e.child(o);
|
|
1252
|
+
{
|
|
1253
|
+
var K = (D) => {
|
|
1254
|
+
var N = Yt();
|
|
1255
|
+
e.template_effect(() => N.disabled = e.get(f) === "done"), e.delegated("click", N, I), e.append(D, N);
|
|
1256
|
+
}, j = (D) => {
|
|
1257
|
+
var N = Jt();
|
|
1258
|
+
e.append(D, N);
|
|
1259
|
+
};
|
|
1260
|
+
e.if(E, (D) => {
|
|
1261
|
+
e.get(f) !== "name" ? D(K) : D(j, !1);
|
|
1262
|
+
});
|
|
1263
|
+
}
|
|
1264
|
+
var Y = e.sibling(E, 2);
|
|
1265
|
+
{
|
|
1266
|
+
var X = (D) => {
|
|
1267
|
+
var N = Wt(), V = e.child(N, !0);
|
|
1268
|
+
e.reset(N), e.template_effect(
|
|
1269
|
+
(r) => {
|
|
1270
|
+
N.disabled = r, e.set_text(V, e.get(f) === "channel" && e.get(w) === "none" ? "Skip" : "Next →");
|
|
1271
|
+
},
|
|
1272
|
+
[() => !e.get(C)()]
|
|
1273
|
+
), e.delegated("click", N, U), e.append(D, N);
|
|
1274
|
+
};
|
|
1275
|
+
e.if(Y, (D) => {
|
|
1276
|
+
e.get(f) !== "done" && D(X);
|
|
1277
|
+
});
|
|
1278
|
+
}
|
|
1279
|
+
e.reset(o), e.reset(d), e.template_effect(() => e.set_class(d, 1, `wizard ${S() ?? ""}`, "svelte-nud89b")), e.append(H, d), e.pop();
|
|
1280
|
+
}
|
|
1281
|
+
e.delegate(["keydown", "click"]);
|
|
660
1282
|
export {
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
1283
|
+
$t as Button,
|
|
1284
|
+
ia as ChatInput,
|
|
1285
|
+
ta as ChatPane,
|
|
1286
|
+
la as ChatView,
|
|
1287
|
+
oa as FirstRunWizard,
|
|
1288
|
+
ea as GlassPanel,
|
|
1289
|
+
na as MemorySidebar,
|
|
1290
|
+
sa as NerdFont,
|
|
1291
|
+
da as ProcedureEditor,
|
|
1292
|
+
aa as SearchInput,
|
|
1293
|
+
ra as SettingsPanel,
|
|
1294
|
+
Ge as Toggle,
|
|
1295
|
+
Ke as provideTui,
|
|
1296
|
+
me as useTui
|
|
669
1297
|
};
|