@inkandswitch/patchwork-pkg-base 0.0.70 → 0.0.72

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 (28) hide show
  1. package/module-settings-url +1 -1
  2. package/modules.json +1 -0
  3. package/package.json +1 -1
  4. package/packages/llm-host/dist/LlmConfigTray-BPL_cmra.js +591 -0
  5. package/packages/llm-host/dist/client-VAkC0nI7.js +114 -0
  6. package/packages/llm-host/dist/index.js +39 -0
  7. package/packages/llm-host/dist/patchwork-llm-h1ZevlV6.js +83 -0
  8. package/packages/llm-host/dist/worker-spec-ceN4G8JW.js +187 -0
  9. package/packages/llm-host/package.json +34 -0
  10. package/packages/providers/dist/assets/WorkerProvider-CG700oWK.js +2 -0
  11. package/packages/providers/dist/assets/WorkerProvider-CG700oWK.js.map +1 -0
  12. package/packages/providers/dist/index.js +1 -1
  13. package/packages/providers/dist/index.js.map +1 -1
  14. package/packages/providers/package.json +5 -1
  15. package/packages/theming/dist/{active-theme-CZOUYQ4S.js → active-theme-ZEJCS5RM.js} +3 -3
  16. package/packages/theming/dist/{chunk-6PXH63WF.js → chunk-FLDRNDLY.js} +2 -2
  17. package/packages/theming/dist/{chunk-RATW7VZI.js → chunk-L7WQSSFT.js} +2 -2
  18. package/packages/theming/dist/{gloom-JYQPEOHI.css → gloom-UKANBN2Z.css} +1 -1
  19. package/packages/theming/dist/main.js +4 -4
  20. package/packages/theming/dist/{theme-titlebar-EKXBWQZO.js → theme-titlebar-HAEXLVMW.js} +3 -3
  21. package/packages/theming/dist/{theme-tray-JJFCEA26.js → theme-tray-XYB4LGZ6.js} +3 -3
  22. package/packages/theming/dist/tool.js +2 -2
  23. package/plugin-registry-url +1 -1
  24. /package/packages/theming/dist/{active-theme-CZOUYQ4S.js.map → active-theme-ZEJCS5RM.js.map} +0 -0
  25. /package/packages/theming/dist/{chunk-6PXH63WF.js.map → chunk-FLDRNDLY.js.map} +0 -0
  26. /package/packages/theming/dist/{chunk-RATW7VZI.js.map → chunk-L7WQSSFT.js.map} +0 -0
  27. /package/packages/theming/dist/{theme-titlebar-EKXBWQZO.js.map → theme-titlebar-HAEXLVMW.js.map} +0 -0
  28. /package/packages/theming/dist/{theme-tray-JJFCEA26.js.map → theme-tray-XYB4LGZ6.js.map} +0 -0
@@ -1 +1 @@
1
- automerge:g4tYPVHVnxhgPM2Qm1spxxDhQHc
1
+ automerge:2EBJ2HvXWEzkXaeAPdTSzUasgzVB
package/modules.json CHANGED
@@ -19,6 +19,7 @@
19
19
  "./packages/folder/",
20
20
  "./packages/history-view/",
21
21
  "./packages/isolation/",
22
+ "./packages/llm-host/",
22
23
  "./packages/packages/",
23
24
  "./packages/patternwitch/",
24
25
  "./packages/providers/",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkandswitch/patchwork-pkg-base",
3
- "version": "0.0.70",
3
+ "version": "0.0.72",
4
4
  "type": "module",
5
5
  "description": "Base packages for the Patchwork system",
6
6
  "repository": {
@@ -0,0 +1,591 @@
1
+ import { ensureConfig as ve, dom as be, writeScopeOverride as Ee, readScopedConfig as Se, readConfig as oe, writeConfig as xe } from "./patchwork-llm-h1ZevlV6.js";
2
+ const Ce = !1, Ae = (e, t) => e === t, L = {
3
+ equals: Ae
4
+ };
5
+ let fe = he;
6
+ const E = 1, O = 2, ce = {
7
+ owned: null,
8
+ cleanups: null,
9
+ context: null,
10
+ owner: null
11
+ };
12
+ var a = null;
13
+ let G = null, ke = null, u = null, g = null, b = null, V = 0;
14
+ function ue(e, t) {
15
+ const n = u, o = a, i = e.length === 0, r = t === void 0 ? o : t, l = i ? ce : {
16
+ owned: null,
17
+ cleanups: null,
18
+ context: r ? r.context : null,
19
+ owner: r
20
+ }, s = i ? e : () => e(() => x(() => T(l)));
21
+ a = l, u = null;
22
+ try {
23
+ return A(s, !0);
24
+ } finally {
25
+ u = n, a = o;
26
+ }
27
+ }
28
+ function k(e, t) {
29
+ t = t ? Object.assign({}, L, t) : L;
30
+ const n = {
31
+ value: e,
32
+ observers: null,
33
+ observerSlots: null,
34
+ comparator: t.equals || void 0
35
+ }, o = (i) => (typeof i == "function" && (i = i(n.value)), de(n, i));
36
+ return [ae.bind(n), o];
37
+ }
38
+ function _(e, t, n) {
39
+ const o = I(e, t, !1, E);
40
+ $(o);
41
+ }
42
+ function Te(e, t, n) {
43
+ fe = Oe;
44
+ const o = I(e, t, !1, E);
45
+ n || (o.user = !0), b ? b.push(o) : $(o);
46
+ }
47
+ function N(e, t, n) {
48
+ n = n ? Object.assign({}, L, n) : L;
49
+ const o = I(e, t, !0, 0);
50
+ return o.observers = null, o.observerSlots = null, o.comparator = n.equals || void 0, $(o), ae.bind(o);
51
+ }
52
+ function x(e) {
53
+ if (u === null) return e();
54
+ const t = u;
55
+ u = null;
56
+ try {
57
+ return e();
58
+ } finally {
59
+ u = t;
60
+ }
61
+ }
62
+ function se(e) {
63
+ return a === null || (a.cleanups === null ? a.cleanups = [e] : a.cleanups.push(e)), e;
64
+ }
65
+ function $e() {
66
+ return a;
67
+ }
68
+ function Pe(e, t) {
69
+ const n = a, o = u;
70
+ a = e, u = null;
71
+ try {
72
+ return A(t, !0);
73
+ } catch (i) {
74
+ q(i);
75
+ } finally {
76
+ a = n, u = o;
77
+ }
78
+ }
79
+ function ae() {
80
+ if (this.sources && this.state)
81
+ if (this.state === E) $(this);
82
+ else {
83
+ const e = g;
84
+ g = null, A(() => B(this), !1), g = e;
85
+ }
86
+ if (u) {
87
+ const e = this.observers;
88
+ if (!e || e[e.length - 1] !== u) {
89
+ const t = e ? e.length : 0;
90
+ u.sources ? (u.sources.push(this), u.sourceSlots.push(t)) : (u.sources = [this], u.sourceSlots = [t]), e ? (e.push(u), this.observerSlots.push(u.sources.length - 1)) : (this.observers = [u], this.observerSlots = [u.sources.length - 1]);
91
+ }
92
+ }
93
+ return this.value;
94
+ }
95
+ function de(e, t, n) {
96
+ let o = e.value;
97
+ return (!e.comparator || !e.comparator(o, t)) && (e.value = t, e.observers && e.observers.length && A(() => {
98
+ for (let i = 0; i < e.observers.length; i += 1) {
99
+ const r = e.observers[i], l = G && G.running;
100
+ l && G.disposed.has(r), (l ? !r.tState : !r.state) && (r.pure ? g.push(r) : b.push(r), r.observers && pe(r)), l || (r.state = E);
101
+ }
102
+ if (g.length > 1e6)
103
+ throw g = [], new Error();
104
+ }, !1)), t;
105
+ }
106
+ function $(e) {
107
+ if (!e.fn) return;
108
+ T(e);
109
+ const t = V;
110
+ Ne(e, e.value, t);
111
+ }
112
+ function Ne(e, t, n) {
113
+ let o;
114
+ const i = a, r = u;
115
+ u = a = e;
116
+ try {
117
+ o = e.fn(t);
118
+ } catch (l) {
119
+ return e.pure && (e.state = E, e.owned && e.owned.forEach(T), e.owned = null), e.updatedAt = n + 1, q(l);
120
+ } finally {
121
+ u = r, a = i;
122
+ }
123
+ (!e.updatedAt || e.updatedAt <= n) && (e.updatedAt != null && "observers" in e ? de(e, o) : e.value = o, e.updatedAt = n);
124
+ }
125
+ function I(e, t, n, o = E, i) {
126
+ const r = {
127
+ fn: e,
128
+ state: o,
129
+ updatedAt: null,
130
+ owned: null,
131
+ sources: null,
132
+ sourceSlots: null,
133
+ cleanups: null,
134
+ value: t,
135
+ owner: a,
136
+ context: a ? a.context : null,
137
+ pure: n
138
+ };
139
+ return a === null || a !== ce && (a.owned ? a.owned.push(r) : a.owned = [r]), r;
140
+ }
141
+ function M(e) {
142
+ if (e.state === 0) return;
143
+ if (e.state === O) return B(e);
144
+ if (e.suspense && x(e.suspense.inFallback)) return e.suspense.effects.push(e);
145
+ const t = [e];
146
+ for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < V); )
147
+ e.state && t.push(e);
148
+ for (let n = t.length - 1; n >= 0; n--)
149
+ if (e = t[n], e.state === E)
150
+ $(e);
151
+ else if (e.state === O) {
152
+ const o = g;
153
+ g = null, A(() => B(e, t[0]), !1), g = o;
154
+ }
155
+ }
156
+ function A(e, t) {
157
+ if (g) return e();
158
+ let n = !1;
159
+ t || (g = []), b ? n = !0 : b = [], V++;
160
+ try {
161
+ const o = e();
162
+ return Le(n), o;
163
+ } catch (o) {
164
+ n || (b = null), g = null, q(o);
165
+ }
166
+ }
167
+ function Le(e) {
168
+ if (g && (he(g), g = null), e) return;
169
+ const t = b;
170
+ b = null, t.length && A(() => fe(t), !1);
171
+ }
172
+ function he(e) {
173
+ for (let t = 0; t < e.length; t++) M(e[t]);
174
+ }
175
+ function Oe(e) {
176
+ let t, n = 0;
177
+ for (t = 0; t < e.length; t++) {
178
+ const o = e[t];
179
+ o.user ? e[n++] = o : M(o);
180
+ }
181
+ for (t = 0; t < n; t++) M(e[t]);
182
+ }
183
+ function B(e, t) {
184
+ e.state = 0;
185
+ for (let n = 0; n < e.sources.length; n += 1) {
186
+ const o = e.sources[n];
187
+ if (o.sources) {
188
+ const i = o.state;
189
+ i === E ? o !== t && (!o.updatedAt || o.updatedAt < V) && M(o) : i === O && B(o, t);
190
+ }
191
+ }
192
+ }
193
+ function pe(e) {
194
+ for (let t = 0; t < e.observers.length; t += 1) {
195
+ const n = e.observers[t];
196
+ n.state || (n.state = O, n.pure ? g.push(n) : b.push(n), n.observers && pe(n));
197
+ }
198
+ }
199
+ function T(e) {
200
+ let t;
201
+ if (e.sources)
202
+ for (; e.sources.length; ) {
203
+ const n = e.sources.pop(), o = e.sourceSlots.pop(), i = n.observers;
204
+ if (i && i.length) {
205
+ const r = i.pop(), l = n.observerSlots.pop();
206
+ o < i.length && (r.sourceSlots[l] = o, i[o] = r, n.observerSlots[o] = l);
207
+ }
208
+ }
209
+ if (e.tOwned) {
210
+ for (t = e.tOwned.length - 1; t >= 0; t--) T(e.tOwned[t]);
211
+ delete e.tOwned;
212
+ }
213
+ if (e.owned) {
214
+ for (t = e.owned.length - 1; t >= 0; t--) T(e.owned[t]);
215
+ e.owned = null;
216
+ }
217
+ if (e.cleanups) {
218
+ for (t = e.cleanups.length - 1; t >= 0; t--) e.cleanups[t]();
219
+ e.cleanups = null;
220
+ }
221
+ e.state = 0;
222
+ }
223
+ function _e(e) {
224
+ return e instanceof Error ? e : new Error(typeof e == "string" ? e : "Unknown error", {
225
+ cause: e
226
+ });
227
+ }
228
+ function q(e, t = a) {
229
+ throw _e(e);
230
+ }
231
+ function ie(e, t) {
232
+ return x(() => e(t || {}));
233
+ }
234
+ const Me = (e) => `Stale read from <${e}>.`;
235
+ function Be(e) {
236
+ const t = e.keyed, n = N(() => e.when, void 0, void 0), o = t ? n : N(n, void 0, {
237
+ equals: (i, r) => !i == !r
238
+ });
239
+ return N(() => {
240
+ const i = o();
241
+ if (i) {
242
+ const r = e.children;
243
+ return typeof r == "function" && r.length > 0 ? x(() => r(t ? i : () => {
244
+ if (!x(o)) throw Me("Show");
245
+ return n();
246
+ })) : r;
247
+ }
248
+ return e.fallback;
249
+ }, void 0, void 0);
250
+ }
251
+ function De(e, t, n) {
252
+ let o = n.length, i = t.length, r = o, l = 0, s = 0, f = t[i - 1].nextSibling, d = null;
253
+ for (; l < i || s < r; ) {
254
+ if (t[l] === n[s]) {
255
+ l++, s++;
256
+ continue;
257
+ }
258
+ for (; t[i - 1] === n[r - 1]; )
259
+ i--, r--;
260
+ if (i === l) {
261
+ const h = r < o ? s ? n[s - 1].nextSibling : n[r - s] : f;
262
+ for (; s < r; ) e.insertBefore(n[s++], h);
263
+ } else if (r === s)
264
+ for (; l < i; )
265
+ (!d || !d.has(t[l])) && t[l].remove(), l++;
266
+ else if (t[l] === n[r - 1] && n[s] === t[i - 1]) {
267
+ const h = t[--i].nextSibling;
268
+ e.insertBefore(n[s++], t[l++].nextSibling), e.insertBefore(n[--r], h), t[i] = n[r];
269
+ } else {
270
+ if (!d) {
271
+ d = /* @__PURE__ */ new Map();
272
+ let m = s;
273
+ for (; m < r; ) d.set(n[m], m++);
274
+ }
275
+ const h = d.get(t[l]);
276
+ if (h != null)
277
+ if (s < h && h < r) {
278
+ let m = l, y = 1, S;
279
+ for (; ++m < i && m < r && !((S = d.get(t[m])) == null || S !== h + y); )
280
+ y++;
281
+ if (y > h - s) {
282
+ const j = t[l];
283
+ for (; s < h; ) e.insertBefore(n[s++], j);
284
+ } else e.replaceChild(n[s++], t[l++]);
285
+ } else l++;
286
+ else t[l++].remove();
287
+ }
288
+ }
289
+ }
290
+ const re = "_$DX_DELEGATE";
291
+ function Ue(e, t, n, o = {}) {
292
+ let i;
293
+ return ue((r) => {
294
+ i = r, t === document ? e() : D(t, e(), t.firstChild ? null : void 0, n);
295
+ }, o.owner), () => {
296
+ i(), t.textContent = "";
297
+ };
298
+ }
299
+ function ge(e, t, n, o) {
300
+ let i;
301
+ const r = () => {
302
+ const s = o ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template");
303
+ return s.innerHTML = e, n ? s.content.firstChild.firstChild : o ? s.firstChild : s.content.firstChild;
304
+ }, l = t ? () => x(() => document.importNode(i || (i = r()), !0)) : () => (i || (i = r())).cloneNode(!0);
305
+ return l.cloneNode = l, l;
306
+ }
307
+ function Ve(e, t = window.document) {
308
+ const n = t[re] || (t[re] = /* @__PURE__ */ new Set());
309
+ for (let o = 0, i = e.length; o < i; o++) {
310
+ const r = e[o];
311
+ n.has(r) || (n.add(r), t.addEventListener(r, je));
312
+ }
313
+ }
314
+ function H(e, t, n) {
315
+ n != null ? e.style.setProperty(t, n) : e.style.removeProperty(t);
316
+ }
317
+ function R(e, t, n) {
318
+ return x(() => e(t, n));
319
+ }
320
+ function D(e, t, n, o) {
321
+ if (n !== void 0 && !o && (o = []), typeof t != "function") return U(e, t, o, n);
322
+ _((i) => U(e, t(), i, n), o);
323
+ }
324
+ function je(e) {
325
+ let t = e.target;
326
+ const n = `$$${e.type}`, o = e.target, i = e.currentTarget, r = (f) => Object.defineProperty(e, "target", {
327
+ configurable: !0,
328
+ value: f
329
+ }), l = () => {
330
+ const f = t[n];
331
+ if (f && !t.disabled) {
332
+ const d = t[`${n}Data`];
333
+ if (d !== void 0 ? f.call(t, d, e) : f.call(t, e), e.cancelBubble) return;
334
+ }
335
+ return t.host && typeof t.host != "string" && !t.host._$host && t.contains(e.target) && r(t.host), !0;
336
+ }, s = () => {
337
+ for (; l() && (t = t._$host || t.parentNode || t.host); ) ;
338
+ };
339
+ if (Object.defineProperty(e, "currentTarget", {
340
+ configurable: !0,
341
+ get() {
342
+ return t || document;
343
+ }
344
+ }), e.composedPath) {
345
+ const f = e.composedPath();
346
+ r(f[0]);
347
+ for (let d = 0; d < f.length - 2 && (t = f[d], !!l()); d++) {
348
+ if (t._$host) {
349
+ t = t._$host, s();
350
+ break;
351
+ }
352
+ if (t.parentNode === i)
353
+ break;
354
+ }
355
+ } else s();
356
+ r(o);
357
+ }
358
+ function U(e, t, n, o, i) {
359
+ for (; typeof n == "function"; ) n = n();
360
+ if (t === n) return n;
361
+ const r = typeof t, l = o !== void 0;
362
+ if (e = l && n[0] && n[0].parentNode || e, r === "string" || r === "number") {
363
+ if (r === "number" && (t = t.toString(), t === n))
364
+ return n;
365
+ if (l) {
366
+ let s = n[0];
367
+ s && s.nodeType === 3 ? s.data !== t && (s.data = t) : s = document.createTextNode(t), n = C(e, n, o, s);
368
+ } else
369
+ n !== "" && typeof n == "string" ? n = e.firstChild.data = t : n = e.textContent = t;
370
+ } else if (t == null || r === "boolean")
371
+ n = C(e, n, o);
372
+ else {
373
+ if (r === "function")
374
+ return _(() => {
375
+ let s = t();
376
+ for (; typeof s == "function"; ) s = s();
377
+ n = U(e, s, n, o);
378
+ }), () => n;
379
+ if (Array.isArray(t)) {
380
+ const s = [], f = n && Array.isArray(n);
381
+ if (F(s, t, n, i))
382
+ return _(() => n = U(e, s, n, o, !0)), () => n;
383
+ if (s.length === 0) {
384
+ if (n = C(e, n, o), l) return n;
385
+ } else f ? n.length === 0 ? le(e, s, o) : De(e, n, s) : (n && C(e), le(e, s));
386
+ n = s;
387
+ } else if (t.nodeType) {
388
+ if (Array.isArray(n)) {
389
+ if (l) return n = C(e, n, o, t);
390
+ C(e, n, null, t);
391
+ } else n == null || n === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild);
392
+ n = t;
393
+ }
394
+ }
395
+ return n;
396
+ }
397
+ function F(e, t, n, o) {
398
+ let i = !1;
399
+ for (let r = 0, l = t.length; r < l; r++) {
400
+ let s = t[r], f = n && n[e.length], d;
401
+ if (!(s == null || s === !0 || s === !1)) if ((d = typeof s) == "object" && s.nodeType)
402
+ e.push(s);
403
+ else if (Array.isArray(s))
404
+ i = F(e, s, f) || i;
405
+ else if (d === "function")
406
+ if (o) {
407
+ for (; typeof s == "function"; ) s = s();
408
+ i = F(e, Array.isArray(s) ? s : [s], Array.isArray(f) ? f : [f]) || i;
409
+ } else
410
+ e.push(s), i = !0;
411
+ else {
412
+ const h = String(s);
413
+ f && f.nodeType === 3 && f.data === h ? e.push(f) : e.push(document.createTextNode(h));
414
+ }
415
+ }
416
+ return i;
417
+ }
418
+ function le(e, t, n = null) {
419
+ for (let o = 0, i = t.length; o < i; o++) e.insertBefore(t[o], n);
420
+ }
421
+ function C(e, t, n, o) {
422
+ if (n === void 0) return e.textContent = "";
423
+ const i = o || document.createTextNode("");
424
+ if (t.length) {
425
+ let r = !1;
426
+ for (let l = t.length - 1; l >= 0; l--) {
427
+ const s = t[l];
428
+ if (i !== s) {
429
+ const f = s.parentNode === e;
430
+ !r && !l ? f ? e.replaceChild(i, s) : e.insertBefore(i, n) : f && s.remove();
431
+ } else r = !0;
432
+ }
433
+ } else e.insertBefore(i, n);
434
+ return [i];
435
+ }
436
+ const Ge = "http://www.w3.org/2000/svg";
437
+ function He(e, t = !1, n = void 0) {
438
+ return t ? document.createElementNS(Ge, e) : document.createElement(e, {
439
+ is: n
440
+ });
441
+ }
442
+ function Re(e) {
443
+ const {
444
+ useShadow: t
445
+ } = e, n = document.createTextNode(""), o = () => e.mount || document.body, i = $e();
446
+ let r;
447
+ return Te(() => {
448
+ r || (r = Pe(i, () => N(() => e.children)));
449
+ const l = o();
450
+ if (l instanceof HTMLHeadElement) {
451
+ const [s, f] = k(!1), d = () => f(!0);
452
+ ue((h) => D(l, () => s() ? h() : r(), null)), se(d);
453
+ } else {
454
+ const s = He(e.isSVG ? "g" : "div", e.isSVG), f = t && s.attachShadow ? s.attachShadow({
455
+ mode: "open"
456
+ }) : s;
457
+ Object.defineProperty(s, "_$host", {
458
+ get() {
459
+ return n.parentNode;
460
+ },
461
+ configurable: !0
462
+ }), D(f, r), l.appendChild(s), e.ref && e.ref(s), se(() => l.contains(s) && l.removeChild(s));
463
+ }
464
+ }, void 0, {}), n;
465
+ }
466
+ var Fe = /* @__PURE__ */ ge("<div class=llm-config-tray-popover style=transform:translateY(-100%)><div>"), Ie = /* @__PURE__ */ ge('<div class=llm-config-tray><button class=llm-config-tray-button title="LLM model &amp; config"><span>🤖</span><span>model');
467
+ function We(e) {
468
+ const t = document.createElement("style");
469
+ t.textContent = `
470
+ .llm-config-tray { position: relative; display: inline-flex; align-items: center; }
471
+ .llm-config-tray-button {
472
+ display: inline-flex; align-items: center; gap: var(--studio-space-2xs, 0.25rem);
473
+ height: 1.75rem; padding: 0 var(--studio-space-xs, 0.375rem);
474
+ border: 1px solid var(--studio-chrome-offset-20, var(--studio-fill-offset-20, #d4d4d4));
475
+ border-radius: var(--studio-radius-sm, 4px);
476
+ background: var(--studio-chrome, var(--studio-fill, white));
477
+ color: var(--studio-chrome-line, var(--studio-line, black));
478
+ font: 500 0.75rem/1 var(--studio-family-sans, system-ui, sans-serif); cursor: pointer;
479
+ }
480
+ .llm-config-tray-button:hover {
481
+ background: var(--studio-chrome-offset-10, var(--studio-fill-offset-10, #f2f2f2));
482
+ }
483
+ .llm-config-tray-popover {
484
+ position: fixed; z-index: 2147483000;
485
+ max-width: min(92vw, 520px); max-height: 80vh; overflow: auto;
486
+ background: var(--studio-fill, white); color: var(--studio-line, black);
487
+ border: 1px solid var(--studio-fill-offset-20, #d4d4d4);
488
+ border-radius: var(--studio-radius-md, 8px);
489
+ box-shadow: var(--studio-shadow-lg, 0 8px 32px rgba(0,0,0,0.24));
490
+ padding: var(--studio-space-sm, 0.5rem);
491
+ }
492
+ `, e.append(t);
493
+ const [n, o] = k(!1), [i, r] = k(), [l, s] = k({}), [f, d] = k(null);
494
+ let h, m, y, S = null;
495
+ function j(c) {
496
+ return c ? {
497
+ read: () => {
498
+ try {
499
+ return Se(c);
500
+ } catch {
501
+ return oe();
502
+ }
503
+ },
504
+ write: (p) => Ee(c, p)
505
+ } : {
506
+ read: () => oe(),
507
+ write: (p) => xe(p)
508
+ };
509
+ }
510
+ async function me() {
511
+ const c = i(), p = l() || {};
512
+ await ve(c, e), y && (y.replaceChildren(), S = be({
513
+ source: j(c),
514
+ scope: c,
515
+ toolName: c?.toolName || p.toolName,
516
+ toolPrompt: p.toolPrompt,
517
+ toolTools: p.toolTools
518
+ }), y.append(S));
519
+ }
520
+ function we() {
521
+ const c = h.getBoundingClientRect();
522
+ d({
523
+ left: Math.max(8, c.right - 520),
524
+ top: Math.max(8, c.top - 8)
525
+ });
526
+ }
527
+ function W(c, p) {
528
+ r(c?.toolId ? c : void 0), s(p || {}), we(), o(!0), queueMicrotask(me);
529
+ }
530
+ function P() {
531
+ try {
532
+ S?.destroy?.();
533
+ } catch {
534
+ }
535
+ S = null, o(!1);
536
+ }
537
+ const K = (c) => {
538
+ const p = c.detail;
539
+ !p || p.component !== "llm-config-tray" || W(p.scope, p);
540
+ };
541
+ document.addEventListener("patchwork:open-tool", K);
542
+ const Q = (c) => {
543
+ if (!n()) return;
544
+ const p = c.composedPath();
545
+ m && p.includes(m) || h && p.includes(h) || P();
546
+ }, X = (c) => {
547
+ c.key === "Escape" && n() && P();
548
+ };
549
+ document.addEventListener("click", Q), document.addEventListener("keydown", X);
550
+ const ye = Ue(() => (() => {
551
+ var c = Ie(), p = c.firstChild;
552
+ p.$$click = (w) => {
553
+ w.stopPropagation(), n() ? P() : W(void 0, {});
554
+ };
555
+ var Y = h;
556
+ return typeof Y == "function" ? R(Y, p) : h = p, D(c, ie(Be, {
557
+ get when() {
558
+ return n();
559
+ },
560
+ get children() {
561
+ return ie(Re, {
562
+ get mount() {
563
+ return document.body;
564
+ },
565
+ get children() {
566
+ var w = Fe(), J = w.firstChild;
567
+ w.$$click = (v) => v.stopPropagation();
568
+ var Z = m;
569
+ typeof Z == "function" ? R(Z, w) : m = w;
570
+ var z = y;
571
+ return typeof z == "function" ? R(z, J) : y = J, _((v) => {
572
+ var ee = `${f()?.left ?? 0}px`, te = `${f()?.top ?? 0}px`, ne = f() ? "visible" : "hidden";
573
+ return ee !== v.e && H(w, "left", v.e = ee), te !== v.t && H(w, "top", v.t = te), ne !== v.a && H(w, "visibility", v.a = ne), v;
574
+ }, {
575
+ e: void 0,
576
+ t: void 0,
577
+ a: void 0
578
+ }), w;
579
+ }
580
+ });
581
+ }
582
+ }), null), c;
583
+ })(), e);
584
+ return () => {
585
+ P(), ye(), t.remove(), document.removeEventListener("patchwork:open-tool", K), document.removeEventListener("click", Q), document.removeEventListener("keydown", X);
586
+ };
587
+ }
588
+ Ve(["click"]);
589
+ export {
590
+ We as LlmConfigTray
591
+ };