citadel_cli 1.1.3 → 1.1.4

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.
@@ -1,689 +1,47 @@
1
- var Xn = Object.defineProperty;
2
- var Qn = (o, n, t) => n in o ? Xn(o, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[n] = t;
3
- var A = (o, n, t) => Qn(o, typeof n != "symbol" ? n + "" : n, t);
4
- import Q, { useEffect as z, useMemo as be, createContext as Zn, useContext as ve, useState as Y, useCallback as R, useReducer as et, useRef as X } from "react";
5
- import nt from "react-dom";
6
- var Te = { exports: {} }, ae = {};
7
- /**
8
- * @license React
9
- * react-jsx-runtime.production.min.js
10
- *
11
- * Copyright (c) Facebook, Inc. and its affiliates.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- var on;
17
- function tt() {
18
- if (on) return ae;
19
- on = 1;
20
- var o = Q, n = Symbol.for("react.element"), t = Symbol.for("react.fragment"), r = Object.prototype.hasOwnProperty, a = o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, i = { key: !0, ref: !0, __self: !0, __source: !0 };
21
- function u(f, c, m) {
22
- var h, b = {}, _ = null, S = null;
23
- m !== void 0 && (_ = "" + m), c.key !== void 0 && (_ = "" + c.key), c.ref !== void 0 && (S = c.ref);
24
- for (h in c) r.call(c, h) && !i.hasOwnProperty(h) && (b[h] = c[h]);
25
- if (f && f.defaultProps) for (h in c = f.defaultProps, c) b[h] === void 0 && (b[h] = c[h]);
26
- return { $$typeof: n, type: f, key: _, ref: S, props: b, _owner: a.current };
27
- }
28
- return ae.Fragment = t, ae.jsx = u, ae.jsxs = u, ae;
29
- }
30
- var se = {};
31
- /**
32
- * @license React
33
- * react-jsx-runtime.development.js
34
- *
35
- * Copyright (c) Facebook, Inc. and its affiliates.
36
- *
37
- * This source code is licensed under the MIT license found in the
38
- * LICENSE file in the root directory of this source tree.
39
- */
40
- var an;
41
- function rt() {
42
- return an || (an = 1, process.env.NODE_ENV !== "production" && function() {
43
- var o = Q, n = Symbol.for("react.element"), t = Symbol.for("react.portal"), r = Symbol.for("react.fragment"), a = Symbol.for("react.strict_mode"), i = Symbol.for("react.profiler"), u = Symbol.for("react.provider"), f = Symbol.for("react.context"), c = Symbol.for("react.forward_ref"), m = Symbol.for("react.suspense"), h = Symbol.for("react.suspense_list"), b = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), S = Symbol.for("react.offscreen"), U = Symbol.iterator, I = "@@iterator";
44
- function d(e) {
45
- if (e === null || typeof e != "object")
46
- return null;
47
- var s = U && e[U] || e[I];
48
- return typeof s == "function" ? s : null;
49
- }
50
- var y = o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
51
- function w(e) {
52
- {
53
- for (var s = arguments.length, l = new Array(s > 1 ? s - 1 : 0), g = 1; g < s; g++)
54
- l[g - 1] = arguments[g];
55
- N("error", e, l);
56
- }
57
- }
58
- function N(e, s, l) {
59
- {
60
- var g = y.ReactDebugCurrentFrame, C = g.getStackAddendum();
61
- C !== "" && (s += "%s", l = l.concat([C]));
62
- var E = l.map(function(x) {
63
- return String(x);
64
- });
65
- E.unshift("Warning: " + s), Function.prototype.apply.call(console[e], console, E);
66
- }
67
- }
68
- var k = !1, j = !1, P = !1, $ = !1, L = !1, ee;
69
- ee = Symbol.for("react.module.reference");
70
- function de(e) {
71
- return !!(typeof e == "string" || typeof e == "function" || e === r || e === i || L || e === a || e === m || e === h || $ || e === S || k || j || P || typeof e == "object" && e !== null && (e.$$typeof === _ || e.$$typeof === b || e.$$typeof === u || e.$$typeof === f || e.$$typeof === c || // This needs to include all possible module reference object
72
- // types supported by any Flight configuration anywhere since
73
- // we don't know which Flight build this will end up being used
74
- // with.
75
- e.$$typeof === ee || e.getModuleId !== void 0));
76
- }
77
- function ne(e, s, l) {
78
- var g = e.displayName;
79
- if (g)
80
- return g;
81
- var C = s.displayName || s.name || "";
82
- return C !== "" ? l + "(" + C + ")" : l;
83
- }
84
- function De(e) {
85
- return e.displayName || "Context";
86
- }
87
- function V(e) {
88
- if (e == null)
89
- return null;
90
- if (typeof e.tag == "number" && w("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
91
- return e.displayName || e.name || null;
92
- if (typeof e == "string")
93
- return e;
94
- switch (e) {
95
- case r:
96
- return "Fragment";
97
- case t:
98
- return "Portal";
99
- case i:
100
- return "Profiler";
101
- case a:
102
- return "StrictMode";
103
- case m:
104
- return "Suspense";
105
- case h:
106
- return "SuspenseList";
107
- }
108
- if (typeof e == "object")
109
- switch (e.$$typeof) {
110
- case f:
111
- var s = e;
112
- return De(s) + ".Consumer";
113
- case u:
114
- var l = e;
115
- return De(l._context) + ".Provider";
116
- case c:
117
- return ne(e, e.render, "ForwardRef");
118
- case b:
119
- var g = e.displayName || null;
120
- return g !== null ? g : V(e.type) || "Memo";
121
- case _: {
122
- var C = e, E = C._payload, x = C._init;
123
- try {
124
- return V(x(E));
125
- } catch {
126
- return null;
127
- }
128
- }
129
- }
130
- return null;
131
- }
132
- var K = Object.assign, te = 0, ze, Fe, Ue, He, Me, $e, We;
133
- function Le() {
134
- }
135
- Le.__reactDisabledLog = !0;
136
- function En() {
137
- {
138
- if (te === 0) {
139
- ze = console.log, Fe = console.info, Ue = console.warn, He = console.error, Me = console.group, $e = console.groupCollapsed, We = console.groupEnd;
140
- var e = {
141
- configurable: !0,
142
- enumerable: !0,
143
- value: Le,
144
- writable: !0
145
- };
146
- Object.defineProperties(console, {
147
- info: e,
148
- log: e,
149
- warn: e,
150
- error: e,
151
- group: e,
152
- groupCollapsed: e,
153
- groupEnd: e
154
- });
155
- }
156
- te++;
157
- }
158
- }
159
- function kn() {
160
- {
161
- if (te--, te === 0) {
162
- var e = {
163
- configurable: !0,
164
- enumerable: !0,
165
- writable: !0
166
- };
167
- Object.defineProperties(console, {
168
- log: K({}, e, {
169
- value: ze
170
- }),
171
- info: K({}, e, {
172
- value: Fe
173
- }),
174
- warn: K({}, e, {
175
- value: Ue
176
- }),
177
- error: K({}, e, {
178
- value: He
179
- }),
180
- group: K({}, e, {
181
- value: Me
182
- }),
183
- groupCollapsed: K({}, e, {
184
- value: $e
185
- }),
186
- groupEnd: K({}, e, {
187
- value: We
188
- })
189
- });
190
- }
191
- te < 0 && w("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
192
- }
193
- }
194
- var Ce = y.ReactCurrentDispatcher, Se;
195
- function me(e, s, l) {
196
- {
197
- if (Se === void 0)
198
- try {
199
- throw Error();
200
- } catch (C) {
201
- var g = C.stack.trim().match(/\n( *(at )?)/);
202
- Se = g && g[1] || "";
203
- }
204
- return `
205
- ` + Se + e;
206
- }
207
- }
208
- var Ee = !1, pe;
209
- {
210
- var _n = typeof WeakMap == "function" ? WeakMap : Map;
211
- pe = new _n();
212
- }
213
- function Ye(e, s) {
214
- if (!e || Ee)
215
- return "";
216
- {
217
- var l = pe.get(e);
218
- if (l !== void 0)
219
- return l;
220
- }
221
- var g;
222
- Ee = !0;
223
- var C = Error.prepareStackTrace;
224
- Error.prepareStackTrace = void 0;
225
- var E;
226
- E = Ce.current, Ce.current = null, En();
227
- try {
228
- if (s) {
229
- var x = function() {
230
- throw Error();
231
- };
232
- if (Object.defineProperty(x.prototype, "props", {
233
- set: function() {
234
- throw Error();
235
- }
236
- }), typeof Reflect == "object" && Reflect.construct) {
237
- try {
238
- Reflect.construct(x, []);
239
- } catch (H) {
240
- g = H;
241
- }
242
- Reflect.construct(e, [], x);
243
- } else {
244
- try {
245
- x.call();
246
- } catch (H) {
247
- g = H;
248
- }
249
- e.call(x.prototype);
250
- }
251
- } else {
252
- try {
253
- throw Error();
254
- } catch (H) {
255
- g = H;
256
- }
257
- e();
258
- }
259
- } catch (H) {
260
- if (H && g && typeof H.stack == "string") {
261
- for (var v = H.stack.split(`
262
- `), F = g.stack.split(`
263
- `), T = v.length - 1, O = F.length - 1; T >= 1 && O >= 0 && v[T] !== F[O]; )
264
- O--;
265
- for (; T >= 1 && O >= 0; T--, O--)
266
- if (v[T] !== F[O]) {
267
- if (T !== 1 || O !== 1)
268
- do
269
- if (T--, O--, O < 0 || v[T] !== F[O]) {
270
- var W = `
271
- ` + v[T].replace(" at new ", " at ");
272
- return e.displayName && W.includes("<anonymous>") && (W = W.replace("<anonymous>", e.displayName)), typeof e == "function" && pe.set(e, W), W;
273
- }
274
- while (T >= 1 && O >= 0);
275
- break;
276
- }
277
- }
278
- } finally {
279
- Ee = !1, Ce.current = E, kn(), Error.prepareStackTrace = C;
280
- }
281
- var G = e ? e.displayName || e.name : "", B = G ? me(G) : "";
282
- return typeof e == "function" && pe.set(e, B), B;
283
- }
284
- function Rn(e, s, l) {
285
- return Ye(e, !1);
286
- }
287
- function jn(e) {
288
- var s = e.prototype;
289
- return !!(s && s.isReactComponent);
290
- }
291
- function fe(e, s, l) {
292
- if (e == null)
293
- return "";
294
- if (typeof e == "function")
295
- return Ye(e, jn(e));
296
- if (typeof e == "string")
297
- return me(e);
298
- switch (e) {
299
- case m:
300
- return me("Suspense");
301
- case h:
302
- return me("SuspenseList");
303
- }
304
- if (typeof e == "object")
305
- switch (e.$$typeof) {
306
- case c:
307
- return Rn(e.render);
308
- case b:
309
- return fe(e.type, s, l);
310
- case _: {
311
- var g = e, C = g._payload, E = g._init;
312
- try {
313
- return fe(E(C), s, l);
314
- } catch {
315
- }
316
- }
317
- }
318
- return "";
319
- }
320
- var re = Object.prototype.hasOwnProperty, Ve = {}, Ke = y.ReactDebugCurrentFrame;
321
- function he(e) {
322
- if (e) {
323
- var s = e._owner, l = fe(e.type, e._source, s ? s.type : null);
324
- Ke.setExtraStackFrame(l);
325
- } else
326
- Ke.setExtraStackFrame(null);
327
- }
328
- function An(e, s, l, g, C) {
329
- {
330
- var E = Function.call.bind(re);
331
- for (var x in e)
332
- if (E(e, x)) {
333
- var v = void 0;
334
- try {
335
- if (typeof e[x] != "function") {
336
- var F = Error((g || "React class") + ": " + l + " type `" + x + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[x] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
337
- throw F.name = "Invariant Violation", F;
338
- }
339
- v = e[x](s, x, g, l, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
340
- } catch (T) {
341
- v = T;
342
- }
343
- v && !(v instanceof Error) && (he(C), w("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class", l, x, typeof v), he(null)), v instanceof Error && !(v.message in Ve) && (Ve[v.message] = !0, he(C), w("Failed %s type: %s", l, v.message), he(null));
344
- }
345
- }
346
- }
347
- var Pn = Array.isArray;
348
- function ke(e) {
349
- return Pn(e);
350
- }
351
- function Tn(e) {
352
- {
353
- var s = typeof Symbol == "function" && Symbol.toStringTag, l = s && e[Symbol.toStringTag] || e.constructor.name || "Object";
354
- return l;
355
- }
356
- }
357
- function On(e) {
358
- try {
359
- return Be(e), !1;
360
- } catch {
361
- return !0;
362
- }
363
- }
364
- function Be(e) {
365
- return "" + e;
366
- }
367
- function qe(e) {
368
- if (On(e))
369
- return w("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Tn(e)), Be(e);
370
- }
371
- var oe = y.ReactCurrentOwner, Nn = {
372
- key: !0,
373
- ref: !0,
374
- __self: !0,
375
- __source: !0
376
- }, Je, Ge, _e;
377
- _e = {};
378
- function In(e) {
379
- if (re.call(e, "ref")) {
380
- var s = Object.getOwnPropertyDescriptor(e, "ref").get;
381
- if (s && s.isReactWarning)
382
- return !1;
383
- }
384
- return e.ref !== void 0;
385
- }
386
- function Dn(e) {
387
- if (re.call(e, "key")) {
388
- var s = Object.getOwnPropertyDescriptor(e, "key").get;
389
- if (s && s.isReactWarning)
390
- return !1;
391
- }
392
- return e.key !== void 0;
393
- }
394
- function zn(e, s) {
395
- if (typeof e.ref == "string" && oe.current && s && oe.current.stateNode !== s) {
396
- var l = V(oe.current.type);
397
- _e[l] || (w('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', V(oe.current.type), e.ref), _e[l] = !0);
398
- }
399
- }
400
- function Fn(e, s) {
401
- {
402
- var l = function() {
403
- Je || (Je = !0, w("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", s));
404
- };
405
- l.isReactWarning = !0, Object.defineProperty(e, "key", {
406
- get: l,
407
- configurable: !0
408
- });
409
- }
410
- }
411
- function Un(e, s) {
412
- {
413
- var l = function() {
414
- Ge || (Ge = !0, w("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", s));
415
- };
416
- l.isReactWarning = !0, Object.defineProperty(e, "ref", {
417
- get: l,
418
- configurable: !0
419
- });
420
- }
421
- }
422
- var Hn = function(e, s, l, g, C, E, x) {
423
- var v = {
424
- // This tag allows us to uniquely identify this as a React Element
425
- $$typeof: n,
426
- // Built-in properties that belong on the element
427
- type: e,
428
- key: s,
429
- ref: l,
430
- props: x,
431
- // Record the component responsible for creating this element.
432
- _owner: E
433
- };
434
- return v._store = {}, Object.defineProperty(v._store, "validated", {
435
- configurable: !1,
436
- enumerable: !1,
437
- writable: !0,
438
- value: !1
439
- }), Object.defineProperty(v, "_self", {
440
- configurable: !1,
441
- enumerable: !1,
442
- writable: !1,
443
- value: g
444
- }), Object.defineProperty(v, "_source", {
445
- configurable: !1,
446
- enumerable: !1,
447
- writable: !1,
448
- value: C
449
- }), Object.freeze && (Object.freeze(v.props), Object.freeze(v)), v;
450
- };
451
- function Mn(e, s, l, g, C) {
452
- {
453
- var E, x = {}, v = null, F = null;
454
- l !== void 0 && (qe(l), v = "" + l), Dn(s) && (qe(s.key), v = "" + s.key), In(s) && (F = s.ref, zn(s, C));
455
- for (E in s)
456
- re.call(s, E) && !Nn.hasOwnProperty(E) && (x[E] = s[E]);
457
- if (e && e.defaultProps) {
458
- var T = e.defaultProps;
459
- for (E in T)
460
- x[E] === void 0 && (x[E] = T[E]);
461
- }
462
- if (v || F) {
463
- var O = typeof e == "function" ? e.displayName || e.name || "Unknown" : e;
464
- v && Fn(x, O), F && Un(x, O);
465
- }
466
- return Hn(e, v, F, C, g, oe.current, x);
467
- }
468
- }
469
- var Re = y.ReactCurrentOwner, Xe = y.ReactDebugCurrentFrame;
470
- function J(e) {
471
- if (e) {
472
- var s = e._owner, l = fe(e.type, e._source, s ? s.type : null);
473
- Xe.setExtraStackFrame(l);
474
- } else
475
- Xe.setExtraStackFrame(null);
476
- }
477
- var je;
478
- je = !1;
479
- function Ae(e) {
480
- return typeof e == "object" && e !== null && e.$$typeof === n;
481
- }
482
- function Qe() {
483
- {
484
- if (Re.current) {
485
- var e = V(Re.current.type);
486
- if (e)
487
- return `
488
-
489
- Check the render method of \`` + e + "`.";
490
- }
491
- return "";
492
- }
493
- }
494
- function $n(e) {
495
- return "";
496
- }
497
- var Ze = {};
498
- function Wn(e) {
499
- {
500
- var s = Qe();
501
- if (!s) {
502
- var l = typeof e == "string" ? e : e.displayName || e.name;
503
- l && (s = `
504
-
505
- Check the top-level render call using <` + l + ">.");
506
- }
507
- return s;
508
- }
509
- }
510
- function en(e, s) {
511
- {
512
- if (!e._store || e._store.validated || e.key != null)
513
- return;
514
- e._store.validated = !0;
515
- var l = Wn(s);
516
- if (Ze[l])
517
- return;
518
- Ze[l] = !0;
519
- var g = "";
520
- e && e._owner && e._owner !== Re.current && (g = " It was passed a child from " + V(e._owner.type) + "."), J(e), w('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', l, g), J(null);
521
- }
522
- }
523
- function nn(e, s) {
524
- {
525
- if (typeof e != "object")
526
- return;
527
- if (ke(e))
528
- for (var l = 0; l < e.length; l++) {
529
- var g = e[l];
530
- Ae(g) && en(g, s);
531
- }
532
- else if (Ae(e))
533
- e._store && (e._store.validated = !0);
534
- else if (e) {
535
- var C = d(e);
536
- if (typeof C == "function" && C !== e.entries)
537
- for (var E = C.call(e), x; !(x = E.next()).done; )
538
- Ae(x.value) && en(x.value, s);
539
- }
540
- }
541
- }
542
- function Ln(e) {
543
- {
544
- var s = e.type;
545
- if (s == null || typeof s == "string")
546
- return;
547
- var l;
548
- if (typeof s == "function")
549
- l = s.propTypes;
550
- else if (typeof s == "object" && (s.$$typeof === c || // Note: Memo only checks outer props here.
551
- // Inner props are checked in the reconciler.
552
- s.$$typeof === b))
553
- l = s.propTypes;
554
- else
555
- return;
556
- if (l) {
557
- var g = V(s);
558
- An(l, e.props, "prop", g, e);
559
- } else if (s.PropTypes !== void 0 && !je) {
560
- je = !0;
561
- var C = V(s);
562
- w("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", C || "Unknown");
563
- }
564
- typeof s.getDefaultProps == "function" && !s.getDefaultProps.isReactClassApproved && w("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
565
- }
566
- }
567
- function Yn(e) {
568
- {
569
- for (var s = Object.keys(e.props), l = 0; l < s.length; l++) {
570
- var g = s[l];
571
- if (g !== "children" && g !== "key") {
572
- J(e), w("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", g), J(null);
573
- break;
574
- }
575
- }
576
- e.ref !== null && (J(e), w("Invalid attribute `ref` supplied to `React.Fragment`."), J(null));
577
- }
578
- }
579
- var tn = {};
580
- function rn(e, s, l, g, C, E) {
581
- {
582
- var x = de(e);
583
- if (!x) {
584
- var v = "";
585
- (e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (v += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
586
- var F = $n();
587
- F ? v += F : v += Qe();
588
- var T;
589
- e === null ? T = "null" : ke(e) ? T = "array" : e !== void 0 && e.$$typeof === n ? (T = "<" + (V(e.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : T = typeof e, w("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", T, v);
590
- }
591
- var O = Mn(e, s, l, C, E);
592
- if (O == null)
593
- return O;
594
- if (x) {
595
- var W = s.children;
596
- if (W !== void 0)
597
- if (g)
598
- if (ke(W)) {
599
- for (var G = 0; G < W.length; G++)
600
- nn(W[G], e);
601
- Object.freeze && Object.freeze(W);
602
- } else
603
- w("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
604
- else
605
- nn(W, e);
606
- }
607
- if (re.call(s, "key")) {
608
- var B = V(e), H = Object.keys(s).filter(function(Gn) {
609
- return Gn !== "key";
610
- }), Pe = H.length > 0 ? "{key: someKey, " + H.join(": ..., ") + ": ...}" : "{key: someKey}";
611
- if (!tn[B + Pe]) {
612
- var Jn = H.length > 0 ? "{" + H.join(": ..., ") + ": ...}" : "{}";
613
- w(`A props object containing a "key" prop is being spread into JSX:
614
- let props = %s;
615
- <%s {...props} />
616
- React keys must be passed directly to JSX without using spread:
617
- let props = %s;
618
- <%s key={someKey} {...props} />`, Pe, B, Jn, B), tn[B + Pe] = !0;
619
- }
620
- }
621
- return e === r ? Yn(O) : Ln(O), O;
622
- }
623
- }
624
- function Vn(e, s, l) {
625
- return rn(e, s, l, !0);
626
- }
627
- function Kn(e, s, l) {
628
- return rn(e, s, l, !1);
629
- }
630
- var Bn = Kn, qn = Vn;
631
- se.Fragment = r, se.jsx = Bn, se.jsxs = qn;
632
- }()), se;
633
- }
634
- process.env.NODE_ENV === "production" ? Te.exports = tt() : Te.exports = rt();
635
- var p = Te.exports, Oe, ge = nt;
636
- if (process.env.NODE_ENV === "production")
637
- Oe = ge.createRoot, ge.hydrateRoot;
638
- else {
639
- var sn = ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
640
- Oe = function(o, n) {
641
- sn.usingClientEntryPoint = !0;
642
- try {
643
- return ge.createRoot(o, n);
644
- } finally {
645
- sn.usingClientEntryPoint = !1;
646
- }
647
- };
648
- }
649
- const ot = ({ onOpen: o, onClose: n, isVisible: t, showCitadelKey: r }) => {
650
- z(() => {
651
- const a = (i) => {
652
- var u, f;
653
- !t && i.key === r && !["input", "textarea"].includes(((f = (u = i.target) == null ? void 0 : u.tagName) == null ? void 0 : f.toLowerCase()) || "") && (i.preventDefault(), o()), t && i.key === "Escape" && (i.preventDefault(), n());
1
+ var pe = Object.defineProperty;
2
+ var ge = (r, e, n) => e in r ? pe(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n;
3
+ var b = (r, e, n) => ge(r, typeof e != "symbol" ? e + "" : e, n);
4
+ import { jsx as m, jsxs as N, Fragment as he } from "react/jsx-runtime";
5
+ import L, { useEffect as _, useMemo as V, createContext as fe, useContext as Y, useState as R, useCallback as w, useReducer as we, useRef as U } from "react";
6
+ import { createRoot as be } from "react-dom/client";
7
+ const ye = ({ onOpen: r, onClose: e, isVisible: n, showCitadelKey: t }) => {
8
+ _(() => {
9
+ const o = (s) => {
10
+ var i, c;
11
+ !n && s.key === t && !["input", "textarea"].includes(((c = (i = s.target) == null ? void 0 : i.tagName) == null ? void 0 : c.toLowerCase()) || "") && (s.preventDefault(), r()), n && s.key === "Escape" && (s.preventDefault(), e());
654
12
  };
655
- return document.addEventListener("keydown", a), () => document.removeEventListener("keydown", a);
656
- }, [o, n, t, r]);
657
- }, at = "_container_141sr_3", st = "_innerContainer_141sr_19", it = "_inputSection_141sr_28", lt = "_resizeHandle_141sr_35", ct = "_citadel_slideUp_141sr_64", ut = "_citadel_slideDown_141sr_68", ln = {
658
- container: at,
659
- innerContainer: st,
660
- inputSection: it,
661
- resizeHandle: lt,
662
- citadel_slideUp: ct,
663
- citadel_slideDown: ut
664
- }, dt = (o) => {
665
- const { isVisible: n, isClosing: t, onAnimationComplete: r } = o, a = be(() => n ? t ? ln.slideDown : ln.slideUp : "", [n, t]);
666
- return z(() => {
667
- if (r) {
668
- const u = setTimeout(() => {
669
- r();
13
+ return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
14
+ }, [r, e, n, t]);
15
+ }, xe = "_container_141sr_3", ve = "_innerContainer_141sr_19", Ce = "_inputSection_141sr_28", Se = "_resizeHandle_141sr_35", ke = "_citadel_slideUp_141sr_64", Ee = "_citadel_slideDown_141sr_68", Q = {
16
+ container: xe,
17
+ innerContainer: ve,
18
+ inputSection: Ce,
19
+ resizeHandle: Se,
20
+ citadel_slideUp: ke,
21
+ citadel_slideDown: Ee
22
+ }, Ne = (r) => {
23
+ const { isVisible: e, isClosing: n, onAnimationComplete: t } = r, o = V(() => e ? n ? Q.slideDown : Q.slideUp : "", [e, n]);
24
+ return _(() => {
25
+ if (t) {
26
+ const i = setTimeout(() => {
27
+ t();
670
28
  }, 200);
671
- return () => clearTimeout(u);
29
+ return () => clearTimeout(i);
672
30
  }
673
- }, [t, r]), {
674
- style: be(() => ({
675
- opacity: n ? 1 : 0,
676
- transform: n ? "translateY(0)" : t ? "translateY(100%)" : "translateY(-100%)",
31
+ }, [n, t]), {
32
+ style: V(() => ({
33
+ opacity: e ? 1 : 0,
34
+ transform: e ? "translateY(0)" : n ? "translateY(100%)" : "translateY(-100%)",
677
35
  transition: "opacity 200ms ease-in-out, transform 200ms ease-in-out"
678
- }), [n, t]),
679
- animationClass: a
36
+ }), [e, n]),
37
+ animationClass: o
680
38
  };
681
39
  };
682
- var ie = /* @__PURE__ */ ((o) => (o.Pending = "pending", o.Success = "success", o.Failure = "failure", o.Timeout = "timeout", o))(ie || {});
683
- class Z {
684
- constructor(n = Date.now()) {
685
- A(this, "_status", "pending");
686
- this.timestamp = n;
40
+ var M = /* @__PURE__ */ ((r) => (r.Pending = "pending", r.Success = "success", r.Failure = "failure", r.Timeout = "timeout", r))(M || {});
41
+ class F {
42
+ constructor(e = Date.now()) {
43
+ b(this, "_status", "pending");
44
+ this.timestamp = e;
687
45
  }
688
46
  get status() {
689
47
  return this._status;
@@ -698,41 +56,41 @@ class Z {
698
56
  this._status = "timeout";
699
57
  }
700
58
  }
701
- class Ht extends Z {
702
- constructor(n, t) {
703
- super(t), this.data = n;
59
+ class nn extends F {
60
+ constructor(e, n) {
61
+ super(n), this.data = e;
704
62
  }
705
63
  render() {
706
- return /* @__PURE__ */ p.jsx("pre", { className: "text-gray-200", children: JSON.stringify(this.data, null, 2) });
64
+ return /* @__PURE__ */ m("pre", { className: "text-gray-200", children: JSON.stringify(this.data, null, 2) });
707
65
  }
708
66
  }
709
- class hn extends Z {
710
- constructor(n, t) {
711
- super(t), this.text = n;
67
+ class oe extends F {
68
+ constructor(e, n) {
69
+ super(n), this.text = e;
712
70
  }
713
71
  render() {
714
- return /* @__PURE__ */ p.jsx("div", { className: "text-gray-200 whitespace-pre font-mono", children: this.text });
72
+ return /* @__PURE__ */ m("div", { className: "text-gray-200 whitespace-pre font-mono", children: this.text });
715
73
  }
716
74
  }
717
- class mt extends Z {
718
- constructor(n, t) {
719
- super(t), this.error = n, this.markFailure();
75
+ class _e extends F {
76
+ constructor(e, n) {
77
+ super(n), this.error = e, this.markFailure();
720
78
  }
721
79
  render() {
722
- return /* @__PURE__ */ p.jsx("div", { className: "mt-1 text-red-400", children: this.error });
80
+ return /* @__PURE__ */ m("div", { className: "mt-1 text-red-400", children: this.error });
723
81
  }
724
82
  }
725
- class pt extends Z {
83
+ class Ae extends F {
726
84
  render() {
727
- return /* @__PURE__ */ p.jsx("div", { className: "text-gray-400", children: "..." });
85
+ return /* @__PURE__ */ m("div", { className: "text-gray-400", children: "..." });
728
86
  }
729
87
  }
730
- class Mt extends Z {
731
- constructor(n, t = "", r) {
732
- super(r), this.imageUrl = n, this.altText = t;
88
+ class tn extends F {
89
+ constructor(e, n = "", t) {
90
+ super(t), this.imageUrl = e, this.altText = n;
733
91
  }
734
92
  render() {
735
- return /* @__PURE__ */ p.jsx("div", { className: "my-2", children: /* @__PURE__ */ p.jsx(
93
+ return /* @__PURE__ */ m("div", { className: "my-2", children: /* @__PURE__ */ m(
736
94
  "img",
737
95
  {
738
96
  src: this.imageUrl,
@@ -742,44 +100,44 @@ class Mt extends Z {
742
100
  ) });
743
101
  }
744
102
  }
745
- const ft = (o) => async function() {
746
- const n = o.commands.filter((t) => t.fullPath[0] !== "help").map((t) => `${t.segments.map((a) => a.type === "argument" ? `<${a.name}>` : a.name).join(" ")} - ${t.description}`).sort();
747
- return n.push("help - Show available commands"), new hn(
748
- n.length > 0 ? `Available Commands:
749
- ` + n.join(`
103
+ const ze = (r) => async function() {
104
+ const e = r.commands.filter((n) => n.fullPath[0] !== "help").map((n) => `${n.segments.map((o) => o.type === "argument" ? `<${o.name}>` : o.name).join(" ")} - ${n.description}`).sort();
105
+ return e.push("help - Show available commands"), new oe(
106
+ e.length > 0 ? `Available Commands:
107
+ ` + e.join(`
750
108
  `) : "No commands available yet. Add some commands to get started!"
751
109
  );
752
110
  };
753
- var we = /* @__PURE__ */ ((o) => (o[o.NONE = 0] = "NONE", o[o.ERROR = 1] = "ERROR", o[o.WARN = 2] = "WARN", o[o.INFO = 3] = "INFO", o[o.DEBUG = 4] = "DEBUG", o[o.TRACE = 5] = "TRACE", o))(we || {});
754
- class D {
755
- static configure(n) {
756
- this.level = n.level, this.prefix = n.prefix || "[Citadel]";
111
+ var W = /* @__PURE__ */ ((r) => (r[r.NONE = 0] = "NONE", r[r.ERROR = 1] = "ERROR", r[r.WARN = 2] = "WARN", r[r.INFO = 3] = "INFO", r[r.DEBUG = 4] = "DEBUG", r[r.TRACE = 5] = "TRACE", r))(W || {});
112
+ class C {
113
+ static configure(e) {
114
+ this.level = e.level, this.prefix = e.prefix || "[Citadel]";
757
115
  }
758
- static trace(...n) {
759
- this.level >= 5 && process.env.NODE_ENV !== "production" && console.trace(this.prefix, ...n);
116
+ static trace(...e) {
117
+ this.level >= 5 && process.env.NODE_ENV !== "production" && console.trace(this.prefix, ...e);
760
118
  }
761
- static debug(...n) {
762
- this.level >= 4 && process.env.NODE_ENV !== "production" && console.debug(this.prefix, ...n);
119
+ static debug(...e) {
120
+ this.level >= 4 && process.env.NODE_ENV !== "production" && console.debug(this.prefix, ...e);
763
121
  }
764
- static info(...n) {
765
- this.level >= 3 && console.info(this.prefix, ...n);
122
+ static info(...e) {
123
+ this.level >= 3 && console.info(this.prefix, ...e);
766
124
  }
767
- static warn(...n) {
768
- this.level >= 2 && console.warn(this.prefix, ...n);
125
+ static warn(...e) {
126
+ this.level >= 2 && console.warn(this.prefix, ...e);
769
127
  }
770
- static error(...n) {
771
- this.level >= 1 && console.error(this.prefix, ...n);
128
+ static error(...e) {
129
+ this.level >= 1 && console.error(this.prefix, ...e);
772
130
  }
773
131
  }
774
- A(D, "level", 0), A(D, "prefix", "");
775
- const M = {
132
+ b(C, "level", 0), b(C, "prefix", "");
133
+ const A = {
776
134
  commandTimeoutMs: 1e4,
777
135
  cursorColor: "var(--cursor-color, #fff)",
778
136
  cursorSpeed: 530,
779
137
  cursorType: "blink",
780
138
  includeHelpCommand: !0,
781
139
  initialHeight: "40vh",
782
- logLevel: process.env.NODE_ENV === "production" ? we.ERROR : we.DEBUG,
140
+ logLevel: process.env.NODE_ENV === "production" ? W.ERROR : W.DEBUG,
783
141
  maxHeight: "80vh",
784
142
  minHeight: "200",
785
143
  outputFontSize: "0.875rem",
@@ -790,94 +148,94 @@ const M = {
790
148
  maxCommands: 100
791
149
  }
792
150
  };
793
- class gn {
794
- constructor(n) {
795
- A(this, "config");
151
+ class se {
152
+ constructor(e) {
153
+ b(this, "config");
796
154
  this.config = {
797
155
  type: "localStorage",
798
156
  maxCommands: 100,
799
- ...n
157
+ ...e
800
158
  };
801
159
  }
802
160
  /**
803
161
  * Add a command to history, enforcing storage limits
804
162
  */
805
- async addStoredCommand(n) {
806
- const t = await this.getStoredCommands();
807
- for (t.push(n); t.length > this.config.maxCommands; )
808
- t.shift();
809
- await this.saveCommands(t);
163
+ async addStoredCommand(e) {
164
+ const n = await this.getStoredCommands();
165
+ for (n.push(e); n.length > this.config.maxCommands; )
166
+ n.shift();
167
+ await this.saveCommands(n);
810
168
  }
811
169
  }
812
- class ht extends gn {
813
- constructor(t) {
814
- super(t);
815
- A(this, "storageKey", "citadel_command_history");
170
+ class Ie extends se {
171
+ constructor(n) {
172
+ super(n);
173
+ b(this, "storageKey", "citadel_command_history");
816
174
  }
817
175
  async getStoredCommands() {
818
176
  try {
819
- const t = window.localStorage.getItem(this.storageKey);
820
- return t ? JSON.parse(t).map((a) => ({
821
- commandSegments: a.commandSegments || [],
822
- timestamp: a.timestamp
177
+ const n = window.localStorage.getItem(this.storageKey);
178
+ return n ? JSON.parse(n).map((o) => ({
179
+ commandSegments: o.commandSegments || [],
180
+ timestamp: o.timestamp
823
181
  })) : [];
824
- } catch (t) {
825
- return console.warn("Failed to load commands from localStorage:", t), [];
182
+ } catch (n) {
183
+ return console.warn("Failed to load commands from localStorage:", n), [];
826
184
  }
827
185
  }
828
186
  async clear() {
829
187
  try {
830
188
  window.localStorage.removeItem(this.storageKey);
831
- } catch (t) {
832
- console.warn("Failed to clear localStorage:", t);
189
+ } catch (n) {
190
+ console.warn("Failed to clear localStorage:", n);
833
191
  }
834
192
  }
835
- async saveCommands(t) {
193
+ async saveCommands(n) {
836
194
  try {
837
- const r = t.map((a) => ({
838
- commandSegments: Array.isArray(a.commandSegments) ? [...a.commandSegments] : [],
839
- timestamp: a.timestamp
195
+ const t = n.map((o) => ({
196
+ commandSegments: Array.isArray(o.commandSegments) ? [...o.commandSegments] : [],
197
+ timestamp: o.timestamp
840
198
  }));
841
- window.localStorage.setItem(this.storageKey, JSON.stringify(r));
842
- } catch (r) {
843
- throw console.warn("Failed to save commands to localStorage:", r), r;
199
+ window.localStorage.setItem(this.storageKey, JSON.stringify(t));
200
+ } catch (t) {
201
+ throw console.warn("Failed to save commands to localStorage:", t), t;
844
202
  }
845
203
  }
846
204
  }
847
- class gt extends gn {
848
- constructor(t) {
849
- super(t);
850
- A(this, "storedCommands", []);
205
+ class Re extends se {
206
+ constructor(n) {
207
+ super(n);
208
+ b(this, "storedCommands", []);
851
209
  }
852
210
  async getStoredCommands() {
853
- return this.storedCommands.map((t) => ({
854
- commandSegments: Array.isArray(t.commandSegments) ? [...t.commandSegments] : [],
855
- timestamp: t.timestamp
211
+ return this.storedCommands.map((n) => ({
212
+ commandSegments: Array.isArray(n.commandSegments) ? [...n.commandSegments] : [],
213
+ timestamp: n.timestamp
856
214
  }));
857
215
  }
858
216
  async clear() {
859
217
  this.storedCommands = [];
860
218
  }
861
- async saveCommands(t) {
862
- this.storedCommands = t.map((r) => ({
863
- commandSegments: Array.isArray(r.commandSegments) ? [...r.commandSegments] : [],
864
- timestamp: r.timestamp
219
+ async saveCommands(n) {
220
+ this.storedCommands = n.map((t) => ({
221
+ commandSegments: Array.isArray(t.commandSegments) ? [...t.commandSegments] : [],
222
+ timestamp: t.timestamp
865
223
  }));
866
224
  }
867
225
  }
868
- const q = class q {
226
+ const D = class D {
869
227
  constructor() {
870
- A(this, "currentStorage");
228
+ b(this, "currentStorage");
871
229
  }
872
230
  static getInstance() {
873
- return q.instance || (q.instance = new q()), q.instance;
231
+ return D.instance || (D.instance = new D()), D.instance;
874
232
  }
875
- initializeStorage(n) {
233
+ initializeStorage(e) {
876
234
  if (!this.currentStorage)
877
235
  try {
878
- this.currentStorage = new ht(n);
879
- } catch (t) {
880
- console.warn("Failed to create storage, falling back to memory storage:", t), this.currentStorage = new gt(n);
236
+ this.currentStorage = new Ie(e);
237
+ } catch (n) {
238
+ console.warn("Failed to create storage, falling back to memory storage:", n), this.currentStorage = new Re(e);
881
239
  }
882
240
  }
883
241
  getStorage() {
@@ -886,39 +244,39 @@ const q = class q {
886
244
  return this.currentStorage;
887
245
  }
888
246
  };
889
- A(q, "instance");
890
- let ye = q;
891
- const bn = async () => new hn("");
892
- class Ne {
893
- constructor(n, t, r) {
894
- this.type = n, this.name = t, this.description = r;
247
+ b(D, "instance");
248
+ let q = D;
249
+ const ae = async () => new oe("");
250
+ class G {
251
+ constructor(e, n, t) {
252
+ this.type = e, this.name = n, this.description = t;
895
253
  }
896
254
  toString() {
897
255
  return this.name;
898
256
  }
899
257
  }
900
- class wn extends Ne {
258
+ class ie extends G {
901
259
  constructor() {
902
260
  super("null", ">null<", "Empty segment");
903
261
  }
904
262
  }
905
- class bt extends Ne {
906
- constructor(n, t) {
907
- super("word", n, t);
263
+ class Pe extends G {
264
+ constructor(e, n) {
265
+ super("word", e, n);
908
266
  }
909
267
  }
910
- class wt extends Ne {
911
- constructor(n, t, r, a) {
912
- super("argument", n, t), this.value = r, this.valid = a;
268
+ class He extends G {
269
+ constructor(e, n, t, o) {
270
+ super("argument", e, n), this.value = t, this.valid = o;
913
271
  }
914
272
  }
915
- class yt {
916
- constructor(n, t, r = bn) {
917
- A(this, "_segments");
918
- A(this, "_description");
273
+ class De {
274
+ constructor(e, n, t = ae) {
275
+ b(this, "_segments");
276
+ b(this, "_description");
919
277
  // Used by `Help` command, etc.
920
- A(this, "_handler");
921
- this._segments = n, this._description = t, this._handler = r;
278
+ b(this, "_handler");
279
+ this._segments = e, this._description = n, this._handler = t;
922
280
  }
923
281
  get segments() {
924
282
  return this._segments;
@@ -930,21 +288,21 @@ class yt {
930
288
  return this._handler;
931
289
  }
932
290
  get hasArguments() {
933
- return this.segments.some((n) => n.type === "argument");
291
+ return this.segments.some((e) => e.type === "argument");
934
292
  }
935
293
  get fullPath() {
936
- return this.segments.map((n) => n.name);
294
+ return this.segments.map((e) => e.name);
937
295
  }
938
296
  get fullPath_s() {
939
297
  return this.fullPath.join(" ");
940
298
  }
941
- equals(n) {
942
- return this.fullPath.join(" ") === n.fullPath.join(" ");
299
+ equals(e) {
300
+ return this.fullPath.join(" ") === e.fullPath.join(" ");
943
301
  }
944
302
  }
945
- class Ie {
303
+ class J {
946
304
  constructor() {
947
- A(this, "_commands", []);
305
+ b(this, "_commands", []);
948
306
  }
949
307
  get commands() {
950
308
  return this._commands;
@@ -956,20 +314,20 @@ class Ie {
956
314
  * @throws {Error} If attempting to add a duplicate leaf command or a subcommand to a leaf
957
315
  *
958
316
  */
959
- addCommand(n, t, r = bn) {
960
- if (n === void 0 || n.length === 0)
317
+ addCommand(e, n, t = ae) {
318
+ if (e === void 0 || e.length === 0)
961
319
  throw new Error("Command path cannot be empty");
962
- const a = new yt(n, t, r), i = this._commands.find((u) => {
963
- const f = u.segments.map(
964
- (m) => m.type === "argument" ? "*" : m.name
965
- ).join(" "), c = n.map(
966
- (m) => m.type === "argument" ? "*" : m.name
320
+ const o = new De(e, n, t), s = this._commands.find((i) => {
321
+ const c = i.segments.map(
322
+ (l) => l.type === "argument" ? "*" : l.name
323
+ ).join(" "), d = e.map(
324
+ (l) => l.type === "argument" ? "*" : l.name
967
325
  ).join(" ");
968
- return f === c;
326
+ return c === d;
969
327
  });
970
- if (i)
971
- throw new Error(`Duplicate commands: '${i.fullPath_s}' and '${a.fullPath_s}'`);
972
- this._commands.push(a);
328
+ if (s)
329
+ throw new Error(`Duplicate commands: '${s.fullPath_s}' and '${o.fullPath_s}'`);
330
+ this._commands.push(o);
973
331
  }
974
332
  /**
975
333
  * Retrieves a command from the registry for the given path.
@@ -977,24 +335,27 @@ class Ie {
977
335
  * @param path The path of the command.
978
336
  * @returns The command node or undefined if not found.
979
337
  */
980
- getCommand(n) {
981
- return this._commands.find((t) => {
982
- const r = t.fullPath.join(" "), a = n.join(" ");
983
- return r === a;
338
+ getCommand(e) {
339
+ return this._commands.find((n) => {
340
+ const t = n.fullPath.join(" "), o = e.join(" ");
341
+ if (t === o)
342
+ return !0;
343
+ const i = n.segments.filter((c) => c.type === "word").map((c) => c.name);
344
+ return i.length === e.length && i.join(" ") === o;
984
345
  });
985
346
  }
986
- commandExistsForPath(n) {
987
- const t = this._commands.map(
988
- (a) => a.segments.map(
989
- (i) => i.type === "argument" ? "*" : i.name
347
+ commandExistsForPath(e) {
348
+ const n = this._commands.map(
349
+ (o) => o.segments.map(
350
+ (s) => s.type === "argument" ? "*" : s.name
990
351
  ).join(" ")
991
- ), r = n.map((a, i) => this._commands.some(
992
- (f) => {
993
- var c;
994
- return ((c = f.segments[i]) == null ? void 0 : c.type) === "argument";
352
+ ), t = e.map((o, s) => this._commands.some(
353
+ (c) => {
354
+ var d;
355
+ return ((d = c.segments[s]) == null ? void 0 : d.type) === "argument";
995
356
  }
996
- ) ? "*" : a).join(" ");
997
- return t.includes(r);
357
+ ) ? "*" : o).join(" ");
358
+ return n.includes(t);
998
359
  }
999
360
  /**
1000
361
  * Gets possible matches for a given path.
@@ -1003,8 +364,8 @@ class Ie {
1003
364
  * @returns An array of completion strings.
1004
365
  */
1005
366
  // used by AvailableCommands
1006
- getCompletions_s(n) {
1007
- return this.getCompletions(n).map((t) => t.name);
367
+ getCompletions_s(e) {
368
+ return this.getCompletions(e).map((n) => n.name);
1008
369
  }
1009
370
  /**
1010
371
  * Gets an array of segments reachable from a given path
@@ -1012,51 +373,51 @@ class Ie {
1012
373
  * @param path The path to get completions for.
1013
374
  * @returns An array of completion strings.
1014
375
  */
1015
- getCompletions(n) {
1016
- if (D.debug("[getCompletions] path: ", n), !n.length) {
1017
- const i = this._commands.map((c) => c.segments[0]), u = (c, m) => c.type === m.type && c.name === m.name;
1018
- return i.filter(
1019
- (c, m, h) => m === h.findIndex((b) => u(b, c))
376
+ getCompletions(e) {
377
+ if (C.debug("[getCompletions] path: ", e), !e.length) {
378
+ const s = this._commands.map((d) => d.segments[0]), i = (d, l) => d.type === l.type && d.name === l.name;
379
+ return s.filter(
380
+ (d, l, u) => l === u.findIndex((p) => i(p, d))
1020
381
  );
1021
382
  }
1022
- const t = n.length;
1023
- return this._commands.filter((i) => {
1024
- const u = i.segments;
1025
- if (u.length <= t - 1)
383
+ const n = e.length;
384
+ return this._commands.filter((s) => {
385
+ const i = s.segments;
386
+ if (i.length <= n - 1)
1026
387
  return !1;
1027
- for (let f = 0; f < t; f++) {
1028
- const c = n[f], m = u[f];
1029
- if (!(c === "*" && m.type === "argument") && c !== m.name)
388
+ for (let c = 0; c < n; c++) {
389
+ const d = e[c], l = i[c];
390
+ if (!(d === "*" && l.type === "argument") && d !== l.name)
1030
391
  return !1;
1031
392
  }
1032
393
  return !0;
1033
- }).filter((i) => i.segments.length > t).map((i) => {
1034
- const u = i.segments[t], f = u.type === "argument" ? wt : bt;
1035
- return new f(u.name, u.description);
394
+ }).filter((s) => s.segments.length > n).map((s) => {
395
+ const i = s.segments[n], c = i.type === "argument" ? He : Pe;
396
+ return new c(i.name, i.description);
1036
397
  }).filter(
1037
- (i, u, f) => u === f.findIndex(
1038
- (c) => c.type === i.type && c.name === i.name
398
+ (s, i, c) => i === c.findIndex(
399
+ (d) => d.type === s.type && d.name === s.name
1039
400
  )
1040
401
  );
1041
402
  }
1042
- hasNextSegment(n) {
1043
- return this.getCompletions(n).length > 0;
403
+ hasNextSegment(e) {
404
+ return this.getCompletions(e).length > 0;
1044
405
  }
1045
406
  }
1046
- class yn {
407
+ class le {
1047
408
  constructor() {
1048
- A(this, "segments", []);
1049
- A(this, "nullSegment", new wn());
1050
- A(this, "observers", []);
409
+ b(this, "segments", []);
410
+ b(this, "nullSegment", new ie());
411
+ b(this, "observers", []);
1051
412
  }
1052
- subscribe(n) {
1053
- this.observers.push(n);
413
+ subscribe(e) {
414
+ this.observers.push(e);
1054
415
  }
1055
- unsubscribe(n) {
1056
- this.observers = this.observers.filter((t) => t !== n);
416
+ unsubscribe(e) {
417
+ this.observers = this.observers.filter((n) => n !== e);
1057
418
  }
1058
419
  notifyObservers() {
1059
- this.observers.forEach((n) => n.update());
420
+ this.observers.forEach((e) => e.update());
1060
421
  }
1061
422
  /**
1062
423
  * Clears all segments from the stack
@@ -1067,22 +428,22 @@ class yn {
1067
428
  /**
1068
429
  * Pushes a new segment onto the stack
1069
430
  */
1070
- push(n) {
1071
- this.segments.push(n), this.notifyObservers();
431
+ push(e) {
432
+ this.segments.push(e), this.notifyObservers();
1072
433
  }
1073
434
  /**
1074
435
  * Pushes an array of segments onto the stack
1075
436
  */
1076
- pushAll(n) {
1077
- n.forEach((t) => this.push(t));
437
+ pushAll(e) {
438
+ e.forEach((n) => this.push(n));
1078
439
  }
1079
440
  /**
1080
441
  * Removes and returns the top segment from the stack
1081
442
  * Returns NullSegment if stack is empty
1082
443
  */
1083
444
  pop() {
1084
- const n = this.segments.pop() || this.nullSegment;
1085
- return this.notifyObservers(), n;
445
+ const e = this.segments.pop() || this.nullSegment;
446
+ return this.notifyObservers(), e;
1086
447
  }
1087
448
  /**
1088
449
  * Returns the top segment without removing it
@@ -1107,21 +468,21 @@ class yn {
1107
468
  * Returns true if any segment in the stack is an argument
1108
469
  */
1109
470
  get hasArguments() {
1110
- return this.segments.some((n) => n.type === "argument");
471
+ return this.segments.some((e) => e.type === "argument");
1111
472
  }
1112
473
  /**
1113
474
  * Returns all argument segments in the stack
1114
475
  */
1115
476
  get arguments() {
1116
477
  return this.segments.filter(
1117
- (n) => n.type === "argument"
478
+ (e) => e.type === "argument"
1118
479
  );
1119
480
  }
1120
481
  /**
1121
482
  * Returns the command path as an array of segment names
1122
483
  */
1123
484
  path() {
1124
- return this.segments.map((n) => n.name);
485
+ return this.segments.map((e) => e.name);
1125
486
  }
1126
487
  /**
1127
488
  * Returns a copy of the internal segments array
@@ -1130,240 +491,240 @@ class yn {
1130
491
  return [...this.segments];
1131
492
  }
1132
493
  }
1133
- const vt = {
1134
- config: M,
1135
- commands: new Ie(),
1136
- segmentStack: new yn()
1137
- }, le = Zn(vt), xt = ({ config: o = M, commandRegistry: n, children: t }) => {
1138
- const [r, a] = Q.useState(), i = {
1139
- ...M,
1140
- ...o,
494
+ const Ue = {
495
+ config: A,
496
+ commands: new J(),
497
+ segmentStack: new le()
498
+ }, O = fe(Ue), Fe = ({ config: r = A, commandRegistry: e, children: n }) => {
499
+ const [t, o] = L.useState(), s = {
500
+ ...A,
501
+ ...r,
1141
502
  // Ensure nested objects are properly merged
1142
503
  storage: {
1143
- ...M.storage,
1144
- ...o.storage
504
+ ...A.storage,
505
+ ...r.storage
1145
506
  },
1146
507
  // Ensure explicit values from config take precedence
1147
- cursorType: o.cursorType ?? M.cursorType,
1148
- cursorColor: o.cursorColor ?? M.cursorColor,
1149
- cursorSpeed: o.cursorSpeed ?? M.cursorSpeed,
1150
- showCitadelKey: o.showCitadelKey || "."
508
+ cursorType: r.cursorType ?? A.cursorType,
509
+ cursorColor: r.cursorColor ?? A.cursorColor,
510
+ cursorSpeed: r.cursorSpeed ?? A.cursorSpeed,
511
+ showCitadelKey: r.showCitadelKey || "."
1151
512
  };
1152
- z(() => {
1153
- ye.getInstance().initializeStorage(
1154
- i.storage ?? M.storage
1155
- ), a(ye.getInstance().getStorage());
1156
- }, []), z(() => {
1157
- if (n && i.includeHelpCommand && !n.commandExistsForPath(["help"])) {
1158
- const f = ft(n);
1159
- n.addCommand(
513
+ _(() => {
514
+ q.getInstance().initializeStorage(
515
+ s.storage ?? A.storage
516
+ ), o(q.getInstance().getStorage());
517
+ }, []), _(() => {
518
+ if (e && s.includeHelpCommand && !e.commandExistsForPath(["help"])) {
519
+ const c = ze(e);
520
+ e.addCommand(
1160
521
  [{ type: "word", name: "help" }],
1161
522
  "Show available commands",
1162
- f
523
+ c
1163
524
  );
1164
525
  }
1165
- }, [n, i.includeHelpCommand]);
1166
- const u = {
1167
- config: i,
1168
- commands: n || new Ie(),
1169
- storage: r,
1170
- segmentStack: new yn()
526
+ }, [e, s.includeHelpCommand]);
527
+ const i = {
528
+ config: s,
529
+ commands: e || new J(),
530
+ storage: t,
531
+ segmentStack: new le()
1171
532
  };
1172
- return /* @__PURE__ */ p.jsx(le.Provider, { value: u, children: t });
1173
- }, ce = () => {
1174
- const o = ve(le);
1175
- if (o === void 0)
533
+ return /* @__PURE__ */ m(O.Provider, { value: i, children: n });
534
+ }, $ = () => {
535
+ const r = Y(O);
536
+ if (r === void 0)
1176
537
  throw new Error("useCitadelConfig must be used within a CitadelConfigProvider");
1177
- return o.config;
1178
- }, xe = () => {
1179
- const o = ve(le);
1180
- if (o === void 0)
538
+ return r.config;
539
+ }, B = () => {
540
+ const r = Y(O);
541
+ if (r === void 0)
1181
542
  throw new Error("useCitadelCommands must be used within a CitadelConfigProvider");
1182
- return o.commands;
1183
- }, vn = () => {
1184
- const o = ve(le);
1185
- if (o === void 0)
543
+ return r.commands;
544
+ }, ce = () => {
545
+ const r = Y(O);
546
+ if (r === void 0)
1186
547
  throw new Error("useCitadelStorage must be used within a CitadelConfigProvider");
1187
- return o.storage;
1188
- }, ue = () => {
1189
- const o = ve(le);
1190
- if (o === void 0)
548
+ return r.storage;
549
+ }, K = () => {
550
+ const r = Y(O);
551
+ if (r === void 0)
1191
552
  throw new Error("useSegmentStack must be used within a CitadelConfigProvider");
1192
- return o.segmentStack;
553
+ return r.segmentStack;
1193
554
  };
1194
- class Ct {
1195
- constructor(n, t) {
1196
- A(this, "timestamp");
1197
- A(this, "command");
1198
- A(this, "result");
1199
- this.command = n.toArray().map((r) => r.type === "argument" ? r.value || "" : r.name), this.timestamp = Date.now(), this.result = t ?? new pt();
555
+ class Te {
556
+ constructor(e, n) {
557
+ b(this, "timestamp");
558
+ b(this, "command");
559
+ b(this, "result");
560
+ this.command = e.toArray().map((t) => t.type === "argument" ? t.value || "" : t.name), this.timestamp = Date.now(), this.result = n ?? new Ae();
1200
561
  }
1201
562
  }
1202
- function St(o) {
563
+ function je(r) {
1203
564
  return {
1204
- commandSegments: o,
565
+ commandSegments: r,
1205
566
  timestamp: Date.now()
1206
567
  };
1207
568
  }
1208
- function xn() {
1209
- const o = vn(), [n, t] = Y({
569
+ function de() {
570
+ const r = ce(), [e, n] = R({
1210
571
  storedCommands: [],
1211
572
  position: null
1212
- }), r = R(async (f) => {
1213
- if (o)
573
+ }), t = w(async (c) => {
574
+ if (r)
1214
575
  try {
1215
- const c = St(f);
1216
- await o.addStoredCommand(c), t((m) => ({
1217
- ...m,
1218
- storedCommands: [...m.storedCommands, c],
576
+ const d = je(c);
577
+ await r.addStoredCommand(d), n((l) => ({
578
+ ...l,
579
+ storedCommands: [...l.storedCommands, d],
1219
580
  position: null
1220
581
  }));
1221
- } catch (c) {
1222
- console.warn("Failed to save command to history:", c);
582
+ } catch (d) {
583
+ console.warn("Failed to save command to history:", d);
1223
584
  }
1224
- }, [o]), a = R(async () => o ? await o.getStoredCommands() : [], [o]);
1225
- z(() => {
1226
- if (!o) return;
585
+ }, [r]), o = w(async () => r ? await r.getStoredCommands() : [], [r]);
586
+ _(() => {
587
+ if (!r) return;
1227
588
  (async () => {
1228
589
  try {
1229
- const c = await o.getStoredCommands();
1230
- return t((m) => ({
1231
- ...m,
1232
- storedCommands: c
1233
- })), c;
1234
- } catch (c) {
1235
- console.warn("Failed to load command history:", c);
590
+ const d = await r.getStoredCommands();
591
+ return n((l) => ({
592
+ ...l,
593
+ storedCommands: d
594
+ })), d;
595
+ } catch (d) {
596
+ console.warn("Failed to load command history:", d);
1236
597
  }
1237
598
  })();
1238
- }, [o]);
1239
- const i = R(async (f) => {
1240
- if ((await a()).length === 0)
599
+ }, [r]);
600
+ const s = w(async (c) => {
601
+ if ((await o()).length === 0)
1241
602
  return { segments: null, position: null };
1242
- let m = null;
1243
- return f === "up" ? n.position === null ? m = n.storedCommands.length - 1 : n.position > 0 ? m = n.position - 1 : m = 0 : n.position === null || n.position >= n.storedCommands.length - 1 ? m = null : m = n.position + 1, t((b) => ({
1244
- ...b,
1245
- position: m
1246
- })), m === null ? {
603
+ let l = null;
604
+ return c === "up" ? e.position === null ? l = e.storedCommands.length - 1 : e.position > 0 ? l = e.position - 1 : l = 0 : e.position === null || e.position >= e.storedCommands.length - 1 ? l = null : l = e.position + 1, n((p) => ({
605
+ ...p,
606
+ position: l
607
+ })), l === null ? {
1247
608
  segments: [],
1248
609
  position: null
1249
610
  } : {
1250
- segments: m !== null ? n.storedCommands[m].commandSegments : null,
1251
- position: m
611
+ segments: l !== null ? e.storedCommands[l].commandSegments : null,
612
+ position: l
1252
613
  };
1253
- }, [n, a]), u = R(async () => {
614
+ }, [e, o]), i = w(async () => {
1254
615
  try {
1255
- if (!o) return;
1256
- await o.clear(), t({
616
+ if (!r) return;
617
+ await r.clear(), n({
1257
618
  storedCommands: [],
1258
619
  position: null
1259
620
  });
1260
- } catch (f) {
1261
- console.warn("Failed to clear command history:", f);
621
+ } catch (c) {
622
+ console.warn("Failed to clear command history:", c);
1262
623
  }
1263
- }, [o]);
624
+ }, [r]);
1264
625
  return {
1265
- history: n,
1266
- addStoredCommand: r,
1267
- getStoredCommands: a,
1268
- navigateHistory: i,
1269
- clear: u
626
+ history: e,
627
+ addStoredCommand: t,
628
+ getStoredCommands: o,
629
+ navigateHistory: s,
630
+ clear: i
1270
631
  };
1271
632
  }
1272
- const Cn = () => {
1273
- const o = ce(), n = xe(), t = xn(), r = ue(), a = vn(), [i, u] = Y({
633
+ const me = () => {
634
+ const r = $(), e = B(), n = de(), t = K(), o = ce(), [s, i] = R({
1274
635
  currentInput: "",
1275
636
  isEnteringArg: !1,
1276
637
  output: [],
1277
638
  history: {
1278
639
  commands: [],
1279
640
  position: null,
1280
- storage: a
641
+ storage: o
1281
642
  }
1282
643
  });
1283
- z(() => {
1284
- }, [a]), z(() => {
1285
- u((h) => ({
1286
- ...h,
644
+ _(() => {
645
+ }, [o]), _(() => {
646
+ i((u) => ({
647
+ ...u,
1287
648
  history: {
1288
- commands: t.history.storedCommands,
1289
- position: t.history.position,
1290
- storage: a
649
+ commands: n.history.storedCommands,
650
+ position: n.history.position,
651
+ storage: o
1291
652
  }
1292
653
  }));
1293
- }, [t.history, a]);
1294
- const f = {
1295
- setCurrentInput: R((h) => {
1296
- D.debug("[CitadelActions] setCurrentInput: ", h), u((b) => ({ ...b, currentInput: h }));
654
+ }, [n.history, o]);
655
+ const c = {
656
+ setCurrentInput: w((u) => {
657
+ C.debug("[CitadelActions] setCurrentInput: ", u), i((p) => ({ ...p, currentInput: u }));
1297
658
  }, []),
1298
- setIsEnteringArg: R((h) => {
1299
- D.debug("[CitadelActions] setIsEnteringArg: ", h), u((b) => ({ ...b, isEnteringArg: h }));
659
+ setIsEnteringArg: w((u) => {
660
+ C.debug("[CitadelActions] setIsEnteringArg: ", u), i((p) => ({ ...p, isEnteringArg: u }));
1300
661
  }, []),
1301
- addOutput: R((h) => {
1302
- D.debug("[CitadelActions]addOutput: ", h), u((b) => ({
1303
- ...b,
1304
- output: [...b.output, h]
662
+ addOutput: w((u) => {
663
+ C.debug("[CitadelActions]addOutput: ", u), i((p) => ({
664
+ ...p,
665
+ output: [...p.output, u]
1305
666
  }));
1306
667
  }, []),
1307
- executeCommand: R(async () => {
1308
- const h = r.path(), b = n.getCommand(h);
1309
- if (!b) {
1310
- console.error("[CitadelActions][executeCommand] Cannot execute command because no command was found for the given path: ", h);
668
+ executeCommand: w(async () => {
669
+ const u = t.path(), p = e.getCommand(u);
670
+ if (!p) {
671
+ console.error("[CitadelActions][executeCommand] Cannot execute command because no command was found for the given path: ", u);
1311
672
  return;
1312
673
  }
1313
- const _ = new Ct(r);
1314
- u((S) => ({
1315
- ...S,
1316
- output: [...S.output, _]
674
+ const S = new Te(t);
675
+ i((y) => ({
676
+ ...y,
677
+ output: [...y.output, S]
1317
678
  }));
1318
679
  try {
1319
- const S = new Promise((d, y) => {
680
+ const y = new Promise((a, g) => {
1320
681
  setTimeout(() => {
1321
- y(new Error("Request timed out"));
1322
- }, o.commandTimeoutMs);
1323
- }), U = r.arguments.map((d) => d.value || ""), I = await Promise.race([
1324
- b.handler(U),
1325
- S
682
+ g(new Error("Request timed out"));
683
+ }, r.commandTimeoutMs);
684
+ }), z = t.arguments.map((a) => a.value || ""), E = await Promise.race([
685
+ p.handler(z),
686
+ y
1326
687
  ]);
1327
- if (!(I instanceof Z))
688
+ if (!(E instanceof F))
1328
689
  throw new Error(
1329
- `The ${h.join(".")} command returned an invalid result type. Commands must return an instance of a CommandResult.
690
+ `The ${u.join(".")} command returned an invalid result type. Commands must return an instance of a CommandResult.
1330
691
  For example:
1331
692
  return new JsonCommandResult({ text: "Hello World" });
1332
- Check the definition of the ${h.join(".")} command and update the return type for its handler.`
693
+ Check the definition of the ${u.join(".")} command and update the return type for its handler.`
1333
694
  );
1334
- I.markSuccess(), u((d) => ({
1335
- ...d,
1336
- output: d.output.map(
1337
- (y) => y.timestamp === _.timestamp ? { ...y, result: I } : y
695
+ E.markSuccess(), i((a) => ({
696
+ ...a,
697
+ output: a.output.map(
698
+ (g) => g.timestamp === S.timestamp ? { ...g, result: E } : g
1338
699
  )
1339
700
  }));
1340
- } catch (S) {
1341
- const U = new mt(
1342
- S instanceof Error ? S.message : "Unknown error"
701
+ } catch (y) {
702
+ const z = new _e(
703
+ y instanceof Error ? y.message : "Unknown error"
1343
704
  );
1344
- U.markFailure(), u((I) => ({
1345
- ...I,
1346
- output: I.output.map(
1347
- (d) => d.timestamp === _.timestamp ? { ...d, result: U } : d
705
+ z.markFailure(), i((E) => ({
706
+ ...E,
707
+ output: E.output.map(
708
+ (a) => a.timestamp === S.timestamp ? { ...a, result: z } : a
1348
709
  )
1349
710
  }));
1350
711
  }
1351
- }, [n, o.commandTimeoutMs, r]),
1352
- clearHistory: R(async () => {
712
+ }, [e, r.commandTimeoutMs, t]),
713
+ clearHistory: w(async () => {
1353
714
  try {
1354
- await t.clear();
1355
- } catch (h) {
1356
- console.warn("Failed to clear history:", h);
715
+ await n.clear();
716
+ } catch (u) {
717
+ console.warn("Failed to clear history:", u);
1357
718
  }
1358
- }, [t])
1359
- }, c = R(() => n.getCompletions_s(r.path()), [r, n]), m = R(() => n.getCompletions(r.path()), [r, n]);
719
+ }, [n])
720
+ }, d = w(() => e.getCompletions_s(t.path()), [t, e]), l = w(() => e.getCompletions(t.path()), [t, e]);
1360
721
  return {
1361
- state: i,
1362
- actions: f,
1363
- getAvailableCommands_s: c,
1364
- getAvailableCommandSegments: m
722
+ state: s,
723
+ actions: c,
724
+ getAvailableCommands_s: d,
725
+ getAvailableCommandSegments: l
1365
726
  };
1366
- }, Et = {
727
+ }, Me = {
1367
728
  blink: {
1368
729
  character: "▋",
1369
730
  speed: 530,
@@ -1384,301 +745,300 @@ Check the definition of the ${h.join(".")} command and update the return type fo
1384
745
  speed: 120,
1385
746
  color: "#fff"
1386
747
  }
1387
- }, cn = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], un = ["|", "/", "-", "\\"], kt = ({
1388
- style: o = { type: "blink" },
1389
- isValid: n = !0,
1390
- errorMessage: t
748
+ }, X = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], Z = ["|", "/", "-", "\\"], Oe = ({
749
+ style: r = { type: "blink" },
750
+ isValid: e = !0,
751
+ errorMessage: n
1391
752
  }) => {
1392
- const r = be(() => ({
1393
- ...Et[o.type],
1394
- ...o
1395
- }), [o]), [a, i] = Y(!0), [u, f] = Y(0);
1396
- z(() => {
1397
- if (r.speed === 0) return;
1398
- const h = setInterval(() => {
1399
- r.type === "blink" ? i((b) => !b) : ["spin", "bbs"].includes(r.type) && f((b) => (b + 1) % (r.type === "bbs" ? un.length : cn.length));
1400
- }, r.speed);
1401
- return () => clearInterval(h);
1402
- }, [r.type, r.speed]);
1403
- const c = be(() => ({
1404
- color: n ? r.color : "#ff4444",
753
+ const t = V(() => ({
754
+ ...Me[r.type],
755
+ ...r
756
+ }), [r]), [o, s] = R(!0), [i, c] = R(0);
757
+ _(() => {
758
+ if (t.speed === 0) return;
759
+ const u = setInterval(() => {
760
+ t.type === "blink" ? s((p) => !p) : ["spin", "bbs"].includes(t.type) && c((p) => (p + 1) % (t.type === "bbs" ? Z.length : X.length));
761
+ }, t.speed);
762
+ return () => clearInterval(u);
763
+ }, [t.type, t.speed]);
764
+ const d = V(() => ({
765
+ color: e ? t.color : "#ff4444",
1405
766
  transition: "color 0.15s ease-in-out"
1406
- }), [n, r.color]), m = () => !n && t ? "✗" : ["spin", "bbs"].includes(r.type) ? (r.type === "bbs" ? un : cn)[u] : r.type === "solid" || a ? r.character : " ";
1407
- return /* @__PURE__ */ p.jsx("div", { className: "relative inline-block", children: /* @__PURE__ */ p.jsx(
767
+ }), [e, t.color]);
768
+ return /* @__PURE__ */ m("div", { className: "relative inline-block", children: /* @__PURE__ */ m(
1408
769
  "span",
1409
770
  {
1410
- className: `command-cursor ${n ? "" : "animate-shake"}`,
1411
- style: c,
1412
- title: t,
1413
- children: m()
771
+ className: `command-cursor ${e ? "" : "animate-shake"}`,
772
+ style: d,
773
+ title: n,
774
+ children: !e && n ? "✗" : ["spin", "bbs"].includes(t.type) ? (t.type === "bbs" ? Z : X)[i] : t.type === "solid" || o ? t.character : " "
1414
775
  }
1415
776
  ) });
1416
777
  };
1417
- function _t(o, n) {
1418
- switch (n.type) {
778
+ function $e(r, e) {
779
+ switch (e.type) {
1419
780
  case "set":
1420
- return D.debug(`[inputStateReducer] InputState changing from ${o} to ${n.state}`), n.state;
781
+ return C.debug(`[inputStateReducer] InputState changing from ${r} to ${e.state}`), e.state;
1421
782
  default:
1422
- return o;
1423
- }
1424
- }
1425
- const Rt = () => {
1426
- const { state: o } = Cn(), n = xe(), t = xn(), r = ue(), [a, i] = et(_t, "idle"), u = (d) => {
1427
- i({ type: "set", state: d });
1428
- }, f = R(() => {
1429
- const y = n.getCompletions(r.path())[0] || r.nullSegment;
1430
- return D.debug("[getNextExpectedSegment] ", y), y;
1431
- }, [n, r]), c = R(() => n.getCompletions_s(r.path()).map((y) => n.getCommand([...r.path(), y])).filter((y) => y !== void 0), [n, r]), m = R((d, y) => {
1432
- if (!d) return y;
1433
- const w = y.reduce((k, j) => {
1434
- const P = f();
1435
- return (P == null ? void 0 : P.type) === "word" && k.set(P.name, j), k;
783
+ return r;
784
+ }
785
+ }
786
+ const Ke = () => {
787
+ const { state: r } = me(), e = B(), n = de(), t = K(), [o, s] = we($e, "idle"), i = (a) => {
788
+ s({ type: "set", state: a });
789
+ }, c = w(() => {
790
+ const g = e.getCompletions(t.path())[0] || t.nullSegment;
791
+ return C.debug("[getNextExpectedSegment] ", g), g;
792
+ }, [e, t]), d = w(() => e.getCompletions_s(t.path()).map((g) => e.getCommand([...t.path(), g])).filter((g) => g !== void 0), [e, t]), l = w((a, g) => {
793
+ if (!a) return g;
794
+ const h = g.reduce((f, x) => {
795
+ const v = c();
796
+ return (v == null ? void 0 : v.type) === "word" && f.set(v.name, x), f;
1436
797
  }, /* @__PURE__ */ new Map());
1437
- return Array.from(w.values()).filter(() => {
1438
- const k = f();
1439
- return k.type !== "word" ? !1 : k.name.toLowerCase().startsWith(d.toLowerCase());
798
+ return Array.from(h.values()).filter(() => {
799
+ const f = c();
800
+ return f.type !== "word" ? !1 : f.name.toLowerCase().startsWith(a.toLowerCase());
1440
801
  });
1441
- }, [f]), h = R((d) => {
1442
- const w = n.getCompletions(r.path()).filter((N) => N.type === "word").filter(
1443
- (N) => N.name.toLowerCase().startsWith(d.toLowerCase())
802
+ }, [c]), u = w((a) => {
803
+ const h = e.getCompletions(t.path()).filter((k) => k.type === "word").filter(
804
+ (k) => k.name.toLowerCase().startsWith(a.toLowerCase())
1444
805
  );
1445
- return w.length === 1 ? w[0] : r.nullSegment;
1446
- }, [n, r]), b = R((d) => {
1447
- const y = r.path(), w = n.getCompletions(y);
1448
- return w.length === 0 && d ? !1 : w.some((k) => k.type === "argument") ? !0 : w.some(
1449
- (k) => k.type === "word" && k.name.toLowerCase().startsWith(d.toLowerCase())
806
+ return h.length === 1 ? h[0] : t.nullSegment;
807
+ }, [e, t]), p = w((a) => {
808
+ const g = t.path(), h = e.getCompletions(g);
809
+ return h.length === 0 && a ? !1 : h.some((f) => f.type === "argument") ? !0 : h.some(
810
+ (f) => f.type === "word" && f.name.toLowerCase().startsWith(a.toLowerCase())
1450
811
  );
1451
- }, [n, r]), _ = R((d) => {
1452
- D.debug("[tryAutoComplete] input: ", d);
1453
- const y = h(d);
1454
- return !y || y.name === d ? new wn() : (D.debug("[tryAutoComplete] result: ", y), y);
1455
- }, [h]), S = R((d, y) => {
1456
- if (o.history.position === null) {
1457
- if (y.setCurrentInput(d), D.debug("[useCommandParser][handleInputChange] newValue: ", d), a === "entering_argument") {
1458
- const w = dn(d);
1459
- if (w.isQuoted)
1460
- if (w.isComplete) {
1461
- const N = f();
1462
- if (N.type === "argument") {
1463
- const k = N;
1464
- k.value = d.trim() || "", D.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", k), r.push(k), y.setCurrentInput(""), u("idle");
812
+ }, [e, t]), S = w((a) => {
813
+ C.debug("[tryAutoComplete] input: ", a);
814
+ const g = u(a);
815
+ return !g || g.name === a ? new ie() : (C.debug("[tryAutoComplete] result: ", g), g);
816
+ }, [u]), y = w((a, g) => {
817
+ if (r.history.position === null) {
818
+ if (g.setCurrentInput(a), C.debug("[useCommandParser][handleInputChange] newValue: ", a), o === "entering_argument") {
819
+ const h = ee(a);
820
+ if (h.isQuoted)
821
+ if (h.isComplete) {
822
+ const k = c();
823
+ if (k.type === "argument") {
824
+ const f = k;
825
+ f.value = a.trim() || "", C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", f), t.push(f), g.setCurrentInput(""), i("idle");
1465
826
  return;
1466
827
  }
1467
828
  } else
1468
829
  return;
1469
- else if (w.isComplete) {
1470
- const N = f();
1471
- N.value = d.trim() || "", D.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", N), r.push(N), y.setCurrentInput(""), u("idle");
830
+ else if (h.isComplete) {
831
+ const k = c();
832
+ k.value = a.trim() || "", C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", k), t.push(k), g.setCurrentInput(""), i("idle");
1472
833
  return;
1473
834
  } else
1474
835
  return;
1475
836
  }
1476
- if (a == "entering_command") {
1477
- const w = _(d);
1478
- if (w.type === "word") {
1479
- D.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", w), r.push(w), y.setCurrentInput(""), u("idle");
837
+ if (o == "entering_command") {
838
+ const h = S(a);
839
+ if (h.type === "word") {
840
+ C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", h), t.push(h), g.setCurrentInput(""), i("idle");
1480
841
  return;
1481
842
  }
1482
843
  }
1483
844
  }
1484
- }, [_, o, f, a, r]), U = R((d) => {
1485
- d.setCurrentInput(""), d.setIsEnteringArg(!1), r.clear(), u("idle");
1486
- }, [r]), I = R((d, y, w) => {
1487
- if (!(d.key === "Backspace" || d.key === "Enter" || d.key === "ArrowUp" || d.key === "ArrowDown" || d.key === "ArrowLeft" || d.key === "ArrowRight" || d.key === "Escape" || d.key === "Delete" || d.key === "Home" || d.key === "End" || d.key.length === 1))
845
+ }, [S, r, c, o, t]), z = w((a) => {
846
+ a.setCurrentInput(""), a.setIsEnteringArg(!1), t.clear(), i("idle");
847
+ }, [t]), E = w((a, g, h) => {
848
+ if (!(a.key === "Backspace" || a.key === "Enter" || a.key === "ArrowUp" || a.key === "ArrowDown" || a.key === "ArrowLeft" || a.key === "ArrowRight" || a.key === "Escape" || a.key === "Delete" || a.key === "Home" || a.key === "End" || a.key.length === 1))
1488
849
  return !0;
1489
- const { currentInput: k, isEnteringArg: j } = y, P = dn(k);
1490
- switch (d.key) {
850
+ const { currentInput: f, isEnteringArg: x } = g, v = ee(f);
851
+ switch (a.key) {
1491
852
  case "Backspace":
1492
- return k === "" && (d.preventDefault(), r.size() > 0 && r.pop(), u("idle")), !0;
853
+ return f === "" && (a.preventDefault(), t.size() > 0 && t.pop(), i("idle")), !0;
1493
854
  case "Enter": {
1494
- if (d.preventDefault(), P.isQuoted && !P.isComplete)
855
+ if (a.preventDefault(), v.isQuoted && !v.isComplete)
1495
856
  return !0;
1496
- if (a === "entering_argument") {
1497
- const L = f();
1498
- L.value = k, D.debug("[handleKeyDown][Enter]['entering_argument'] pushing: ", L), r.push(L);
857
+ if (o === "entering_argument" || x && f.trim()) {
858
+ const H = c();
859
+ H.value = f, C.debug("[handleKeyDown][Enter]['entering_argument'] pushing: ", H), t.push(H);
860
+ }
861
+ const I = t.path(), P = e.getCommand(I);
862
+ if (P) {
863
+ const T = P.segments.filter((j) => j.type === "argument"), H = t.arguments;
864
+ if (T.length > H.length)
865
+ return !1;
1499
866
  }
1500
- return D.debug("[handleKeyDown][Enter] calling actions.executeCommand. segmentStack: ", r), w.executeCommand(), t.addStoredCommand(r.toArray()), U(w), !0;
867
+ return C.debug("[handleKeyDown][Enter] calling actions.executeCommand. segmentStack: ", t), h.executeCommand(), n.addStoredCommand(t.toArray()), z(h), !0;
1501
868
  }
1502
869
  case "ArrowUp":
1503
- return d.preventDefault(), (async () => {
1504
- const $ = await t.navigateHistory("up", r.toArray());
1505
- return $.segments && (r.clear(), r.pushAll($.segments), w.setCurrentInput("")), !0;
870
+ return a.preventDefault(), (async () => {
871
+ const I = await n.navigateHistory("up", t.toArray());
872
+ return I.segments && (t.clear(), t.pushAll(I.segments), h.setCurrentInput("")), !0;
1506
873
  })();
1507
874
  case "ArrowDown":
1508
- return d.preventDefault(), (async () => {
1509
- const $ = await t.navigateHistory("down", r.toArray());
1510
- return $.segments && (r.clear(), r.pushAll($.segments), w.setCurrentInput("")), !0;
875
+ return a.preventDefault(), (async () => {
876
+ const I = await n.navigateHistory("down", t.toArray());
877
+ return I.segments && (t.clear(), t.pushAll(I.segments), h.setCurrentInput("")), !0;
1511
878
  })();
1512
879
  default: {
1513
- if (!j && d.key.length === 1) {
1514
- const $ = k + d.key;
1515
- if (!b($))
1516
- return d.preventDefault(), !1;
880
+ if (!x && a.key.length === 1) {
881
+ const I = f + a.key;
882
+ if (!p(I))
883
+ return a.preventDefault(), !1;
1517
884
  }
1518
885
  return !0;
1519
886
  }
1520
887
  }
1521
888
  }, [
1522
- a,
1523
- b,
1524
- f,
1525
- t,
1526
- U,
1527
- r
889
+ o,
890
+ p,
891
+ c,
892
+ n,
893
+ z,
894
+ t
1528
895
  ]);
1529
896
  return {
1530
- handleInputChange: S,
1531
- handleKeyDown: I,
1532
- inputState: a,
1533
- setInputStateWithLogging: u,
897
+ handleInputChange: y,
898
+ handleKeyDown: E,
899
+ inputState: o,
900
+ setInputStateWithLogging: i,
1534
901
  // Expose internal functions for testing
1535
- findMatchingCommands: m,
1536
- getAutocompleteSuggestion: h,
1537
- getAvailableNodes: c,
1538
- getNextExpectedSegment: f,
1539
- isValidCommandInput: b
902
+ findMatchingCommands: l,
903
+ getAutocompleteSuggestion: u,
904
+ getAvailableNodes: d,
905
+ getNextExpectedSegment: c,
906
+ isValidCommandInput: p
1540
907
  };
1541
908
  };
1542
- function dn(o) {
1543
- const n = [];
1544
- let t = "", r = !1, a;
1545
- for (let i = 0; i < o.length; i++) {
1546
- const u = o[i];
1547
- (u === '"' || u === "'") && (!r || u === a) ? r ? (n.push(t), t = "", r = !1, a = void 0) : (t && (n.push(t), t = ""), r = !0, a = u) : !r && u === " " ? t && (n.push(t), t = "") : t += u;
909
+ function ee(r) {
910
+ const e = [];
911
+ let n = "", t = !1, o;
912
+ for (let s = 0; s < r.length; s++) {
913
+ const i = r[s];
914
+ (i === '"' || i === "'") && (!t || i === o) ? t ? (e.push(n), n = "", t = !1, o = void 0) : (n && (e.push(n), n = ""), t = !0, o = i) : !t && i === " " ? n && (e.push(n), n = "") : n += i;
1548
915
  }
1549
916
  return {
1550
- words: n,
1551
- currentWord: t,
1552
- isQuoted: r,
1553
- quoteChar: a,
1554
- isComplete: !r && !t
917
+ words: e,
918
+ currentWord: n,
919
+ isQuoted: t,
920
+ quoteChar: o,
921
+ isComplete: !t && !n
1555
922
  };
1556
923
  }
1557
- const jt = () => {
1558
- const o = ue(), [n, t] = Y(0);
1559
- return z(() => {
1560
- const r = {
924
+ const Le = () => {
925
+ const r = K(), [e, n] = R(0);
926
+ return _(() => {
927
+ const t = {
1561
928
  update: () => {
1562
- t((a) => a + 1);
929
+ n((o) => o + 1);
1563
930
  }
1564
931
  };
1565
- return o.subscribe(r), () => {
1566
- o.unsubscribe(r);
932
+ return r.subscribe(t), () => {
933
+ r.unsubscribe(t);
1567
934
  };
1568
- }, [o]), n;
1569
- }, At = ({
1570
- state: o,
1571
- actions: n
935
+ }, [r]), e;
936
+ }, Ve = ({
937
+ state: r,
938
+ actions: e
1572
939
  }) => {
1573
- const t = X(null), r = xe(), a = ue(), {
1574
- handleKeyDown: i,
1575
- handleInputChange: u,
1576
- inputState: f,
1577
- setInputStateWithLogging: c,
1578
- getNextExpectedSegment: m
1579
- } = Rt(), [h, b] = Y(!1), _ = ce(), S = jt(), U = async (j) => {
1580
- const P = i(j, o, n);
1581
- await Promise.resolve(P) === !1 && (b(!0), setTimeout(() => b(!1), 500));
1582
- }, I = (j) => {
1583
- u(j.target.value, n);
1584
- }, d = (j) => {
1585
- j.preventDefault();
1586
- const P = j.clipboardData.getData("text");
1587
- u(P, n);
940
+ const n = U(null), t = B(), o = K(), {
941
+ handleKeyDown: s,
942
+ handleInputChange: i,
943
+ inputState: c,
944
+ setInputStateWithLogging: d,
945
+ getNextExpectedSegment: l
946
+ } = Ke(), [u, p] = R(!1), S = $(), y = Le(), z = async (x) => {
947
+ const v = s(x, r, e);
948
+ await Promise.resolve(v) === !1 && (p(!0), setTimeout(() => p(!1), 500));
949
+ }, E = (x) => {
950
+ i(x.target.value, e);
951
+ }, a = (x) => {
952
+ x.preventDefault();
953
+ const v = x.clipboardData.getData("text");
954
+ i(v, e);
1588
955
  };
1589
- z(() => {
1590
- t.current && t.current.focus(), f !== "entering_command" && c("entering_command");
1591
- }, [f, c]), z(() => {
1592
- if (f !== "idle") return;
1593
- const j = m();
1594
- let P = "idle";
1595
- switch (j.type) {
956
+ _(() => {
957
+ n.current && n.current.focus(), c !== "entering_command" && d("entering_command");
958
+ }, [c, d]), _(() => {
959
+ if (c !== "idle") return;
960
+ const x = l();
961
+ let v = "idle";
962
+ switch (x.type) {
1596
963
  case "word":
1597
- P = "entering_command", n.setIsEnteringArg(!1);
964
+ v = "entering_command", e.setIsEnteringArg(!1);
1598
965
  break;
1599
966
  case "argument":
1600
- P = "entering_argument", n.setIsEnteringArg(!0);
967
+ v = "entering_argument", e.setIsEnteringArg(!0);
1601
968
  break;
1602
969
  }
1603
- c(P);
1604
- }, [S, f, m, c, n]);
1605
- const [y, w] = Y([]);
1606
- z(() => {
1607
- const j = [], P = a.toArray().map((L, ee) => {
1608
- j.push(L.name);
1609
- const de = r.hasNextSegment(j);
1610
- if (L.type === "argument") {
1611
- const ne = L;
1612
- return /* @__PURE__ */ p.jsxs(Q.Fragment, { children: [
1613
- /* @__PURE__ */ p.jsx("span", { className: "text-gray-200 whitespace-pre", children: ne.value }),
1614
- ee < a.size() && de && /* @__PURE__ */ p.jsx("span", { className: "text-gray-200 whitespace-pre", children: " " })
1615
- ] }, "arg-" + ne.name + ne.value);
970
+ d(v);
971
+ }, [y, c, l, d, e]);
972
+ const [g, h] = R([]);
973
+ _(() => {
974
+ const x = [], v = o.toArray().map((P, T) => {
975
+ x.push(P.name);
976
+ const H = t.hasNextSegment(x);
977
+ if (P.type === "argument") {
978
+ const j = P;
979
+ return /* @__PURE__ */ N(L.Fragment, { children: [
980
+ /* @__PURE__ */ m("span", { className: "text-gray-200 whitespace-pre", children: j.value }),
981
+ T < o.size() && H && /* @__PURE__ */ m("span", { className: "text-gray-200 whitespace-pre", children: " " })
982
+ ] }, "arg-" + j.name + j.value);
1616
983
  }
1617
- return /* @__PURE__ */ p.jsxs(Q.Fragment, { children: [
1618
- /* @__PURE__ */ p.jsx("span", { className: "text-blue-400 whitespace-pre", children: L.name }),
1619
- ee < a.size() && de && /* @__PURE__ */ p.jsx("span", { className: "text-blue-400 whitespace-pre", children: " " })
1620
- ] }, "word-" + L.name);
984
+ return /* @__PURE__ */ N(L.Fragment, { children: [
985
+ /* @__PURE__ */ m("span", { className: "text-blue-400 whitespace-pre", children: P.name }),
986
+ T < o.size() && H && /* @__PURE__ */ m("span", { className: "text-blue-400 whitespace-pre", children: " " })
987
+ ] }, "word-" + P.name);
1621
988
  });
1622
- w([/* @__PURE__ */ p.jsx("div", { className: "flex items-center gap-1", "data-testid": "user-input-area", children: P }, "{segmentStackVersion}")]);
1623
- }, [S, r, a]);
1624
- const [N, k] = Y("");
1625
- return z(() => {
1626
- const j = m();
1627
- j.type === "argument" ? k(j.name) : k("");
1628
- }, [S, m]), /* @__PURE__ */ p.jsxs("div", { className: "flex flex-col w-full bg-gray-900 rounded-lg p-4", children: [
1629
- /* @__PURE__ */ p.jsx("style", { children: `
1630
- @keyframes shake {
1631
- 0%, 100% { transform: translateX(0); }
1632
- 25% { transform: translateX(-4px); }
1633
- 75% { transform: translateX(4px); }
1634
- }
1635
- @keyframes flashBorder {
1636
- 0%, 100% { border-color: transparent; }
1637
- 50% { border-color: rgb(239, 68, 68); }
989
+ h([/* @__PURE__ */ m("div", { className: "flex items-center gap-1", "data-testid": "user-input-area", children: v }, "{segmentStackVersion}")]);
990
+ }, [y, t, o]);
991
+ const [k, f] = R("");
992
+ return _(() => {
993
+ const x = l();
994
+ x.type === "argument" ? f(x.name) : f("");
995
+ }, [y, l]), /* @__PURE__ */ N("div", { className: "flex flex-col w-full bg-gray-900 rounded-lg p-4", children: [
996
+ /* @__PURE__ */ m("style", { children: `
997
+ @keyframes subtleGlow {
998
+ 0%, 100% { box-shadow: 0 0 0 rgba(239, 68, 68, 0); }
999
+ 50% { box-shadow: 0 0 8px rgba(239, 68, 68, 0.6); }
1638
1000
  }
1639
1001
  .invalid-input-animation {
1640
- animation: shake 0.2s ease-in-out, flashBorder 0.3s ease-in-out;
1641
- border-width: 1px;
1642
- border-style: solid;
1002
+ animation: subtleGlow 0.4s ease-in-out;
1643
1003
  }
1644
1004
  ` }),
1645
- /* @__PURE__ */ p.jsxs("div", { className: "flex items-center gap-2", children: [
1646
- /* @__PURE__ */ p.jsx("div", { className: "text-gray-400 font-mono", children: ">" }),
1647
- /* @__PURE__ */ p.jsxs("div", { className: "flex-1 font-mono flex items-center", children: [
1648
- y,
1649
- /* @__PURE__ */ p.jsxs("div", { className: "relative flex-1", children: [
1650
- /* @__PURE__ */ p.jsx(
1005
+ /* @__PURE__ */ N("div", { className: "flex items-center gap-2", children: [
1006
+ /* @__PURE__ */ m("div", { className: "text-gray-400 font-mono", children: ">" }),
1007
+ /* @__PURE__ */ N("div", { className: "flex-1 font-mono flex items-center", children: [
1008
+ g,
1009
+ /* @__PURE__ */ N("div", { className: "relative flex-1", children: [
1010
+ /* @__PURE__ */ m(
1651
1011
  "input",
1652
1012
  {
1653
- ref: t,
1013
+ ref: n,
1654
1014
  type: "text",
1655
1015
  role: "textbox",
1656
- value: o.currentInput,
1657
- onChange: I,
1658
- onKeyDown: U,
1659
- onPaste: d,
1016
+ value: r.currentInput,
1017
+ onChange: E,
1018
+ onKeyDown: z,
1019
+ onPaste: a,
1660
1020
  "data-testid": "citadel-command-input",
1661
- className: `w-full bg-transparent outline-none text-gray-200 caret-transparent ${h ? "invalid-input-animation" : ""}`,
1021
+ className: `w-full bg-transparent outline-none text-gray-200 caret-transparent ${u ? "invalid-input-animation" : ""}`,
1662
1022
  spellCheck: !1,
1663
1023
  autoComplete: "off",
1664
- placeholder: N
1024
+ placeholder: k
1665
1025
  }
1666
1026
  ),
1667
- /* @__PURE__ */ p.jsx(
1027
+ /* @__PURE__ */ m(
1668
1028
  "div",
1669
1029
  {
1670
1030
  className: "absolute top-0 pointer-events-none",
1671
1031
  style: {
1672
- left: `${o.currentInput.length}ch`,
1032
+ left: `${r.currentInput.length}ch`,
1673
1033
  transition: "left 0.05s ease-out"
1674
1034
  },
1675
- children: /* @__PURE__ */ p.jsx(
1676
- kt,
1035
+ children: /* @__PURE__ */ m(
1036
+ Oe,
1677
1037
  {
1678
1038
  style: {
1679
- type: _.cursorType ?? M.cursorType,
1680
- color: _.cursorColor || M.cursorColor,
1681
- speed: _.cursorSpeed || M.cursorSpeed
1039
+ type: S.cursorType ?? A.cursorType,
1040
+ color: S.cursorColor || A.cursorColor,
1041
+ speed: S.cursorSpeed || A.cursorSpeed
1682
1042
  }
1683
1043
  }
1684
1044
  )
@@ -1688,121 +1048,121 @@ const jt = () => {
1688
1048
  ] })
1689
1049
  ] })
1690
1050
  ] });
1691
- }, Pt = () => /* @__PURE__ */ p.jsx(
1051
+ }, We = () => /* @__PURE__ */ m(
1692
1052
  "div",
1693
1053
  {
1694
1054
  "data-testid": "spinner",
1695
1055
  className: "animate-spin rounded-full h-4 w-4 border-2 border-gray-300 border-t-gray-600"
1696
1056
  }
1697
- ), Tt = ({
1698
- command: o,
1699
- timestamp: n,
1700
- status: t
1701
- }) => /* @__PURE__ */ p.jsxs("div", { className: "flex items-center gap-2 font-mono text-sm", children: [
1702
- /* @__PURE__ */ p.jsxs("span", { className: "text-gray-200", children: [
1057
+ ), qe = ({
1058
+ command: r,
1059
+ timestamp: e,
1060
+ status: n
1061
+ }) => /* @__PURE__ */ N("div", { className: "flex items-center gap-2 font-mono text-sm", children: [
1062
+ /* @__PURE__ */ N("span", { className: "text-gray-200", children: [
1703
1063
  "> ",
1704
- o.split(" ").map((r, a) => {
1705
- const i = r.startsWith("<") && r.endsWith(">");
1706
- return /* @__PURE__ */ p.jsxs(
1064
+ r.split(" ").map((t, o) => {
1065
+ const s = t.startsWith("<") && t.endsWith(">");
1066
+ return /* @__PURE__ */ N(
1707
1067
  "span",
1708
1068
  {
1709
- className: i ? "text-green-400" : "text-gray-200",
1069
+ className: s ? "text-green-400" : "text-gray-200",
1710
1070
  children: [
1711
- a > 0 ? " " : "",
1712
- r
1071
+ o > 0 ? " " : "",
1072
+ t
1713
1073
  ]
1714
1074
  },
1715
- a
1075
+ o
1716
1076
  );
1717
1077
  })
1718
1078
  ] }),
1719
- /* @__PURE__ */ p.jsx("span", { className: "text-gray-400", children: "·" }),
1720
- /* @__PURE__ */ p.jsx("span", { className: "text-gray-500", children: n }),
1721
- t === ie.Pending && /* @__PURE__ */ p.jsx(Pt, {}),
1722
- t === ie.Success && /* @__PURE__ */ p.jsx(
1079
+ /* @__PURE__ */ m("span", { className: "text-gray-400", children: "·" }),
1080
+ /* @__PURE__ */ m("span", { className: "text-gray-500", children: e }),
1081
+ n === M.Pending && /* @__PURE__ */ m(We, {}),
1082
+ n === M.Success && /* @__PURE__ */ m(
1723
1083
  "div",
1724
1084
  {
1725
1085
  "data-testid": "success-indicator",
1726
1086
  className: "w-4 h-4 rounded-full bg-green-500"
1727
1087
  }
1728
1088
  ),
1729
- (t === ie.Timeout || t === ie.Failure) && /* @__PURE__ */ p.jsx(
1089
+ (n === M.Timeout || n === M.Failure) && /* @__PURE__ */ m(
1730
1090
  "div",
1731
1091
  {
1732
1092
  "data-testid": "success-indicator",
1733
1093
  className: "w-4 h-4 rounded-full bg-red-500"
1734
1094
  }
1735
1095
  )
1736
- ] }), Ot = ({ output: o, outputRef: n }) => {
1737
- const t = ce(), r = R(() => {
1738
- if (n.current) {
1739
- const a = n.current;
1096
+ ] }), Ye = ({ output: r, outputRef: e }) => {
1097
+ const n = $(), t = w(() => {
1098
+ if (e.current) {
1099
+ const o = e.current;
1740
1100
  requestAnimationFrame(() => {
1741
- a.scrollTop = a.scrollHeight;
1101
+ o.scrollTop = o.scrollHeight;
1742
1102
  });
1743
1103
  }
1744
- }, [n]);
1745
- return z(() => {
1746
- if (r(), n.current) {
1747
- const a = n.current.getElementsByTagName("img"), i = a[a.length - 1];
1748
- if (i && !i.complete)
1749
- return i.addEventListener("load", r), () => i.removeEventListener("load", r);
1104
+ }, [e]);
1105
+ return _(() => {
1106
+ if (t(), e.current) {
1107
+ const o = e.current.getElementsByTagName("img"), s = o[o.length - 1];
1108
+ if (s && !s.complete)
1109
+ return s.addEventListener("load", t), () => s.removeEventListener("load", t);
1750
1110
  }
1751
- }, [o, r, n]), /* @__PURE__ */ p.jsx(
1111
+ }, [r, t, e]), /* @__PURE__ */ m(
1752
1112
  "div",
1753
1113
  {
1754
- ref: n,
1114
+ ref: e,
1755
1115
  className: "h-full overflow-y-auto border border-gray-700 rounded-lg p-3 text-left",
1756
- children: o.map((a, i) => /* @__PURE__ */ p.jsxs("div", { className: "mb-4 last:mb-0", children: [
1757
- /* @__PURE__ */ p.jsx(
1758
- Tt,
1116
+ children: r.map((o, s) => /* @__PURE__ */ N("div", { className: "mb-4 last:mb-0", children: [
1117
+ /* @__PURE__ */ m(
1118
+ qe,
1759
1119
  {
1760
- command: a.command.join(" "),
1761
- timestamp: new Date(a.timestamp).toLocaleTimeString(),
1762
- status: a.result.status
1120
+ command: o.command.join(" "),
1121
+ timestamp: new Date(o.timestamp).toLocaleTimeString(),
1122
+ status: o.result.status
1763
1123
  }
1764
1124
  ),
1765
- /* @__PURE__ */ p.jsx("pre", { className: `text-gray-200 whitespace-pre font-mono ${t.outputFontSize}`, children: a.result.render() })
1766
- ] }, i))
1125
+ /* @__PURE__ */ m("pre", { className: `text-gray-200 whitespace-pre font-mono ${n.outputFontSize}`, children: o.result.render() })
1126
+ ] }, s))
1767
1127
  }
1768
1128
  );
1769
- }, Nt = () => {
1770
- const o = xe(), n = ce(), t = ue(), r = "h-12 mt-2 border-t border-gray-700 px-4", a = "text-gray-300 pt-2", i = o.getCompletions(t.path());
1771
- D.debug("[AvailableCommands] nextCommandSegments: ", i);
1772
- const u = Q.useMemo(() => {
1773
- if (n.includeHelpCommand) {
1774
- const m = i.filter((b) => b.name !== "help"), h = i.find((b) => b.name === "help");
1775
- return [...m, ...h ? [h] : []];
1129
+ }, Be = () => {
1130
+ const r = B(), e = $(), n = K(), t = "h-12 mt-2 border-t border-gray-700 px-4", o = "text-gray-300 pt-2", s = r.getCompletions(n.path());
1131
+ C.debug("[AvailableCommands] nextCommandSegments: ", s);
1132
+ const i = L.useMemo(() => {
1133
+ if (e.includeHelpCommand) {
1134
+ const l = s.filter((p) => p.name !== "help"), u = s.find((p) => p.name === "help");
1135
+ return [...l, ...u ? [u] : []];
1776
1136
  }
1777
- return i;
1778
- }, [i, n.includeHelpCommand]), f = i.some((m) => m.type === "argument"), c = i[0];
1779
- return /* @__PURE__ */ p.jsx("div", { className: r, "data-testid": "available-commands", children: /* @__PURE__ */ p.jsx("div", { className: a, children: f ? i.length > 0 ? /* @__PURE__ */ p.jsxs(p.Fragment, { children: [
1780
- /* @__PURE__ */ p.jsx("span", { className: "text-blue-400", children: c.name }),
1781
- c.description && /* @__PURE__ */ p.jsxs("span", { className: "text-gray-400 ml-2", children: [
1137
+ return s;
1138
+ }, [s, e.includeHelpCommand]), c = s.some((l) => l.type === "argument"), d = s[0];
1139
+ return /* @__PURE__ */ m("div", { className: t, "data-testid": "available-commands", children: /* @__PURE__ */ m("div", { className: o, children: c ? s.length > 0 ? /* @__PURE__ */ N(he, { children: [
1140
+ /* @__PURE__ */ m("span", { className: "text-blue-400", children: d.name }),
1141
+ d.description && /* @__PURE__ */ N("span", { className: "text-gray-400 ml-2", children: [
1782
1142
  "- ",
1783
- c.description
1143
+ d.description
1784
1144
  ] })
1785
- ] }) : null : /* @__PURE__ */ p.jsx("div", { className: "flex flex-wrap gap-2", children: u == null ? void 0 : u.map((m) => {
1786
- const h = u == null ? void 0 : u.reduce((b, _) => {
1787
- if (_ === m) return b;
1788
- let S = 0;
1789
- for (; S < m.name.length && S < _.name.length && m.name[S].toLowerCase() === _.name[S].toLowerCase(); )
1790
- S++;
1791
- return Math.max(b, S + 1);
1145
+ ] }) : null : /* @__PURE__ */ m("div", { className: "flex flex-wrap gap-2", children: i == null ? void 0 : i.map((l) => {
1146
+ const u = i == null ? void 0 : i.reduce((p, S) => {
1147
+ if (S === l) return p;
1148
+ let y = 0;
1149
+ for (; y < l.name.length && y < S.name.length && l.name[y].toLowerCase() === S.name[y].toLowerCase(); )
1150
+ y++;
1151
+ return Math.max(p, y + 1);
1792
1152
  }, 1);
1793
- return /* @__PURE__ */ p.jsx(
1153
+ return /* @__PURE__ */ m(
1794
1154
  "div",
1795
1155
  {
1796
1156
  className: "px-2 py-1 rounded bg-gray-800 mr-2 last:mr-0",
1797
- children: /* @__PURE__ */ p.jsxs("span", { className: "font-mono text-white", children: [
1798
- /* @__PURE__ */ p.jsx("strong", { className: "underline", children: m.name.slice(0, h) }),
1799
- m.name.slice(h)
1157
+ children: /* @__PURE__ */ N("span", { className: "font-mono text-white", children: [
1158
+ /* @__PURE__ */ m("strong", { className: "underline", children: l.name.slice(0, u) }),
1159
+ l.name.slice(u)
1800
1160
  ] })
1801
1161
  },
1802
- m.name
1162
+ l.name
1803
1163
  );
1804
1164
  }) }) }) });
1805
- }, mn = `:host {
1165
+ }, ne = `:host {
1806
1166
  --citadel-bg: rgb(17, 24, 39);
1807
1167
  --citadel-text: rgba(255, 255, 255, 0.87);
1808
1168
  --citadel-border: rgb(55, 65, 81);
@@ -1822,6 +1182,7 @@ const jt = () => {
1822
1182
  bottom: 0;
1823
1183
  left: 0;
1824
1184
  right: 0;
1185
+ z-index: 2147483647; /* Maximum z-index value */
1825
1186
  overflow: hidden;
1826
1187
 
1827
1188
  pointer-events: auto;
@@ -1891,7 +1252,7 @@ a:hover {
1891
1252
  text-align: left;
1892
1253
  }
1893
1254
 
1894
- `, pn = `/* Keep only component-specific styles here */
1255
+ `, te = `/* Keep only component-specific styles here */
1895
1256
 
1896
1257
  .container {
1897
1258
  position: fixed;
@@ -1961,10 +1322,10 @@ a:hover {
1961
1322
  .citadel_slideDown {
1962
1323
  animation: citadel_slideDown 0.2s ease-out forwards;
1963
1324
  }
1964
- `, fn = `@tailwind base;
1325
+ `, re = `@tailwind base;
1965
1326
  @tailwind components;
1966
1327
  @tailwind utilities;
1967
- `, It = `*, ::before, ::after {
1328
+ `, Ge = `*, ::before, ::after {
1968
1329
  --tw-border-spacing-x: 0;
1969
1330
  --tw-border-spacing-y: 0;
1970
1331
  --tw-translate-x: 0;
@@ -2781,96 +2142,96 @@ video {
2781
2142
  .last\\:mr-0:last-child {
2782
2143
  margin-right: 0px;
2783
2144
  }
2784
- `, $t = ({
2785
- config: o = M,
2786
- commandRegistry: n = new Ie(),
2787
- containerId: t = null
2788
- }) => (z(() => {
2789
- D.configure({
2790
- level: o.logLevel || M.logLevel || we.ERROR,
2145
+ `, rn = ({
2146
+ config: r = A,
2147
+ commandRegistry: e = new J(),
2148
+ containerId: n = null
2149
+ }) => (_(() => {
2150
+ C.configure({
2151
+ level: r.logLevel || A.logLevel || W.ERROR,
2791
2152
  prefix: "[Citadel]"
2792
2153
  });
2793
- const r = new Sn(n, o), a = t ? document.getElementById(t) : document.body;
2794
- return a ? a.appendChild(r) : (console.warn(`Container with id "${t}" not found, falling back to body`), document.body.appendChild(r)), () => {
2795
- var i;
2796
- (i = r.parentElement) == null || i.removeChild(r);
2154
+ const t = new ue(e, r), o = n ? document.getElementById(n) : document.body;
2155
+ return o ? o.appendChild(t) : (console.warn(`Container with id "${n}" not found, falling back to body`), document.body.appendChild(t)), () => {
2156
+ var s;
2157
+ (s = t.parentElement) == null || s.removeChild(t);
2797
2158
  };
2798
- }, [n, t, o]), null);
2799
- class Sn extends HTMLElement {
2800
- constructor(t, r) {
2159
+ }, [e, n, r]), null);
2160
+ class ue extends HTMLElement {
2161
+ constructor(n, t) {
2801
2162
  super();
2802
- A(this, "shadow");
2803
- A(this, "root", null);
2804
- A(this, "commandRegistry");
2805
- A(this, "config");
2806
- this.shadow = this.attachShadow({ mode: "open" }), this.commandRegistry = t, this.config = r;
2163
+ b(this, "shadow");
2164
+ b(this, "root", null);
2165
+ b(this, "commandRegistry");
2166
+ b(this, "config");
2167
+ this.shadow = this.attachShadow({ mode: "open" }), this.commandRegistry = n, this.config = t;
2807
2168
  }
2808
2169
  connectedCallback() {
2809
2170
  try {
2810
- const r = [mn, pn, fn, It].map((a) => {
2811
- const i = new CSSStyleSheet();
2812
- return i.replaceSync(a), i;
2171
+ const t = [ne, te, re, Ge].map((o) => {
2172
+ const s = new CSSStyleSheet();
2173
+ return s.replaceSync(o), s;
2813
2174
  });
2814
- this.shadow.adoptedStyleSheets = [...r];
2175
+ this.shadow.adoptedStyleSheets = [...t];
2815
2176
  } catch {
2816
- const r = [mn, pn, fn].join(`
2817
- `), a = document.createElement("style");
2818
- a.textContent = r, this.shadow.appendChild(a);
2177
+ const t = [ne, te, re].join(`
2178
+ `), o = document.createElement("style");
2179
+ o.textContent = t, this.shadow.appendChild(o);
2819
2180
  }
2820
- const t = document.createElement("div");
2821
- t.id = "citadel-root", this.shadow.appendChild(t), this.root = Oe(t), this.root.render(
2822
- /* @__PURE__ */ p.jsx(xt, { config: this.config || M, commandRegistry: this.commandRegistry, children: /* @__PURE__ */ p.jsx(Dt, {}) })
2181
+ const n = document.createElement("div");
2182
+ n.id = "citadel-root", this.shadow.appendChild(n), this.root = be(n), this.root.render(
2183
+ /* @__PURE__ */ m(Fe, { config: this.config || A, commandRegistry: this.commandRegistry, children: /* @__PURE__ */ m(Je, {}) })
2823
2184
  );
2824
2185
  }
2825
2186
  }
2826
- customElements.define("citadel-element", Sn);
2827
- const Dt = () => {
2828
- const [o, n] = Y(!1), [t, r] = Y(!1), a = ce(), [i, u] = Y(() => a.initialHeight || null), f = X(null), c = X(null), m = X(!1), h = X(0), b = X(0), { state: _, actions: S } = Cn();
2829
- ot({
2830
- onOpen: () => n(!0),
2831
- onClose: () => r(!0),
2832
- isVisible: o,
2833
- showCitadelKey: a.showCitadelKey || "."
2187
+ customElements.define("citadel-element", ue);
2188
+ const Je = () => {
2189
+ const [r, e] = R(!1), [n, t] = R(!1), o = $(), [s, i] = R(() => o.initialHeight || null), c = U(null), d = U(null), l = U(!1), u = U(0), p = U(0), { state: S, actions: y } = me();
2190
+ ye({
2191
+ onOpen: () => e(!0),
2192
+ onClose: () => t(!0),
2193
+ isVisible: r,
2194
+ showCitadelKey: o.showCitadelKey || "."
2834
2195
  });
2835
- const U = R((w) => {
2836
- c.current && (m.current = !0, h.current = w.clientY, b.current = c.current.offsetHeight, document.documentElement.style.userSelect = "none", document.documentElement.style.webkitUserSelect = "none", document.documentElement.style.mozUserSelect = "none", document.documentElement.style.msUserSelect = "none", document.addEventListener("mousemove", I), document.addEventListener("mouseup", d));
2837
- }, []), I = R((w) => {
2838
- var P;
2839
- if (!m.current) return;
2840
- const N = w.clientY - h.current, k = (P = a.maxHeight) != null && P.endsWith("vh") ? window.innerHeight * parseInt(a.maxHeight, 10) / 100 : parseInt(a.maxHeight || "80vh", 10), j = Math.min(
2841
- Math.max(b.current - N, parseInt(a.minHeight || "200", 10)),
2842
- k
2196
+ const z = w((h) => {
2197
+ d.current && (l.current = !0, u.current = h.clientY, p.current = d.current.offsetHeight, document.documentElement.style.userSelect = "none", document.documentElement.style.webkitUserSelect = "none", document.documentElement.style.mozUserSelect = "none", document.documentElement.style.msUserSelect = "none", document.addEventListener("mousemove", E), document.addEventListener("mouseup", a));
2198
+ }, []), E = w((h) => {
2199
+ var v;
2200
+ if (!l.current) return;
2201
+ const k = h.clientY - u.current, f = (v = o.maxHeight) != null && v.endsWith("vh") ? window.innerHeight * parseInt(o.maxHeight, 10) / 100 : parseInt(o.maxHeight || "80vh", 10), x = Math.min(
2202
+ Math.max(p.current - k, parseInt(o.minHeight || "200", 10)),
2203
+ f
2843
2204
  );
2844
- c.current && (c.current.style.height = `${j}px`, c.current.style.bottom = "0", u(`${j}px`));
2845
- }, [a.maxHeight, a.minHeight]), d = R(() => {
2846
- m.current = !1, document.documentElement.style.userSelect = "", document.documentElement.style.webkitUserSelect = "", document.documentElement.style.mozUserSelect = "", document.documentElement.style.msUserSelect = "", document.removeEventListener("mousemove", I), document.removeEventListener("mouseup", d);
2847
- }, [I]);
2848
- z(() => () => {
2849
- document.removeEventListener("mousemove", I), document.removeEventListener("mouseup", d);
2850
- }, [I, d]);
2851
- const y = R(() => {
2852
- t && (n(!1), r(!1));
2853
- }, [t]);
2854
- return dt({
2855
- isVisible: o,
2856
- isClosing: t,
2857
- onAnimationComplete: y
2858
- }), o ? /* @__PURE__ */ p.jsxs(
2205
+ d.current && (d.current.style.height = `${x}px`, d.current.style.bottom = "0", i(`${x}px`));
2206
+ }, [o.maxHeight, o.minHeight]), a = w(() => {
2207
+ l.current = !1, document.documentElement.style.userSelect = "", document.documentElement.style.webkitUserSelect = "", document.documentElement.style.mozUserSelect = "", document.documentElement.style.msUserSelect = "", document.removeEventListener("mousemove", E), document.removeEventListener("mouseup", a);
2208
+ }, [E]);
2209
+ _(() => () => {
2210
+ document.removeEventListener("mousemove", E), document.removeEventListener("mouseup", a);
2211
+ }, [E, a]);
2212
+ const g = w(() => {
2213
+ n && (e(!1), t(!1));
2214
+ }, [n]);
2215
+ return Ne({
2216
+ isVisible: r,
2217
+ isClosing: n,
2218
+ onAnimationComplete: g
2219
+ }), r ? /* @__PURE__ */ N(
2859
2220
  "div",
2860
2221
  {
2861
- ref: c,
2862
- className: `container ${o ? "citadel_slideUp" : ""} ${t ? "citadel_slideDown" : ""}`,
2222
+ ref: d,
2223
+ className: `container ${r ? "citadel_slideUp" : ""} ${n ? "citadel_slideDown" : ""}`,
2863
2224
  style: {
2864
- ...i ? { height: i } : void 0,
2865
- maxHeight: a.maxHeight
2225
+ ...s ? { height: s } : void 0,
2226
+ maxHeight: o.maxHeight
2866
2227
  },
2867
2228
  children: [
2868
- /* @__PURE__ */ p.jsx("div", { className: "resizeHandle", onMouseDown: U }),
2869
- /* @__PURE__ */ p.jsxs("div", { className: "innerContainer", children: [
2870
- /* @__PURE__ */ p.jsx("div", { className: "flex-1 min-h-0 pt-3 px-4", children: /* @__PURE__ */ p.jsx(Ot, { output: _.output, outputRef: f }) }),
2871
- /* @__PURE__ */ p.jsxs("div", { children: [
2872
- /* @__PURE__ */ p.jsx(At, { state: _, actions: S }),
2873
- /* @__PURE__ */ p.jsx(Nt, {})
2229
+ /* @__PURE__ */ m("div", { className: "resizeHandle", onMouseDown: z }),
2230
+ /* @__PURE__ */ N("div", { className: "innerContainer", children: [
2231
+ /* @__PURE__ */ m("div", { className: "flex-1 min-h-0 pt-3 px-4", children: /* @__PURE__ */ m(Ye, { output: S.output, outputRef: c }) }),
2232
+ /* @__PURE__ */ N("div", { children: [
2233
+ /* @__PURE__ */ m(Ve, { state: S, actions: y }),
2234
+ /* @__PURE__ */ m(Be, {})
2874
2235
  ] })
2875
2236
  ] })
2876
2237
  ]
@@ -2878,15 +2239,15 @@ const Dt = () => {
2878
2239
  ) : null;
2879
2240
  };
2880
2241
  export {
2881
- $t as Citadel,
2882
- Ie as CommandRegistry,
2883
- Z as CommandResult,
2884
- ie as CommandStatus,
2885
- Et as DEFAULT_CURSOR_CONFIGS,
2886
- mt as ErrorCommandResult,
2887
- Mt as ImageCommandResult,
2888
- Ht as JsonCommandResult,
2889
- Ct as OutputItem,
2890
- pt as PendingCommandResult,
2891
- hn as TextCommandResult
2242
+ rn as Citadel,
2243
+ J as CommandRegistry,
2244
+ F as CommandResult,
2245
+ M as CommandStatus,
2246
+ Me as DEFAULT_CURSOR_CONFIGS,
2247
+ _e as ErrorCommandResult,
2248
+ tn as ImageCommandResult,
2249
+ nn as JsonCommandResult,
2250
+ Te as OutputItem,
2251
+ Ae as PendingCommandResult,
2252
+ oe as TextCommandResult
2892
2253
  };