llm-party-cli 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -11
- package/dist/index.js +2305 -1556
- package/package.json +1 -1
- package/prompts/artifacts.md +59 -8
- package/prompts/base.md +49 -18
package/dist/index.js
CHANGED
|
@@ -3288,6 +3288,932 @@ import { readFile as readFile6 } from "fs/promises";
|
|
|
3288
3288
|
import path11 from "path";
|
|
3289
3289
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
3290
3290
|
|
|
3291
|
+
// node_modules/solid-js/dist/server.js
|
|
3292
|
+
var sharedConfig = {
|
|
3293
|
+
context: undefined,
|
|
3294
|
+
registry: undefined,
|
|
3295
|
+
effects: undefined,
|
|
3296
|
+
done: false,
|
|
3297
|
+
getContextId() {
|
|
3298
|
+
return getContextId(this.context.count);
|
|
3299
|
+
},
|
|
3300
|
+
getNextContextId() {
|
|
3301
|
+
return getContextId(this.context.count++);
|
|
3302
|
+
}
|
|
3303
|
+
};
|
|
3304
|
+
function getContextId(count) {
|
|
3305
|
+
const num = String(count), len = num.length - 1;
|
|
3306
|
+
return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num;
|
|
3307
|
+
}
|
|
3308
|
+
function setHydrateContext(context) {
|
|
3309
|
+
sharedConfig.context = context;
|
|
3310
|
+
}
|
|
3311
|
+
function nextHydrateContext() {
|
|
3312
|
+
return {
|
|
3313
|
+
...sharedConfig.context,
|
|
3314
|
+
id: sharedConfig.getNextContextId(),
|
|
3315
|
+
count: 0
|
|
3316
|
+
};
|
|
3317
|
+
}
|
|
3318
|
+
var IS_DEV = false;
|
|
3319
|
+
var equalFn = (a, b) => a === b;
|
|
3320
|
+
var $PROXY = Symbol("solid-proxy");
|
|
3321
|
+
var SUPPORTS_PROXY = typeof Proxy === "function";
|
|
3322
|
+
var $TRACK = Symbol("solid-track");
|
|
3323
|
+
var $DEVCOMP = Symbol("solid-dev-component");
|
|
3324
|
+
var signalOptions = {
|
|
3325
|
+
equals: equalFn
|
|
3326
|
+
};
|
|
3327
|
+
var ERROR = null;
|
|
3328
|
+
var runEffects = runQueue;
|
|
3329
|
+
var STALE = 1;
|
|
3330
|
+
var PENDING = 2;
|
|
3331
|
+
var UNOWNED = {
|
|
3332
|
+
owned: null,
|
|
3333
|
+
cleanups: null,
|
|
3334
|
+
context: null,
|
|
3335
|
+
owner: null
|
|
3336
|
+
};
|
|
3337
|
+
var Owner = null;
|
|
3338
|
+
var Transition = null;
|
|
3339
|
+
var Scheduler = null;
|
|
3340
|
+
var ExternalSourceConfig = null;
|
|
3341
|
+
var Listener = null;
|
|
3342
|
+
var Updates = null;
|
|
3343
|
+
var Effects = null;
|
|
3344
|
+
var ExecCount = 0;
|
|
3345
|
+
function createRoot(fn, detachedOwner) {
|
|
3346
|
+
const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : {
|
|
3347
|
+
owned: null,
|
|
3348
|
+
cleanups: null,
|
|
3349
|
+
context: current ? current.context : null,
|
|
3350
|
+
owner: current
|
|
3351
|
+
}, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));
|
|
3352
|
+
Owner = root;
|
|
3353
|
+
Listener = null;
|
|
3354
|
+
try {
|
|
3355
|
+
return runUpdates(updateFn, true);
|
|
3356
|
+
} finally {
|
|
3357
|
+
Listener = listener;
|
|
3358
|
+
Owner = owner;
|
|
3359
|
+
}
|
|
3360
|
+
}
|
|
3361
|
+
function createSignal(value, options) {
|
|
3362
|
+
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
3363
|
+
const s = {
|
|
3364
|
+
value,
|
|
3365
|
+
observers: null,
|
|
3366
|
+
observerSlots: null,
|
|
3367
|
+
comparator: options.equals || undefined
|
|
3368
|
+
};
|
|
3369
|
+
const setter = (value2) => {
|
|
3370
|
+
if (typeof value2 === "function") {
|
|
3371
|
+
if (Transition && Transition.running && Transition.sources.has(s))
|
|
3372
|
+
value2 = value2(s.tValue);
|
|
3373
|
+
else
|
|
3374
|
+
value2 = value2(s.value);
|
|
3375
|
+
}
|
|
3376
|
+
return writeSignal(s, value2);
|
|
3377
|
+
};
|
|
3378
|
+
return [readSignal.bind(s), setter];
|
|
3379
|
+
}
|
|
3380
|
+
function createRenderEffect(fn, value, options) {
|
|
3381
|
+
const c = createComputation(fn, value, false, STALE);
|
|
3382
|
+
if (Scheduler && Transition && Transition.running)
|
|
3383
|
+
Updates.push(c);
|
|
3384
|
+
else
|
|
3385
|
+
updateComputation(c);
|
|
3386
|
+
}
|
|
3387
|
+
function createEffect(fn, value, options) {
|
|
3388
|
+
runEffects = runUserEffects;
|
|
3389
|
+
const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext);
|
|
3390
|
+
if (s)
|
|
3391
|
+
c.suspense = s;
|
|
3392
|
+
if (!options || !options.render)
|
|
3393
|
+
c.user = true;
|
|
3394
|
+
Effects ? Effects.push(c) : updateComputation(c);
|
|
3395
|
+
}
|
|
3396
|
+
function createMemo(fn, value, options) {
|
|
3397
|
+
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
3398
|
+
const c = createComputation(fn, value, true, 0);
|
|
3399
|
+
c.observers = null;
|
|
3400
|
+
c.observerSlots = null;
|
|
3401
|
+
c.comparator = options.equals || undefined;
|
|
3402
|
+
if (Scheduler && Transition && Transition.running) {
|
|
3403
|
+
c.tState = STALE;
|
|
3404
|
+
Updates.push(c);
|
|
3405
|
+
} else
|
|
3406
|
+
updateComputation(c);
|
|
3407
|
+
return readSignal.bind(c);
|
|
3408
|
+
}
|
|
3409
|
+
function untrack(fn) {
|
|
3410
|
+
if (!ExternalSourceConfig && Listener === null)
|
|
3411
|
+
return fn();
|
|
3412
|
+
const listener = Listener;
|
|
3413
|
+
Listener = null;
|
|
3414
|
+
try {
|
|
3415
|
+
if (ExternalSourceConfig)
|
|
3416
|
+
return ExternalSourceConfig.untrack(fn);
|
|
3417
|
+
return fn();
|
|
3418
|
+
} finally {
|
|
3419
|
+
Listener = listener;
|
|
3420
|
+
}
|
|
3421
|
+
}
|
|
3422
|
+
function onMount(fn) {
|
|
3423
|
+
createEffect(() => untrack(fn));
|
|
3424
|
+
}
|
|
3425
|
+
function onCleanup(fn) {
|
|
3426
|
+
if (Owner === null)
|
|
3427
|
+
;
|
|
3428
|
+
else if (Owner.cleanups === null)
|
|
3429
|
+
Owner.cleanups = [fn];
|
|
3430
|
+
else
|
|
3431
|
+
Owner.cleanups.push(fn);
|
|
3432
|
+
return fn;
|
|
3433
|
+
}
|
|
3434
|
+
function startTransition(fn) {
|
|
3435
|
+
if (Transition && Transition.running) {
|
|
3436
|
+
fn();
|
|
3437
|
+
return Transition.done;
|
|
3438
|
+
}
|
|
3439
|
+
const l = Listener;
|
|
3440
|
+
const o = Owner;
|
|
3441
|
+
return Promise.resolve().then(() => {
|
|
3442
|
+
Listener = l;
|
|
3443
|
+
Owner = o;
|
|
3444
|
+
let t;
|
|
3445
|
+
if (Scheduler || SuspenseContext) {
|
|
3446
|
+
t = Transition || (Transition = {
|
|
3447
|
+
sources: new Set,
|
|
3448
|
+
effects: [],
|
|
3449
|
+
promises: new Set,
|
|
3450
|
+
disposed: new Set,
|
|
3451
|
+
queue: new Set,
|
|
3452
|
+
running: true
|
|
3453
|
+
});
|
|
3454
|
+
t.done || (t.done = new Promise((res) => t.resolve = res));
|
|
3455
|
+
t.running = true;
|
|
3456
|
+
}
|
|
3457
|
+
runUpdates(fn, false);
|
|
3458
|
+
Listener = Owner = null;
|
|
3459
|
+
return t ? t.done : undefined;
|
|
3460
|
+
});
|
|
3461
|
+
}
|
|
3462
|
+
var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);
|
|
3463
|
+
function createContext(defaultValue, options) {
|
|
3464
|
+
const id = Symbol("context");
|
|
3465
|
+
return {
|
|
3466
|
+
id,
|
|
3467
|
+
Provider: createProvider(id),
|
|
3468
|
+
defaultValue
|
|
3469
|
+
};
|
|
3470
|
+
}
|
|
3471
|
+
function useContext(context) {
|
|
3472
|
+
let value;
|
|
3473
|
+
return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue;
|
|
3474
|
+
}
|
|
3475
|
+
function children(fn) {
|
|
3476
|
+
const children2 = createMemo(fn);
|
|
3477
|
+
const memo = createMemo(() => resolveChildren(children2()));
|
|
3478
|
+
memo.toArray = () => {
|
|
3479
|
+
const c = memo();
|
|
3480
|
+
return Array.isArray(c) ? c : c != null ? [c] : [];
|
|
3481
|
+
};
|
|
3482
|
+
return memo;
|
|
3483
|
+
}
|
|
3484
|
+
var SuspenseContext;
|
|
3485
|
+
function readSignal() {
|
|
3486
|
+
const runningTransition = Transition && Transition.running;
|
|
3487
|
+
if (this.sources && (runningTransition ? this.tState : this.state)) {
|
|
3488
|
+
if ((runningTransition ? this.tState : this.state) === STALE)
|
|
3489
|
+
updateComputation(this);
|
|
3490
|
+
else {
|
|
3491
|
+
const updates = Updates;
|
|
3492
|
+
Updates = null;
|
|
3493
|
+
runUpdates(() => lookUpstream(this), false);
|
|
3494
|
+
Updates = updates;
|
|
3495
|
+
}
|
|
3496
|
+
}
|
|
3497
|
+
if (Listener) {
|
|
3498
|
+
const sSlot = this.observers ? this.observers.length : 0;
|
|
3499
|
+
if (!Listener.sources) {
|
|
3500
|
+
Listener.sources = [this];
|
|
3501
|
+
Listener.sourceSlots = [sSlot];
|
|
3502
|
+
} else {
|
|
3503
|
+
Listener.sources.push(this);
|
|
3504
|
+
Listener.sourceSlots.push(sSlot);
|
|
3505
|
+
}
|
|
3506
|
+
if (!this.observers) {
|
|
3507
|
+
this.observers = [Listener];
|
|
3508
|
+
this.observerSlots = [Listener.sources.length - 1];
|
|
3509
|
+
} else {
|
|
3510
|
+
this.observers.push(Listener);
|
|
3511
|
+
this.observerSlots.push(Listener.sources.length - 1);
|
|
3512
|
+
}
|
|
3513
|
+
}
|
|
3514
|
+
if (runningTransition && Transition.sources.has(this))
|
|
3515
|
+
return this.tValue;
|
|
3516
|
+
return this.value;
|
|
3517
|
+
}
|
|
3518
|
+
function writeSignal(node, value, isComp) {
|
|
3519
|
+
let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;
|
|
3520
|
+
if (!node.comparator || !node.comparator(current, value)) {
|
|
3521
|
+
if (Transition) {
|
|
3522
|
+
const TransitionRunning = Transition.running;
|
|
3523
|
+
if (TransitionRunning || !isComp && Transition.sources.has(node)) {
|
|
3524
|
+
Transition.sources.add(node);
|
|
3525
|
+
node.tValue = value;
|
|
3526
|
+
}
|
|
3527
|
+
if (!TransitionRunning)
|
|
3528
|
+
node.value = value;
|
|
3529
|
+
} else
|
|
3530
|
+
node.value = value;
|
|
3531
|
+
if (node.observers && node.observers.length) {
|
|
3532
|
+
runUpdates(() => {
|
|
3533
|
+
for (let i = 0;i < node.observers.length; i += 1) {
|
|
3534
|
+
const o = node.observers[i];
|
|
3535
|
+
const TransitionRunning = Transition && Transition.running;
|
|
3536
|
+
if (TransitionRunning && Transition.disposed.has(o))
|
|
3537
|
+
continue;
|
|
3538
|
+
if (TransitionRunning ? !o.tState : !o.state) {
|
|
3539
|
+
if (o.pure)
|
|
3540
|
+
Updates.push(o);
|
|
3541
|
+
else
|
|
3542
|
+
Effects.push(o);
|
|
3543
|
+
if (o.observers)
|
|
3544
|
+
markDownstream(o);
|
|
3545
|
+
}
|
|
3546
|
+
if (!TransitionRunning)
|
|
3547
|
+
o.state = STALE;
|
|
3548
|
+
else
|
|
3549
|
+
o.tState = STALE;
|
|
3550
|
+
}
|
|
3551
|
+
if (Updates.length > 1e6) {
|
|
3552
|
+
Updates = [];
|
|
3553
|
+
if (IS_DEV)
|
|
3554
|
+
;
|
|
3555
|
+
throw new Error;
|
|
3556
|
+
}
|
|
3557
|
+
}, false);
|
|
3558
|
+
}
|
|
3559
|
+
}
|
|
3560
|
+
return value;
|
|
3561
|
+
}
|
|
3562
|
+
function updateComputation(node) {
|
|
3563
|
+
if (!node.fn)
|
|
3564
|
+
return;
|
|
3565
|
+
cleanNode(node);
|
|
3566
|
+
const time = ExecCount;
|
|
3567
|
+
runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);
|
|
3568
|
+
if (Transition && !Transition.running && Transition.sources.has(node)) {
|
|
3569
|
+
queueMicrotask(() => {
|
|
3570
|
+
runUpdates(() => {
|
|
3571
|
+
Transition && (Transition.running = true);
|
|
3572
|
+
Listener = Owner = node;
|
|
3573
|
+
runComputation(node, node.tValue, time);
|
|
3574
|
+
Listener = Owner = null;
|
|
3575
|
+
}, false);
|
|
3576
|
+
});
|
|
3577
|
+
}
|
|
3578
|
+
}
|
|
3579
|
+
function runComputation(node, value, time) {
|
|
3580
|
+
let nextValue;
|
|
3581
|
+
const owner = Owner, listener = Listener;
|
|
3582
|
+
Listener = Owner = node;
|
|
3583
|
+
try {
|
|
3584
|
+
nextValue = node.fn(value);
|
|
3585
|
+
} catch (err) {
|
|
3586
|
+
if (node.pure) {
|
|
3587
|
+
if (Transition && Transition.running) {
|
|
3588
|
+
node.tState = STALE;
|
|
3589
|
+
node.tOwned && node.tOwned.forEach(cleanNode);
|
|
3590
|
+
node.tOwned = undefined;
|
|
3591
|
+
} else {
|
|
3592
|
+
node.state = STALE;
|
|
3593
|
+
node.owned && node.owned.forEach(cleanNode);
|
|
3594
|
+
node.owned = null;
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
node.updatedAt = time + 1;
|
|
3598
|
+
return handleError(err);
|
|
3599
|
+
} finally {
|
|
3600
|
+
Listener = listener;
|
|
3601
|
+
Owner = owner;
|
|
3602
|
+
}
|
|
3603
|
+
if (!node.updatedAt || node.updatedAt <= time) {
|
|
3604
|
+
if (node.updatedAt != null && "observers" in node) {
|
|
3605
|
+
writeSignal(node, nextValue, true);
|
|
3606
|
+
} else if (Transition && Transition.running && node.pure) {
|
|
3607
|
+
if (!Transition.sources.has(node))
|
|
3608
|
+
node.value = nextValue;
|
|
3609
|
+
Transition.sources.add(node);
|
|
3610
|
+
node.tValue = nextValue;
|
|
3611
|
+
} else
|
|
3612
|
+
node.value = nextValue;
|
|
3613
|
+
node.updatedAt = time;
|
|
3614
|
+
}
|
|
3615
|
+
}
|
|
3616
|
+
function createComputation(fn, init, pure, state = STALE, options) {
|
|
3617
|
+
const c = {
|
|
3618
|
+
fn,
|
|
3619
|
+
state,
|
|
3620
|
+
updatedAt: null,
|
|
3621
|
+
owned: null,
|
|
3622
|
+
sources: null,
|
|
3623
|
+
sourceSlots: null,
|
|
3624
|
+
cleanups: null,
|
|
3625
|
+
value: init,
|
|
3626
|
+
owner: Owner,
|
|
3627
|
+
context: Owner ? Owner.context : null,
|
|
3628
|
+
pure
|
|
3629
|
+
};
|
|
3630
|
+
if (Transition && Transition.running) {
|
|
3631
|
+
c.state = 0;
|
|
3632
|
+
c.tState = state;
|
|
3633
|
+
}
|
|
3634
|
+
if (Owner === null)
|
|
3635
|
+
;
|
|
3636
|
+
else if (Owner !== UNOWNED) {
|
|
3637
|
+
if (Transition && Transition.running && Owner.pure) {
|
|
3638
|
+
if (!Owner.tOwned)
|
|
3639
|
+
Owner.tOwned = [c];
|
|
3640
|
+
else
|
|
3641
|
+
Owner.tOwned.push(c);
|
|
3642
|
+
} else {
|
|
3643
|
+
if (!Owner.owned)
|
|
3644
|
+
Owner.owned = [c];
|
|
3645
|
+
else
|
|
3646
|
+
Owner.owned.push(c);
|
|
3647
|
+
}
|
|
3648
|
+
}
|
|
3649
|
+
if (ExternalSourceConfig && c.fn) {
|
|
3650
|
+
const sourceFn = c.fn;
|
|
3651
|
+
const [track, trigger] = createSignal(undefined, {
|
|
3652
|
+
equals: false
|
|
3653
|
+
});
|
|
3654
|
+
const ordinary = ExternalSourceConfig.factory(sourceFn, trigger);
|
|
3655
|
+
onCleanup(() => ordinary.dispose());
|
|
3656
|
+
let inTransition;
|
|
3657
|
+
const triggerInTransition = () => startTransition(trigger).then(() => {
|
|
3658
|
+
if (inTransition) {
|
|
3659
|
+
inTransition.dispose();
|
|
3660
|
+
inTransition = undefined;
|
|
3661
|
+
}
|
|
3662
|
+
});
|
|
3663
|
+
c.fn = (x) => {
|
|
3664
|
+
track();
|
|
3665
|
+
if (Transition && Transition.running) {
|
|
3666
|
+
if (!inTransition)
|
|
3667
|
+
inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition);
|
|
3668
|
+
return inTransition.track(x);
|
|
3669
|
+
}
|
|
3670
|
+
return ordinary.track(x);
|
|
3671
|
+
};
|
|
3672
|
+
}
|
|
3673
|
+
return c;
|
|
3674
|
+
}
|
|
3675
|
+
function runTop(node) {
|
|
3676
|
+
const runningTransition = Transition && Transition.running;
|
|
3677
|
+
if ((runningTransition ? node.tState : node.state) === 0)
|
|
3678
|
+
return;
|
|
3679
|
+
if ((runningTransition ? node.tState : node.state) === PENDING)
|
|
3680
|
+
return lookUpstream(node);
|
|
3681
|
+
if (node.suspense && untrack(node.suspense.inFallback))
|
|
3682
|
+
return node.suspense.effects.push(node);
|
|
3683
|
+
const ancestors = [node];
|
|
3684
|
+
while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {
|
|
3685
|
+
if (runningTransition && Transition.disposed.has(node))
|
|
3686
|
+
return;
|
|
3687
|
+
if (runningTransition ? node.tState : node.state)
|
|
3688
|
+
ancestors.push(node);
|
|
3689
|
+
}
|
|
3690
|
+
for (let i = ancestors.length - 1;i >= 0; i--) {
|
|
3691
|
+
node = ancestors[i];
|
|
3692
|
+
if (runningTransition) {
|
|
3693
|
+
let top = node, prev = ancestors[i + 1];
|
|
3694
|
+
while ((top = top.owner) && top !== prev) {
|
|
3695
|
+
if (Transition.disposed.has(top))
|
|
3696
|
+
return;
|
|
3697
|
+
}
|
|
3698
|
+
}
|
|
3699
|
+
if ((runningTransition ? node.tState : node.state) === STALE) {
|
|
3700
|
+
updateComputation(node);
|
|
3701
|
+
} else if ((runningTransition ? node.tState : node.state) === PENDING) {
|
|
3702
|
+
const updates = Updates;
|
|
3703
|
+
Updates = null;
|
|
3704
|
+
runUpdates(() => lookUpstream(node, ancestors[0]), false);
|
|
3705
|
+
Updates = updates;
|
|
3706
|
+
}
|
|
3707
|
+
}
|
|
3708
|
+
}
|
|
3709
|
+
function runUpdates(fn, init) {
|
|
3710
|
+
if (Updates)
|
|
3711
|
+
return fn();
|
|
3712
|
+
let wait = false;
|
|
3713
|
+
if (!init)
|
|
3714
|
+
Updates = [];
|
|
3715
|
+
if (Effects)
|
|
3716
|
+
wait = true;
|
|
3717
|
+
else
|
|
3718
|
+
Effects = [];
|
|
3719
|
+
ExecCount++;
|
|
3720
|
+
try {
|
|
3721
|
+
const res = fn();
|
|
3722
|
+
completeUpdates(wait);
|
|
3723
|
+
return res;
|
|
3724
|
+
} catch (err) {
|
|
3725
|
+
if (!wait)
|
|
3726
|
+
Effects = null;
|
|
3727
|
+
Updates = null;
|
|
3728
|
+
handleError(err);
|
|
3729
|
+
}
|
|
3730
|
+
}
|
|
3731
|
+
function completeUpdates(wait) {
|
|
3732
|
+
if (Updates) {
|
|
3733
|
+
if (Scheduler && Transition && Transition.running)
|
|
3734
|
+
scheduleQueue(Updates);
|
|
3735
|
+
else
|
|
3736
|
+
runQueue(Updates);
|
|
3737
|
+
Updates = null;
|
|
3738
|
+
}
|
|
3739
|
+
if (wait)
|
|
3740
|
+
return;
|
|
3741
|
+
let res;
|
|
3742
|
+
if (Transition) {
|
|
3743
|
+
if (!Transition.promises.size && !Transition.queue.size) {
|
|
3744
|
+
const sources = Transition.sources;
|
|
3745
|
+
const disposed = Transition.disposed;
|
|
3746
|
+
Effects.push.apply(Effects, Transition.effects);
|
|
3747
|
+
res = Transition.resolve;
|
|
3748
|
+
for (const e2 of Effects) {
|
|
3749
|
+
"tState" in e2 && (e2.state = e2.tState);
|
|
3750
|
+
delete e2.tState;
|
|
3751
|
+
}
|
|
3752
|
+
Transition = null;
|
|
3753
|
+
runUpdates(() => {
|
|
3754
|
+
for (const d of disposed)
|
|
3755
|
+
cleanNode(d);
|
|
3756
|
+
for (const v of sources) {
|
|
3757
|
+
v.value = v.tValue;
|
|
3758
|
+
if (v.owned) {
|
|
3759
|
+
for (let i = 0, len = v.owned.length;i < len; i++)
|
|
3760
|
+
cleanNode(v.owned[i]);
|
|
3761
|
+
}
|
|
3762
|
+
if (v.tOwned)
|
|
3763
|
+
v.owned = v.tOwned;
|
|
3764
|
+
delete v.tValue;
|
|
3765
|
+
delete v.tOwned;
|
|
3766
|
+
v.tState = 0;
|
|
3767
|
+
}
|
|
3768
|
+
setTransPending(false);
|
|
3769
|
+
}, false);
|
|
3770
|
+
} else if (Transition.running) {
|
|
3771
|
+
Transition.running = false;
|
|
3772
|
+
Transition.effects.push.apply(Transition.effects, Effects);
|
|
3773
|
+
Effects = null;
|
|
3774
|
+
setTransPending(true);
|
|
3775
|
+
return;
|
|
3776
|
+
}
|
|
3777
|
+
}
|
|
3778
|
+
const e = Effects;
|
|
3779
|
+
Effects = null;
|
|
3780
|
+
if (e.length)
|
|
3781
|
+
runUpdates(() => runEffects(e), false);
|
|
3782
|
+
if (res)
|
|
3783
|
+
res();
|
|
3784
|
+
}
|
|
3785
|
+
function runQueue(queue) {
|
|
3786
|
+
for (let i = 0;i < queue.length; i++)
|
|
3787
|
+
runTop(queue[i]);
|
|
3788
|
+
}
|
|
3789
|
+
function scheduleQueue(queue) {
|
|
3790
|
+
for (let i = 0;i < queue.length; i++) {
|
|
3791
|
+
const item = queue[i];
|
|
3792
|
+
const tasks = Transition.queue;
|
|
3793
|
+
if (!tasks.has(item)) {
|
|
3794
|
+
tasks.add(item);
|
|
3795
|
+
Scheduler(() => {
|
|
3796
|
+
tasks.delete(item);
|
|
3797
|
+
runUpdates(() => {
|
|
3798
|
+
Transition.running = true;
|
|
3799
|
+
runTop(item);
|
|
3800
|
+
}, false);
|
|
3801
|
+
Transition && (Transition.running = false);
|
|
3802
|
+
});
|
|
3803
|
+
}
|
|
3804
|
+
}
|
|
3805
|
+
}
|
|
3806
|
+
function runUserEffects(queue) {
|
|
3807
|
+
let i, userLength = 0;
|
|
3808
|
+
for (i = 0;i < queue.length; i++) {
|
|
3809
|
+
const e = queue[i];
|
|
3810
|
+
if (!e.user)
|
|
3811
|
+
runTop(e);
|
|
3812
|
+
else
|
|
3813
|
+
queue[userLength++] = e;
|
|
3814
|
+
}
|
|
3815
|
+
if (sharedConfig.context) {
|
|
3816
|
+
if (sharedConfig.count) {
|
|
3817
|
+
sharedConfig.effects || (sharedConfig.effects = []);
|
|
3818
|
+
sharedConfig.effects.push(...queue.slice(0, userLength));
|
|
3819
|
+
return;
|
|
3820
|
+
}
|
|
3821
|
+
setHydrateContext();
|
|
3822
|
+
}
|
|
3823
|
+
if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {
|
|
3824
|
+
queue = [...sharedConfig.effects, ...queue];
|
|
3825
|
+
userLength += sharedConfig.effects.length;
|
|
3826
|
+
delete sharedConfig.effects;
|
|
3827
|
+
}
|
|
3828
|
+
for (i = 0;i < userLength; i++)
|
|
3829
|
+
runTop(queue[i]);
|
|
3830
|
+
}
|
|
3831
|
+
function lookUpstream(node, ignore) {
|
|
3832
|
+
const runningTransition = Transition && Transition.running;
|
|
3833
|
+
if (runningTransition)
|
|
3834
|
+
node.tState = 0;
|
|
3835
|
+
else
|
|
3836
|
+
node.state = 0;
|
|
3837
|
+
for (let i = 0;i < node.sources.length; i += 1) {
|
|
3838
|
+
const source = node.sources[i];
|
|
3839
|
+
if (source.sources) {
|
|
3840
|
+
const state = runningTransition ? source.tState : source.state;
|
|
3841
|
+
if (state === STALE) {
|
|
3842
|
+
if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount))
|
|
3843
|
+
runTop(source);
|
|
3844
|
+
} else if (state === PENDING)
|
|
3845
|
+
lookUpstream(source, ignore);
|
|
3846
|
+
}
|
|
3847
|
+
}
|
|
3848
|
+
}
|
|
3849
|
+
function markDownstream(node) {
|
|
3850
|
+
const runningTransition = Transition && Transition.running;
|
|
3851
|
+
for (let i = 0;i < node.observers.length; i += 1) {
|
|
3852
|
+
const o = node.observers[i];
|
|
3853
|
+
if (runningTransition ? !o.tState : !o.state) {
|
|
3854
|
+
if (runningTransition)
|
|
3855
|
+
o.tState = PENDING;
|
|
3856
|
+
else
|
|
3857
|
+
o.state = PENDING;
|
|
3858
|
+
if (o.pure)
|
|
3859
|
+
Updates.push(o);
|
|
3860
|
+
else
|
|
3861
|
+
Effects.push(o);
|
|
3862
|
+
o.observers && markDownstream(o);
|
|
3863
|
+
}
|
|
3864
|
+
}
|
|
3865
|
+
}
|
|
3866
|
+
function cleanNode(node) {
|
|
3867
|
+
let i;
|
|
3868
|
+
if (node.sources) {
|
|
3869
|
+
while (node.sources.length) {
|
|
3870
|
+
const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers;
|
|
3871
|
+
if (obs && obs.length) {
|
|
3872
|
+
const n = obs.pop(), s = source.observerSlots.pop();
|
|
3873
|
+
if (index < obs.length) {
|
|
3874
|
+
n.sourceSlots[s] = index;
|
|
3875
|
+
obs[index] = n;
|
|
3876
|
+
source.observerSlots[index] = s;
|
|
3877
|
+
}
|
|
3878
|
+
}
|
|
3879
|
+
}
|
|
3880
|
+
}
|
|
3881
|
+
if (node.tOwned) {
|
|
3882
|
+
for (i = node.tOwned.length - 1;i >= 0; i--)
|
|
3883
|
+
cleanNode(node.tOwned[i]);
|
|
3884
|
+
delete node.tOwned;
|
|
3885
|
+
}
|
|
3886
|
+
if (Transition && Transition.running && node.pure) {
|
|
3887
|
+
reset(node, true);
|
|
3888
|
+
} else if (node.owned) {
|
|
3889
|
+
for (i = node.owned.length - 1;i >= 0; i--)
|
|
3890
|
+
cleanNode(node.owned[i]);
|
|
3891
|
+
node.owned = null;
|
|
3892
|
+
}
|
|
3893
|
+
if (node.cleanups) {
|
|
3894
|
+
for (i = node.cleanups.length - 1;i >= 0; i--)
|
|
3895
|
+
node.cleanups[i]();
|
|
3896
|
+
node.cleanups = null;
|
|
3897
|
+
}
|
|
3898
|
+
if (Transition && Transition.running)
|
|
3899
|
+
node.tState = 0;
|
|
3900
|
+
else
|
|
3901
|
+
node.state = 0;
|
|
3902
|
+
}
|
|
3903
|
+
function reset(node, top) {
|
|
3904
|
+
if (!top) {
|
|
3905
|
+
node.tState = 0;
|
|
3906
|
+
Transition.disposed.add(node);
|
|
3907
|
+
}
|
|
3908
|
+
if (node.owned) {
|
|
3909
|
+
for (let i = 0;i < node.owned.length; i++)
|
|
3910
|
+
reset(node.owned[i]);
|
|
3911
|
+
}
|
|
3912
|
+
}
|
|
3913
|
+
function castError(err) {
|
|
3914
|
+
if (err instanceof Error)
|
|
3915
|
+
return err;
|
|
3916
|
+
return new Error(typeof err === "string" ? err : "Unknown error", {
|
|
3917
|
+
cause: err
|
|
3918
|
+
});
|
|
3919
|
+
}
|
|
3920
|
+
function runErrors(err, fns, owner) {
|
|
3921
|
+
try {
|
|
3922
|
+
for (const f of fns)
|
|
3923
|
+
f(err);
|
|
3924
|
+
} catch (e) {
|
|
3925
|
+
handleError(e, owner && owner.owner || null);
|
|
3926
|
+
}
|
|
3927
|
+
}
|
|
3928
|
+
function handleError(err, owner = Owner) {
|
|
3929
|
+
const fns = ERROR && owner && owner.context && owner.context[ERROR];
|
|
3930
|
+
const error = castError(err);
|
|
3931
|
+
if (!fns)
|
|
3932
|
+
throw error;
|
|
3933
|
+
if (Effects)
|
|
3934
|
+
Effects.push({
|
|
3935
|
+
fn() {
|
|
3936
|
+
runErrors(error, fns, owner);
|
|
3937
|
+
},
|
|
3938
|
+
state: STALE
|
|
3939
|
+
});
|
|
3940
|
+
else
|
|
3941
|
+
runErrors(error, fns, owner);
|
|
3942
|
+
}
|
|
3943
|
+
function resolveChildren(children2) {
|
|
3944
|
+
if (typeof children2 === "function" && !children2.length)
|
|
3945
|
+
return resolveChildren(children2());
|
|
3946
|
+
if (Array.isArray(children2)) {
|
|
3947
|
+
const results = [];
|
|
3948
|
+
for (let i = 0;i < children2.length; i++) {
|
|
3949
|
+
const result = resolveChildren(children2[i]);
|
|
3950
|
+
Array.isArray(result) ? results.push.apply(results, result) : results.push(result);
|
|
3951
|
+
}
|
|
3952
|
+
return results;
|
|
3953
|
+
}
|
|
3954
|
+
return children2;
|
|
3955
|
+
}
|
|
3956
|
+
function createProvider(id, options) {
|
|
3957
|
+
return function provider(props) {
|
|
3958
|
+
let res;
|
|
3959
|
+
createRenderEffect(() => res = untrack(() => {
|
|
3960
|
+
Owner.context = {
|
|
3961
|
+
...Owner.context,
|
|
3962
|
+
[id]: props.value
|
|
3963
|
+
};
|
|
3964
|
+
return children(() => props.children);
|
|
3965
|
+
}), undefined);
|
|
3966
|
+
return res;
|
|
3967
|
+
};
|
|
3968
|
+
}
|
|
3969
|
+
var FALLBACK = Symbol("fallback");
|
|
3970
|
+
function dispose(d) {
|
|
3971
|
+
for (let i = 0;i < d.length; i++)
|
|
3972
|
+
d[i]();
|
|
3973
|
+
}
|
|
3974
|
+
function mapArray(list, mapFn, options = {}) {
|
|
3975
|
+
let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;
|
|
3976
|
+
onCleanup(() => dispose(disposers));
|
|
3977
|
+
return () => {
|
|
3978
|
+
let newItems = list() || [], newLen = newItems.length, i, j;
|
|
3979
|
+
newItems[$TRACK];
|
|
3980
|
+
return untrack(() => {
|
|
3981
|
+
let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;
|
|
3982
|
+
if (newLen === 0) {
|
|
3983
|
+
if (len !== 0) {
|
|
3984
|
+
dispose(disposers);
|
|
3985
|
+
disposers = [];
|
|
3986
|
+
items = [];
|
|
3987
|
+
mapped = [];
|
|
3988
|
+
len = 0;
|
|
3989
|
+
indexes && (indexes = []);
|
|
3990
|
+
}
|
|
3991
|
+
if (options.fallback) {
|
|
3992
|
+
items = [FALLBACK];
|
|
3993
|
+
mapped[0] = createRoot((disposer) => {
|
|
3994
|
+
disposers[0] = disposer;
|
|
3995
|
+
return options.fallback();
|
|
3996
|
+
});
|
|
3997
|
+
len = 1;
|
|
3998
|
+
}
|
|
3999
|
+
} else if (len === 0) {
|
|
4000
|
+
mapped = new Array(newLen);
|
|
4001
|
+
for (j = 0;j < newLen; j++) {
|
|
4002
|
+
items[j] = newItems[j];
|
|
4003
|
+
mapped[j] = createRoot(mapper);
|
|
4004
|
+
}
|
|
4005
|
+
len = newLen;
|
|
4006
|
+
} else {
|
|
4007
|
+
temp = new Array(newLen);
|
|
4008
|
+
tempdisposers = new Array(newLen);
|
|
4009
|
+
indexes && (tempIndexes = new Array(newLen));
|
|
4010
|
+
for (start = 0, end = Math.min(len, newLen);start < end && items[start] === newItems[start]; start++)
|
|
4011
|
+
;
|
|
4012
|
+
for (end = len - 1, newEnd = newLen - 1;end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {
|
|
4013
|
+
temp[newEnd] = mapped[end];
|
|
4014
|
+
tempdisposers[newEnd] = disposers[end];
|
|
4015
|
+
indexes && (tempIndexes[newEnd] = indexes[end]);
|
|
4016
|
+
}
|
|
4017
|
+
newIndices = new Map;
|
|
4018
|
+
newIndicesNext = new Array(newEnd + 1);
|
|
4019
|
+
for (j = newEnd;j >= start; j--) {
|
|
4020
|
+
item = newItems[j];
|
|
4021
|
+
i = newIndices.get(item);
|
|
4022
|
+
newIndicesNext[j] = i === undefined ? -1 : i;
|
|
4023
|
+
newIndices.set(item, j);
|
|
4024
|
+
}
|
|
4025
|
+
for (i = start;i <= end; i++) {
|
|
4026
|
+
item = items[i];
|
|
4027
|
+
j = newIndices.get(item);
|
|
4028
|
+
if (j !== undefined && j !== -1) {
|
|
4029
|
+
temp[j] = mapped[i];
|
|
4030
|
+
tempdisposers[j] = disposers[i];
|
|
4031
|
+
indexes && (tempIndexes[j] = indexes[i]);
|
|
4032
|
+
j = newIndicesNext[j];
|
|
4033
|
+
newIndices.set(item, j);
|
|
4034
|
+
} else
|
|
4035
|
+
disposers[i]();
|
|
4036
|
+
}
|
|
4037
|
+
for (j = start;j < newLen; j++) {
|
|
4038
|
+
if (j in temp) {
|
|
4039
|
+
mapped[j] = temp[j];
|
|
4040
|
+
disposers[j] = tempdisposers[j];
|
|
4041
|
+
if (indexes) {
|
|
4042
|
+
indexes[j] = tempIndexes[j];
|
|
4043
|
+
indexes[j](j);
|
|
4044
|
+
}
|
|
4045
|
+
} else
|
|
4046
|
+
mapped[j] = createRoot(mapper);
|
|
4047
|
+
}
|
|
4048
|
+
mapped = mapped.slice(0, len = newLen);
|
|
4049
|
+
items = newItems.slice(0);
|
|
4050
|
+
}
|
|
4051
|
+
return mapped;
|
|
4052
|
+
});
|
|
4053
|
+
function mapper(disposer) {
|
|
4054
|
+
disposers[j] = disposer;
|
|
4055
|
+
if (indexes) {
|
|
4056
|
+
const [s, set] = createSignal(j);
|
|
4057
|
+
indexes[j] = set;
|
|
4058
|
+
return mapFn(newItems[j], s);
|
|
4059
|
+
}
|
|
4060
|
+
return mapFn(newItems[j]);
|
|
4061
|
+
}
|
|
4062
|
+
};
|
|
4063
|
+
}
|
|
4064
|
+
var hydrationEnabled = false;
|
|
4065
|
+
function createComponent(Comp, props) {
|
|
4066
|
+
if (hydrationEnabled) {
|
|
4067
|
+
if (sharedConfig.context) {
|
|
4068
|
+
const c = sharedConfig.context;
|
|
4069
|
+
setHydrateContext(nextHydrateContext());
|
|
4070
|
+
const r = untrack(() => Comp(props || {}));
|
|
4071
|
+
setHydrateContext(c);
|
|
4072
|
+
return r;
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
return untrack(() => Comp(props || {}));
|
|
4076
|
+
}
|
|
4077
|
+
function trueFn() {
|
|
4078
|
+
return true;
|
|
4079
|
+
}
|
|
4080
|
+
var propTraps = {
|
|
4081
|
+
get(_, property, receiver) {
|
|
4082
|
+
if (property === $PROXY)
|
|
4083
|
+
return receiver;
|
|
4084
|
+
return _.get(property);
|
|
4085
|
+
},
|
|
4086
|
+
has(_, property) {
|
|
4087
|
+
if (property === $PROXY)
|
|
4088
|
+
return true;
|
|
4089
|
+
return _.has(property);
|
|
4090
|
+
},
|
|
4091
|
+
set: trueFn,
|
|
4092
|
+
deleteProperty: trueFn,
|
|
4093
|
+
getOwnPropertyDescriptor(_, property) {
|
|
4094
|
+
return {
|
|
4095
|
+
configurable: true,
|
|
4096
|
+
enumerable: true,
|
|
4097
|
+
get() {
|
|
4098
|
+
return _.get(property);
|
|
4099
|
+
},
|
|
4100
|
+
set: trueFn,
|
|
4101
|
+
deleteProperty: trueFn
|
|
4102
|
+
};
|
|
4103
|
+
},
|
|
4104
|
+
ownKeys(_) {
|
|
4105
|
+
return _.keys();
|
|
4106
|
+
}
|
|
4107
|
+
};
|
|
4108
|
+
function resolveSource(s) {
|
|
4109
|
+
return !(s = typeof s === "function" ? s() : s) ? {} : s;
|
|
4110
|
+
}
|
|
4111
|
+
function resolveSources() {
|
|
4112
|
+
for (let i = 0, length = this.length;i < length; ++i) {
|
|
4113
|
+
const v = this[i]();
|
|
4114
|
+
if (v !== undefined)
|
|
4115
|
+
return v;
|
|
4116
|
+
}
|
|
4117
|
+
}
|
|
4118
|
+
function mergeProps(...sources) {
|
|
4119
|
+
let proxy = false;
|
|
4120
|
+
for (let i = 0;i < sources.length; i++) {
|
|
4121
|
+
const s = sources[i];
|
|
4122
|
+
proxy = proxy || !!s && $PROXY in s;
|
|
4123
|
+
sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s;
|
|
4124
|
+
}
|
|
4125
|
+
if (SUPPORTS_PROXY && proxy) {
|
|
4126
|
+
return new Proxy({
|
|
4127
|
+
get(property) {
|
|
4128
|
+
for (let i = sources.length - 1;i >= 0; i--) {
|
|
4129
|
+
const v = resolveSource(sources[i])[property];
|
|
4130
|
+
if (v !== undefined)
|
|
4131
|
+
return v;
|
|
4132
|
+
}
|
|
4133
|
+
},
|
|
4134
|
+
has(property) {
|
|
4135
|
+
for (let i = sources.length - 1;i >= 0; i--) {
|
|
4136
|
+
if (property in resolveSource(sources[i]))
|
|
4137
|
+
return true;
|
|
4138
|
+
}
|
|
4139
|
+
return false;
|
|
4140
|
+
},
|
|
4141
|
+
keys() {
|
|
4142
|
+
const keys = [];
|
|
4143
|
+
for (let i = 0;i < sources.length; i++)
|
|
4144
|
+
keys.push(...Object.keys(resolveSource(sources[i])));
|
|
4145
|
+
return [...new Set(keys)];
|
|
4146
|
+
}
|
|
4147
|
+
}, propTraps);
|
|
4148
|
+
}
|
|
4149
|
+
const sourcesMap = {};
|
|
4150
|
+
const defined = Object.create(null);
|
|
4151
|
+
for (let i = sources.length - 1;i >= 0; i--) {
|
|
4152
|
+
const source = sources[i];
|
|
4153
|
+
if (!source)
|
|
4154
|
+
continue;
|
|
4155
|
+
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
4156
|
+
for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) {
|
|
4157
|
+
const key = sourceKeys[i2];
|
|
4158
|
+
if (key === "__proto__" || key === "constructor")
|
|
4159
|
+
continue;
|
|
4160
|
+
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
4161
|
+
if (!defined[key]) {
|
|
4162
|
+
defined[key] = desc.get ? {
|
|
4163
|
+
enumerable: true,
|
|
4164
|
+
configurable: true,
|
|
4165
|
+
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
4166
|
+
} : desc.value !== undefined ? desc : undefined;
|
|
4167
|
+
} else {
|
|
4168
|
+
const sources2 = sourcesMap[key];
|
|
4169
|
+
if (sources2) {
|
|
4170
|
+
if (desc.get)
|
|
4171
|
+
sources2.push(desc.get.bind(source));
|
|
4172
|
+
else if (desc.value !== undefined)
|
|
4173
|
+
sources2.push(() => desc.value);
|
|
4174
|
+
}
|
|
4175
|
+
}
|
|
4176
|
+
}
|
|
4177
|
+
}
|
|
4178
|
+
const target = {};
|
|
4179
|
+
const definedKeys = Object.keys(defined);
|
|
4180
|
+
for (let i = definedKeys.length - 1;i >= 0; i--) {
|
|
4181
|
+
const key = definedKeys[i], desc = defined[key];
|
|
4182
|
+
if (desc && desc.get)
|
|
4183
|
+
Object.defineProperty(target, key, desc);
|
|
4184
|
+
else
|
|
4185
|
+
target[key] = desc ? desc.value : undefined;
|
|
4186
|
+
}
|
|
4187
|
+
return target;
|
|
4188
|
+
}
|
|
4189
|
+
var narrowedError = (name) => `Stale read from <${name}>.`;
|
|
4190
|
+
function For(props) {
|
|
4191
|
+
const fallback = "fallback" in props && {
|
|
4192
|
+
fallback: () => props.fallback
|
|
4193
|
+
};
|
|
4194
|
+
return createMemo(mapArray(() => props.each, props.children, fallback || undefined));
|
|
4195
|
+
}
|
|
4196
|
+
function Show(props) {
|
|
4197
|
+
const keyed = props.keyed;
|
|
4198
|
+
const conditionValue = createMemo(() => props.when, undefined, undefined);
|
|
4199
|
+
const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, {
|
|
4200
|
+
equals: (a, b) => !a === !b
|
|
4201
|
+
});
|
|
4202
|
+
return createMemo(() => {
|
|
4203
|
+
const c = condition();
|
|
4204
|
+
if (c) {
|
|
4205
|
+
const child = props.children;
|
|
4206
|
+
const fn = typeof child === "function" && child.length > 0;
|
|
4207
|
+
return fn ? untrack(() => child(keyed ? c : () => {
|
|
4208
|
+
if (!untrack(condition))
|
|
4209
|
+
throw narrowedError("Show");
|
|
4210
|
+
return conditionValue();
|
|
4211
|
+
})) : child;
|
|
4212
|
+
}
|
|
4213
|
+
return props.fallback;
|
|
4214
|
+
}, undefined, undefined);
|
|
4215
|
+
}
|
|
4216
|
+
|
|
3291
4217
|
// node_modules/@opentui/solid/node_modules/@opentui/core/index-mdxq0qtt.js
|
|
3292
4218
|
import { EventEmitter } from "events";
|
|
3293
4219
|
import { Buffer as Buffer2 } from "buffer";
|
|
@@ -8446,11 +9372,11 @@ function visualizeRenderableTree(renderable, maxDepth = 10) {
|
|
|
8446
9372
|
return [`${prefix}${node.id} ... (max depth reached)`];
|
|
8447
9373
|
}
|
|
8448
9374
|
const lines = [];
|
|
8449
|
-
const
|
|
9375
|
+
const children2 = node.getChildren();
|
|
8450
9376
|
lines.push(`${prefix}${node.id}`);
|
|
8451
|
-
if (
|
|
8452
|
-
const lastChildIndex =
|
|
8453
|
-
|
|
9377
|
+
if (children2.length > 0) {
|
|
9378
|
+
const lastChildIndex = children2.length - 1;
|
|
9379
|
+
children2.forEach((child, index) => {
|
|
8454
9380
|
const childIsLast = index === lastChildIndex;
|
|
8455
9381
|
const connector = childIsLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
8456
9382
|
const childPrefix = parentPrefix + (isLastChild ? " " : "\u2502 ");
|
|
@@ -18779,8 +19705,8 @@ class Renderable extends BaseRenderable {
|
|
|
18779
19705
|
} catch (e) {}
|
|
18780
19706
|
}
|
|
18781
19707
|
destroyRecursively() {
|
|
18782
|
-
const
|
|
18783
|
-
for (const child of
|
|
19708
|
+
const children2 = [...this._childrenInLayoutOrder];
|
|
19709
|
+
for (const child of children2) {
|
|
18784
19710
|
child.destroyRecursively();
|
|
18785
19711
|
}
|
|
18786
19712
|
this.destroy();
|
|
@@ -18966,9 +19892,9 @@ var BrandedVNode = Symbol.for("@opentui/core/VNode");
|
|
|
18966
19892
|
function isRenderableConstructor(value) {
|
|
18967
19893
|
return typeof value === "function" && value.prototype && Renderable.prototype.isPrototypeOf(value.prototype);
|
|
18968
19894
|
}
|
|
18969
|
-
function flattenChildren(
|
|
19895
|
+
function flattenChildren(children2) {
|
|
18970
19896
|
const result = [];
|
|
18971
|
-
for (const child of
|
|
19897
|
+
for (const child of children2) {
|
|
18972
19898
|
if (Array.isArray(child)) {
|
|
18973
19899
|
result.push(...flattenChildren(child));
|
|
18974
19900
|
} else if (child !== null && child !== undefined && child !== false) {
|
|
@@ -18977,7 +19903,7 @@ function flattenChildren(children) {
|
|
|
18977
19903
|
}
|
|
18978
19904
|
return result;
|
|
18979
19905
|
}
|
|
18980
|
-
function h(type, props, ...
|
|
19906
|
+
function h(type, props, ...children2) {
|
|
18981
19907
|
if (typeof type !== "function") {
|
|
18982
19908
|
throw new TypeError("h() received an invalid vnode type");
|
|
18983
19909
|
}
|
|
@@ -18985,7 +19911,7 @@ function h(type, props, ...children) {
|
|
|
18985
19911
|
[BrandedVNode]: true,
|
|
18986
19912
|
type,
|
|
18987
19913
|
props,
|
|
18988
|
-
children: flattenChildren(
|
|
19914
|
+
children: flattenChildren(children2),
|
|
18989
19915
|
__pendingCalls: []
|
|
18990
19916
|
};
|
|
18991
19917
|
if (isRenderableConstructor(type)) {
|
|
@@ -19087,11 +20013,11 @@ function instantiate(ctx, node) {
|
|
|
19087
20013
|
}
|
|
19088
20014
|
const vnode = node;
|
|
19089
20015
|
const { type, props } = vnode;
|
|
19090
|
-
const
|
|
20016
|
+
const children2 = flattenChildren(vnode.children || []);
|
|
19091
20017
|
const delegateMap = vnode.__delegateMap;
|
|
19092
20018
|
if (isRenderableConstructor(type)) {
|
|
19093
20019
|
const instance = new type(ctx, props || {});
|
|
19094
|
-
for (const child of
|
|
20020
|
+
for (const child of children2) {
|
|
19095
20021
|
if (isRenderable(child)) {
|
|
19096
20022
|
instance.add(child);
|
|
19097
20023
|
} else {
|
|
@@ -19112,7 +20038,7 @@ function instantiate(ctx, node) {
|
|
|
19112
20038
|
}
|
|
19113
20039
|
return delegatedInstance;
|
|
19114
20040
|
}
|
|
19115
|
-
const resolved = type(props || {},
|
|
20041
|
+
const resolved = type(props || {}, children2);
|
|
19116
20042
|
const inst = instantiate(ctx, resolved);
|
|
19117
20043
|
return wrapWithDelegates(inst, delegateMap);
|
|
19118
20044
|
}
|
|
@@ -20249,8 +21175,8 @@ function getObjectsInViewport(viewport, objects, direction = "column", padding =
|
|
|
20249
21175
|
const viewportLeft = viewport.x - padding;
|
|
20250
21176
|
const viewportRight = viewport.x + viewport.width + padding;
|
|
20251
21177
|
const isRow = direction === "row";
|
|
20252
|
-
const
|
|
20253
|
-
const totalChildren =
|
|
21178
|
+
const children2 = objects;
|
|
21179
|
+
const totalChildren = children2.length;
|
|
20254
21180
|
if (totalChildren === 0)
|
|
20255
21181
|
return [];
|
|
20256
21182
|
const vpStart = isRow ? viewportLeft : viewportTop;
|
|
@@ -20260,7 +21186,7 @@ function getObjectsInViewport(viewport, objects, direction = "column", padding =
|
|
|
20260
21186
|
let candidate = -1;
|
|
20261
21187
|
while (lo <= hi) {
|
|
20262
21188
|
const mid = lo + hi >> 1;
|
|
20263
|
-
const c =
|
|
21189
|
+
const c = children2[mid];
|
|
20264
21190
|
const start = isRow ? c.x : c.y;
|
|
20265
21191
|
const end = isRow ? c.x + c.width : c.y + c.height;
|
|
20266
21192
|
if (end < vpStart) {
|
|
@@ -20280,7 +21206,7 @@ function getObjectsInViewport(viewport, objects, direction = "column", padding =
|
|
|
20280
21206
|
let left = candidate;
|
|
20281
21207
|
let gapCount = 0;
|
|
20282
21208
|
while (left - 1 >= 0) {
|
|
20283
|
-
const prev =
|
|
21209
|
+
const prev = children2[left - 1];
|
|
20284
21210
|
const prevEnd = isRow ? prev.x + prev.width : prev.y + prev.height;
|
|
20285
21211
|
if (prevEnd <= vpStart) {
|
|
20286
21212
|
gapCount++;
|
|
@@ -20294,13 +21220,13 @@ function getObjectsInViewport(viewport, objects, direction = "column", padding =
|
|
|
20294
21220
|
}
|
|
20295
21221
|
let right = candidate + 1;
|
|
20296
21222
|
while (right < totalChildren) {
|
|
20297
|
-
const next =
|
|
21223
|
+
const next = children2[right];
|
|
20298
21224
|
if ((isRow ? next.x : next.y) >= vpEnd)
|
|
20299
21225
|
break;
|
|
20300
21226
|
right++;
|
|
20301
21227
|
}
|
|
20302
21228
|
for (let i = left;i < right; i++) {
|
|
20303
|
-
const child =
|
|
21229
|
+
const child = children2[i];
|
|
20304
21230
|
const start = isRow ? child.x : child.y;
|
|
20305
21231
|
const end = isRow ? child.x + child.width : child.y + child.height;
|
|
20306
21232
|
if (end <= vpStart)
|
|
@@ -22132,8 +23058,8 @@ Captured output:
|
|
|
22132
23058
|
}
|
|
22133
23059
|
}
|
|
22134
23060
|
walkSelectableRenderables(container, selectionBounds, selectedRenderables, touchedRenderables) {
|
|
22135
|
-
const
|
|
22136
|
-
for (const child of
|
|
23061
|
+
const children2 = getObjectsInViewport(selectionBounds, container.getChildrenSortedByPrimaryAxis(), container.primaryAxis, 0, 0);
|
|
23062
|
+
for (const child of children2) {
|
|
22137
23063
|
if (child.selectable) {
|
|
22138
23064
|
const hasSelection = child.onSelectionChanged(this.currentSelection);
|
|
22139
23065
|
if (hasSelection) {
|
|
@@ -26874,8 +27800,8 @@ class TextNodeRenderable extends BaseRenderable {
|
|
|
26874
27800
|
get children() {
|
|
26875
27801
|
return this._children;
|
|
26876
27802
|
}
|
|
26877
|
-
set children(
|
|
26878
|
-
this._children =
|
|
27803
|
+
set children(children2) {
|
|
27804
|
+
this._children = children2;
|
|
26879
27805
|
this.requestRender();
|
|
26880
27806
|
}
|
|
26881
27807
|
requestRender() {
|
|
@@ -27088,66 +28014,66 @@ class RootTextNodeRenderable extends TextNodeRenderable {
|
|
|
27088
28014
|
this.ctx.requestRender();
|
|
27089
28015
|
}
|
|
27090
28016
|
}
|
|
27091
|
-
function Generic(props, ...
|
|
27092
|
-
return h(VRenderable, props || {}, ...
|
|
28017
|
+
function Generic(props, ...children2) {
|
|
28018
|
+
return h(VRenderable, props || {}, ...children2);
|
|
27093
28019
|
}
|
|
27094
|
-
function Box(props, ...
|
|
27095
|
-
return h(BoxRenderable, props || {}, ...
|
|
28020
|
+
function Box(props, ...children2) {
|
|
28021
|
+
return h(BoxRenderable, props || {}, ...children2);
|
|
27096
28022
|
}
|
|
27097
|
-
function Text(props, ...
|
|
27098
|
-
return h(TextRenderable, props || {}, ...
|
|
28023
|
+
function Text(props, ...children2) {
|
|
28024
|
+
return h(TextRenderable, props || {}, ...children2);
|
|
27099
28025
|
}
|
|
27100
|
-
function ASCIIFont(props, ...
|
|
27101
|
-
return h(ASCIIFontRenderable, props || {}, ...
|
|
28026
|
+
function ASCIIFont(props, ...children2) {
|
|
28027
|
+
return h(ASCIIFontRenderable, props || {}, ...children2);
|
|
27102
28028
|
}
|
|
27103
|
-
function Input(props, ...
|
|
27104
|
-
return h(InputRenderable, props || {}, ...
|
|
28029
|
+
function Input(props, ...children2) {
|
|
28030
|
+
return h(InputRenderable, props || {}, ...children2);
|
|
27105
28031
|
}
|
|
27106
|
-
function Select(props, ...
|
|
27107
|
-
return h(SelectRenderable, props || {}, ...
|
|
28032
|
+
function Select(props, ...children2) {
|
|
28033
|
+
return h(SelectRenderable, props || {}, ...children2);
|
|
27108
28034
|
}
|
|
27109
|
-
function TabSelect(props, ...
|
|
27110
|
-
return h(TabSelectRenderable, props || {}, ...
|
|
28035
|
+
function TabSelect(props, ...children2) {
|
|
28036
|
+
return h(TabSelectRenderable, props || {}, ...children2);
|
|
27111
28037
|
}
|
|
27112
|
-
function FrameBuffer(props, ...
|
|
27113
|
-
return h(FrameBufferRenderable, props, ...
|
|
28038
|
+
function FrameBuffer(props, ...children2) {
|
|
28039
|
+
return h(FrameBufferRenderable, props, ...children2);
|
|
27114
28040
|
}
|
|
27115
|
-
function Code(props, ...
|
|
27116
|
-
return h(CodeRenderable, props, ...
|
|
28041
|
+
function Code(props, ...children2) {
|
|
28042
|
+
return h(CodeRenderable, props, ...children2);
|
|
27117
28043
|
}
|
|
27118
|
-
function ScrollBox(props, ...
|
|
27119
|
-
return h(ScrollBoxRenderable, props || {}, ...
|
|
28044
|
+
function ScrollBox(props, ...children2) {
|
|
28045
|
+
return h(ScrollBoxRenderable, props || {}, ...children2);
|
|
27120
28046
|
}
|
|
27121
|
-
function StyledText2(props, ...
|
|
28047
|
+
function StyledText2(props, ...children2) {
|
|
27122
28048
|
const styledProps = props;
|
|
27123
28049
|
const textNodeOptions = {
|
|
27124
28050
|
...styledProps,
|
|
27125
28051
|
attributes: styledProps?.attributes ?? 0
|
|
27126
28052
|
};
|
|
27127
28053
|
const textNode = new TextNodeRenderable(textNodeOptions);
|
|
27128
|
-
for (const child of
|
|
28054
|
+
for (const child of children2) {
|
|
27129
28055
|
textNode.add(child);
|
|
27130
28056
|
}
|
|
27131
28057
|
return textNode;
|
|
27132
28058
|
}
|
|
27133
28059
|
var vstyles = {
|
|
27134
|
-
bold: (...
|
|
27135
|
-
italic: (...
|
|
27136
|
-
underline: (...
|
|
27137
|
-
dim: (...
|
|
27138
|
-
blink: (...
|
|
27139
|
-
inverse: (...
|
|
27140
|
-
hidden: (...
|
|
27141
|
-
strikethrough: (...
|
|
27142
|
-
boldItalic: (...
|
|
27143
|
-
boldUnderline: (...
|
|
27144
|
-
italicUnderline: (...
|
|
27145
|
-
boldItalicUnderline: (...
|
|
27146
|
-
color: (color, ...
|
|
27147
|
-
bgColor: (bgColor, ...
|
|
27148
|
-
fg: (color, ...
|
|
27149
|
-
bg: (bgColor, ...
|
|
27150
|
-
styled: (attributes = 0, ...
|
|
28060
|
+
bold: (...children2) => StyledText2({ attributes: TextAttributes.BOLD }, ...children2),
|
|
28061
|
+
italic: (...children2) => StyledText2({ attributes: TextAttributes.ITALIC }, ...children2),
|
|
28062
|
+
underline: (...children2) => StyledText2({ attributes: TextAttributes.UNDERLINE }, ...children2),
|
|
28063
|
+
dim: (...children2) => StyledText2({ attributes: TextAttributes.DIM }, ...children2),
|
|
28064
|
+
blink: (...children2) => StyledText2({ attributes: TextAttributes.BLINK }, ...children2),
|
|
28065
|
+
inverse: (...children2) => StyledText2({ attributes: TextAttributes.INVERSE }, ...children2),
|
|
28066
|
+
hidden: (...children2) => StyledText2({ attributes: TextAttributes.HIDDEN }, ...children2),
|
|
28067
|
+
strikethrough: (...children2) => StyledText2({ attributes: TextAttributes.STRIKETHROUGH }, ...children2),
|
|
28068
|
+
boldItalic: (...children2) => StyledText2({ attributes: TextAttributes.BOLD | TextAttributes.ITALIC }, ...children2),
|
|
28069
|
+
boldUnderline: (...children2) => StyledText2({ attributes: TextAttributes.BOLD | TextAttributes.UNDERLINE }, ...children2),
|
|
28070
|
+
italicUnderline: (...children2) => StyledText2({ attributes: TextAttributes.ITALIC | TextAttributes.UNDERLINE }, ...children2),
|
|
28071
|
+
boldItalicUnderline: (...children2) => StyledText2({ attributes: TextAttributes.BOLD | TextAttributes.ITALIC | TextAttributes.UNDERLINE }, ...children2),
|
|
28072
|
+
color: (color, ...children2) => StyledText2({ fg: color }, ...children2),
|
|
28073
|
+
bgColor: (bgColor, ...children2) => StyledText2({ bg: bgColor }, ...children2),
|
|
28074
|
+
fg: (color, ...children2) => StyledText2({ fg: color }, ...children2),
|
|
28075
|
+
bg: (bgColor, ...children2) => StyledText2({ bg: bgColor }, ...children2),
|
|
28076
|
+
styled: (attributes = 0, ...children2) => StyledText2({ attributes }, ...children2)
|
|
27151
28077
|
};
|
|
27152
28078
|
|
|
27153
28079
|
class VRenderable extends Renderable {
|
|
@@ -34772,1497 +35698,571 @@ class SelectRenderable extends Renderable {
|
|
|
34772
35698
|
this._backgroundColor = newColor;
|
|
34773
35699
|
this.requestRender();
|
|
34774
35700
|
}
|
|
34775
|
-
}
|
|
34776
|
-
set textColor(value) {
|
|
34777
|
-
const newColor = parseColor(value ?? this._defaultOptions.textColor);
|
|
34778
|
-
if (this._textColor !== newColor) {
|
|
34779
|
-
this._textColor = newColor;
|
|
34780
|
-
this.requestRender();
|
|
34781
|
-
}
|
|
34782
|
-
}
|
|
34783
|
-
set focusedBackgroundColor(value) {
|
|
34784
|
-
const newColor = parseColor(value ?? this._defaultOptions.focusedBackgroundColor);
|
|
34785
|
-
if (this._focusedBackgroundColor !== newColor) {
|
|
34786
|
-
this._focusedBackgroundColor = newColor;
|
|
34787
|
-
this.requestRender();
|
|
34788
|
-
}
|
|
34789
|
-
}
|
|
34790
|
-
set focusedTextColor(value) {
|
|
34791
|
-
const newColor = parseColor(value ?? this._defaultOptions.focusedTextColor);
|
|
34792
|
-
if (this._focusedTextColor !== newColor) {
|
|
34793
|
-
this._focusedTextColor = newColor;
|
|
34794
|
-
this.requestRender();
|
|
34795
|
-
}
|
|
34796
|
-
}
|
|
34797
|
-
set selectedBackgroundColor(value) {
|
|
34798
|
-
const newColor = parseColor(value ?? this._defaultOptions.selectedBackgroundColor);
|
|
34799
|
-
if (this._selectedBackgroundColor !== newColor) {
|
|
34800
|
-
this._selectedBackgroundColor = newColor;
|
|
34801
|
-
this.requestRender();
|
|
34802
|
-
}
|
|
34803
|
-
}
|
|
34804
|
-
set selectedTextColor(value) {
|
|
34805
|
-
const newColor = parseColor(value ?? this._defaultOptions.selectedTextColor);
|
|
34806
|
-
if (this._selectedTextColor !== newColor) {
|
|
34807
|
-
this._selectedTextColor = newColor;
|
|
34808
|
-
this.requestRender();
|
|
34809
|
-
}
|
|
34810
|
-
}
|
|
34811
|
-
set descriptionColor(value) {
|
|
34812
|
-
const newColor = parseColor(value ?? this._defaultOptions.descriptionColor);
|
|
34813
|
-
if (this._descriptionColor !== newColor) {
|
|
34814
|
-
this._descriptionColor = newColor;
|
|
34815
|
-
this.requestRender();
|
|
34816
|
-
}
|
|
34817
|
-
}
|
|
34818
|
-
set selectedDescriptionColor(value) {
|
|
34819
|
-
const newColor = parseColor(value ?? this._defaultOptions.selectedDescriptionColor);
|
|
34820
|
-
if (this._selectedDescriptionColor !== newColor) {
|
|
34821
|
-
this._selectedDescriptionColor = newColor;
|
|
34822
|
-
this.requestRender();
|
|
34823
|
-
}
|
|
34824
|
-
}
|
|
34825
|
-
set font(font) {
|
|
34826
|
-
this._font = font;
|
|
34827
|
-
this.fontHeight = measureText({ text: "A", font: this._font }).height;
|
|
34828
|
-
this.linesPerItem = this._showDescription ? this._font ? this.fontHeight + 1 : 2 : this._font ? this.fontHeight : 1;
|
|
34829
|
-
this.linesPerItem += this._itemSpacing;
|
|
34830
|
-
this.maxVisibleItems = Math.max(1, Math.floor(this.height / this.linesPerItem));
|
|
34831
|
-
this.updateScrollOffset();
|
|
34832
|
-
this.requestRender();
|
|
34833
|
-
}
|
|
34834
|
-
set itemSpacing(spacing) {
|
|
34835
|
-
this._itemSpacing = spacing;
|
|
34836
|
-
this.linesPerItem = this._showDescription ? this._font ? this.fontHeight + 1 : 2 : this._font ? this.fontHeight : 1;
|
|
34837
|
-
this.linesPerItem += this._itemSpacing;
|
|
34838
|
-
this.maxVisibleItems = Math.max(1, Math.floor(this.height / this.linesPerItem));
|
|
34839
|
-
this.updateScrollOffset();
|
|
34840
|
-
this.requestRender();
|
|
34841
|
-
}
|
|
34842
|
-
set fastScrollStep(step) {
|
|
34843
|
-
this._fastScrollStep = step;
|
|
34844
|
-
}
|
|
34845
|
-
set keyBindings(bindings) {
|
|
34846
|
-
this._keyBindings = bindings;
|
|
34847
|
-
const mergedBindings = mergeKeyBindings(defaultSelectKeybindings, bindings);
|
|
34848
|
-
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
34849
|
-
}
|
|
34850
|
-
set keyAliasMap(aliases) {
|
|
34851
|
-
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, aliases);
|
|
34852
|
-
const mergedBindings = mergeKeyBindings(defaultSelectKeybindings, this._keyBindings);
|
|
34853
|
-
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
34854
|
-
}
|
|
34855
|
-
set selectedIndex(value) {
|
|
34856
|
-
const newIndex = value ?? this._defaultOptions.selectedIndex;
|
|
34857
|
-
const clampedIndex = this._options.length > 0 ? Math.min(Math.max(0, newIndex), this._options.length - 1) : 0;
|
|
34858
|
-
if (this._selectedIndex !== clampedIndex) {
|
|
34859
|
-
this._selectedIndex = clampedIndex;
|
|
34860
|
-
this.updateScrollOffset();
|
|
34861
|
-
this.requestRender();
|
|
34862
|
-
}
|
|
34863
|
-
}
|
|
34864
|
-
}
|
|
34865
|
-
var defaultTabSelectKeybindings = [
|
|
34866
|
-
{ name: "left", action: "move-left" },
|
|
34867
|
-
{ name: "[", action: "move-left" },
|
|
34868
|
-
{ name: "right", action: "move-right" },
|
|
34869
|
-
{ name: "]", action: "move-right" },
|
|
34870
|
-
{ name: "return", action: "select-current" },
|
|
34871
|
-
{ name: "linefeed", action: "select-current" }
|
|
34872
|
-
];
|
|
34873
|
-
var TabSelectRenderableEvents;
|
|
34874
|
-
((TabSelectRenderableEvents2) => {
|
|
34875
|
-
TabSelectRenderableEvents2["SELECTION_CHANGED"] = "selectionChanged";
|
|
34876
|
-
TabSelectRenderableEvents2["ITEM_SELECTED"] = "itemSelected";
|
|
34877
|
-
})(TabSelectRenderableEvents ||= {});
|
|
34878
|
-
function calculateDynamicHeight(showUnderline, showDescription) {
|
|
34879
|
-
let height = 1;
|
|
34880
|
-
if (showUnderline) {
|
|
34881
|
-
height += 1;
|
|
34882
|
-
}
|
|
34883
|
-
if (showDescription) {
|
|
34884
|
-
height += 1;
|
|
34885
|
-
}
|
|
34886
|
-
return height;
|
|
34887
|
-
}
|
|
34888
|
-
|
|
34889
|
-
class TabSelectRenderable extends Renderable {
|
|
34890
|
-
_focusable = true;
|
|
34891
|
-
_options = [];
|
|
34892
|
-
selectedIndex = 0;
|
|
34893
|
-
scrollOffset = 0;
|
|
34894
|
-
_tabWidth;
|
|
34895
|
-
maxVisibleTabs;
|
|
34896
|
-
_backgroundColor;
|
|
34897
|
-
_textColor;
|
|
34898
|
-
_focusedBackgroundColor;
|
|
34899
|
-
_focusedTextColor;
|
|
34900
|
-
_selectedBackgroundColor;
|
|
34901
|
-
_selectedTextColor;
|
|
34902
|
-
_selectedDescriptionColor;
|
|
34903
|
-
_showScrollArrows;
|
|
34904
|
-
_showDescription;
|
|
34905
|
-
_showUnderline;
|
|
34906
|
-
_wrapSelection;
|
|
34907
|
-
_keyBindingsMap;
|
|
34908
|
-
_keyAliasMap;
|
|
34909
|
-
_keyBindings;
|
|
34910
|
-
constructor(ctx, options) {
|
|
34911
|
-
const calculatedHeight = calculateDynamicHeight(options.showUnderline ?? true, options.showDescription ?? true);
|
|
34912
|
-
super(ctx, { ...options, height: calculatedHeight, buffered: true });
|
|
34913
|
-
this._backgroundColor = parseColor(options.backgroundColor || "transparent");
|
|
34914
|
-
this._textColor = parseColor(options.textColor || "#FFFFFF");
|
|
34915
|
-
this._focusedBackgroundColor = parseColor(options.focusedBackgroundColor || options.backgroundColor || "#1a1a1a");
|
|
34916
|
-
this._focusedTextColor = parseColor(options.focusedTextColor || options.textColor || "#FFFFFF");
|
|
34917
|
-
this._options = options.options || [];
|
|
34918
|
-
this._tabWidth = options.tabWidth || 20;
|
|
34919
|
-
this._showDescription = options.showDescription ?? true;
|
|
34920
|
-
this._showUnderline = options.showUnderline ?? true;
|
|
34921
|
-
this._showScrollArrows = options.showScrollArrows ?? true;
|
|
34922
|
-
this._wrapSelection = options.wrapSelection ?? false;
|
|
34923
|
-
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
34924
|
-
this._selectedBackgroundColor = parseColor(options.selectedBackgroundColor || "#334455");
|
|
34925
|
-
this._selectedTextColor = parseColor(options.selectedTextColor || "#FFFF00");
|
|
34926
|
-
this._selectedDescriptionColor = parseColor(options.selectedDescriptionColor || "#CCCCCC");
|
|
34927
|
-
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, options.keyAliasMap || {});
|
|
34928
|
-
this._keyBindings = options.keyBindings || [];
|
|
34929
|
-
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings);
|
|
34930
|
-
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
34931
|
-
}
|
|
34932
|
-
calculateDynamicHeight() {
|
|
34933
|
-
return calculateDynamicHeight(this._showUnderline, this._showDescription);
|
|
34934
|
-
}
|
|
34935
|
-
renderSelf(buffer, deltaTime) {
|
|
34936
|
-
if (!this.visible || !this.frameBuffer)
|
|
34937
|
-
return;
|
|
34938
|
-
if (this.isDirty) {
|
|
34939
|
-
this.refreshFrameBuffer();
|
|
34940
|
-
}
|
|
34941
|
-
}
|
|
34942
|
-
refreshFrameBuffer() {
|
|
34943
|
-
if (!this.frameBuffer)
|
|
34944
|
-
return;
|
|
34945
|
-
const bgColor = this._focused ? this._focusedBackgroundColor : this._backgroundColor;
|
|
34946
|
-
this.frameBuffer.clear(bgColor);
|
|
34947
|
-
if (this._options.length === 0)
|
|
34948
|
-
return;
|
|
34949
|
-
const contentX = 0;
|
|
34950
|
-
const contentY = 0;
|
|
34951
|
-
const contentWidth = this.width;
|
|
34952
|
-
const contentHeight = this.height;
|
|
34953
|
-
const visibleOptions = this._options.slice(this.scrollOffset, this.scrollOffset + this.maxVisibleTabs);
|
|
34954
|
-
for (let i = 0;i < visibleOptions.length; i++) {
|
|
34955
|
-
const actualIndex = this.scrollOffset + i;
|
|
34956
|
-
const option = visibleOptions[i];
|
|
34957
|
-
const isSelected = actualIndex === this.selectedIndex;
|
|
34958
|
-
const tabX = contentX + i * this._tabWidth;
|
|
34959
|
-
if (tabX >= contentX + contentWidth)
|
|
34960
|
-
break;
|
|
34961
|
-
const actualTabWidth = Math.min(this._tabWidth, contentWidth - i * this._tabWidth);
|
|
34962
|
-
if (isSelected) {
|
|
34963
|
-
this.frameBuffer.fillRect(tabX, contentY, actualTabWidth, 1, this._selectedBackgroundColor);
|
|
34964
|
-
}
|
|
34965
|
-
const baseTextColor = this._focused ? this._focusedTextColor : this._textColor;
|
|
34966
|
-
const nameColor = isSelected ? this._selectedTextColor : baseTextColor;
|
|
34967
|
-
const nameContent = this.truncateText(option.name, actualTabWidth - 2);
|
|
34968
|
-
this.frameBuffer.drawText(nameContent, tabX + 1, contentY, nameColor);
|
|
34969
|
-
if (isSelected && this._showUnderline && contentHeight >= 2) {
|
|
34970
|
-
const underlineY = contentY + 1;
|
|
34971
|
-
const underlineBg = isSelected ? this._selectedBackgroundColor : bgColor;
|
|
34972
|
-
this.frameBuffer.drawText("\u25AC".repeat(actualTabWidth), tabX, underlineY, nameColor, underlineBg);
|
|
34973
|
-
}
|
|
34974
|
-
}
|
|
34975
|
-
if (this._showDescription && contentHeight >= (this._showUnderline ? 3 : 2)) {
|
|
34976
|
-
const selectedOption = this.getSelectedOption();
|
|
34977
|
-
if (selectedOption) {
|
|
34978
|
-
const descriptionY = contentY + (this._showUnderline ? 2 : 1);
|
|
34979
|
-
const descColor = this._selectedDescriptionColor;
|
|
34980
|
-
const descContent = this.truncateText(selectedOption.description, contentWidth - 2);
|
|
34981
|
-
this.frameBuffer.drawText(descContent, contentX + 1, descriptionY, descColor);
|
|
34982
|
-
}
|
|
34983
|
-
}
|
|
34984
|
-
if (this._showScrollArrows && this._options.length > this.maxVisibleTabs) {
|
|
34985
|
-
this.renderScrollArrowsToFrameBuffer(contentX, contentY, contentWidth, contentHeight);
|
|
34986
|
-
}
|
|
34987
|
-
}
|
|
34988
|
-
truncateText(text, maxWidth) {
|
|
34989
|
-
if (text.length <= maxWidth)
|
|
34990
|
-
return text;
|
|
34991
|
-
return text.substring(0, Math.max(0, maxWidth - 1)) + "\u2026";
|
|
34992
|
-
}
|
|
34993
|
-
renderScrollArrowsToFrameBuffer(contentX, contentY, contentWidth, contentHeight) {
|
|
34994
|
-
if (!this.frameBuffer)
|
|
34995
|
-
return;
|
|
34996
|
-
const hasMoreLeft = this.scrollOffset > 0;
|
|
34997
|
-
const hasMoreRight = this.scrollOffset + this.maxVisibleTabs < this._options.length;
|
|
34998
|
-
if (hasMoreLeft) {
|
|
34999
|
-
this.frameBuffer.drawText("\u2039", contentX, contentY, parseColor("#AAAAAA"));
|
|
35000
|
-
}
|
|
35001
|
-
if (hasMoreRight) {
|
|
35002
|
-
this.frameBuffer.drawText("\u203A", contentX + contentWidth - 1, contentY, parseColor("#AAAAAA"));
|
|
35003
|
-
}
|
|
35004
|
-
}
|
|
35005
|
-
setOptions(options) {
|
|
35006
|
-
this._options = options;
|
|
35007
|
-
this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1));
|
|
35008
|
-
this.updateScrollOffset();
|
|
35009
|
-
this.requestRender();
|
|
35010
|
-
}
|
|
35011
|
-
getSelectedOption() {
|
|
35012
|
-
return this._options[this.selectedIndex] || null;
|
|
35013
|
-
}
|
|
35014
|
-
getSelectedIndex() {
|
|
35015
|
-
return this.selectedIndex;
|
|
35016
|
-
}
|
|
35017
|
-
moveLeft() {
|
|
35018
|
-
if (this.selectedIndex > 0) {
|
|
35019
|
-
this.selectedIndex--;
|
|
35020
|
-
} else if (this._wrapSelection && this._options.length > 0) {
|
|
35021
|
-
this.selectedIndex = this._options.length - 1;
|
|
35022
|
-
} else {
|
|
35023
|
-
return;
|
|
35024
|
-
}
|
|
35025
|
-
this.updateScrollOffset();
|
|
35026
|
-
this.requestRender();
|
|
35027
|
-
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35028
|
-
}
|
|
35029
|
-
moveRight() {
|
|
35030
|
-
if (this.selectedIndex < this._options.length - 1) {
|
|
35031
|
-
this.selectedIndex++;
|
|
35032
|
-
} else if (this._wrapSelection && this._options.length > 0) {
|
|
35033
|
-
this.selectedIndex = 0;
|
|
35034
|
-
} else {
|
|
35035
|
-
return;
|
|
35036
|
-
}
|
|
35037
|
-
this.updateScrollOffset();
|
|
35038
|
-
this.requestRender();
|
|
35039
|
-
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35040
|
-
}
|
|
35041
|
-
selectCurrent() {
|
|
35042
|
-
const selected = this.getSelectedOption();
|
|
35043
|
-
if (selected) {
|
|
35044
|
-
this.emit("itemSelected", this.selectedIndex, selected);
|
|
35045
|
-
}
|
|
35046
|
-
}
|
|
35047
|
-
setSelectedIndex(index) {
|
|
35048
|
-
if (index >= 0 && index < this._options.length) {
|
|
35049
|
-
this.selectedIndex = index;
|
|
35050
|
-
this.updateScrollOffset();
|
|
35051
|
-
this.requestRender();
|
|
35052
|
-
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35053
|
-
}
|
|
35054
|
-
}
|
|
35055
|
-
updateScrollOffset() {
|
|
35056
|
-
const halfVisible = Math.floor(this.maxVisibleTabs / 2);
|
|
35057
|
-
const newScrollOffset = Math.max(0, Math.min(this.selectedIndex - halfVisible, this._options.length - this.maxVisibleTabs));
|
|
35058
|
-
if (newScrollOffset !== this.scrollOffset) {
|
|
35059
|
-
this.scrollOffset = newScrollOffset;
|
|
35060
|
-
this.requestRender();
|
|
35061
|
-
}
|
|
35062
|
-
}
|
|
35063
|
-
onResize(width, height) {
|
|
35064
|
-
this.maxVisibleTabs = Math.max(1, Math.floor(width / this._tabWidth));
|
|
35065
|
-
this.updateScrollOffset();
|
|
35066
|
-
this.requestRender();
|
|
35067
|
-
}
|
|
35068
|
-
setTabWidth(tabWidth) {
|
|
35069
|
-
if (this._tabWidth === tabWidth)
|
|
35070
|
-
return;
|
|
35071
|
-
this._tabWidth = tabWidth;
|
|
35072
|
-
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
35073
|
-
this.updateScrollOffset();
|
|
35074
|
-
this.requestRender();
|
|
35075
|
-
}
|
|
35076
|
-
getTabWidth() {
|
|
35077
|
-
return this._tabWidth;
|
|
35078
|
-
}
|
|
35079
|
-
handleKeyPress(key) {
|
|
35080
|
-
const bindingKey = getKeyBindingKey({
|
|
35081
|
-
name: key.name,
|
|
35082
|
-
ctrl: key.ctrl,
|
|
35083
|
-
shift: key.shift,
|
|
35084
|
-
meta: key.meta,
|
|
35085
|
-
super: key.super,
|
|
35086
|
-
action: "move-left"
|
|
35087
|
-
});
|
|
35088
|
-
const action = this._keyBindingsMap.get(bindingKey);
|
|
35089
|
-
if (action) {
|
|
35090
|
-
switch (action) {
|
|
35091
|
-
case "move-left":
|
|
35092
|
-
this.moveLeft();
|
|
35093
|
-
return true;
|
|
35094
|
-
case "move-right":
|
|
35095
|
-
this.moveRight();
|
|
35096
|
-
return true;
|
|
35097
|
-
case "select-current":
|
|
35098
|
-
this.selectCurrent();
|
|
35099
|
-
return true;
|
|
35100
|
-
}
|
|
35101
|
-
}
|
|
35102
|
-
return false;
|
|
35103
|
-
}
|
|
35104
|
-
get options() {
|
|
35105
|
-
return this._options;
|
|
35106
|
-
}
|
|
35107
|
-
set options(options) {
|
|
35108
|
-
this._options = options;
|
|
35109
|
-
this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1));
|
|
35110
|
-
this.updateScrollOffset();
|
|
35111
|
-
this.requestRender();
|
|
35112
|
-
}
|
|
35113
|
-
set backgroundColor(color) {
|
|
35114
|
-
this._backgroundColor = parseColor(color);
|
|
35115
|
-
this.requestRender();
|
|
35116
|
-
}
|
|
35117
|
-
set textColor(color) {
|
|
35118
|
-
this._textColor = parseColor(color);
|
|
35119
|
-
this.requestRender();
|
|
35120
|
-
}
|
|
35121
|
-
set focusedBackgroundColor(color) {
|
|
35122
|
-
this._focusedBackgroundColor = parseColor(color);
|
|
35123
|
-
this.requestRender();
|
|
35124
|
-
}
|
|
35125
|
-
set focusedTextColor(color) {
|
|
35126
|
-
this._focusedTextColor = parseColor(color);
|
|
35127
|
-
this.requestRender();
|
|
35128
|
-
}
|
|
35129
|
-
set selectedBackgroundColor(color) {
|
|
35130
|
-
this._selectedBackgroundColor = parseColor(color);
|
|
35131
|
-
this.requestRender();
|
|
35132
|
-
}
|
|
35133
|
-
set selectedTextColor(color) {
|
|
35134
|
-
this._selectedTextColor = parseColor(color);
|
|
35135
|
-
this.requestRender();
|
|
35136
|
-
}
|
|
35137
|
-
set selectedDescriptionColor(color) {
|
|
35138
|
-
this._selectedDescriptionColor = parseColor(color);
|
|
35139
|
-
this.requestRender();
|
|
35140
|
-
}
|
|
35141
|
-
get showDescription() {
|
|
35142
|
-
return this._showDescription;
|
|
35143
|
-
}
|
|
35144
|
-
set showDescription(show) {
|
|
35145
|
-
if (this._showDescription !== show) {
|
|
35146
|
-
this._showDescription = show;
|
|
35147
|
-
const newHeight = this.calculateDynamicHeight();
|
|
35148
|
-
this.height = newHeight;
|
|
35149
|
-
this.requestRender();
|
|
35150
|
-
}
|
|
35151
|
-
}
|
|
35152
|
-
get showUnderline() {
|
|
35153
|
-
return this._showUnderline;
|
|
35154
|
-
}
|
|
35155
|
-
set showUnderline(show) {
|
|
35156
|
-
if (this._showUnderline !== show) {
|
|
35157
|
-
this._showUnderline = show;
|
|
35158
|
-
const newHeight = this.calculateDynamicHeight();
|
|
35159
|
-
this.height = newHeight;
|
|
35160
|
-
this.requestRender();
|
|
35161
|
-
}
|
|
35162
|
-
}
|
|
35163
|
-
get showScrollArrows() {
|
|
35164
|
-
return this._showScrollArrows;
|
|
35165
|
-
}
|
|
35166
|
-
set showScrollArrows(show) {
|
|
35167
|
-
if (this._showScrollArrows !== show) {
|
|
35168
|
-
this._showScrollArrows = show;
|
|
35169
|
-
this.requestRender();
|
|
35170
|
-
}
|
|
35171
|
-
}
|
|
35172
|
-
get wrapSelection() {
|
|
35173
|
-
return this._wrapSelection;
|
|
35174
|
-
}
|
|
35175
|
-
set wrapSelection(wrap) {
|
|
35176
|
-
this._wrapSelection = wrap;
|
|
35177
|
-
}
|
|
35178
|
-
get tabWidth() {
|
|
35179
|
-
return this._tabWidth;
|
|
35180
|
-
}
|
|
35181
|
-
set tabWidth(tabWidth) {
|
|
35182
|
-
if (this._tabWidth === tabWidth)
|
|
35183
|
-
return;
|
|
35184
|
-
this._tabWidth = tabWidth;
|
|
35185
|
-
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
35186
|
-
this.updateScrollOffset();
|
|
35187
|
-
this.requestRender();
|
|
35188
|
-
}
|
|
35189
|
-
set keyBindings(bindings) {
|
|
35190
|
-
this._keyBindings = bindings;
|
|
35191
|
-
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, bindings);
|
|
35192
|
-
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35193
|
-
}
|
|
35194
|
-
set keyAliasMap(aliases) {
|
|
35195
|
-
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, aliases);
|
|
35196
|
-
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings);
|
|
35197
|
-
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35198
|
-
}
|
|
35199
|
-
}
|
|
35200
|
-
|
|
35201
|
-
class TimeToFirstDrawRenderable extends Renderable {
|
|
35202
|
-
_runtimeMs = null;
|
|
35203
|
-
textColor;
|
|
35204
|
-
label;
|
|
35205
|
-
precision;
|
|
35206
|
-
constructor(ctx, options = {}) {
|
|
35207
|
-
super(ctx, {
|
|
35208
|
-
width: "100%",
|
|
35209
|
-
height: 1,
|
|
35210
|
-
flexShrink: 0,
|
|
35211
|
-
alignSelf: "center",
|
|
35212
|
-
...options
|
|
35213
|
-
});
|
|
35214
|
-
this.textColor = parseColor(options.fg ?? "#AAAAAA");
|
|
35215
|
-
this.label = options.label ?? "Time to first draw";
|
|
35216
|
-
this.precision = this.normalizePrecision(options.precision ?? 2);
|
|
35217
|
-
}
|
|
35218
|
-
get runtimeMs() {
|
|
35219
|
-
return this._runtimeMs;
|
|
35220
|
-
}
|
|
35221
|
-
set fg(value) {
|
|
35222
|
-
this.textColor = parseColor(value);
|
|
35223
|
-
this.requestRender();
|
|
35224
|
-
}
|
|
35225
|
-
set color(value) {
|
|
35226
|
-
this.fg = value;
|
|
35227
|
-
}
|
|
35228
|
-
set textLabel(value) {
|
|
35229
|
-
if (value === this.label) {
|
|
35230
|
-
return;
|
|
35231
|
-
}
|
|
35232
|
-
this.label = value;
|
|
35233
|
-
this.requestRender();
|
|
35234
|
-
}
|
|
35235
|
-
set decimals(value) {
|
|
35236
|
-
const nextPrecision = this.normalizePrecision(value);
|
|
35237
|
-
if (nextPrecision === this.precision) {
|
|
35238
|
-
return;
|
|
35239
|
-
}
|
|
35240
|
-
this.precision = nextPrecision;
|
|
35241
|
-
this.requestRender();
|
|
35242
|
-
}
|
|
35243
|
-
reset() {
|
|
35244
|
-
this._runtimeMs = null;
|
|
35245
|
-
this.requestRender();
|
|
35246
|
-
}
|
|
35247
|
-
renderSelf(buffer) {
|
|
35248
|
-
if (this._runtimeMs === null) {
|
|
35249
|
-
this._runtimeMs = performance.now();
|
|
35250
|
-
}
|
|
35251
|
-
const content = `${this.label}: ${this._runtimeMs.toFixed(this.precision)}ms`;
|
|
35252
|
-
const maxWidth = Math.max(this.width, 1);
|
|
35253
|
-
const visibleContent = content.length > maxWidth ? content.slice(0, maxWidth) : content;
|
|
35254
|
-
const centeredX = this.x + Math.max(0, Math.floor((maxWidth - visibleContent.length) / 2));
|
|
35255
|
-
buffer.drawText(visibleContent, centeredX, this.y, this.textColor);
|
|
35256
|
-
}
|
|
35257
|
-
normalizePrecision(value) {
|
|
35258
|
-
if (!Number.isFinite(value)) {
|
|
35259
|
-
return 2;
|
|
35260
|
-
}
|
|
35261
|
-
return Math.max(0, Math.floor(value));
|
|
35262
|
-
}
|
|
35263
|
-
}
|
|
35264
|
-
|
|
35265
|
-
// node_modules/@opentui/solid/node_modules/@opentui/core/testing.js
|
|
35266
|
-
var decoder2 = new TextDecoder;
|
|
35267
|
-
class TestRecorder {
|
|
35268
|
-
renderer;
|
|
35269
|
-
frames = [];
|
|
35270
|
-
recording = false;
|
|
35271
|
-
frameNumber = 0;
|
|
35272
|
-
startTime = 0;
|
|
35273
|
-
originalRenderNative;
|
|
35274
|
-
decoder = new TextDecoder;
|
|
35275
|
-
recordBuffers;
|
|
35276
|
-
now;
|
|
35277
|
-
constructor(renderer, options) {
|
|
35278
|
-
this.renderer = renderer;
|
|
35279
|
-
this.recordBuffers = options?.recordBuffers || {};
|
|
35280
|
-
this.now = options?.now ?? (() => performance.now());
|
|
35281
|
-
}
|
|
35282
|
-
rec() {
|
|
35283
|
-
if (this.recording) {
|
|
35284
|
-
return;
|
|
35701
|
+
}
|
|
35702
|
+
set textColor(value) {
|
|
35703
|
+
const newColor = parseColor(value ?? this._defaultOptions.textColor);
|
|
35704
|
+
if (this._textColor !== newColor) {
|
|
35705
|
+
this._textColor = newColor;
|
|
35706
|
+
this.requestRender();
|
|
35285
35707
|
}
|
|
35286
|
-
this.recording = true;
|
|
35287
|
-
this.frames = [];
|
|
35288
|
-
this.frameNumber = 0;
|
|
35289
|
-
this.startTime = this.now();
|
|
35290
|
-
this.originalRenderNative = this.renderer["renderNative"].bind(this.renderer);
|
|
35291
|
-
this.renderer["renderNative"] = () => {
|
|
35292
|
-
this.originalRenderNative();
|
|
35293
|
-
this.captureFrame();
|
|
35294
|
-
};
|
|
35295
35708
|
}
|
|
35296
|
-
|
|
35297
|
-
|
|
35298
|
-
|
|
35709
|
+
set focusedBackgroundColor(value) {
|
|
35710
|
+
const newColor = parseColor(value ?? this._defaultOptions.focusedBackgroundColor);
|
|
35711
|
+
if (this._focusedBackgroundColor !== newColor) {
|
|
35712
|
+
this._focusedBackgroundColor = newColor;
|
|
35713
|
+
this.requestRender();
|
|
35299
35714
|
}
|
|
35300
|
-
|
|
35301
|
-
|
|
35302
|
-
|
|
35303
|
-
|
|
35715
|
+
}
|
|
35716
|
+
set focusedTextColor(value) {
|
|
35717
|
+
const newColor = parseColor(value ?? this._defaultOptions.focusedTextColor);
|
|
35718
|
+
if (this._focusedTextColor !== newColor) {
|
|
35719
|
+
this._focusedTextColor = newColor;
|
|
35720
|
+
this.requestRender();
|
|
35304
35721
|
}
|
|
35305
35722
|
}
|
|
35306
|
-
|
|
35307
|
-
|
|
35723
|
+
set selectedBackgroundColor(value) {
|
|
35724
|
+
const newColor = parseColor(value ?? this._defaultOptions.selectedBackgroundColor);
|
|
35725
|
+
if (this._selectedBackgroundColor !== newColor) {
|
|
35726
|
+
this._selectedBackgroundColor = newColor;
|
|
35727
|
+
this.requestRender();
|
|
35728
|
+
}
|
|
35308
35729
|
}
|
|
35309
|
-
|
|
35310
|
-
|
|
35311
|
-
this.
|
|
35730
|
+
set selectedTextColor(value) {
|
|
35731
|
+
const newColor = parseColor(value ?? this._defaultOptions.selectedTextColor);
|
|
35732
|
+
if (this._selectedTextColor !== newColor) {
|
|
35733
|
+
this._selectedTextColor = newColor;
|
|
35734
|
+
this.requestRender();
|
|
35735
|
+
}
|
|
35312
35736
|
}
|
|
35313
|
-
|
|
35314
|
-
|
|
35737
|
+
set descriptionColor(value) {
|
|
35738
|
+
const newColor = parseColor(value ?? this._defaultOptions.descriptionColor);
|
|
35739
|
+
if (this._descriptionColor !== newColor) {
|
|
35740
|
+
this._descriptionColor = newColor;
|
|
35741
|
+
this.requestRender();
|
|
35742
|
+
}
|
|
35315
35743
|
}
|
|
35316
|
-
|
|
35317
|
-
const
|
|
35318
|
-
|
|
35319
|
-
|
|
35320
|
-
|
|
35321
|
-
frame,
|
|
35322
|
-
timestamp: this.now() - this.startTime,
|
|
35323
|
-
frameNumber: this.frameNumber++
|
|
35324
|
-
};
|
|
35325
|
-
if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {
|
|
35326
|
-
const buffers = currentBuffer.buffers;
|
|
35327
|
-
recordedFrame.buffers = {};
|
|
35328
|
-
if (this.recordBuffers.fg) {
|
|
35329
|
-
recordedFrame.buffers.fg = new Float32Array(buffers.fg);
|
|
35330
|
-
}
|
|
35331
|
-
if (this.recordBuffers.bg) {
|
|
35332
|
-
recordedFrame.buffers.bg = new Float32Array(buffers.bg);
|
|
35333
|
-
}
|
|
35334
|
-
if (this.recordBuffers.attributes) {
|
|
35335
|
-
recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes);
|
|
35336
|
-
}
|
|
35744
|
+
set selectedDescriptionColor(value) {
|
|
35745
|
+
const newColor = parseColor(value ?? this._defaultOptions.selectedDescriptionColor);
|
|
35746
|
+
if (this._selectedDescriptionColor !== newColor) {
|
|
35747
|
+
this._selectedDescriptionColor = newColor;
|
|
35748
|
+
this.requestRender();
|
|
35337
35749
|
}
|
|
35338
|
-
this.frames.push(recordedFrame);
|
|
35339
35750
|
}
|
|
35340
|
-
|
|
35341
|
-
|
|
35342
|
-
|
|
35343
|
-
|
|
35344
|
-
|
|
35345
|
-
|
|
35346
|
-
|
|
35347
|
-
|
|
35348
|
-
getContextId() {
|
|
35349
|
-
return getContextId(this.context.count);
|
|
35350
|
-
},
|
|
35351
|
-
getNextContextId() {
|
|
35352
|
-
return getContextId(this.context.count++);
|
|
35751
|
+
set font(font) {
|
|
35752
|
+
this._font = font;
|
|
35753
|
+
this.fontHeight = measureText({ text: "A", font: this._font }).height;
|
|
35754
|
+
this.linesPerItem = this._showDescription ? this._font ? this.fontHeight + 1 : 2 : this._font ? this.fontHeight : 1;
|
|
35755
|
+
this.linesPerItem += this._itemSpacing;
|
|
35756
|
+
this.maxVisibleItems = Math.max(1, Math.floor(this.height / this.linesPerItem));
|
|
35757
|
+
this.updateScrollOffset();
|
|
35758
|
+
this.requestRender();
|
|
35353
35759
|
}
|
|
35354
|
-
|
|
35355
|
-
|
|
35356
|
-
|
|
35357
|
-
|
|
35358
|
-
|
|
35359
|
-
|
|
35360
|
-
|
|
35361
|
-
}
|
|
35362
|
-
function nextHydrateContext() {
|
|
35363
|
-
return {
|
|
35364
|
-
...sharedConfig.context,
|
|
35365
|
-
id: sharedConfig.getNextContextId(),
|
|
35366
|
-
count: 0
|
|
35367
|
-
};
|
|
35368
|
-
}
|
|
35369
|
-
var IS_DEV = false;
|
|
35370
|
-
var equalFn = (a, b2) => a === b2;
|
|
35371
|
-
var $PROXY = Symbol("solid-proxy");
|
|
35372
|
-
var SUPPORTS_PROXY = typeof Proxy === "function";
|
|
35373
|
-
var $TRACK = Symbol("solid-track");
|
|
35374
|
-
var $DEVCOMP = Symbol("solid-dev-component");
|
|
35375
|
-
var signalOptions = {
|
|
35376
|
-
equals: equalFn
|
|
35377
|
-
};
|
|
35378
|
-
var ERROR = null;
|
|
35379
|
-
var runEffects = runQueue;
|
|
35380
|
-
var STALE = 1;
|
|
35381
|
-
var PENDING = 2;
|
|
35382
|
-
var UNOWNED = {
|
|
35383
|
-
owned: null,
|
|
35384
|
-
cleanups: null,
|
|
35385
|
-
context: null,
|
|
35386
|
-
owner: null
|
|
35387
|
-
};
|
|
35388
|
-
var Owner = null;
|
|
35389
|
-
var Transition = null;
|
|
35390
|
-
var Scheduler = null;
|
|
35391
|
-
var ExternalSourceConfig = null;
|
|
35392
|
-
var Listener = null;
|
|
35393
|
-
var Updates = null;
|
|
35394
|
-
var Effects = null;
|
|
35395
|
-
var ExecCount = 0;
|
|
35396
|
-
function createRoot(fn, detachedOwner) {
|
|
35397
|
-
const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : {
|
|
35398
|
-
owned: null,
|
|
35399
|
-
cleanups: null,
|
|
35400
|
-
context: current ? current.context : null,
|
|
35401
|
-
owner: current
|
|
35402
|
-
}, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));
|
|
35403
|
-
Owner = root;
|
|
35404
|
-
Listener = null;
|
|
35405
|
-
try {
|
|
35406
|
-
return runUpdates(updateFn, true);
|
|
35407
|
-
} finally {
|
|
35408
|
-
Listener = listener;
|
|
35409
|
-
Owner = owner;
|
|
35760
|
+
set itemSpacing(spacing) {
|
|
35761
|
+
this._itemSpacing = spacing;
|
|
35762
|
+
this.linesPerItem = this._showDescription ? this._font ? this.fontHeight + 1 : 2 : this._font ? this.fontHeight : 1;
|
|
35763
|
+
this.linesPerItem += this._itemSpacing;
|
|
35764
|
+
this.maxVisibleItems = Math.max(1, Math.floor(this.height / this.linesPerItem));
|
|
35765
|
+
this.updateScrollOffset();
|
|
35766
|
+
this.requestRender();
|
|
35410
35767
|
}
|
|
35411
|
-
|
|
35412
|
-
|
|
35413
|
-
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
35414
|
-
const s = {
|
|
35415
|
-
value,
|
|
35416
|
-
observers: null,
|
|
35417
|
-
observerSlots: null,
|
|
35418
|
-
comparator: options.equals || undefined
|
|
35419
|
-
};
|
|
35420
|
-
const setter = (value2) => {
|
|
35421
|
-
if (typeof value2 === "function") {
|
|
35422
|
-
if (Transition && Transition.running && Transition.sources.has(s))
|
|
35423
|
-
value2 = value2(s.tValue);
|
|
35424
|
-
else
|
|
35425
|
-
value2 = value2(s.value);
|
|
35426
|
-
}
|
|
35427
|
-
return writeSignal(s, value2);
|
|
35428
|
-
};
|
|
35429
|
-
return [readSignal.bind(s), setter];
|
|
35430
|
-
}
|
|
35431
|
-
function createRenderEffect(fn, value, options) {
|
|
35432
|
-
const c = createComputation(fn, value, false, STALE);
|
|
35433
|
-
if (Scheduler && Transition && Transition.running)
|
|
35434
|
-
Updates.push(c);
|
|
35435
|
-
else
|
|
35436
|
-
updateComputation(c);
|
|
35437
|
-
}
|
|
35438
|
-
function createEffect(fn, value, options) {
|
|
35439
|
-
runEffects = runUserEffects;
|
|
35440
|
-
const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext);
|
|
35441
|
-
if (s)
|
|
35442
|
-
c.suspense = s;
|
|
35443
|
-
if (!options || !options.render)
|
|
35444
|
-
c.user = true;
|
|
35445
|
-
Effects ? Effects.push(c) : updateComputation(c);
|
|
35446
|
-
}
|
|
35447
|
-
function createMemo(fn, value, options) {
|
|
35448
|
-
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
35449
|
-
const c = createComputation(fn, value, true, 0);
|
|
35450
|
-
c.observers = null;
|
|
35451
|
-
c.observerSlots = null;
|
|
35452
|
-
c.comparator = options.equals || undefined;
|
|
35453
|
-
if (Scheduler && Transition && Transition.running) {
|
|
35454
|
-
c.tState = STALE;
|
|
35455
|
-
Updates.push(c);
|
|
35456
|
-
} else
|
|
35457
|
-
updateComputation(c);
|
|
35458
|
-
return readSignal.bind(c);
|
|
35459
|
-
}
|
|
35460
|
-
function untrack(fn) {
|
|
35461
|
-
if (!ExternalSourceConfig && Listener === null)
|
|
35462
|
-
return fn();
|
|
35463
|
-
const listener = Listener;
|
|
35464
|
-
Listener = null;
|
|
35465
|
-
try {
|
|
35466
|
-
if (ExternalSourceConfig)
|
|
35467
|
-
return ExternalSourceConfig.untrack(fn);
|
|
35468
|
-
return fn();
|
|
35469
|
-
} finally {
|
|
35470
|
-
Listener = listener;
|
|
35768
|
+
set fastScrollStep(step) {
|
|
35769
|
+
this._fastScrollStep = step;
|
|
35471
35770
|
}
|
|
35472
|
-
|
|
35473
|
-
|
|
35474
|
-
|
|
35475
|
-
|
|
35476
|
-
function onCleanup(fn) {
|
|
35477
|
-
if (Owner === null)
|
|
35478
|
-
;
|
|
35479
|
-
else if (Owner.cleanups === null)
|
|
35480
|
-
Owner.cleanups = [fn];
|
|
35481
|
-
else
|
|
35482
|
-
Owner.cleanups.push(fn);
|
|
35483
|
-
return fn;
|
|
35484
|
-
}
|
|
35485
|
-
function startTransition(fn) {
|
|
35486
|
-
if (Transition && Transition.running) {
|
|
35487
|
-
fn();
|
|
35488
|
-
return Transition.done;
|
|
35771
|
+
set keyBindings(bindings) {
|
|
35772
|
+
this._keyBindings = bindings;
|
|
35773
|
+
const mergedBindings = mergeKeyBindings(defaultSelectKeybindings, bindings);
|
|
35774
|
+
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35489
35775
|
}
|
|
35490
|
-
|
|
35491
|
-
|
|
35492
|
-
|
|
35493
|
-
|
|
35494
|
-
|
|
35495
|
-
|
|
35496
|
-
|
|
35497
|
-
|
|
35498
|
-
|
|
35499
|
-
|
|
35500
|
-
|
|
35501
|
-
|
|
35502
|
-
queue: new Set,
|
|
35503
|
-
running: true
|
|
35504
|
-
});
|
|
35505
|
-
t2.done || (t2.done = new Promise((res) => t2.resolve = res));
|
|
35506
|
-
t2.running = true;
|
|
35776
|
+
set keyAliasMap(aliases) {
|
|
35777
|
+
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, aliases);
|
|
35778
|
+
const mergedBindings = mergeKeyBindings(defaultSelectKeybindings, this._keyBindings);
|
|
35779
|
+
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35780
|
+
}
|
|
35781
|
+
set selectedIndex(value) {
|
|
35782
|
+
const newIndex = value ?? this._defaultOptions.selectedIndex;
|
|
35783
|
+
const clampedIndex = this._options.length > 0 ? Math.min(Math.max(0, newIndex), this._options.length - 1) : 0;
|
|
35784
|
+
if (this._selectedIndex !== clampedIndex) {
|
|
35785
|
+
this._selectedIndex = clampedIndex;
|
|
35786
|
+
this.updateScrollOffset();
|
|
35787
|
+
this.requestRender();
|
|
35507
35788
|
}
|
|
35508
|
-
|
|
35509
|
-
Listener = Owner = null;
|
|
35510
|
-
return t2 ? t2.done : undefined;
|
|
35511
|
-
});
|
|
35512
|
-
}
|
|
35513
|
-
var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);
|
|
35514
|
-
function createContext(defaultValue, options) {
|
|
35515
|
-
const id = Symbol("context");
|
|
35516
|
-
return {
|
|
35517
|
-
id,
|
|
35518
|
-
Provider: createProvider(id),
|
|
35519
|
-
defaultValue
|
|
35520
|
-
};
|
|
35521
|
-
}
|
|
35522
|
-
function useContext(context) {
|
|
35523
|
-
let value;
|
|
35524
|
-
return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue;
|
|
35789
|
+
}
|
|
35525
35790
|
}
|
|
35526
|
-
|
|
35527
|
-
|
|
35528
|
-
|
|
35529
|
-
|
|
35530
|
-
|
|
35531
|
-
|
|
35532
|
-
}
|
|
35533
|
-
|
|
35791
|
+
var defaultTabSelectKeybindings = [
|
|
35792
|
+
{ name: "left", action: "move-left" },
|
|
35793
|
+
{ name: "[", action: "move-left" },
|
|
35794
|
+
{ name: "right", action: "move-right" },
|
|
35795
|
+
{ name: "]", action: "move-right" },
|
|
35796
|
+
{ name: "return", action: "select-current" },
|
|
35797
|
+
{ name: "linefeed", action: "select-current" }
|
|
35798
|
+
];
|
|
35799
|
+
var TabSelectRenderableEvents;
|
|
35800
|
+
((TabSelectRenderableEvents2) => {
|
|
35801
|
+
TabSelectRenderableEvents2["SELECTION_CHANGED"] = "selectionChanged";
|
|
35802
|
+
TabSelectRenderableEvents2["ITEM_SELECTED"] = "itemSelected";
|
|
35803
|
+
})(TabSelectRenderableEvents ||= {});
|
|
35804
|
+
function calculateDynamicHeight(showUnderline, showDescription) {
|
|
35805
|
+
let height = 1;
|
|
35806
|
+
if (showUnderline) {
|
|
35807
|
+
height += 1;
|
|
35808
|
+
}
|
|
35809
|
+
if (showDescription) {
|
|
35810
|
+
height += 1;
|
|
35811
|
+
}
|
|
35812
|
+
return height;
|
|
35534
35813
|
}
|
|
35535
|
-
|
|
35536
|
-
|
|
35537
|
-
|
|
35538
|
-
|
|
35539
|
-
|
|
35540
|
-
|
|
35541
|
-
|
|
35542
|
-
|
|
35543
|
-
|
|
35544
|
-
|
|
35545
|
-
|
|
35546
|
-
|
|
35814
|
+
|
|
35815
|
+
class TabSelectRenderable extends Renderable {
|
|
35816
|
+
_focusable = true;
|
|
35817
|
+
_options = [];
|
|
35818
|
+
selectedIndex = 0;
|
|
35819
|
+
scrollOffset = 0;
|
|
35820
|
+
_tabWidth;
|
|
35821
|
+
maxVisibleTabs;
|
|
35822
|
+
_backgroundColor;
|
|
35823
|
+
_textColor;
|
|
35824
|
+
_focusedBackgroundColor;
|
|
35825
|
+
_focusedTextColor;
|
|
35826
|
+
_selectedBackgroundColor;
|
|
35827
|
+
_selectedTextColor;
|
|
35828
|
+
_selectedDescriptionColor;
|
|
35829
|
+
_showScrollArrows;
|
|
35830
|
+
_showDescription;
|
|
35831
|
+
_showUnderline;
|
|
35832
|
+
_wrapSelection;
|
|
35833
|
+
_keyBindingsMap;
|
|
35834
|
+
_keyAliasMap;
|
|
35835
|
+
_keyBindings;
|
|
35836
|
+
constructor(ctx, options) {
|
|
35837
|
+
const calculatedHeight = calculateDynamicHeight(options.showUnderline ?? true, options.showDescription ?? true);
|
|
35838
|
+
super(ctx, { ...options, height: calculatedHeight, buffered: true });
|
|
35839
|
+
this._backgroundColor = parseColor(options.backgroundColor || "transparent");
|
|
35840
|
+
this._textColor = parseColor(options.textColor || "#FFFFFF");
|
|
35841
|
+
this._focusedBackgroundColor = parseColor(options.focusedBackgroundColor || options.backgroundColor || "#1a1a1a");
|
|
35842
|
+
this._focusedTextColor = parseColor(options.focusedTextColor || options.textColor || "#FFFFFF");
|
|
35843
|
+
this._options = options.options || [];
|
|
35844
|
+
this._tabWidth = options.tabWidth || 20;
|
|
35845
|
+
this._showDescription = options.showDescription ?? true;
|
|
35846
|
+
this._showUnderline = options.showUnderline ?? true;
|
|
35847
|
+
this._showScrollArrows = options.showScrollArrows ?? true;
|
|
35848
|
+
this._wrapSelection = options.wrapSelection ?? false;
|
|
35849
|
+
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
35850
|
+
this._selectedBackgroundColor = parseColor(options.selectedBackgroundColor || "#334455");
|
|
35851
|
+
this._selectedTextColor = parseColor(options.selectedTextColor || "#FFFF00");
|
|
35852
|
+
this._selectedDescriptionColor = parseColor(options.selectedDescriptionColor || "#CCCCCC");
|
|
35853
|
+
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, options.keyAliasMap || {});
|
|
35854
|
+
this._keyBindings = options.keyBindings || [];
|
|
35855
|
+
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings);
|
|
35856
|
+
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35547
35857
|
}
|
|
35548
|
-
|
|
35549
|
-
|
|
35550
|
-
|
|
35551
|
-
|
|
35552
|
-
|
|
35553
|
-
|
|
35554
|
-
|
|
35555
|
-
|
|
35556
|
-
}
|
|
35557
|
-
if (!this.observers) {
|
|
35558
|
-
this.observers = [Listener];
|
|
35559
|
-
this.observerSlots = [Listener.sources.length - 1];
|
|
35560
|
-
} else {
|
|
35561
|
-
this.observers.push(Listener);
|
|
35562
|
-
this.observerSlots.push(Listener.sources.length - 1);
|
|
35858
|
+
calculateDynamicHeight() {
|
|
35859
|
+
return calculateDynamicHeight(this._showUnderline, this._showDescription);
|
|
35860
|
+
}
|
|
35861
|
+
renderSelf(buffer, deltaTime) {
|
|
35862
|
+
if (!this.visible || !this.frameBuffer)
|
|
35863
|
+
return;
|
|
35864
|
+
if (this.isDirty) {
|
|
35865
|
+
this.refreshFrameBuffer();
|
|
35563
35866
|
}
|
|
35564
35867
|
}
|
|
35565
|
-
|
|
35566
|
-
|
|
35567
|
-
|
|
35568
|
-
|
|
35569
|
-
|
|
35570
|
-
|
|
35571
|
-
|
|
35572
|
-
|
|
35573
|
-
|
|
35574
|
-
|
|
35575
|
-
|
|
35576
|
-
|
|
35868
|
+
refreshFrameBuffer() {
|
|
35869
|
+
if (!this.frameBuffer)
|
|
35870
|
+
return;
|
|
35871
|
+
const bgColor = this._focused ? this._focusedBackgroundColor : this._backgroundColor;
|
|
35872
|
+
this.frameBuffer.clear(bgColor);
|
|
35873
|
+
if (this._options.length === 0)
|
|
35874
|
+
return;
|
|
35875
|
+
const contentX = 0;
|
|
35876
|
+
const contentY = 0;
|
|
35877
|
+
const contentWidth = this.width;
|
|
35878
|
+
const contentHeight = this.height;
|
|
35879
|
+
const visibleOptions = this._options.slice(this.scrollOffset, this.scrollOffset + this.maxVisibleTabs);
|
|
35880
|
+
for (let i = 0;i < visibleOptions.length; i++) {
|
|
35881
|
+
const actualIndex = this.scrollOffset + i;
|
|
35882
|
+
const option = visibleOptions[i];
|
|
35883
|
+
const isSelected = actualIndex === this.selectedIndex;
|
|
35884
|
+
const tabX = contentX + i * this._tabWidth;
|
|
35885
|
+
if (tabX >= contentX + contentWidth)
|
|
35886
|
+
break;
|
|
35887
|
+
const actualTabWidth = Math.min(this._tabWidth, contentWidth - i * this._tabWidth);
|
|
35888
|
+
if (isSelected) {
|
|
35889
|
+
this.frameBuffer.fillRect(tabX, contentY, actualTabWidth, 1, this._selectedBackgroundColor);
|
|
35890
|
+
}
|
|
35891
|
+
const baseTextColor = this._focused ? this._focusedTextColor : this._textColor;
|
|
35892
|
+
const nameColor = isSelected ? this._selectedTextColor : baseTextColor;
|
|
35893
|
+
const nameContent = this.truncateText(option.name, actualTabWidth - 2);
|
|
35894
|
+
this.frameBuffer.drawText(nameContent, tabX + 1, contentY, nameColor);
|
|
35895
|
+
if (isSelected && this._showUnderline && contentHeight >= 2) {
|
|
35896
|
+
const underlineY = contentY + 1;
|
|
35897
|
+
const underlineBg = isSelected ? this._selectedBackgroundColor : bgColor;
|
|
35898
|
+
this.frameBuffer.drawText("\u25AC".repeat(actualTabWidth), tabX, underlineY, nameColor, underlineBg);
|
|
35577
35899
|
}
|
|
35578
|
-
if (!TransitionRunning)
|
|
35579
|
-
node.value = value;
|
|
35580
|
-
} else
|
|
35581
|
-
node.value = value;
|
|
35582
|
-
if (node.observers && node.observers.length) {
|
|
35583
|
-
runUpdates(() => {
|
|
35584
|
-
for (let i = 0;i < node.observers.length; i += 1) {
|
|
35585
|
-
const o = node.observers[i];
|
|
35586
|
-
const TransitionRunning = Transition && Transition.running;
|
|
35587
|
-
if (TransitionRunning && Transition.disposed.has(o))
|
|
35588
|
-
continue;
|
|
35589
|
-
if (TransitionRunning ? !o.tState : !o.state) {
|
|
35590
|
-
if (o.pure)
|
|
35591
|
-
Updates.push(o);
|
|
35592
|
-
else
|
|
35593
|
-
Effects.push(o);
|
|
35594
|
-
if (o.observers)
|
|
35595
|
-
markDownstream(o);
|
|
35596
|
-
}
|
|
35597
|
-
if (!TransitionRunning)
|
|
35598
|
-
o.state = STALE;
|
|
35599
|
-
else
|
|
35600
|
-
o.tState = STALE;
|
|
35601
|
-
}
|
|
35602
|
-
if (Updates.length > 1e6) {
|
|
35603
|
-
Updates = [];
|
|
35604
|
-
if (IS_DEV)
|
|
35605
|
-
;
|
|
35606
|
-
throw new Error;
|
|
35607
|
-
}
|
|
35608
|
-
}, false);
|
|
35609
35900
|
}
|
|
35610
|
-
|
|
35611
|
-
|
|
35612
|
-
|
|
35613
|
-
|
|
35614
|
-
|
|
35615
|
-
|
|
35616
|
-
|
|
35617
|
-
const time = ExecCount;
|
|
35618
|
-
runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);
|
|
35619
|
-
if (Transition && !Transition.running && Transition.sources.has(node)) {
|
|
35620
|
-
queueMicrotask(() => {
|
|
35621
|
-
runUpdates(() => {
|
|
35622
|
-
Transition && (Transition.running = true);
|
|
35623
|
-
Listener = Owner = node;
|
|
35624
|
-
runComputation(node, node.tValue, time);
|
|
35625
|
-
Listener = Owner = null;
|
|
35626
|
-
}, false);
|
|
35627
|
-
});
|
|
35628
|
-
}
|
|
35629
|
-
}
|
|
35630
|
-
function runComputation(node, value, time) {
|
|
35631
|
-
let nextValue;
|
|
35632
|
-
const owner = Owner, listener = Listener;
|
|
35633
|
-
Listener = Owner = node;
|
|
35634
|
-
try {
|
|
35635
|
-
nextValue = node.fn(value);
|
|
35636
|
-
} catch (err) {
|
|
35637
|
-
if (node.pure) {
|
|
35638
|
-
if (Transition && Transition.running) {
|
|
35639
|
-
node.tState = STALE;
|
|
35640
|
-
node.tOwned && node.tOwned.forEach(cleanNode);
|
|
35641
|
-
node.tOwned = undefined;
|
|
35642
|
-
} else {
|
|
35643
|
-
node.state = STALE;
|
|
35644
|
-
node.owned && node.owned.forEach(cleanNode);
|
|
35645
|
-
node.owned = null;
|
|
35901
|
+
if (this._showDescription && contentHeight >= (this._showUnderline ? 3 : 2)) {
|
|
35902
|
+
const selectedOption = this.getSelectedOption();
|
|
35903
|
+
if (selectedOption) {
|
|
35904
|
+
const descriptionY = contentY + (this._showUnderline ? 2 : 1);
|
|
35905
|
+
const descColor = this._selectedDescriptionColor;
|
|
35906
|
+
const descContent = this.truncateText(selectedOption.description, contentWidth - 2);
|
|
35907
|
+
this.frameBuffer.drawText(descContent, contentX + 1, descriptionY, descColor);
|
|
35646
35908
|
}
|
|
35647
35909
|
}
|
|
35648
|
-
|
|
35649
|
-
|
|
35650
|
-
|
|
35651
|
-
Listener = listener;
|
|
35652
|
-
Owner = owner;
|
|
35910
|
+
if (this._showScrollArrows && this._options.length > this.maxVisibleTabs) {
|
|
35911
|
+
this.renderScrollArrowsToFrameBuffer(contentX, contentY, contentWidth, contentHeight);
|
|
35912
|
+
}
|
|
35653
35913
|
}
|
|
35654
|
-
|
|
35655
|
-
if (
|
|
35656
|
-
|
|
35657
|
-
|
|
35658
|
-
if (!Transition.sources.has(node))
|
|
35659
|
-
node.value = nextValue;
|
|
35660
|
-
Transition.sources.add(node);
|
|
35661
|
-
node.tValue = nextValue;
|
|
35662
|
-
} else
|
|
35663
|
-
node.value = nextValue;
|
|
35664
|
-
node.updatedAt = time;
|
|
35914
|
+
truncateText(text, maxWidth) {
|
|
35915
|
+
if (text.length <= maxWidth)
|
|
35916
|
+
return text;
|
|
35917
|
+
return text.substring(0, Math.max(0, maxWidth - 1)) + "\u2026";
|
|
35665
35918
|
}
|
|
35666
|
-
|
|
35667
|
-
|
|
35668
|
-
|
|
35669
|
-
|
|
35670
|
-
|
|
35671
|
-
|
|
35672
|
-
|
|
35673
|
-
|
|
35674
|
-
|
|
35675
|
-
|
|
35676
|
-
|
|
35677
|
-
owner: Owner,
|
|
35678
|
-
context: Owner ? Owner.context : null,
|
|
35679
|
-
pure
|
|
35680
|
-
};
|
|
35681
|
-
if (Transition && Transition.running) {
|
|
35682
|
-
c.state = 0;
|
|
35683
|
-
c.tState = state;
|
|
35919
|
+
renderScrollArrowsToFrameBuffer(contentX, contentY, contentWidth, contentHeight) {
|
|
35920
|
+
if (!this.frameBuffer)
|
|
35921
|
+
return;
|
|
35922
|
+
const hasMoreLeft = this.scrollOffset > 0;
|
|
35923
|
+
const hasMoreRight = this.scrollOffset + this.maxVisibleTabs < this._options.length;
|
|
35924
|
+
if (hasMoreLeft) {
|
|
35925
|
+
this.frameBuffer.drawText("\u2039", contentX, contentY, parseColor("#AAAAAA"));
|
|
35926
|
+
}
|
|
35927
|
+
if (hasMoreRight) {
|
|
35928
|
+
this.frameBuffer.drawText("\u203A", contentX + contentWidth - 1, contentY, parseColor("#AAAAAA"));
|
|
35929
|
+
}
|
|
35684
35930
|
}
|
|
35685
|
-
|
|
35686
|
-
;
|
|
35687
|
-
|
|
35688
|
-
|
|
35689
|
-
|
|
35690
|
-
|
|
35691
|
-
|
|
35692
|
-
|
|
35931
|
+
setOptions(options) {
|
|
35932
|
+
this._options = options;
|
|
35933
|
+
this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1));
|
|
35934
|
+
this.updateScrollOffset();
|
|
35935
|
+
this.requestRender();
|
|
35936
|
+
}
|
|
35937
|
+
getSelectedOption() {
|
|
35938
|
+
return this._options[this.selectedIndex] || null;
|
|
35939
|
+
}
|
|
35940
|
+
getSelectedIndex() {
|
|
35941
|
+
return this.selectedIndex;
|
|
35942
|
+
}
|
|
35943
|
+
moveLeft() {
|
|
35944
|
+
if (this.selectedIndex > 0) {
|
|
35945
|
+
this.selectedIndex--;
|
|
35946
|
+
} else if (this._wrapSelection && this._options.length > 0) {
|
|
35947
|
+
this.selectedIndex = this._options.length - 1;
|
|
35693
35948
|
} else {
|
|
35694
|
-
|
|
35695
|
-
Owner.owned = [c];
|
|
35696
|
-
else
|
|
35697
|
-
Owner.owned.push(c);
|
|
35949
|
+
return;
|
|
35698
35950
|
}
|
|
35951
|
+
this.updateScrollOffset();
|
|
35952
|
+
this.requestRender();
|
|
35953
|
+
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35699
35954
|
}
|
|
35700
|
-
|
|
35701
|
-
|
|
35702
|
-
|
|
35703
|
-
|
|
35704
|
-
|
|
35705
|
-
|
|
35706
|
-
onCleanup(() => ordinary.dispose());
|
|
35707
|
-
let inTransition;
|
|
35708
|
-
const triggerInTransition = () => startTransition(trigger).then(() => {
|
|
35709
|
-
if (inTransition) {
|
|
35710
|
-
inTransition.dispose();
|
|
35711
|
-
inTransition = undefined;
|
|
35712
|
-
}
|
|
35713
|
-
});
|
|
35714
|
-
c.fn = (x2) => {
|
|
35715
|
-
track();
|
|
35716
|
-
if (Transition && Transition.running) {
|
|
35717
|
-
if (!inTransition)
|
|
35718
|
-
inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition);
|
|
35719
|
-
return inTransition.track(x2);
|
|
35720
|
-
}
|
|
35721
|
-
return ordinary.track(x2);
|
|
35722
|
-
};
|
|
35723
|
-
}
|
|
35724
|
-
return c;
|
|
35725
|
-
}
|
|
35726
|
-
function runTop(node) {
|
|
35727
|
-
const runningTransition = Transition && Transition.running;
|
|
35728
|
-
if ((runningTransition ? node.tState : node.state) === 0)
|
|
35729
|
-
return;
|
|
35730
|
-
if ((runningTransition ? node.tState : node.state) === PENDING)
|
|
35731
|
-
return lookUpstream(node);
|
|
35732
|
-
if (node.suspense && untrack(node.suspense.inFallback))
|
|
35733
|
-
return node.suspense.effects.push(node);
|
|
35734
|
-
const ancestors = [node];
|
|
35735
|
-
while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {
|
|
35736
|
-
if (runningTransition && Transition.disposed.has(node))
|
|
35955
|
+
moveRight() {
|
|
35956
|
+
if (this.selectedIndex < this._options.length - 1) {
|
|
35957
|
+
this.selectedIndex++;
|
|
35958
|
+
} else if (this._wrapSelection && this._options.length > 0) {
|
|
35959
|
+
this.selectedIndex = 0;
|
|
35960
|
+
} else {
|
|
35737
35961
|
return;
|
|
35738
|
-
|
|
35739
|
-
|
|
35962
|
+
}
|
|
35963
|
+
this.updateScrollOffset();
|
|
35964
|
+
this.requestRender();
|
|
35965
|
+
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35740
35966
|
}
|
|
35741
|
-
|
|
35742
|
-
|
|
35743
|
-
if (
|
|
35744
|
-
|
|
35745
|
-
while ((top = top.owner) && top !== prev) {
|
|
35746
|
-
if (Transition.disposed.has(top))
|
|
35747
|
-
return;
|
|
35748
|
-
}
|
|
35967
|
+
selectCurrent() {
|
|
35968
|
+
const selected = this.getSelectedOption();
|
|
35969
|
+
if (selected) {
|
|
35970
|
+
this.emit("itemSelected", this.selectedIndex, selected);
|
|
35749
35971
|
}
|
|
35750
|
-
|
|
35751
|
-
|
|
35752
|
-
|
|
35753
|
-
|
|
35754
|
-
|
|
35755
|
-
|
|
35756
|
-
|
|
35972
|
+
}
|
|
35973
|
+
setSelectedIndex(index) {
|
|
35974
|
+
if (index >= 0 && index < this._options.length) {
|
|
35975
|
+
this.selectedIndex = index;
|
|
35976
|
+
this.updateScrollOffset();
|
|
35977
|
+
this.requestRender();
|
|
35978
|
+
this.emit("selectionChanged", this.selectedIndex, this.getSelectedOption());
|
|
35757
35979
|
}
|
|
35758
35980
|
}
|
|
35759
|
-
|
|
35760
|
-
|
|
35761
|
-
|
|
35762
|
-
|
|
35763
|
-
|
|
35764
|
-
|
|
35765
|
-
|
|
35766
|
-
if (Effects)
|
|
35767
|
-
wait = true;
|
|
35768
|
-
else
|
|
35769
|
-
Effects = [];
|
|
35770
|
-
ExecCount++;
|
|
35771
|
-
try {
|
|
35772
|
-
const res = fn();
|
|
35773
|
-
completeUpdates(wait);
|
|
35774
|
-
return res;
|
|
35775
|
-
} catch (err) {
|
|
35776
|
-
if (!wait)
|
|
35777
|
-
Effects = null;
|
|
35778
|
-
Updates = null;
|
|
35779
|
-
handleError(err);
|
|
35981
|
+
updateScrollOffset() {
|
|
35982
|
+
const halfVisible = Math.floor(this.maxVisibleTabs / 2);
|
|
35983
|
+
const newScrollOffset = Math.max(0, Math.min(this.selectedIndex - halfVisible, this._options.length - this.maxVisibleTabs));
|
|
35984
|
+
if (newScrollOffset !== this.scrollOffset) {
|
|
35985
|
+
this.scrollOffset = newScrollOffset;
|
|
35986
|
+
this.requestRender();
|
|
35987
|
+
}
|
|
35780
35988
|
}
|
|
35781
|
-
|
|
35782
|
-
|
|
35783
|
-
|
|
35784
|
-
|
|
35785
|
-
scheduleQueue(Updates);
|
|
35786
|
-
else
|
|
35787
|
-
runQueue(Updates);
|
|
35788
|
-
Updates = null;
|
|
35989
|
+
onResize(width, height) {
|
|
35990
|
+
this.maxVisibleTabs = Math.max(1, Math.floor(width / this._tabWidth));
|
|
35991
|
+
this.updateScrollOffset();
|
|
35992
|
+
this.requestRender();
|
|
35789
35993
|
}
|
|
35790
|
-
|
|
35791
|
-
|
|
35792
|
-
let res;
|
|
35793
|
-
if (Transition) {
|
|
35794
|
-
if (!Transition.promises.size && !Transition.queue.size) {
|
|
35795
|
-
const sources = Transition.sources;
|
|
35796
|
-
const disposed = Transition.disposed;
|
|
35797
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
35798
|
-
res = Transition.resolve;
|
|
35799
|
-
for (const e2 of Effects) {
|
|
35800
|
-
"tState" in e2 && (e2.state = e2.tState);
|
|
35801
|
-
delete e2.tState;
|
|
35802
|
-
}
|
|
35803
|
-
Transition = null;
|
|
35804
|
-
runUpdates(() => {
|
|
35805
|
-
for (const d2 of disposed)
|
|
35806
|
-
cleanNode(d2);
|
|
35807
|
-
for (const v2 of sources) {
|
|
35808
|
-
v2.value = v2.tValue;
|
|
35809
|
-
if (v2.owned) {
|
|
35810
|
-
for (let i = 0, len = v2.owned.length;i < len; i++)
|
|
35811
|
-
cleanNode(v2.owned[i]);
|
|
35812
|
-
}
|
|
35813
|
-
if (v2.tOwned)
|
|
35814
|
-
v2.owned = v2.tOwned;
|
|
35815
|
-
delete v2.tValue;
|
|
35816
|
-
delete v2.tOwned;
|
|
35817
|
-
v2.tState = 0;
|
|
35818
|
-
}
|
|
35819
|
-
setTransPending(false);
|
|
35820
|
-
}, false);
|
|
35821
|
-
} else if (Transition.running) {
|
|
35822
|
-
Transition.running = false;
|
|
35823
|
-
Transition.effects.push.apply(Transition.effects, Effects);
|
|
35824
|
-
Effects = null;
|
|
35825
|
-
setTransPending(true);
|
|
35994
|
+
setTabWidth(tabWidth) {
|
|
35995
|
+
if (this._tabWidth === tabWidth)
|
|
35826
35996
|
return;
|
|
35827
|
-
|
|
35997
|
+
this._tabWidth = tabWidth;
|
|
35998
|
+
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
35999
|
+
this.updateScrollOffset();
|
|
36000
|
+
this.requestRender();
|
|
35828
36001
|
}
|
|
35829
|
-
|
|
35830
|
-
|
|
35831
|
-
|
|
35832
|
-
|
|
35833
|
-
|
|
35834
|
-
|
|
35835
|
-
|
|
35836
|
-
|
|
35837
|
-
|
|
35838
|
-
|
|
35839
|
-
|
|
35840
|
-
|
|
35841
|
-
|
|
35842
|
-
|
|
35843
|
-
|
|
35844
|
-
|
|
35845
|
-
|
|
35846
|
-
|
|
35847
|
-
|
|
35848
|
-
|
|
35849
|
-
|
|
35850
|
-
|
|
35851
|
-
|
|
35852
|
-
|
|
35853
|
-
}
|
|
36002
|
+
getTabWidth() {
|
|
36003
|
+
return this._tabWidth;
|
|
36004
|
+
}
|
|
36005
|
+
handleKeyPress(key) {
|
|
36006
|
+
const bindingKey = getKeyBindingKey({
|
|
36007
|
+
name: key.name,
|
|
36008
|
+
ctrl: key.ctrl,
|
|
36009
|
+
shift: key.shift,
|
|
36010
|
+
meta: key.meta,
|
|
36011
|
+
super: key.super,
|
|
36012
|
+
action: "move-left"
|
|
36013
|
+
});
|
|
36014
|
+
const action = this._keyBindingsMap.get(bindingKey);
|
|
36015
|
+
if (action) {
|
|
36016
|
+
switch (action) {
|
|
36017
|
+
case "move-left":
|
|
36018
|
+
this.moveLeft();
|
|
36019
|
+
return true;
|
|
36020
|
+
case "move-right":
|
|
36021
|
+
this.moveRight();
|
|
36022
|
+
return true;
|
|
36023
|
+
case "select-current":
|
|
36024
|
+
this.selectCurrent();
|
|
36025
|
+
return true;
|
|
36026
|
+
}
|
|
35854
36027
|
}
|
|
36028
|
+
return false;
|
|
35855
36029
|
}
|
|
35856
|
-
|
|
35857
|
-
|
|
35858
|
-
let i, userLength = 0;
|
|
35859
|
-
for (i = 0;i < queue.length; i++) {
|
|
35860
|
-
const e = queue[i];
|
|
35861
|
-
if (!e.user)
|
|
35862
|
-
runTop(e);
|
|
35863
|
-
else
|
|
35864
|
-
queue[userLength++] = e;
|
|
36030
|
+
get options() {
|
|
36031
|
+
return this._options;
|
|
35865
36032
|
}
|
|
35866
|
-
|
|
35867
|
-
|
|
35868
|
-
|
|
35869
|
-
|
|
35870
|
-
|
|
35871
|
-
}
|
|
35872
|
-
setHydrateContext();
|
|
36033
|
+
set options(options) {
|
|
36034
|
+
this._options = options;
|
|
36035
|
+
this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1));
|
|
36036
|
+
this.updateScrollOffset();
|
|
36037
|
+
this.requestRender();
|
|
35873
36038
|
}
|
|
35874
|
-
|
|
35875
|
-
|
|
35876
|
-
|
|
35877
|
-
delete sharedConfig.effects;
|
|
36039
|
+
set backgroundColor(color) {
|
|
36040
|
+
this._backgroundColor = parseColor(color);
|
|
36041
|
+
this.requestRender();
|
|
35878
36042
|
}
|
|
35879
|
-
|
|
35880
|
-
|
|
35881
|
-
|
|
35882
|
-
|
|
35883
|
-
|
|
35884
|
-
|
|
35885
|
-
|
|
35886
|
-
|
|
35887
|
-
|
|
35888
|
-
|
|
35889
|
-
|
|
35890
|
-
|
|
35891
|
-
|
|
35892
|
-
|
|
35893
|
-
|
|
35894
|
-
|
|
35895
|
-
|
|
35896
|
-
|
|
36043
|
+
set textColor(color) {
|
|
36044
|
+
this._textColor = parseColor(color);
|
|
36045
|
+
this.requestRender();
|
|
36046
|
+
}
|
|
36047
|
+
set focusedBackgroundColor(color) {
|
|
36048
|
+
this._focusedBackgroundColor = parseColor(color);
|
|
36049
|
+
this.requestRender();
|
|
36050
|
+
}
|
|
36051
|
+
set focusedTextColor(color) {
|
|
36052
|
+
this._focusedTextColor = parseColor(color);
|
|
36053
|
+
this.requestRender();
|
|
36054
|
+
}
|
|
36055
|
+
set selectedBackgroundColor(color) {
|
|
36056
|
+
this._selectedBackgroundColor = parseColor(color);
|
|
36057
|
+
this.requestRender();
|
|
36058
|
+
}
|
|
36059
|
+
set selectedTextColor(color) {
|
|
36060
|
+
this._selectedTextColor = parseColor(color);
|
|
36061
|
+
this.requestRender();
|
|
36062
|
+
}
|
|
36063
|
+
set selectedDescriptionColor(color) {
|
|
36064
|
+
this._selectedDescriptionColor = parseColor(color);
|
|
36065
|
+
this.requestRender();
|
|
36066
|
+
}
|
|
36067
|
+
get showDescription() {
|
|
36068
|
+
return this._showDescription;
|
|
36069
|
+
}
|
|
36070
|
+
set showDescription(show) {
|
|
36071
|
+
if (this._showDescription !== show) {
|
|
36072
|
+
this._showDescription = show;
|
|
36073
|
+
const newHeight = this.calculateDynamicHeight();
|
|
36074
|
+
this.height = newHeight;
|
|
36075
|
+
this.requestRender();
|
|
35897
36076
|
}
|
|
35898
36077
|
}
|
|
35899
|
-
|
|
35900
|
-
|
|
35901
|
-
|
|
35902
|
-
|
|
35903
|
-
|
|
35904
|
-
|
|
35905
|
-
|
|
35906
|
-
|
|
35907
|
-
|
|
35908
|
-
o.state = PENDING;
|
|
35909
|
-
if (o.pure)
|
|
35910
|
-
Updates.push(o);
|
|
35911
|
-
else
|
|
35912
|
-
Effects.push(o);
|
|
35913
|
-
o.observers && markDownstream(o);
|
|
36078
|
+
get showUnderline() {
|
|
36079
|
+
return this._showUnderline;
|
|
36080
|
+
}
|
|
36081
|
+
set showUnderline(show) {
|
|
36082
|
+
if (this._showUnderline !== show) {
|
|
36083
|
+
this._showUnderline = show;
|
|
36084
|
+
const newHeight = this.calculateDynamicHeight();
|
|
36085
|
+
this.height = newHeight;
|
|
36086
|
+
this.requestRender();
|
|
35914
36087
|
}
|
|
35915
36088
|
}
|
|
35916
|
-
|
|
35917
|
-
|
|
35918
|
-
|
|
35919
|
-
|
|
35920
|
-
|
|
35921
|
-
|
|
35922
|
-
|
|
35923
|
-
const n = obs.pop(), s = source.observerSlots.pop();
|
|
35924
|
-
if (index < obs.length) {
|
|
35925
|
-
n.sourceSlots[s] = index;
|
|
35926
|
-
obs[index] = n;
|
|
35927
|
-
source.observerSlots[index] = s;
|
|
35928
|
-
}
|
|
35929
|
-
}
|
|
36089
|
+
get showScrollArrows() {
|
|
36090
|
+
return this._showScrollArrows;
|
|
36091
|
+
}
|
|
36092
|
+
set showScrollArrows(show) {
|
|
36093
|
+
if (this._showScrollArrows !== show) {
|
|
36094
|
+
this._showScrollArrows = show;
|
|
36095
|
+
this.requestRender();
|
|
35930
36096
|
}
|
|
35931
36097
|
}
|
|
35932
|
-
|
|
35933
|
-
|
|
35934
|
-
cleanNode(node.tOwned[i]);
|
|
35935
|
-
delete node.tOwned;
|
|
36098
|
+
get wrapSelection() {
|
|
36099
|
+
return this._wrapSelection;
|
|
35936
36100
|
}
|
|
35937
|
-
|
|
35938
|
-
|
|
35939
|
-
} else if (node.owned) {
|
|
35940
|
-
for (i = node.owned.length - 1;i >= 0; i--)
|
|
35941
|
-
cleanNode(node.owned[i]);
|
|
35942
|
-
node.owned = null;
|
|
36101
|
+
set wrapSelection(wrap) {
|
|
36102
|
+
this._wrapSelection = wrap;
|
|
35943
36103
|
}
|
|
35944
|
-
|
|
35945
|
-
|
|
35946
|
-
|
|
35947
|
-
|
|
36104
|
+
get tabWidth() {
|
|
36105
|
+
return this._tabWidth;
|
|
36106
|
+
}
|
|
36107
|
+
set tabWidth(tabWidth) {
|
|
36108
|
+
if (this._tabWidth === tabWidth)
|
|
36109
|
+
return;
|
|
36110
|
+
this._tabWidth = tabWidth;
|
|
36111
|
+
this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth));
|
|
36112
|
+
this.updateScrollOffset();
|
|
36113
|
+
this.requestRender();
|
|
36114
|
+
}
|
|
36115
|
+
set keyBindings(bindings) {
|
|
36116
|
+
this._keyBindings = bindings;
|
|
36117
|
+
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, bindings);
|
|
36118
|
+
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
36119
|
+
}
|
|
36120
|
+
set keyAliasMap(aliases) {
|
|
36121
|
+
this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, aliases);
|
|
36122
|
+
const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings);
|
|
36123
|
+
this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap);
|
|
35948
36124
|
}
|
|
35949
|
-
if (Transition && Transition.running)
|
|
35950
|
-
node.tState = 0;
|
|
35951
|
-
else
|
|
35952
|
-
node.state = 0;
|
|
35953
36125
|
}
|
|
35954
|
-
|
|
35955
|
-
|
|
35956
|
-
|
|
35957
|
-
|
|
36126
|
+
|
|
36127
|
+
class TimeToFirstDrawRenderable extends Renderable {
|
|
36128
|
+
_runtimeMs = null;
|
|
36129
|
+
textColor;
|
|
36130
|
+
label;
|
|
36131
|
+
precision;
|
|
36132
|
+
constructor(ctx, options = {}) {
|
|
36133
|
+
super(ctx, {
|
|
36134
|
+
width: "100%",
|
|
36135
|
+
height: 1,
|
|
36136
|
+
flexShrink: 0,
|
|
36137
|
+
alignSelf: "center",
|
|
36138
|
+
...options
|
|
36139
|
+
});
|
|
36140
|
+
this.textColor = parseColor(options.fg ?? "#AAAAAA");
|
|
36141
|
+
this.label = options.label ?? "Time to first draw";
|
|
36142
|
+
this.precision = this.normalizePrecision(options.precision ?? 2);
|
|
36143
|
+
}
|
|
36144
|
+
get runtimeMs() {
|
|
36145
|
+
return this._runtimeMs;
|
|
36146
|
+
}
|
|
36147
|
+
set fg(value) {
|
|
36148
|
+
this.textColor = parseColor(value);
|
|
36149
|
+
this.requestRender();
|
|
36150
|
+
}
|
|
36151
|
+
set color(value) {
|
|
36152
|
+
this.fg = value;
|
|
36153
|
+
}
|
|
36154
|
+
set textLabel(value) {
|
|
36155
|
+
if (value === this.label) {
|
|
36156
|
+
return;
|
|
36157
|
+
}
|
|
36158
|
+
this.label = value;
|
|
36159
|
+
this.requestRender();
|
|
36160
|
+
}
|
|
36161
|
+
set decimals(value) {
|
|
36162
|
+
const nextPrecision = this.normalizePrecision(value);
|
|
36163
|
+
if (nextPrecision === this.precision) {
|
|
36164
|
+
return;
|
|
36165
|
+
}
|
|
36166
|
+
this.precision = nextPrecision;
|
|
36167
|
+
this.requestRender();
|
|
36168
|
+
}
|
|
36169
|
+
reset() {
|
|
36170
|
+
this._runtimeMs = null;
|
|
36171
|
+
this.requestRender();
|
|
36172
|
+
}
|
|
36173
|
+
renderSelf(buffer) {
|
|
36174
|
+
if (this._runtimeMs === null) {
|
|
36175
|
+
this._runtimeMs = performance.now();
|
|
36176
|
+
}
|
|
36177
|
+
const content = `${this.label}: ${this._runtimeMs.toFixed(this.precision)}ms`;
|
|
36178
|
+
const maxWidth = Math.max(this.width, 1);
|
|
36179
|
+
const visibleContent = content.length > maxWidth ? content.slice(0, maxWidth) : content;
|
|
36180
|
+
const centeredX = this.x + Math.max(0, Math.floor((maxWidth - visibleContent.length) / 2));
|
|
36181
|
+
buffer.drawText(visibleContent, centeredX, this.y, this.textColor);
|
|
35958
36182
|
}
|
|
35959
|
-
|
|
35960
|
-
|
|
35961
|
-
|
|
36183
|
+
normalizePrecision(value) {
|
|
36184
|
+
if (!Number.isFinite(value)) {
|
|
36185
|
+
return 2;
|
|
36186
|
+
}
|
|
36187
|
+
return Math.max(0, Math.floor(value));
|
|
35962
36188
|
}
|
|
35963
36189
|
}
|
|
35964
|
-
|
|
35965
|
-
|
|
35966
|
-
|
|
35967
|
-
|
|
35968
|
-
|
|
35969
|
-
|
|
35970
|
-
|
|
35971
|
-
|
|
35972
|
-
|
|
35973
|
-
|
|
35974
|
-
|
|
35975
|
-
|
|
35976
|
-
|
|
36190
|
+
|
|
36191
|
+
// node_modules/@opentui/solid/node_modules/@opentui/core/testing.js
|
|
36192
|
+
var decoder2 = new TextDecoder;
|
|
36193
|
+
class TestRecorder {
|
|
36194
|
+
renderer;
|
|
36195
|
+
frames = [];
|
|
36196
|
+
recording = false;
|
|
36197
|
+
frameNumber = 0;
|
|
36198
|
+
startTime = 0;
|
|
36199
|
+
originalRenderNative;
|
|
36200
|
+
decoder = new TextDecoder;
|
|
36201
|
+
recordBuffers;
|
|
36202
|
+
now;
|
|
36203
|
+
constructor(renderer, options) {
|
|
36204
|
+
this.renderer = renderer;
|
|
36205
|
+
this.recordBuffers = options?.recordBuffers || {};
|
|
36206
|
+
this.now = options?.now ?? (() => performance.now());
|
|
35977
36207
|
}
|
|
35978
|
-
|
|
35979
|
-
|
|
35980
|
-
|
|
35981
|
-
const error = castError(err);
|
|
35982
|
-
if (!fns)
|
|
35983
|
-
throw error;
|
|
35984
|
-
if (Effects)
|
|
35985
|
-
Effects.push({
|
|
35986
|
-
fn() {
|
|
35987
|
-
runErrors(error, fns, owner);
|
|
35988
|
-
},
|
|
35989
|
-
state: STALE
|
|
35990
|
-
});
|
|
35991
|
-
else
|
|
35992
|
-
runErrors(error, fns, owner);
|
|
35993
|
-
}
|
|
35994
|
-
function resolveChildren(children2) {
|
|
35995
|
-
if (typeof children2 === "function" && !children2.length)
|
|
35996
|
-
return resolveChildren(children2());
|
|
35997
|
-
if (Array.isArray(children2)) {
|
|
35998
|
-
const results = [];
|
|
35999
|
-
for (let i = 0;i < children2.length; i++) {
|
|
36000
|
-
const result = resolveChildren(children2[i]);
|
|
36001
|
-
Array.isArray(result) ? results.push.apply(results, result) : results.push(result);
|
|
36208
|
+
rec() {
|
|
36209
|
+
if (this.recording) {
|
|
36210
|
+
return;
|
|
36002
36211
|
}
|
|
36003
|
-
|
|
36212
|
+
this.recording = true;
|
|
36213
|
+
this.frames = [];
|
|
36214
|
+
this.frameNumber = 0;
|
|
36215
|
+
this.startTime = this.now();
|
|
36216
|
+
this.originalRenderNative = this.renderer["renderNative"].bind(this.renderer);
|
|
36217
|
+
this.renderer["renderNative"] = () => {
|
|
36218
|
+
this.originalRenderNative();
|
|
36219
|
+
this.captureFrame();
|
|
36220
|
+
};
|
|
36004
36221
|
}
|
|
36005
|
-
|
|
36006
|
-
|
|
36007
|
-
|
|
36008
|
-
return function provider(props) {
|
|
36009
|
-
let res;
|
|
36010
|
-
createRenderEffect(() => res = untrack(() => {
|
|
36011
|
-
Owner.context = {
|
|
36012
|
-
...Owner.context,
|
|
36013
|
-
[id]: props.value
|
|
36014
|
-
};
|
|
36015
|
-
return children(() => props.children);
|
|
36016
|
-
}), undefined);
|
|
36017
|
-
return res;
|
|
36018
|
-
};
|
|
36019
|
-
}
|
|
36020
|
-
var FALLBACK = Symbol("fallback");
|
|
36021
|
-
function dispose(d2) {
|
|
36022
|
-
for (let i = 0;i < d2.length; i++)
|
|
36023
|
-
d2[i]();
|
|
36024
|
-
}
|
|
36025
|
-
function mapArray(list, mapFn, options = {}) {
|
|
36026
|
-
let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;
|
|
36027
|
-
onCleanup(() => dispose(disposers));
|
|
36028
|
-
return () => {
|
|
36029
|
-
let newItems = list() || [], newLen = newItems.length, i, j2;
|
|
36030
|
-
newItems[$TRACK];
|
|
36031
|
-
return untrack(() => {
|
|
36032
|
-
let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;
|
|
36033
|
-
if (newLen === 0) {
|
|
36034
|
-
if (len !== 0) {
|
|
36035
|
-
dispose(disposers);
|
|
36036
|
-
disposers = [];
|
|
36037
|
-
items = [];
|
|
36038
|
-
mapped = [];
|
|
36039
|
-
len = 0;
|
|
36040
|
-
indexes && (indexes = []);
|
|
36041
|
-
}
|
|
36042
|
-
if (options.fallback) {
|
|
36043
|
-
items = [FALLBACK];
|
|
36044
|
-
mapped[0] = createRoot((disposer) => {
|
|
36045
|
-
disposers[0] = disposer;
|
|
36046
|
-
return options.fallback();
|
|
36047
|
-
});
|
|
36048
|
-
len = 1;
|
|
36049
|
-
}
|
|
36050
|
-
} else if (len === 0) {
|
|
36051
|
-
mapped = new Array(newLen);
|
|
36052
|
-
for (j2 = 0;j2 < newLen; j2++) {
|
|
36053
|
-
items[j2] = newItems[j2];
|
|
36054
|
-
mapped[j2] = createRoot(mapper);
|
|
36055
|
-
}
|
|
36056
|
-
len = newLen;
|
|
36057
|
-
} else {
|
|
36058
|
-
temp = new Array(newLen);
|
|
36059
|
-
tempdisposers = new Array(newLen);
|
|
36060
|
-
indexes && (tempIndexes = new Array(newLen));
|
|
36061
|
-
for (start = 0, end = Math.min(len, newLen);start < end && items[start] === newItems[start]; start++)
|
|
36062
|
-
;
|
|
36063
|
-
for (end = len - 1, newEnd = newLen - 1;end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {
|
|
36064
|
-
temp[newEnd] = mapped[end];
|
|
36065
|
-
tempdisposers[newEnd] = disposers[end];
|
|
36066
|
-
indexes && (tempIndexes[newEnd] = indexes[end]);
|
|
36067
|
-
}
|
|
36068
|
-
newIndices = new Map;
|
|
36069
|
-
newIndicesNext = new Array(newEnd + 1);
|
|
36070
|
-
for (j2 = newEnd;j2 >= start; j2--) {
|
|
36071
|
-
item = newItems[j2];
|
|
36072
|
-
i = newIndices.get(item);
|
|
36073
|
-
newIndicesNext[j2] = i === undefined ? -1 : i;
|
|
36074
|
-
newIndices.set(item, j2);
|
|
36075
|
-
}
|
|
36076
|
-
for (i = start;i <= end; i++) {
|
|
36077
|
-
item = items[i];
|
|
36078
|
-
j2 = newIndices.get(item);
|
|
36079
|
-
if (j2 !== undefined && j2 !== -1) {
|
|
36080
|
-
temp[j2] = mapped[i];
|
|
36081
|
-
tempdisposers[j2] = disposers[i];
|
|
36082
|
-
indexes && (tempIndexes[j2] = indexes[i]);
|
|
36083
|
-
j2 = newIndicesNext[j2];
|
|
36084
|
-
newIndices.set(item, j2);
|
|
36085
|
-
} else
|
|
36086
|
-
disposers[i]();
|
|
36087
|
-
}
|
|
36088
|
-
for (j2 = start;j2 < newLen; j2++) {
|
|
36089
|
-
if (j2 in temp) {
|
|
36090
|
-
mapped[j2] = temp[j2];
|
|
36091
|
-
disposers[j2] = tempdisposers[j2];
|
|
36092
|
-
if (indexes) {
|
|
36093
|
-
indexes[j2] = tempIndexes[j2];
|
|
36094
|
-
indexes[j2](j2);
|
|
36095
|
-
}
|
|
36096
|
-
} else
|
|
36097
|
-
mapped[j2] = createRoot(mapper);
|
|
36098
|
-
}
|
|
36099
|
-
mapped = mapped.slice(0, len = newLen);
|
|
36100
|
-
items = newItems.slice(0);
|
|
36101
|
-
}
|
|
36102
|
-
return mapped;
|
|
36103
|
-
});
|
|
36104
|
-
function mapper(disposer) {
|
|
36105
|
-
disposers[j2] = disposer;
|
|
36106
|
-
if (indexes) {
|
|
36107
|
-
const [s, set] = createSignal(j2);
|
|
36108
|
-
indexes[j2] = set;
|
|
36109
|
-
return mapFn(newItems[j2], s);
|
|
36110
|
-
}
|
|
36111
|
-
return mapFn(newItems[j2]);
|
|
36222
|
+
stop() {
|
|
36223
|
+
if (!this.recording) {
|
|
36224
|
+
return;
|
|
36112
36225
|
}
|
|
36113
|
-
|
|
36114
|
-
|
|
36115
|
-
|
|
36116
|
-
|
|
36117
|
-
if (hydrationEnabled) {
|
|
36118
|
-
if (sharedConfig.context) {
|
|
36119
|
-
const c = sharedConfig.context;
|
|
36120
|
-
setHydrateContext(nextHydrateContext());
|
|
36121
|
-
const r = untrack(() => Comp(props || {}));
|
|
36122
|
-
setHydrateContext(c);
|
|
36123
|
-
return r;
|
|
36226
|
+
this.recording = false;
|
|
36227
|
+
if (this.originalRenderNative) {
|
|
36228
|
+
this.renderer["renderNative"] = this.originalRenderNative;
|
|
36229
|
+
this.originalRenderNative = undefined;
|
|
36124
36230
|
}
|
|
36125
36231
|
}
|
|
36126
|
-
|
|
36127
|
-
|
|
36128
|
-
function trueFn() {
|
|
36129
|
-
return true;
|
|
36130
|
-
}
|
|
36131
|
-
var propTraps = {
|
|
36132
|
-
get(_2, property, receiver) {
|
|
36133
|
-
if (property === $PROXY)
|
|
36134
|
-
return receiver;
|
|
36135
|
-
return _2.get(property);
|
|
36136
|
-
},
|
|
36137
|
-
has(_2, property) {
|
|
36138
|
-
if (property === $PROXY)
|
|
36139
|
-
return true;
|
|
36140
|
-
return _2.has(property);
|
|
36141
|
-
},
|
|
36142
|
-
set: trueFn,
|
|
36143
|
-
deleteProperty: trueFn,
|
|
36144
|
-
getOwnPropertyDescriptor(_2, property) {
|
|
36145
|
-
return {
|
|
36146
|
-
configurable: true,
|
|
36147
|
-
enumerable: true,
|
|
36148
|
-
get() {
|
|
36149
|
-
return _2.get(property);
|
|
36150
|
-
},
|
|
36151
|
-
set: trueFn,
|
|
36152
|
-
deleteProperty: trueFn
|
|
36153
|
-
};
|
|
36154
|
-
},
|
|
36155
|
-
ownKeys(_2) {
|
|
36156
|
-
return _2.keys();
|
|
36232
|
+
get recordedFrames() {
|
|
36233
|
+
return [...this.frames];
|
|
36157
36234
|
}
|
|
36158
|
-
|
|
36159
|
-
|
|
36160
|
-
|
|
36161
|
-
}
|
|
36162
|
-
function resolveSources() {
|
|
36163
|
-
for (let i = 0, length = this.length;i < length; ++i) {
|
|
36164
|
-
const v2 = this[i]();
|
|
36165
|
-
if (v2 !== undefined)
|
|
36166
|
-
return v2;
|
|
36235
|
+
clear() {
|
|
36236
|
+
this.frames = [];
|
|
36237
|
+
this.frameNumber = 0;
|
|
36167
36238
|
}
|
|
36168
|
-
|
|
36169
|
-
|
|
36170
|
-
let proxy = false;
|
|
36171
|
-
for (let i = 0;i < sources.length; i++) {
|
|
36172
|
-
const s = sources[i];
|
|
36173
|
-
proxy = proxy || !!s && $PROXY in s;
|
|
36174
|
-
sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s;
|
|
36239
|
+
get isRecording() {
|
|
36240
|
+
return this.recording;
|
|
36175
36241
|
}
|
|
36176
|
-
|
|
36177
|
-
|
|
36178
|
-
|
|
36179
|
-
|
|
36180
|
-
|
|
36181
|
-
|
|
36182
|
-
|
|
36183
|
-
|
|
36184
|
-
|
|
36185
|
-
|
|
36186
|
-
|
|
36187
|
-
|
|
36188
|
-
|
|
36189
|
-
|
|
36190
|
-
return false;
|
|
36191
|
-
},
|
|
36192
|
-
keys() {
|
|
36193
|
-
const keys = [];
|
|
36194
|
-
for (let i = 0;i < sources.length; i++)
|
|
36195
|
-
keys.push(...Object.keys(resolveSource(sources[i])));
|
|
36196
|
-
return [...new Set(keys)];
|
|
36242
|
+
captureFrame() {
|
|
36243
|
+
const currentBuffer = this.renderer.currentRenderBuffer;
|
|
36244
|
+
const frameBytes = currentBuffer.getRealCharBytes(true);
|
|
36245
|
+
const frame = this.decoder.decode(frameBytes);
|
|
36246
|
+
const recordedFrame = {
|
|
36247
|
+
frame,
|
|
36248
|
+
timestamp: this.now() - this.startTime,
|
|
36249
|
+
frameNumber: this.frameNumber++
|
|
36250
|
+
};
|
|
36251
|
+
if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {
|
|
36252
|
+
const buffers = currentBuffer.buffers;
|
|
36253
|
+
recordedFrame.buffers = {};
|
|
36254
|
+
if (this.recordBuffers.fg) {
|
|
36255
|
+
recordedFrame.buffers.fg = new Float32Array(buffers.fg);
|
|
36197
36256
|
}
|
|
36198
|
-
|
|
36199
|
-
|
|
36200
|
-
|
|
36201
|
-
|
|
36202
|
-
|
|
36203
|
-
const source = sources[i];
|
|
36204
|
-
if (!source)
|
|
36205
|
-
continue;
|
|
36206
|
-
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
36207
|
-
for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) {
|
|
36208
|
-
const key = sourceKeys[i2];
|
|
36209
|
-
if (key === "__proto__" || key === "constructor")
|
|
36210
|
-
continue;
|
|
36211
|
-
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
36212
|
-
if (!defined[key]) {
|
|
36213
|
-
defined[key] = desc.get ? {
|
|
36214
|
-
enumerable: true,
|
|
36215
|
-
configurable: true,
|
|
36216
|
-
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
36217
|
-
} : desc.value !== undefined ? desc : undefined;
|
|
36218
|
-
} else {
|
|
36219
|
-
const sources2 = sourcesMap[key];
|
|
36220
|
-
if (sources2) {
|
|
36221
|
-
if (desc.get)
|
|
36222
|
-
sources2.push(desc.get.bind(source));
|
|
36223
|
-
else if (desc.value !== undefined)
|
|
36224
|
-
sources2.push(() => desc.value);
|
|
36225
|
-
}
|
|
36257
|
+
if (this.recordBuffers.bg) {
|
|
36258
|
+
recordedFrame.buffers.bg = new Float32Array(buffers.bg);
|
|
36259
|
+
}
|
|
36260
|
+
if (this.recordBuffers.attributes) {
|
|
36261
|
+
recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes);
|
|
36226
36262
|
}
|
|
36227
36263
|
}
|
|
36264
|
+
this.frames.push(recordedFrame);
|
|
36228
36265
|
}
|
|
36229
|
-
const target = {};
|
|
36230
|
-
const definedKeys = Object.keys(defined);
|
|
36231
|
-
for (let i = definedKeys.length - 1;i >= 0; i--) {
|
|
36232
|
-
const key = definedKeys[i], desc = defined[key];
|
|
36233
|
-
if (desc && desc.get)
|
|
36234
|
-
Object.defineProperty(target, key, desc);
|
|
36235
|
-
else
|
|
36236
|
-
target[key] = desc ? desc.value : undefined;
|
|
36237
|
-
}
|
|
36238
|
-
return target;
|
|
36239
|
-
}
|
|
36240
|
-
var narrowedError = (name) => `Stale read from <${name}>.`;
|
|
36241
|
-
function For(props) {
|
|
36242
|
-
const fallback = "fallback" in props && {
|
|
36243
|
-
fallback: () => props.fallback
|
|
36244
|
-
};
|
|
36245
|
-
return createMemo(mapArray(() => props.each, props.children, fallback || undefined));
|
|
36246
|
-
}
|
|
36247
|
-
function Show(props) {
|
|
36248
|
-
const keyed = props.keyed;
|
|
36249
|
-
const conditionValue = createMemo(() => props.when, undefined, undefined);
|
|
36250
|
-
const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, {
|
|
36251
|
-
equals: (a, b2) => !a === !b2
|
|
36252
|
-
});
|
|
36253
|
-
return createMemo(() => {
|
|
36254
|
-
const c = condition();
|
|
36255
|
-
if (c) {
|
|
36256
|
-
const child = props.children;
|
|
36257
|
-
const fn = typeof child === "function" && child.length > 0;
|
|
36258
|
-
return fn ? untrack(() => child(keyed ? c : () => {
|
|
36259
|
-
if (!untrack(condition))
|
|
36260
|
-
throw narrowedError("Show");
|
|
36261
|
-
return conditionValue();
|
|
36262
|
-
})) : child;
|
|
36263
|
-
}
|
|
36264
|
-
return props.fallback;
|
|
36265
|
-
}, undefined, undefined);
|
|
36266
36266
|
}
|
|
36267
36267
|
|
|
36268
36268
|
// node_modules/entities/dist/esm/decode-codepoint.js
|
|
@@ -37522,6 +37522,19 @@ function formatTranscript(messages, agentName, humanName) {
|
|
|
37522
37522
|
|
|
37523
37523
|
`);
|
|
37524
37524
|
}
|
|
37525
|
+
function extractShortPath(raw) {
|
|
37526
|
+
if (typeof raw !== "string" || raw.length === 0)
|
|
37527
|
+
return;
|
|
37528
|
+
const parts = raw.replace(/\\/g, "/").split("/").filter(Boolean);
|
|
37529
|
+
if (parts.length <= 2)
|
|
37530
|
+
return parts.join("/");
|
|
37531
|
+
return parts.slice(-2).join("/");
|
|
37532
|
+
}
|
|
37533
|
+
function truncate(str, maxLen) {
|
|
37534
|
+
if (str.length <= maxLen)
|
|
37535
|
+
return str;
|
|
37536
|
+
return str.slice(0, maxLen - 1) + "\u2026";
|
|
37537
|
+
}
|
|
37525
37538
|
|
|
37526
37539
|
// src/adapters/claude-base.ts
|
|
37527
37540
|
class ClaudeBaseAdapter {
|
|
@@ -37592,14 +37605,18 @@ class ClaudeBaseAdapter {
|
|
|
37592
37605
|
for (const block of blocks) {
|
|
37593
37606
|
if (block.type === "tool_use" && block.name) {
|
|
37594
37607
|
const toolName = String(block.name).toLowerCase();
|
|
37608
|
+
const input = block.input;
|
|
37609
|
+
const shortPath = extractShortPath(input?.file_path ?? input?.path ?? input?.pattern);
|
|
37595
37610
|
if (toolName === "read" || toolName === "glob") {
|
|
37596
|
-
yield { type: "activity", activity: "reading", detail: block.name };
|
|
37611
|
+
yield { type: "activity", activity: "reading", detail: shortPath ? `Read: ${shortPath}` : block.name };
|
|
37597
37612
|
} else if (toolName === "write" || toolName === "edit") {
|
|
37598
|
-
yield { type: "activity", activity: "writing", detail: block.name };
|
|
37613
|
+
yield { type: "activity", activity: "writing", detail: shortPath ? `Edit: ${shortPath}` : block.name };
|
|
37599
37614
|
} else if (toolName === "bash") {
|
|
37600
|
-
|
|
37615
|
+
const cmd = typeof input?.command === "string" ? truncate(input.command, 40) : "shell";
|
|
37616
|
+
yield { type: "activity", activity: "running", detail: `Bash: ${cmd}` };
|
|
37601
37617
|
} else if (toolName === "grep" || toolName === "search" || toolName === "websearch") {
|
|
37602
|
-
|
|
37618
|
+
const query2 = typeof input?.pattern === "string" ? truncate(input.pattern, 30) : block.name;
|
|
37619
|
+
yield { type: "activity", activity: "searching", detail: `Search: ${query2}` };
|
|
37603
37620
|
} else {
|
|
37604
37621
|
yield { type: "activity", activity: "thinking", detail: block.name };
|
|
37605
37622
|
}
|
|
@@ -38140,13 +38157,16 @@ class CodexAdapter {
|
|
|
38140
38157
|
if (event.type === "item.started" || event.type === "item.updated") {
|
|
38141
38158
|
const item = event.item;
|
|
38142
38159
|
if (item.type === "command_execution") {
|
|
38143
|
-
|
|
38160
|
+
const cmd = typeof item.command === "string" ? truncate(item.command, 40) : "shell";
|
|
38161
|
+
yield { type: "activity", activity: "running", detail: `Bash: ${cmd}` };
|
|
38144
38162
|
} else if (item.type === "file_change") {
|
|
38145
|
-
|
|
38163
|
+
const filePath = extractShortPath(item.filename ?? item.path);
|
|
38164
|
+
yield { type: "activity", activity: "writing", detail: filePath ? `Edit: ${filePath}` : "file changes" };
|
|
38146
38165
|
} else if (item.type === "reasoning") {
|
|
38147
38166
|
yield { type: "activity", activity: "thinking", detail: "reasoning" };
|
|
38148
38167
|
} else if (item.type === "web_search") {
|
|
38149
|
-
|
|
38168
|
+
const q2 = typeof item.query === "string" ? truncate(item.query, 30) : "web";
|
|
38169
|
+
yield { type: "activity", activity: "searching", detail: `Search: ${q2}` };
|
|
38150
38170
|
} else if (item.type === "mcp_tool_call") {
|
|
38151
38171
|
yield { type: "activity", activity: "running", detail: `${item.server}:${item.tool}` };
|
|
38152
38172
|
}
|
|
@@ -39414,14 +39434,18 @@ class CopilotAdapter {
|
|
|
39414
39434
|
}
|
|
39415
39435
|
if (event.type === "tool.execution_start") {
|
|
39416
39436
|
const toolName = String(event.data?.toolName ?? "").toLowerCase();
|
|
39437
|
+
const args = event.data?.args;
|
|
39438
|
+
const shortPath = extractShortPath(args?.path ?? args?.file_path ?? args?.pattern);
|
|
39417
39439
|
if (toolName === "view" || toolName === "read" || toolName === "report_intent") {
|
|
39418
|
-
push({ type: "activity", activity: "reading", detail: event.data?.toolName });
|
|
39440
|
+
push({ type: "activity", activity: "reading", detail: shortPath ? `Read: ${shortPath}` : event.data?.toolName });
|
|
39419
39441
|
} else if (toolName === "create" || toolName === "edit" || toolName === "write") {
|
|
39420
|
-
push({ type: "activity", activity: "writing", detail: event.data?.toolName });
|
|
39442
|
+
push({ type: "activity", activity: "writing", detail: shortPath ? `Edit: ${shortPath}` : event.data?.toolName });
|
|
39421
39443
|
} else if (toolName === "run" || toolName === "bash" || toolName === "shell") {
|
|
39422
|
-
|
|
39444
|
+
const cmd = typeof args?.command === "string" ? truncate(args.command, 40) : "shell";
|
|
39445
|
+
push({ type: "activity", activity: "running", detail: `Bash: ${cmd}` });
|
|
39423
39446
|
} else if (toolName === "search" || toolName === "grep" || toolName === "find") {
|
|
39424
|
-
|
|
39447
|
+
const query2 = typeof args?.query === "string" ? truncate(args.query, 30) : event.data?.toolName;
|
|
39448
|
+
push({ type: "activity", activity: "searching", detail: `Search: ${query2}` });
|
|
39425
39449
|
} else {
|
|
39426
39450
|
push({ type: "activity", activity: "thinking", detail: event.data?.toolName });
|
|
39427
39451
|
}
|
|
@@ -39761,9 +39785,9 @@ async function initLlmPartyHome(appRoot) {
|
|
|
39761
39785
|
await mkdir3(path8.join(LLM_PARTY_HOME, "network"), { recursive: true });
|
|
39762
39786
|
await mkdir3(path8.join(LLM_PARTY_HOME, "agents"), { recursive: true });
|
|
39763
39787
|
await mkdir3(path8.join(LLM_PARTY_HOME, "skills"), { recursive: true });
|
|
39788
|
+
await mkdir3(path8.join(LLM_PARTY_HOME, "network", "mind-map"), { recursive: true });
|
|
39764
39789
|
await ensureFile(path8.join(LLM_PARTY_HOME, "network", "projects.yml"), `projects: []
|
|
39765
39790
|
`);
|
|
39766
|
-
await mkdir3(path8.join(LLM_PARTY_HOME, "network", "mind-map"), { recursive: true });
|
|
39767
39791
|
await ensureFile(path8.join(LLM_PARTY_HOME, "network", "mind-map", "INDEX.md"), MIND_MAP_INDEX);
|
|
39768
39792
|
}
|
|
39769
39793
|
async function configExists() {
|
|
@@ -40341,6 +40365,7 @@ import { spawn as spawn4 } from "child_process";
|
|
|
40341
40365
|
|
|
40342
40366
|
// src/ui/useOrchestrator.ts
|
|
40343
40367
|
import { execFile } from "child_process";
|
|
40368
|
+
var ACTIVITY_LOG_MAX = 30;
|
|
40344
40369
|
var systemIdCounter = 0;
|
|
40345
40370
|
function nextSystemId() {
|
|
40346
40371
|
systemIdCounter -= 1;
|
|
@@ -40349,6 +40374,8 @@ function nextSystemId() {
|
|
|
40349
40374
|
function useOrchestrator(orchestrator) {
|
|
40350
40375
|
const [messages, setMessages] = createSignal([]);
|
|
40351
40376
|
const [agentStates, setAgentStates] = createSignal(new Map(orchestrator.listAgents().map((a) => [a.name, "idle"])));
|
|
40377
|
+
const [agentDetails, setAgentDetails] = createSignal(new Map(orchestrator.listAgents().map((a) => [a.name, undefined])));
|
|
40378
|
+
const [agentActivityLog, setAgentActivityLog] = createSignal(new Map(orchestrator.listAgents().map((a) => [a.name, []])));
|
|
40352
40379
|
const [stickyTarget, setStickyTargetSignal] = createSignal(orchestrator.getStickyTarget());
|
|
40353
40380
|
const setStickyTarget = (targets) => {
|
|
40354
40381
|
setStickyTargetSignal(targets);
|
|
@@ -40383,13 +40410,43 @@ function useOrchestrator(orchestrator) {
|
|
|
40383
40410
|
});
|
|
40384
40411
|
setDispatching(orchestrator.dispatching);
|
|
40385
40412
|
updateQueueCounts();
|
|
40386
|
-
}, (agentName, activity) => {
|
|
40413
|
+
}, (agentName, activity, detail) => {
|
|
40387
40414
|
const originalName = nameMap.get(agentName.toUpperCase()) ?? agentName;
|
|
40415
|
+
const prevState = agentStates().get(originalName);
|
|
40388
40416
|
setAgentStates((prev) => {
|
|
40389
40417
|
const next = new Map(prev);
|
|
40390
40418
|
next.set(originalName, activity);
|
|
40391
40419
|
return next;
|
|
40392
40420
|
});
|
|
40421
|
+
if (activity === "thinking" && (prevState === "idle" || prevState === "error" || prevState === "queued" || prevState === undefined)) {
|
|
40422
|
+
setAgentActivityLog((prev) => {
|
|
40423
|
+
const next = new Map(prev);
|
|
40424
|
+
next.set(originalName, []);
|
|
40425
|
+
return next;
|
|
40426
|
+
});
|
|
40427
|
+
setAgentDetails((prev) => {
|
|
40428
|
+
const next = new Map(prev);
|
|
40429
|
+
next.set(originalName, undefined);
|
|
40430
|
+
return next;
|
|
40431
|
+
});
|
|
40432
|
+
}
|
|
40433
|
+
if (detail !== undefined && detail !== "") {
|
|
40434
|
+
setAgentDetails((prev) => {
|
|
40435
|
+
const next = new Map(prev);
|
|
40436
|
+
next.set(originalName, detail);
|
|
40437
|
+
return next;
|
|
40438
|
+
});
|
|
40439
|
+
}
|
|
40440
|
+
const shouldLog = detail !== undefined && detail !== "" || activity !== "idle" && activity !== "queued" && activity !== "thinking";
|
|
40441
|
+
if (shouldLog) {
|
|
40442
|
+
const ts = new Date().toLocaleTimeString("en-US", { hour12: false, hour: "2-digit", minute: "2-digit", second: "2-digit" });
|
|
40443
|
+
setAgentActivityLog((prev) => {
|
|
40444
|
+
const next = new Map(prev);
|
|
40445
|
+
const entries = [...next.get(originalName) ?? [], { ts, activity, detail }];
|
|
40446
|
+
next.set(originalName, entries.length > ACTIVITY_LOG_MAX ? entries.slice(-ACTIVITY_LOG_MAX) : entries);
|
|
40447
|
+
return next;
|
|
40448
|
+
});
|
|
40449
|
+
}
|
|
40393
40450
|
setDispatching(orchestrator.dispatching);
|
|
40394
40451
|
updateQueueCounts();
|
|
40395
40452
|
}, (text) => {
|
|
@@ -40444,7 +40501,7 @@ function useOrchestrator(orchestrator) {
|
|
|
40444
40501
|
const refreshStickyTarget = () => {
|
|
40445
40502
|
setStickyTargetSignal(orchestrator.getStickyTarget());
|
|
40446
40503
|
};
|
|
40447
|
-
return { messages, agentStates, queueCounts, stickyTarget, dispatching, dispatch, addSystemMessage, addDisplayMessage, clearMessages, refreshStickyTarget };
|
|
40504
|
+
return { messages, agentStates, agentDetails, agentActivityLog, queueCounts, stickyTarget, dispatching, dispatch, addSystemMessage, addDisplayMessage, clearMessages, refreshStickyTarget };
|
|
40448
40505
|
}
|
|
40449
40506
|
function getChangedFiles() {
|
|
40450
40507
|
return new Promise((resolve4) => {
|
|
@@ -40557,21 +40614,25 @@ var ACTIVITY_SPINNERS = {
|
|
|
40557
40614
|
searching: "\u25D0\u25D3\u25D1\u25D2".split("")
|
|
40558
40615
|
};
|
|
40559
40616
|
var SUPERSCRIPT_DIGITS = ["\u2070", "\xB9", "\xB2", "\xB3", "\u2074", "\u2075", "\u2076", "\u2077", "\u2078", "\u2079"];
|
|
40560
|
-
|
|
40561
|
-
// src/ui/StatusBar.tsx
|
|
40562
|
-
var PULSE_COLORS = ["#005F87", "#0087AF", "#00AFD7", "#00D7FF", "#5FF", "#00D7FF", "#0087AF"];
|
|
40563
40617
|
var [globalTick, setGlobalTick] = createSignal(0);
|
|
40564
40618
|
setInterval(() => setGlobalTick((t2) => t2 + 1), 80);
|
|
40619
|
+
function toSuperscript(n) {
|
|
40620
|
+
if (n <= 0)
|
|
40621
|
+
return "";
|
|
40622
|
+
return String(n).split("").map((d2) => SUPERSCRIPT_DIGITS[parseInt(d2, 10)] ?? d2).join("");
|
|
40623
|
+
}
|
|
40624
|
+
var PULSE_COLORS = ["#005F87", "#0087AF", "#00AFD7", "#00D7FF", "#5FF", "#00D7FF", "#0087AF"];
|
|
40625
|
+
|
|
40626
|
+
// src/ui/StatusBar.tsx
|
|
40565
40627
|
function StatusBar(props) {
|
|
40566
40628
|
const targetNames = () => props.stickyTarget ?? props.agents.map((a) => a.name);
|
|
40567
40629
|
const isTargeted = (name) => targetNames().includes(name);
|
|
40568
40630
|
return (() => {
|
|
40569
|
-
var _el$ = createElement("box"), _el$2 = createElement("box"), _el$3 = createElement("box"), _el$4 = createElement("text")
|
|
40631
|
+
var _el$ = createElement("box"), _el$2 = createElement("box"), _el$3 = createElement("box"), _el$4 = createElement("text");
|
|
40570
40632
|
insertNode(_el$, _el$2);
|
|
40571
40633
|
setProp(_el$, "paddingX", 1);
|
|
40572
40634
|
setProp(_el$, "flexShrink", 0);
|
|
40573
40635
|
insertNode(_el$2, _el$3);
|
|
40574
|
-
insertNode(_el$2, _el$6);
|
|
40575
40636
|
setProp(_el$2, "flexDirection", "row");
|
|
40576
40637
|
setProp(_el$2, "justifyContent", "space-between");
|
|
40577
40638
|
setProp(_el$2, "width", "100%");
|
|
@@ -40608,33 +40669,37 @@ function StatusBar(props) {
|
|
|
40608
40669
|
})()
|
|
40609
40670
|
}), _el$4);
|
|
40610
40671
|
insertNode(_el$4, createTextNode(`| /info`));
|
|
40611
|
-
|
|
40612
|
-
|
|
40613
|
-
|
|
40614
|
-
return props.agents;
|
|
40672
|
+
insert(_el$2, createComponent2(Show, {
|
|
40673
|
+
get when() {
|
|
40674
|
+
return !props.sidebarVisible;
|
|
40615
40675
|
},
|
|
40616
|
-
children
|
|
40617
|
-
|
|
40618
|
-
|
|
40619
|
-
|
|
40620
|
-
|
|
40621
|
-
|
|
40622
|
-
|
|
40623
|
-
|
|
40624
|
-
|
|
40625
|
-
|
|
40626
|
-
|
|
40627
|
-
|
|
40628
|
-
|
|
40676
|
+
get children() {
|
|
40677
|
+
var _el$6 = createElement("box");
|
|
40678
|
+
setProp(_el$6, "flexDirection", "row");
|
|
40679
|
+
insert(_el$6, createComponent2(For, {
|
|
40680
|
+
get each() {
|
|
40681
|
+
return props.agents;
|
|
40682
|
+
},
|
|
40683
|
+
children: (a, i) => [createComponent2(AgentChip, {
|
|
40684
|
+
get name() {
|
|
40685
|
+
return a.name;
|
|
40686
|
+
},
|
|
40687
|
+
getState: () => props.agentStates.get(a.name) ?? "idle",
|
|
40688
|
+
getQueued: () => props.queueCounts?.get(a.name) ?? 0
|
|
40689
|
+
}), memo2(() => memo2(() => i() < props.agents.length - 1)() ? (() => {
|
|
40690
|
+
var _el$12 = createElement("text");
|
|
40691
|
+
insertNode(_el$12, createTextNode(` \u2502 `));
|
|
40692
|
+
effect((_$p) => setProp(_el$12, "fg", COLORS.textDim, _$p));
|
|
40693
|
+
return _el$12;
|
|
40694
|
+
})() : null)]
|
|
40695
|
+
}));
|
|
40696
|
+
return _el$6;
|
|
40697
|
+
}
|
|
40698
|
+
}), null);
|
|
40629
40699
|
effect((_$p) => setProp(_el$4, "fg", COLORS.textDim, _$p));
|
|
40630
40700
|
return _el$;
|
|
40631
40701
|
})();
|
|
40632
40702
|
}
|
|
40633
|
-
function toSuperscript(n) {
|
|
40634
|
-
if (n <= 0)
|
|
40635
|
-
return "";
|
|
40636
|
-
return String(n).split("").map((d2) => SUPERSCRIPT_DIGITS[parseInt(d2, 10)] ?? d2).join("");
|
|
40637
|
-
}
|
|
40638
40703
|
function AgentChip(props) {
|
|
40639
40704
|
const isActive = () => {
|
|
40640
40705
|
const s = props.getState();
|
|
@@ -40664,6 +40729,180 @@ function AgentChip(props) {
|
|
|
40664
40729
|
})();
|
|
40665
40730
|
}
|
|
40666
40731
|
|
|
40732
|
+
// src/ui/AgentSidebar.tsx
|
|
40733
|
+
function truncateRight(s, max) {
|
|
40734
|
+
if (max <= 0)
|
|
40735
|
+
return "";
|
|
40736
|
+
if (s.length <= max)
|
|
40737
|
+
return s;
|
|
40738
|
+
if (max <= 1)
|
|
40739
|
+
return "\u2026";
|
|
40740
|
+
return s.slice(0, max - 1) + "\u2026";
|
|
40741
|
+
}
|
|
40742
|
+
function AgentSidebar(props) {
|
|
40743
|
+
const [expanded, setExpanded] = createSignal(new Map);
|
|
40744
|
+
const getState = (name) => props.agentStates.get(name) ?? "idle";
|
|
40745
|
+
const isActive = (s) => s !== "idle" && s !== "error" && s !== "queued";
|
|
40746
|
+
const getExpanded = (name) => {
|
|
40747
|
+
const v2 = expanded().get(name);
|
|
40748
|
+
if (v2 !== undefined)
|
|
40749
|
+
return v2;
|
|
40750
|
+
return isActive(getState(name));
|
|
40751
|
+
};
|
|
40752
|
+
const toggle = (name) => {
|
|
40753
|
+
setExpanded((prev) => {
|
|
40754
|
+
const next = new Map(prev);
|
|
40755
|
+
next.set(name, !getExpanded(name));
|
|
40756
|
+
return next;
|
|
40757
|
+
});
|
|
40758
|
+
};
|
|
40759
|
+
const stateColor = (s) => {
|
|
40760
|
+
if (s === "error")
|
|
40761
|
+
return COLORS.error;
|
|
40762
|
+
if (isActive(s))
|
|
40763
|
+
return COLORS.success;
|
|
40764
|
+
return COLORS.textMuted;
|
|
40765
|
+
};
|
|
40766
|
+
const spinner = (s) => {
|
|
40767
|
+
const t2 = globalTick();
|
|
40768
|
+
if (!isActive(s))
|
|
40769
|
+
return " ";
|
|
40770
|
+
const frames = ACTIVITY_SPINNERS[s] ?? SPINNER_FRAMES;
|
|
40771
|
+
return frames[t2 % frames.length] ?? " ";
|
|
40772
|
+
};
|
|
40773
|
+
const detailText = (name) => props.agentDetails?.get(name) ?? "";
|
|
40774
|
+
const logEntries = (name) => props.agentActivityLog?.get(name) ?? [];
|
|
40775
|
+
return (() => {
|
|
40776
|
+
var _el$ = createElement("box"), _el$2 = createElement("box"), _el$3 = createElement("text"), _el$4 = createElement("strong"), _el$6 = createElement("text"), _el$8 = createElement("text"), _el$1 = createElement("scrollbox");
|
|
40777
|
+
insertNode(_el$, _el$2);
|
|
40778
|
+
insertNode(_el$, _el$8);
|
|
40779
|
+
insertNode(_el$, _el$1);
|
|
40780
|
+
setProp(_el$, "height", "100%");
|
|
40781
|
+
setProp(_el$, "flexShrink", 0);
|
|
40782
|
+
setProp(_el$, "flexGrow", 0);
|
|
40783
|
+
setProp(_el$, "flexDirection", "column");
|
|
40784
|
+
setProp(_el$, "border", true);
|
|
40785
|
+
setProp(_el$, "borderStyle", "rounded");
|
|
40786
|
+
setProp(_el$, "paddingX", 1);
|
|
40787
|
+
insertNode(_el$2, _el$3);
|
|
40788
|
+
insertNode(_el$2, _el$6);
|
|
40789
|
+
setProp(_el$2, "flexDirection", "row");
|
|
40790
|
+
setProp(_el$2, "justifyContent", "space-between");
|
|
40791
|
+
setProp(_el$2, "width", "100%");
|
|
40792
|
+
insertNode(_el$3, _el$4);
|
|
40793
|
+
insertNode(_el$4, createTextNode(`Agents`));
|
|
40794
|
+
insertNode(_el$6, createTextNode(`Ctrl+B`));
|
|
40795
|
+
insert(_el$8, () => "\u2500".repeat(Math.max(0, props.width - 4)));
|
|
40796
|
+
insert(_el$, createComponent2(Show, {
|
|
40797
|
+
get when() {
|
|
40798
|
+
return props.agents.length === 0;
|
|
40799
|
+
},
|
|
40800
|
+
get children() {
|
|
40801
|
+
var _el$9 = createElement("text");
|
|
40802
|
+
insertNode(_el$9, createTextNode(`No agents configured.`));
|
|
40803
|
+
setProp(_el$9, "selectable", false);
|
|
40804
|
+
effect((_$p) => setProp(_el$9, "fg", COLORS.textFaint, _$p));
|
|
40805
|
+
return _el$9;
|
|
40806
|
+
}
|
|
40807
|
+
}), _el$1);
|
|
40808
|
+
setProp(_el$1, "width", "100%");
|
|
40809
|
+
setProp(_el$1, "flexGrow", 1);
|
|
40810
|
+
setProp(_el$1, "flexBasis", 0);
|
|
40811
|
+
setProp(_el$1, "flexShrink", 1);
|
|
40812
|
+
insert(_el$1, createComponent2(For, {
|
|
40813
|
+
get each() {
|
|
40814
|
+
return props.agents;
|
|
40815
|
+
},
|
|
40816
|
+
children: (a, i) => {
|
|
40817
|
+
const s = () => getState(a.name);
|
|
40818
|
+
const isOpen = () => getExpanded(a.name);
|
|
40819
|
+
const q2 = () => props.queueCounts?.get(a.name) ?? 0;
|
|
40820
|
+
const qSup = () => toSuperscript(q2());
|
|
40821
|
+
const title = () => {
|
|
40822
|
+
const arrow = isOpen() ? "\u25BC" : "\u25B6";
|
|
40823
|
+
const state = s();
|
|
40824
|
+
return `${arrow} ${qSup()}${a.name} (${state}) ${spinner(state)}`;
|
|
40825
|
+
};
|
|
40826
|
+
return (() => {
|
|
40827
|
+
var _el$10 = createElement("box"), _el$11 = createElement("box"), _el$12 = createElement("text");
|
|
40828
|
+
insertNode(_el$10, _el$11);
|
|
40829
|
+
setProp(_el$10, "width", "100%");
|
|
40830
|
+
setProp(_el$10, "flexDirection", "column");
|
|
40831
|
+
insertNode(_el$11, _el$12);
|
|
40832
|
+
setProp(_el$11, "width", "100%");
|
|
40833
|
+
setProp(_el$11, "onMouseUp", () => toggle(a.name));
|
|
40834
|
+
setProp(_el$12, "selectable", false);
|
|
40835
|
+
insert(_el$12, title);
|
|
40836
|
+
insert(_el$10, createComponent2(Show, {
|
|
40837
|
+
get when() {
|
|
40838
|
+
return isOpen();
|
|
40839
|
+
},
|
|
40840
|
+
get children() {
|
|
40841
|
+
var _el$13 = createElement("box");
|
|
40842
|
+
setProp(_el$13, "flexDirection", "column");
|
|
40843
|
+
setProp(_el$13, "paddingLeft", 2);
|
|
40844
|
+
insert(_el$13, createComponent2(For, {
|
|
40845
|
+
get each() {
|
|
40846
|
+
return logEntries(a.name).slice(-8);
|
|
40847
|
+
},
|
|
40848
|
+
children: (e) => (() => {
|
|
40849
|
+
var _el$16 = createElement("text");
|
|
40850
|
+
setProp(_el$16, "selectable", false);
|
|
40851
|
+
insert(_el$16, (() => {
|
|
40852
|
+
var _c$ = memo2(() => !!e.detail);
|
|
40853
|
+
return () => _c$() ? truncateRight(e.detail, Math.max(0, props.width - 6)) : e.activity;
|
|
40854
|
+
})());
|
|
40855
|
+
effect((_$p) => setProp(_el$16, "fg", COLORS.textDim, _$p));
|
|
40856
|
+
return _el$16;
|
|
40857
|
+
})()
|
|
40858
|
+
}), null);
|
|
40859
|
+
insert(_el$13, createComponent2(Show, {
|
|
40860
|
+
get when() {
|
|
40861
|
+
return logEntries(a.name).length === 0;
|
|
40862
|
+
},
|
|
40863
|
+
get children() {
|
|
40864
|
+
var _el$14 = createElement("text");
|
|
40865
|
+
insertNode(_el$14, createTextNode(`No activity details yet.`));
|
|
40866
|
+
setProp(_el$14, "selectable", false);
|
|
40867
|
+
effect((_$p) => setProp(_el$14, "fg", COLORS.textFaint, _$p));
|
|
40868
|
+
return _el$14;
|
|
40869
|
+
}
|
|
40870
|
+
}), null);
|
|
40871
|
+
return _el$13;
|
|
40872
|
+
}
|
|
40873
|
+
}), null);
|
|
40874
|
+
effect((_p$) => {
|
|
40875
|
+
var _v$6 = i() === 0 ? 0 : 1, _v$7 = stateColor(s());
|
|
40876
|
+
_v$6 !== _p$.e && (_p$.e = setProp(_el$10, "marginTop", _v$6, _p$.e));
|
|
40877
|
+
_v$7 !== _p$.t && (_p$.t = setProp(_el$12, "fg", _v$7, _p$.t));
|
|
40878
|
+
return _p$;
|
|
40879
|
+
}, {
|
|
40880
|
+
e: undefined,
|
|
40881
|
+
t: undefined
|
|
40882
|
+
});
|
|
40883
|
+
return _el$10;
|
|
40884
|
+
})();
|
|
40885
|
+
}
|
|
40886
|
+
}));
|
|
40887
|
+
effect((_p$) => {
|
|
40888
|
+
var _v$ = props.width, _v$2 = COLORS.borderStrong, _v$3 = COLORS.primary, _v$4 = COLORS.textFaint, _v$5 = COLORS.borderStrong;
|
|
40889
|
+
_v$ !== _p$.e && (_p$.e = setProp(_el$, "width", _v$, _p$.e));
|
|
40890
|
+
_v$2 !== _p$.t && (_p$.t = setProp(_el$, "borderColor", _v$2, _p$.t));
|
|
40891
|
+
_v$3 !== _p$.a && (_p$.a = setProp(_el$3, "fg", _v$3, _p$.a));
|
|
40892
|
+
_v$4 !== _p$.o && (_p$.o = setProp(_el$6, "fg", _v$4, _p$.o));
|
|
40893
|
+
_v$5 !== _p$.i && (_p$.i = setProp(_el$8, "fg", _v$5, _p$.i));
|
|
40894
|
+
return _p$;
|
|
40895
|
+
}, {
|
|
40896
|
+
e: undefined,
|
|
40897
|
+
t: undefined,
|
|
40898
|
+
a: undefined,
|
|
40899
|
+
o: undefined,
|
|
40900
|
+
i: undefined
|
|
40901
|
+
});
|
|
40902
|
+
return _el$;
|
|
40903
|
+
})();
|
|
40904
|
+
}
|
|
40905
|
+
|
|
40667
40906
|
// src/ui/InputLine.tsx
|
|
40668
40907
|
var FUNCTION_KEYS = new Set(["f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12"]);
|
|
40669
40908
|
function InputLine(props) {
|
|
@@ -40821,7 +41060,7 @@ function InputLine(props) {
|
|
|
40821
41060
|
};
|
|
40822
41061
|
const borderColor = () => props.disabled ? COLORS.borderDim : COLORS.borderActive;
|
|
40823
41062
|
const label = () => `${props.humanName} > `;
|
|
40824
|
-
const separator = () => "\u2500".repeat(Math.max(0, dims().width - 2));
|
|
41063
|
+
const separator = () => "\u2500".repeat(Math.max(0, props.availableWidth != null ? props.availableWidth : dims().width - 2));
|
|
40825
41064
|
return (() => {
|
|
40826
41065
|
var _el$ = createElement("box"), _el$2 = createElement("text");
|
|
40827
41066
|
insertNode(_el$, _el$2);
|
|
@@ -42576,8 +42815,8 @@ function InfoPanel(props) {
|
|
|
42576
42815
|
const totalW = 50;
|
|
42577
42816
|
const pad = (str, width) => str + " ".repeat(Math.max(0, width - str.length));
|
|
42578
42817
|
const cmdW = 16;
|
|
42579
|
-
const commands = [["/agents", "Agent panel (Ctrl+P)"], ["/config", "Config wizard"], ["/info", "This panel"], ["/
|
|
42580
|
-
const shortcuts = [["Ctrl+P", "Toggle agents panel"], ["Ctrl+
|
|
42818
|
+
const commands = [["/agents", "Agent panel (Ctrl+P)"], ["/config", "Config wizard"], ["/info", "This panel"], ["/save <path>", "Export as JSON"], ["/changes", "Git modified files"], ["/clear", "Clear chat (Ctrl+L)"], ["/exit", "Quit"]];
|
|
42819
|
+
const shortcuts = [["Ctrl+P", "Toggle agents panel"], ["Ctrl+B", "Toggle sidebar"], ["Ctrl+L", "Clear chat"], ["Ctrl+A", "Jump to start of line"], ["Ctrl+E", "Jump to end of line"], ["Ctrl+U", "Clear entire line"], ["Ctrl+W", "Delete word backward"], ["Shift/Alt+Enter", "New line"], ["Up/Down", "Input history"], ["PageUp/Down", "Scroll chat"]];
|
|
42581
42820
|
return (() => {
|
|
42582
42821
|
var _el$ = createElement("box"), _el$2 = createElement("box"), _el$3 = createElement("box"), _el$4 = createElement("text"), _el$5 = createElement("strong"), _el$7 = createElement("text"), _el$8 = createElement("span"), _el$0 = createElement("span"), _el$1 = createElement("text"), _el$10 = createElement("strong"), _el$12 = createElement("text"), _el$14 = createElement("text"), _el$15 = createElement("strong"), _el$17 = createElement("text"), _el$19 = createElement("text"), _el$21 = createElement("text"), _el$22 = createElement("span"), _el$24 = createElement("span");
|
|
42583
42822
|
insertNode(_el$, _el$2);
|
|
@@ -42888,6 +43127,412 @@ function CancelPanel(props) {
|
|
|
42888
43127
|
})();
|
|
42889
43128
|
}
|
|
42890
43129
|
|
|
43130
|
+
// src/ui/splash-frames-octo.ts
|
|
43131
|
+
var SPLASH_FRAMES = [
|
|
43132
|
+
[
|
|
43133
|
+
" ",
|
|
43134
|
+
" ",
|
|
43135
|
+
" \u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2591 ",
|
|
43136
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43137
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43138
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43139
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2593\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43140
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43141
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43142
|
+
" \u2592\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43143
|
+
" \u2591\u2592\u2593\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2591 ",
|
|
43144
|
+
" \u2591\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43145
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2591\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43146
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2593\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43147
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2592\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43148
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43149
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2593\u2592\u2591 ",
|
|
43150
|
+
" \u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43151
|
+
" \u2591\u2593\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2592\u2591 ",
|
|
43152
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43153
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2593\u2588\u2593\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2593\u2588\u2588\u2592\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43154
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43155
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43156
|
+
" \u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43157
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43158
|
+
" \u2593\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43159
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2592\u2591 ",
|
|
43160
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588 ",
|
|
43161
|
+
" ",
|
|
43162
|
+
" "
|
|
43163
|
+
],
|
|
43164
|
+
[
|
|
43165
|
+
" ",
|
|
43166
|
+
" \u2591\u2588\u2588\u2588\u2592 ",
|
|
43167
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2591 ",
|
|
43168
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43169
|
+
" \u2593\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43170
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43171
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2593\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43172
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43173
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43174
|
+
" \u2591\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43175
|
+
" \u2591\u2593\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2591 ",
|
|
43176
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43177
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43178
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2591\u2593\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43179
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43180
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43181
|
+
" \u2591\u2591\u2592\u2593\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2593\u2592\u2591 ",
|
|
43182
|
+
" \u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43183
|
+
" \u2591\u2592\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2592\u2591 ",
|
|
43184
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43185
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2588\u2588\u2592\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43186
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43187
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43188
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43189
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2593 \u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43190
|
+
" \u2592\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43191
|
+
" \u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 \u2588\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2592\u2592\u2591 ",
|
|
43192
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588 ",
|
|
43193
|
+
" \u2592\u2588\u2588\u2592 \u2591 ",
|
|
43194
|
+
" "
|
|
43195
|
+
],
|
|
43196
|
+
[
|
|
43197
|
+
" ",
|
|
43198
|
+
" \u2591\u2588\u2588\u2588\u2593 ",
|
|
43199
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2593\u2591 ",
|
|
43200
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2593 ",
|
|
43201
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43202
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43203
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2593\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43204
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43205
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43206
|
+
" \u2591\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43207
|
+
" \u2591\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592\u2591 \u2593\u2588\u2588\u2588\u2591 ",
|
|
43208
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43209
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43210
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2593\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43211
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43212
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43213
|
+
" \u2591\u2591\u2592\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2592\u2591\u2591 ",
|
|
43214
|
+
" \u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43215
|
+
" \u2591\u2593\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2593\u2591 ",
|
|
43216
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43217
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2588\u2588\u2588\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43218
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43219
|
+
" \u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43220
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43221
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43222
|
+
" \u2592\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2591 ",
|
|
43223
|
+
" \u2591\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2592\u2591 ",
|
|
43224
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2588 ",
|
|
43225
|
+
" \u2592\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591 ",
|
|
43226
|
+
" "
|
|
43227
|
+
],
|
|
43228
|
+
[
|
|
43229
|
+
" ",
|
|
43230
|
+
" \u2592\u2593\u2592 ",
|
|
43231
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2593\u2591 ",
|
|
43232
|
+
" \u2593\u2588\u2588\u2588\u2588\u2592 \u2588\u2588\u2588\u2588\u2588 ",
|
|
43233
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43234
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43235
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2593\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43236
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43237
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43238
|
+
" \u2592\u2588\u2588\u2592 \u2593\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43239
|
+
" \u2591\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2593\u2591 \u2593\u2588\u2588\u2588\u2591 ",
|
|
43240
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43241
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43242
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2593\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43243
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43244
|
+
" \u2592\u2593\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 ",
|
|
43245
|
+
" \u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2592\u2591\u2591 ",
|
|
43246
|
+
" \u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43247
|
+
" \u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2593\u2591 ",
|
|
43248
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43249
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2592\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2588\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43250
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43251
|
+
" \u2593\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588 \u2593\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43252
|
+
" \u2591\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43253
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43254
|
+
" \u2592\u2588\u2588\u2592\u2591 \u2593\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2593 ",
|
|
43255
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591 ",
|
|
43256
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43257
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2592\u2591 ",
|
|
43258
|
+
" "
|
|
43259
|
+
],
|
|
43260
|
+
[
|
|
43261
|
+
" ",
|
|
43262
|
+
" ",
|
|
43263
|
+
" \u2591\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2593\u2591 ",
|
|
43264
|
+
" \u2593\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2593 ",
|
|
43265
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43266
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43267
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43268
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43269
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43270
|
+
" \u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2591\u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43271
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2593\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592\u2591 \u2592\u2588\u2588\u2588\u2591 ",
|
|
43272
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43273
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43274
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43275
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43276
|
+
" \u2591\u2592\u2592\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43277
|
+
" \u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2592\u2591 ",
|
|
43278
|
+
" \u2591\u2592\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43279
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2588\u2591 ",
|
|
43280
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43281
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2593\u2593\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43282
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43283
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43284
|
+
" \u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43285
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2588\u2588\u2588\u2588\u2588\u2588 \u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43286
|
+
" \u2591\u2592\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2592 ",
|
|
43287
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591 ",
|
|
43288
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43289
|
+
" \u2592\u2588\u2588\u2593\u2591 \u2591\u2592\u2591 ",
|
|
43290
|
+
" "
|
|
43291
|
+
],
|
|
43292
|
+
[
|
|
43293
|
+
" ",
|
|
43294
|
+
" ",
|
|
43295
|
+
" \u2591\u2591 \u2591\u2588\u2588\u2588\u2592 ",
|
|
43296
|
+
" \u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43297
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2593 ",
|
|
43298
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2592\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2593 ",
|
|
43299
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43300
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43301
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43302
|
+
" \u2591\u2593\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2593\u2593\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2593\u2591\u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43303
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2591 \u2591\u2588\u2592 \u2591 \u2591\u2588\u2588\u2588\u2592\u2592\u2588\u2592 \u2591\u2593\u2588\u2593\u2591 ",
|
|
43304
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2591\u2588\u2588\u2588\u2591 \u2591\u2593\u2592 \u2592 \u2592\u2593 \u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588 ",
|
|
43305
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2591\u2592\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2593\u2588\u2592 \u2591 \u2593\u2588\u2588\u2593\u2593\u2588\u2591 \u2588\u2588\u2588\u2593\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43306
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2591 \u2593 \u2591\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43307
|
+
" \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2591 \u2591\u2588\u2588\u2588\u2591 \u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43308
|
+
" \u2591\u2592\u2593\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43309
|
+
" \u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591 ",
|
|
43310
|
+
" \u2591\u2592\u2588\u2592\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43311
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43312
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43313
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2592\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43314
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 ",
|
|
43315
|
+
" \u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2593 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43316
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588 \u2593\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43317
|
+
" \u2591\u2593\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43318
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2593\u2588\u2588\u2588\u2593 ",
|
|
43319
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591 ",
|
|
43320
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43321
|
+
" \u2591\u2591\u2591 \u2591\u2591\u2592\u2591 ",
|
|
43322
|
+
" "
|
|
43323
|
+
],
|
|
43324
|
+
[
|
|
43325
|
+
" ",
|
|
43326
|
+
" ",
|
|
43327
|
+
" \u2591\u2588\u2588\u2588\u2593 ",
|
|
43328
|
+
" \u2593\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43329
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588 ",
|
|
43330
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43331
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43332
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2593\u2588\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43333
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43334
|
+
" \u2592\u2592\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43335
|
+
" \u2591\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 \u2591\u2588\u2592 \u2591\u2588\u2588\u2588\u2591\u2593\u2588\u2592 \u2591\u2593\u2588\u2593\u2591 ",
|
|
43336
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2592\u2588\u2588\u2588\u2591 \u2592\u2593\u2591 \u2592 \u2592\u2593 \u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588 ",
|
|
43337
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2593\u2588\u2591 \u2591 \u2591\u2588\u2588\u2588\u2593\u2593\u2588 \u2588\u2588\u2588\u2592\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43338
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2592\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588 \u2593 \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43339
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2591 \u2591\u2588\u2588\u2588\u2591 \u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43340
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43341
|
+
" \u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591 ",
|
|
43342
|
+
" \u2591\u2592\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591 ",
|
|
43343
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43344
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43345
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2593\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43346
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43347
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43348
|
+
" \u2592\u2588\u2588\u2588\u2588 \u2593\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43349
|
+
" \u2591\u2592\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43350
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2592 ",
|
|
43351
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591 ",
|
|
43352
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43353
|
+
" \u2591 \u2591\u2591 ",
|
|
43354
|
+
" "
|
|
43355
|
+
],
|
|
43356
|
+
[
|
|
43357
|
+
" ",
|
|
43358
|
+
" ",
|
|
43359
|
+
" \u2592\u2588\u2588\u2588\u2592 ",
|
|
43360
|
+
" \u2593\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2588\u2588\u2588\u2588\u2588 ",
|
|
43361
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43362
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43363
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588 ",
|
|
43364
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2593\u2588\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43365
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2593\u2593\u2593\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43366
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43367
|
+
" \u2592\u2593\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 \u2591\u2588\u2592 \u2591\u2588\u2588\u2588\u2591\u2593\u2588\u2592 \u2592\u2588\u2588\u2588\u2591 ",
|
|
43368
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2592\u2593\u2588\u2588\u2591 \u2592\u2593 \u2592 \u2591\u2593\u2591 \u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43369
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2593\u2593\u2588 \u2591 \u2591\u2588\u2588\u2588\u2593\u2593\u2592 \u2588\u2588\u2588\u2592\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43370
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2591\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2592 \u2593 \u2591\u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2592\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43371
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2591 \u2591\u2588\u2588\u2588\u2591 \u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43372
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43373
|
+
" \u2591\u2592\u2593\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2592\u2591\u2591\u2591 ",
|
|
43374
|
+
" \u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2591\u2591 ",
|
|
43375
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2592\u2588\u2588\u2588\u2588\u2591 ",
|
|
43376
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43377
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43378
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2588\u2588\u2588\u2588\u2588\u2591 \u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43379
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43380
|
+
" \u2592\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43381
|
+
" \u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43382
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588 ",
|
|
43383
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591 ",
|
|
43384
|
+
" \u2591\u2588\u2588\u2592\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43385
|
+
" \u2591\u2591 ",
|
|
43386
|
+
" "
|
|
43387
|
+
],
|
|
43388
|
+
[
|
|
43389
|
+
" ",
|
|
43390
|
+
" ",
|
|
43391
|
+
" \u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2592 ",
|
|
43392
|
+
" \u2591\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588 ",
|
|
43393
|
+
" \u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43394
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2593 ",
|
|
43395
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2593 ",
|
|
43396
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2593\u2588\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43397
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2593\u2593\u2593\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43398
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43399
|
+
" \u2592\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 \u2591\u2588\u2592 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2591 ",
|
|
43400
|
+
" \u2591\u2588\u2588\u2588\u2593 \u2591\u2591\u2592\u2593\u2588\u2588\u2591 \u2592\u2592 \u2592 \u2591\u2593\u2591 \u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43401
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2593\u2593\u2593 \u2591 \u2591\u2588\u2588\u2588\u2593\u2588\u2591 \u2588\u2588\u2588\u2592\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43402
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2592 \u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2592\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43403
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2588\u2588\u2588\u2588\u2592 \u2591\u2591 \u2591\u2588\u2588\u2588\u2591 \u2591 \u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43404
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 ",
|
|
43405
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2592\u2592\u2591\u2591 ",
|
|
43406
|
+
" \u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2591\u2591 ",
|
|
43407
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2593\u2591 ",
|
|
43408
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43409
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43410
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591 \u2591\u2588\u2588\u2588\u2588\u2588 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43411
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43412
|
+
" \u2592\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43413
|
+
" \u2592\u2593\u2592\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43414
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2593 ",
|
|
43415
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591 ",
|
|
43416
|
+
" \u2591\u2592\u2592\u2591 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43417
|
+
" \u2591 ",
|
|
43418
|
+
" "
|
|
43419
|
+
],
|
|
43420
|
+
[
|
|
43421
|
+
" ",
|
|
43422
|
+
" ",
|
|
43423
|
+
" \u2591\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2593 ",
|
|
43424
|
+
" \u2593\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2591 ",
|
|
43425
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 ",
|
|
43426
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43427
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43428
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43429
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43430
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2593\u2593\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2591\u2591\u2592\u2593\u2593\u2592\u2591\u2593\u2588\u2588\u2588\u2588\u2591 ",
|
|
43431
|
+
" \u2592\u2588\u2588\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2591 ",
|
|
43432
|
+
" \u2591\u2593\u2588\u2588\u2592 \u2591\u2591\u2591\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43433
|
+
" \u2592\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43434
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2593\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43435
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43436
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43437
|
+
" \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2592\u2592\u2591 ",
|
|
43438
|
+
" \u2591\u2591\u2592\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2591\u2591 ",
|
|
43439
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2593\u2591 ",
|
|
43440
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43441
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43442
|
+
" \u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43443
|
+
" \u2593\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2592 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43444
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43445
|
+
" \u2593\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43446
|
+
" \u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2591 ",
|
|
43447
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2591 ",
|
|
43448
|
+
" \u2591\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2593 ",
|
|
43449
|
+
" ",
|
|
43450
|
+
" "
|
|
43451
|
+
],
|
|
43452
|
+
[
|
|
43453
|
+
" ",
|
|
43454
|
+
" ",
|
|
43455
|
+
" \u2591\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2591 ",
|
|
43456
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43457
|
+
" \u2593\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43458
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43459
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43460
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43461
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43462
|
+
" \u2593\u2588\u2588\u2588\u2588\u2591\u2592\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43463
|
+
" \u2591\u2593\u2588\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2593\u2592\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2591 ",
|
|
43464
|
+
" \u2591\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 ",
|
|
43465
|
+
" \u2592\u2588\u2588\u2588\u2588\u2593 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43466
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2591\u2591\u2588\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2592\u2591\u2591\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43467
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2591\u2591\u2588\u2588\u2588\u2588\u2592\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43468
|
+
" \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43469
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2593\u2592\u2591 ",
|
|
43470
|
+
" \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2592\u2591\u2591 ",
|
|
43471
|
+
" \u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2593\u2588\u2588\u2588\u2592\u2591 ",
|
|
43472
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591\u2591\u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43473
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2591\u2593\u2588\u2588\u2588\u2593\u2591\u2591\u2591\u2592\u2588\u2588\u2588\u2588\u2592\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43474
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2593 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2593 ",
|
|
43475
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2593\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
43476
|
+
" \u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2591 ",
|
|
43477
|
+
" \u2591\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2588\u2591 ",
|
|
43478
|
+
" \u2592\u2588\u2588\u2588\u2591 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2592 ",
|
|
43479
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2592\u2592\u2591 ",
|
|
43480
|
+
" \u2591\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2593\u2588\u2588\u2588\u2588 ",
|
|
43481
|
+
" ",
|
|
43482
|
+
" "
|
|
43483
|
+
]
|
|
43484
|
+
];
|
|
43485
|
+
|
|
43486
|
+
// src/ui/SplashScreen.tsx
|
|
43487
|
+
var FRAME_INTERVAL = 120;
|
|
43488
|
+
function SplashScreen() {
|
|
43489
|
+
const dims = useTerminalDimensions();
|
|
43490
|
+
const [frameIndex, setFrameIndex] = createSignal(0);
|
|
43491
|
+
const timer = setInterval(() => {
|
|
43492
|
+
setFrameIndex((i) => (i + 1) % SPLASH_FRAMES.length);
|
|
43493
|
+
}, FRAME_INTERVAL);
|
|
43494
|
+
onCleanup(() => clearInterval(timer));
|
|
43495
|
+
const frame = () => SPLASH_FRAMES[frameIndex()] ?? [];
|
|
43496
|
+
const artHeight = () => frame().length + 3;
|
|
43497
|
+
const topPad = () => Math.max(0, Math.floor((dims().height - artHeight() - 4) / 2));
|
|
43498
|
+
return (() => {
|
|
43499
|
+
var _el$ = createElement("box"), _el$2 = createElement("text"), _el$4 = createElement("text"), _el$6 = createElement("text");
|
|
43500
|
+
insertNode(_el$, _el$2);
|
|
43501
|
+
insertNode(_el$, _el$4);
|
|
43502
|
+
insertNode(_el$, _el$6);
|
|
43503
|
+
setProp(_el$, "flexDirection", "column");
|
|
43504
|
+
setProp(_el$, "width", "100%");
|
|
43505
|
+
setProp(_el$, "alignItems", "center");
|
|
43506
|
+
insert(_el$, createComponent2(For, {
|
|
43507
|
+
get each() {
|
|
43508
|
+
return frame();
|
|
43509
|
+
},
|
|
43510
|
+
children: (line) => (() => {
|
|
43511
|
+
var _el$8 = createElement("text");
|
|
43512
|
+
setProp(_el$8, "selectable", false);
|
|
43513
|
+
insert(_el$8, line);
|
|
43514
|
+
effect((_$p) => setProp(_el$8, "fg", COLORS.primary, _$p));
|
|
43515
|
+
return _el$8;
|
|
43516
|
+
})()
|
|
43517
|
+
}), _el$2);
|
|
43518
|
+
insertNode(_el$2, createTextNode(` `));
|
|
43519
|
+
insertNode(_el$4, createTextNode(`llm-party`));
|
|
43520
|
+
insertNode(_el$6, createTextNode(`multi-agent terminal`));
|
|
43521
|
+
effect((_p$) => {
|
|
43522
|
+
var _v$ = topPad(), _v$2 = COLORS.primary, _v$3 = COLORS.textDim;
|
|
43523
|
+
_v$ !== _p$.e && (_p$.e = setProp(_el$, "paddingTop", _v$, _p$.e));
|
|
43524
|
+
_v$2 !== _p$.t && (_p$.t = setProp(_el$4, "fg", _v$2, _p$.t));
|
|
43525
|
+
_v$3 !== _p$.a && (_p$.a = setProp(_el$6, "fg", _v$3, _p$.a));
|
|
43526
|
+
return _p$;
|
|
43527
|
+
}, {
|
|
43528
|
+
e: undefined,
|
|
43529
|
+
t: undefined,
|
|
43530
|
+
a: undefined
|
|
43531
|
+
});
|
|
43532
|
+
return _el$;
|
|
43533
|
+
})();
|
|
43534
|
+
}
|
|
43535
|
+
|
|
42891
43536
|
// src/ui/App.tsx
|
|
42892
43537
|
function copyToClipboard(text) {
|
|
42893
43538
|
const proc = spawn4("pbcopy", [], {
|
|
@@ -42912,6 +43557,8 @@ function App(props) {
|
|
|
42912
43557
|
const {
|
|
42913
43558
|
messages,
|
|
42914
43559
|
agentStates,
|
|
43560
|
+
agentDetails,
|
|
43561
|
+
agentActivityLog,
|
|
42915
43562
|
queueCounts,
|
|
42916
43563
|
stickyTarget,
|
|
42917
43564
|
dispatching,
|
|
@@ -42929,6 +43576,23 @@ function App(props) {
|
|
|
42929
43576
|
const [showAgents, setShowAgents] = createSignal(false);
|
|
42930
43577
|
const [showInfo, setShowInfo] = createSignal(false);
|
|
42931
43578
|
const [showCancel, setShowCancel] = createSignal(false);
|
|
43579
|
+
const dims = useTerminalDimensions();
|
|
43580
|
+
const [sidebarEnabled, setSidebarEnabled] = createSignal(true);
|
|
43581
|
+
const cwd = () => {
|
|
43582
|
+
const full = process.cwd();
|
|
43583
|
+
const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
|
|
43584
|
+
return home && full.startsWith(home) ? "~" + full.slice(home.length) : full;
|
|
43585
|
+
};
|
|
43586
|
+
const MIN_WIDTH_FOR_SIDEBAR = 100;
|
|
43587
|
+
const sidebarWidth = () => {
|
|
43588
|
+
const w2 = dims().width;
|
|
43589
|
+
return Math.max(24, Math.min(40, Math.floor(w2 * 0.32)));
|
|
43590
|
+
};
|
|
43591
|
+
const sidebarVisible = () => sidebarEnabled() && dims().width >= MIN_WIDTH_FOR_SIDEBAR;
|
|
43592
|
+
const leftPaneWidth = () => {
|
|
43593
|
+
const w2 = dims().width;
|
|
43594
|
+
return sidebarVisible() ? Math.max(0, w2 - (sidebarWidth() + 1)) : w2;
|
|
43595
|
+
};
|
|
42932
43596
|
const resumeSession = async (sessionId) => {
|
|
42933
43597
|
try {
|
|
42934
43598
|
const restored = await props.orchestrator.loadTranscript(sessionId);
|
|
@@ -42977,6 +43641,10 @@ function App(props) {
|
|
|
42977
43641
|
setShowAgents((v2) => !v2);
|
|
42978
43642
|
return;
|
|
42979
43643
|
}
|
|
43644
|
+
if (key.ctrl && key.name === "b") {
|
|
43645
|
+
setSidebarEnabled((v2) => !v2);
|
|
43646
|
+
return;
|
|
43647
|
+
}
|
|
42980
43648
|
if (showAgents() || showCancel() || showInfo())
|
|
42981
43649
|
return;
|
|
42982
43650
|
if (key.name === "escape") {
|
|
@@ -43021,11 +43689,6 @@ function App(props) {
|
|
|
43021
43689
|
setShowAgents(true);
|
|
43022
43690
|
return;
|
|
43023
43691
|
}
|
|
43024
|
-
if (line === "/session") {
|
|
43025
|
-
addSystemMessage(`Session: ${props.orchestrator.getSessionId()}
|
|
43026
|
-
Transcript: ${props.orchestrator.getTranscriptPath()}`);
|
|
43027
|
-
return;
|
|
43028
|
-
}
|
|
43029
43692
|
if (line.startsWith("/save ")) {
|
|
43030
43693
|
const filePath = line.replace("/save ", "").trim();
|
|
43031
43694
|
if (!filePath) {
|
|
@@ -43089,7 +43752,6 @@ ${lines.join(`
|
|
|
43089
43752
|
}
|
|
43090
43753
|
await dispatch(line);
|
|
43091
43754
|
};
|
|
43092
|
-
const tagsLine = agents.map((a) => `@${a.tag}`).join(", ");
|
|
43093
43755
|
return createComponent2(Show, {
|
|
43094
43756
|
get when() {
|
|
43095
43757
|
return screen() !== "config";
|
|
@@ -43108,28 +43770,48 @@ ${lines.join(`
|
|
|
43108
43770
|
});
|
|
43109
43771
|
},
|
|
43110
43772
|
get children() {
|
|
43111
|
-
var _el$ = createElement("box"), _el$2 = createElement("
|
|
43773
|
+
var _el$ = createElement("box"), _el$2 = createElement("box"), _el$3 = createElement("box"), _el$4 = createElement("scrollbox"), _el$6 = createElement("box"), _el$7 = createElement("text");
|
|
43112
43774
|
insertNode(_el$, _el$2);
|
|
43775
|
+
insertNode(_el$, _el$6);
|
|
43113
43776
|
setProp(_el$, "flexDirection", "column");
|
|
43114
43777
|
setProp(_el$, "width", "100%");
|
|
43115
43778
|
setProp(_el$, "height", "100%");
|
|
43116
43779
|
setProp(_el$, "onMouseUp", () => copySelection(renderer));
|
|
43117
43780
|
insertNode(_el$2, _el$3);
|
|
43118
|
-
|
|
43119
|
-
setProp(_el$2, "
|
|
43120
|
-
setProp(_el$2, "stickyStart", "bottom");
|
|
43781
|
+
setProp(_el$2, "flexDirection", "row");
|
|
43782
|
+
setProp(_el$2, "width", "100%");
|
|
43121
43783
|
setProp(_el$2, "flexGrow", 1);
|
|
43122
43784
|
setProp(_el$2, "flexBasis", 0);
|
|
43123
|
-
setProp(_el$2, "
|
|
43785
|
+
setProp(_el$2, "alignItems", "stretch");
|
|
43124
43786
|
insertNode(_el$3, _el$4);
|
|
43125
|
-
|
|
43126
|
-
setProp(_el$3, "
|
|
43127
|
-
|
|
43128
|
-
|
|
43129
|
-
|
|
43130
|
-
|
|
43131
|
-
|
|
43132
|
-
|
|
43787
|
+
setProp(_el$3, "flexDirection", "column");
|
|
43788
|
+
setProp(_el$3, "flexGrow", 1);
|
|
43789
|
+
setProp(_el$3, "flexBasis", 0);
|
|
43790
|
+
setProp(_el$3, "flexShrink", 1);
|
|
43791
|
+
use((el) => scrollRef = el, _el$4);
|
|
43792
|
+
setProp(_el$4, "stickyScroll", true);
|
|
43793
|
+
setProp(_el$4, "stickyStart", "bottom");
|
|
43794
|
+
setProp(_el$4, "flexGrow", 1);
|
|
43795
|
+
setProp(_el$4, "flexBasis", 0);
|
|
43796
|
+
setProp(_el$4, "flexShrink", 1);
|
|
43797
|
+
insert(_el$4, createComponent2(Show, {
|
|
43798
|
+
get when() {
|
|
43799
|
+
return messages().length === 0;
|
|
43800
|
+
},
|
|
43801
|
+
get children() {
|
|
43802
|
+
return createComponent2(SplashScreen, {});
|
|
43803
|
+
}
|
|
43804
|
+
}), null);
|
|
43805
|
+
insert(_el$4, createComponent2(For, {
|
|
43806
|
+
get each() {
|
|
43807
|
+
return messages();
|
|
43808
|
+
},
|
|
43809
|
+
children: (msg) => createComponent2(MessageBubble, {
|
|
43810
|
+
message: msg,
|
|
43811
|
+
humanName
|
|
43812
|
+
})
|
|
43813
|
+
}), null);
|
|
43814
|
+
insert(_el$3, createComponent2(StatusBar, {
|
|
43133
43815
|
agents,
|
|
43134
43816
|
get agentStates() {
|
|
43135
43817
|
return agentStates();
|
|
@@ -43139,18 +43821,59 @@ ${lines.join(`
|
|
|
43139
43821
|
},
|
|
43140
43822
|
get queueCounts() {
|
|
43141
43823
|
return queueCounts();
|
|
43824
|
+
},
|
|
43825
|
+
get sidebarVisible() {
|
|
43826
|
+
return sidebarVisible();
|
|
43142
43827
|
}
|
|
43143
43828
|
}), null);
|
|
43144
|
-
insert(_el
|
|
43829
|
+
insert(_el$3, createComponent2(InputLine, {
|
|
43145
43830
|
humanName,
|
|
43146
43831
|
onSubmit: handleSubmit,
|
|
43147
43832
|
get disabled() {
|
|
43148
43833
|
return showAgents() || showInfo() || showCancel();
|
|
43149
43834
|
},
|
|
43150
43835
|
get disabledMessage() {
|
|
43151
|
-
return showAgents() || showCancel() ? "" : undefined;
|
|
43836
|
+
return memo2(() => !!(showAgents() || showCancel()))() ? "" : showInfo() ? "info panel opened" : undefined;
|
|
43837
|
+
},
|
|
43838
|
+
get availableWidth() {
|
|
43839
|
+
return memo2(() => !!sidebarVisible())() ? Math.max(0, leftPaneWidth() - 2) : undefined;
|
|
43840
|
+
}
|
|
43841
|
+
}), null);
|
|
43842
|
+
insert(_el$2, createComponent2(Show, {
|
|
43843
|
+
get when() {
|
|
43844
|
+
return sidebarVisible();
|
|
43845
|
+
},
|
|
43846
|
+
get children() {
|
|
43847
|
+
var _el$5 = createElement("box");
|
|
43848
|
+
setProp(_el$5, "paddingLeft", 1);
|
|
43849
|
+
setProp(_el$5, "paddingY", 0);
|
|
43850
|
+
setProp(_el$5, "flexDirection", "column");
|
|
43851
|
+
setProp(_el$5, "height", "100%");
|
|
43852
|
+
insert(_el$5, createComponent2(AgentSidebar, {
|
|
43853
|
+
agents,
|
|
43854
|
+
get agentStates() {
|
|
43855
|
+
return agentStates();
|
|
43856
|
+
},
|
|
43857
|
+
get agentDetails() {
|
|
43858
|
+
return agentDetails();
|
|
43859
|
+
},
|
|
43860
|
+
get agentActivityLog() {
|
|
43861
|
+
return agentActivityLog();
|
|
43862
|
+
},
|
|
43863
|
+
get queueCounts() {
|
|
43864
|
+
return queueCounts();
|
|
43865
|
+
},
|
|
43866
|
+
get width() {
|
|
43867
|
+
return sidebarWidth();
|
|
43868
|
+
}
|
|
43869
|
+
}));
|
|
43870
|
+
return _el$5;
|
|
43152
43871
|
}
|
|
43153
43872
|
}), null);
|
|
43873
|
+
insertNode(_el$6, _el$7);
|
|
43874
|
+
setProp(_el$6, "flexShrink", 0);
|
|
43875
|
+
setProp(_el$6, "paddingX", 1);
|
|
43876
|
+
insert(_el$7, cwd);
|
|
43154
43877
|
insert(_el$, (() => {
|
|
43155
43878
|
var _c$ = memo2(() => !!showAgents());
|
|
43156
43879
|
return () => _c$() && createComponent2(AgentsPanel, {
|
|
@@ -43189,7 +43912,7 @@ ${lines.join(`
|
|
|
43189
43912
|
onClose: () => setShowCancel(false)
|
|
43190
43913
|
});
|
|
43191
43914
|
})(), null);
|
|
43192
|
-
effect((_$p) => setProp(_el$
|
|
43915
|
+
effect((_$p) => setProp(_el$7, "fg", COLORS.textDim, _$p));
|
|
43193
43916
|
return _el$;
|
|
43194
43917
|
}
|
|
43195
43918
|
});
|
|
@@ -43208,17 +43931,43 @@ async function main2() {
|
|
|
43208
43931
|
};
|
|
43209
43932
|
const hasConfig = await configExists();
|
|
43210
43933
|
if (!hasConfig) {
|
|
43211
|
-
|
|
43212
|
-
|
|
43213
|
-
|
|
43214
|
-
|
|
43934
|
+
const [boot, setBoot] = createSignal(null);
|
|
43935
|
+
await render(() => Show({
|
|
43936
|
+
get when() {
|
|
43937
|
+
return boot();
|
|
43938
|
+
},
|
|
43939
|
+
get fallback() {
|
|
43940
|
+
return ConfigWizard({
|
|
43941
|
+
isFirstRun: true,
|
|
43942
|
+
onComplete: async () => {
|
|
43943
|
+
const result = await buildOrchestrator(appRoot, resumeSessionId);
|
|
43944
|
+
setBoot(result);
|
|
43945
|
+
}
|
|
43946
|
+
});
|
|
43947
|
+
},
|
|
43948
|
+
get children() {
|
|
43949
|
+
const b2 = boot();
|
|
43950
|
+
if (!b2)
|
|
43951
|
+
return null;
|
|
43952
|
+
return App({
|
|
43953
|
+
orchestrator: b2.orchestrator,
|
|
43954
|
+
config: b2.config,
|
|
43955
|
+
configPath: b2.configPath,
|
|
43956
|
+
resumeSessionId
|
|
43957
|
+
});
|
|
43215
43958
|
}
|
|
43216
43959
|
}), rendererConfig);
|
|
43217
43960
|
} else {
|
|
43218
|
-
await
|
|
43961
|
+
const result = await buildOrchestrator(appRoot, resumeSessionId);
|
|
43962
|
+
await render(() => App({
|
|
43963
|
+
orchestrator: result.orchestrator,
|
|
43964
|
+
config: result.config,
|
|
43965
|
+
configPath: result.configPath,
|
|
43966
|
+
resumeSessionId
|
|
43967
|
+
}), rendererConfig);
|
|
43219
43968
|
}
|
|
43220
43969
|
}
|
|
43221
|
-
async function
|
|
43970
|
+
async function buildOrchestrator(appRoot, resumeSessionId) {
|
|
43222
43971
|
const configPath = await resolveConfigPath(appRoot);
|
|
43223
43972
|
const config = await loadConfig2(configPath);
|
|
43224
43973
|
const humanName = config.humanName?.trim() || "USER";
|
|
@@ -43309,7 +44058,7 @@ ${mySkills.map((s) => `- ${s}`).join(`
|
|
|
43309
44058
|
const defaultTimeout = typeof config.timeout === "number" && config.timeout > 0 ? config.timeout * 1000 : 600000;
|
|
43310
44059
|
const agentTimeouts = Object.fromEntries(activeAgents.filter((agent) => typeof agent.timeout === "number" && agent.timeout > 0).map((agent) => [agent.name, agent.timeout * 1000]));
|
|
43311
44060
|
const orchestrator = new Orchestrator(adapters, humanName, Object.fromEntries(activeAgents.map((agent) => [agent.name, agent.tag?.trim() || toTag(agent.name)])), humanTag, defaultTimeout, agentTimeouts, { reminderInterval: config.reminderInterval, maxAutoHops });
|
|
43312
|
-
|
|
44061
|
+
return { orchestrator, config, configPath };
|
|
43313
44062
|
}
|
|
43314
44063
|
function resolveMaxAutoHops(value) {
|
|
43315
44064
|
if (typeof value === "number" && value === 0) {
|