@aiwayds/dsh-opentui 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist-host/index.js +71 -62
  2. package/package.json +2 -1
@@ -1598,20 +1598,37 @@ function WidgetFrame(props) {
1598
1598
  get children() {
1599
1599
  var _el$ = _$createElement13("box");
1600
1600
  _$insert13(_el$, (() => {
1601
- var _c$ = _$memo6(() => !!(props.title || props.hint));
1601
+ var _c$ = _$memo6(() => rows() === 1);
1602
1602
  return () => _c$() ? (() => {
1603
- var _el$2 = _$createElement13("box"), _el$3 = _$createElement13("text"), _el$4 = _$createElement13("box"), _el$5 = _$createElement13("text");
1603
+ var _el$2 = _$createElement13("box"), _el$3 = _$createElement13("box"), _el$4 = _$createElement13("text");
1604
1604
  _$insertNode10(_el$2, _el$3);
1605
1605
  _$insertNode10(_el$2, _el$4);
1606
- _$insertNode10(_el$2, _el$5);
1607
1606
  _$setProp13(_el$2, "style", {
1608
1607
  flexDirection: "row"
1609
1608
  });
1610
- _$insert13(_el$3, () => props.title);
1611
- _$setProp13(_el$4, "style", {
1609
+ _$setProp13(_el$3, "style", {
1610
+ flexDirection: "row",
1612
1611
  flexGrow: 1
1613
1612
  });
1614
- _$insert13(_el$5, () => props.hint);
1613
+ _$insert13(_el$3, () => props.children);
1614
+ _$insert13(_el$4, () => props.hint ?? "");
1615
+ _$effect13((_$p) => _$setProp13(_el$4, "style", {
1616
+ fg: dimColor(accent(), 0.25)
1617
+ }, _$p));
1618
+ return _el$2;
1619
+ })() : [_$memo6(() => _$memo6(() => !!(props.title || props.hint))() ? (() => {
1620
+ var _el$5 = _$createElement13("box"), _el$6 = _$createElement13("text"), _el$7 = _$createElement13("box"), _el$8 = _$createElement13("text");
1621
+ _$insertNode10(_el$5, _el$6);
1622
+ _$insertNode10(_el$5, _el$7);
1623
+ _$insertNode10(_el$5, _el$8);
1624
+ _$setProp13(_el$5, "style", {
1625
+ flexDirection: "row"
1626
+ });
1627
+ _$insert13(_el$6, () => props.title);
1628
+ _$setProp13(_el$7, "style", {
1629
+ flexGrow: 1
1630
+ });
1631
+ _$insert13(_el$8, () => props.hint);
1615
1632
  _$effect13((_p$) => {
1616
1633
  var _v$ = {
1617
1634
  fg: accent(),
@@ -1620,17 +1637,16 @@ function WidgetFrame(props) {
1620
1637
  }, _v$2 = {
1621
1638
  fg: dimColor(accent(), 0.25)
1622
1639
  };
1623
- _v$ !== _p$.e && (_p$.e = _$setProp13(_el$3, "style", _v$, _p$.e));
1624
- _v$2 !== _p$.t && (_p$.t = _$setProp13(_el$5, "style", _v$2, _p$.t));
1640
+ _v$ !== _p$.e && (_p$.e = _$setProp13(_el$6, "style", _v$, _p$.e));
1641
+ _v$2 !== _p$.t && (_p$.t = _$setProp13(_el$8, "style", _v$2, _p$.t));
1625
1642
  return _p$;
1626
1643
  }, {
1627
1644
  e: undefined,
1628
1645
  t: undefined
1629
1646
  });
1630
- return _el$2;
1631
- })() : null;
1632
- })(), null);
1633
- _$insert13(_el$, () => props.children, null);
1647
+ return _el$5;
1648
+ })() : null), _$memo6(() => props.children)];
1649
+ })());
1634
1650
  _$effect13((_$p) => _$setProp13(_el$, "style", {
1635
1651
  flexDirection: "column",
1636
1652
  flexGrow: 0,
@@ -2386,7 +2402,6 @@ import { createSignal as createSignal3, For as For11, Show as Show8 } from "soli
2386
2402
  var FLUSH_MS = 60;
2387
2403
  var FADE_STEP_MS = 130;
2388
2404
  var FADE_STEPS = 5;
2389
- var IDLE_COLLAPSE_MS = 2000;
2390
2405
  var SPINNER_FRAMES2 = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
2391
2406
  function createDockFeature(deps) {
2392
2407
  const th = () => deps.theme();
@@ -2404,6 +2419,7 @@ function createDockFeature(deps) {
2404
2419
  });
2405
2420
  let thinkBuf = "";
2406
2421
  let lastFlush = 0;
2422
+ let thinkOpen = false;
2407
2423
  const [tools, setTools] = createSignal3([]);
2408
2424
  const [toolVisible, setToolVisible] = createSignal3(false);
2409
2425
  const [toolFading, setToolFading] = createSignal3(false);
@@ -2435,29 +2451,22 @@ function createDockFeature(deps) {
2435
2451
  } : s);
2436
2452
  };
2437
2453
  const fadeTimer = setInterval(() => {
2438
- const now = Date.now();
2439
2454
  setThink((s) => {
2440
- if (s.fading) {
2441
- const f = Math.min(1, s.fade + 1 / FADE_STEPS);
2442
- return f >= 1 ? {
2443
- visible: false,
2444
- expanded: false,
2445
- fading: false,
2446
- fade: 0,
2447
- text: "",
2448
- lastAt: 0,
2449
- startedAt: 0
2450
- } : {
2451
- ...s,
2452
- fade: f
2453
- };
2454
- }
2455
- if (s.visible)
2456
- return {
2457
- ...s,
2458
- expanded: now - s.lastAt < IDLE_COLLAPSE_MS
2459
- };
2460
- return s;
2455
+ if (!s.fading)
2456
+ return s;
2457
+ const f = Math.min(1, s.fade + 1 / FADE_STEPS);
2458
+ return f >= 1 ? {
2459
+ visible: false,
2460
+ expanded: false,
2461
+ fading: false,
2462
+ fade: 0,
2463
+ text: "",
2464
+ lastAt: 0,
2465
+ startedAt: 0
2466
+ } : {
2467
+ ...s,
2468
+ fade: f
2469
+ };
2461
2470
  });
2462
2471
  if (toolFading()) {
2463
2472
  const f = Math.min(1, toolFade() + 1 / FADE_STEPS);
@@ -2468,8 +2477,6 @@ function createDockFeature(deps) {
2468
2477
  setTools([]);
2469
2478
  } else
2470
2479
  setToolFade(f);
2471
- } else if (toolVisible()) {
2472
- setToolExpanded(now - lastToolAt < IDLE_COLLAPSE_MS || tools().some((e) => e.status === "running"));
2473
2480
  }
2474
2481
  }, FADE_STEP_MS);
2475
2482
  const startThinkFade = () => setThink((s) => ({
@@ -2530,14 +2537,14 @@ function createDockFeature(deps) {
2530
2537
  `).slice(-Math.max(1, (typeof rowsT === "number" ? rowsT : 7) - 2));
2531
2538
  },
2532
2539
  children: (line) => (() => {
2533
- var _el$5 = _$createElement15("text");
2534
- _$insert15(_el$5, line || " ");
2535
- _$effect15((_$p) => _$setProp15(_el$5, "style", {
2540
+ var _el$6 = _$createElement15("text");
2541
+ _$insert15(_el$6, line || " ");
2542
+ _$effect15((_$p) => _$setProp15(_el$6, "style", {
2536
2543
  fg: dimColor(thinkFg(), 0.2),
2537
2544
  wrapMode: "none",
2538
2545
  truncate: true
2539
2546
  }, _$p));
2540
- return _el$5;
2547
+ return _el$6;
2541
2548
  })()
2542
2549
  });
2543
2550
  }
@@ -2546,8 +2553,10 @@ function createDockFeature(deps) {
2546
2553
  return !t.expanded;
2547
2554
  },
2548
2555
  get children() {
2549
- var _el$ = _$createElement15("text"), _el$2 = _$createTextNode10(`\uD83D\uDCAD `);
2556
+ var _el$ = _$createElement15("text"), _el$2 = _$createTextNode10(`\uD83D\uDCAD `), _el$3 = _$createTextNode10(`s `);
2550
2557
  _$insertNode12(_el$, _el$2);
2558
+ _$insertNode12(_el$, _el$3);
2559
+ _$insert15(_el$, elapsed, _el$3);
2551
2560
  _$insert15(_el$, () => thinkBuf.split(`
2552
2561
  `).pop() || " ", null);
2553
2562
  _$effect15((_$p) => _$setProp15(_el$, "style", {
@@ -2596,17 +2605,17 @@ function createDockFeature(deps) {
2596
2605
  return list.slice(-Math.max(1, (typeof rowsTool === "number" ? rowsTool : 7) - 2));
2597
2606
  },
2598
2607
  children: (e) => (() => {
2599
- var _el$6 = _$createElement15("text");
2600
- _$insert15(_el$6, (() => {
2608
+ var _el$7 = _$createElement15("text");
2609
+ _$insert15(_el$7, (() => {
2601
2610
  var _c$2 = _$memo8(() => e.status === "running");
2602
2611
  return () => _c$2() ? `⚙ ${e.name} ${e.args}` : `${e.status === "ok" ? "✔" : "✘"} ${e.name} ${e.args}`;
2603
2612
  })());
2604
- _$effect15((_$p) => _$setProp15(_el$6, "style", {
2613
+ _$effect15((_$p) => _$setProp15(_el$7, "style", {
2605
2614
  fg: e.status === "running" ? toolFg() : e.status === "fail" ? th().tokens.toolFail ?? th().tokens.danger : th().tokens.toolOk ?? th().tokens.ok,
2606
2615
  wrapMode: "none",
2607
2616
  truncate: true
2608
2617
  }, _$p));
2609
- return _el$6;
2618
+ return _el$7;
2610
2619
  })()
2611
2620
  });
2612
2621
  }
@@ -2615,18 +2624,18 @@ function createDockFeature(deps) {
2615
2624
  return !toolExpanded();
2616
2625
  },
2617
2626
  get children() {
2618
- var _el$3 = _$createElement15("text"), _el$4 = _$createTextNode10(`\uD83D\uDD27 `);
2619
- _$insertNode12(_el$3, _el$4);
2620
- _$insert15(_el$3, (() => {
2627
+ var _el$4 = _$createElement15("text"), _el$5 = _$createTextNode10(`\uD83D\uDD27 `);
2628
+ _$insertNode12(_el$4, _el$5);
2629
+ _$insert15(_el$4, (() => {
2621
2630
  var _c$ = _$memo8(() => running.length > 0);
2622
2631
  return () => _c$() ? `⚙ ${running[0].name} ${running[0].args}` : `${list[0]?.name ?? ""} ${list[0]?.args ?? ""}`;
2623
2632
  })(), null);
2624
- _$effect15((_$p) => _$setProp15(_el$3, "style", {
2633
+ _$effect15((_$p) => _$setProp15(_el$4, "style", {
2625
2634
  fg: dimColor(toolFg(), 0.2),
2626
2635
  wrapMode: "none",
2627
2636
  truncate: true
2628
2637
  }, _$p));
2629
- return _el$3;
2638
+ return _el$4;
2630
2639
  }
2631
2640
  })];
2632
2641
  }
@@ -2640,8 +2649,11 @@ function createDockFeature(deps) {
2640
2649
  if (text === "")
2641
2650
  return;
2642
2651
  const now = Date.now();
2643
- if (!think().visible || think().fading) {
2644
- thinkBuf = text;
2652
+ cancelThinkHide();
2653
+ const fresh = !think().visible || think().fading || !thinkOpen;
2654
+ thinkBuf = fresh ? text : thinkBuf + text;
2655
+ thinkOpen = true;
2656
+ if (fresh) {
2645
2657
  setThink({
2646
2658
  visible: true,
2647
2659
  expanded: false,
@@ -2655,8 +2667,6 @@ function createDockFeature(deps) {
2655
2667
  flush(true);
2656
2668
  return;
2657
2669
  }
2658
- cancelThinkHide();
2659
- thinkBuf = text;
2660
2670
  setThink((s) => ({
2661
2671
  ...s,
2662
2672
  text: thinkBuf,
@@ -2673,6 +2683,7 @@ function createDockFeature(deps) {
2673
2683
  lastAt: Date.now()
2674
2684
  }));
2675
2685
  scheduleThinkHide();
2686
+ thinkOpen = false;
2676
2687
  },
2677
2688
  onToolStart(start) {
2678
2689
  lastToolAt = Date.now();
@@ -2712,17 +2723,14 @@ function createDockFeature(deps) {
2712
2723
  },
2713
2724
  onTurnStart() {
2714
2725
  cancelThinkHide();
2715
- setThink((s) => s.visible ? {
2716
- ...s,
2717
- fading: true,
2718
- fade: 0,
2719
- expanded: false
2720
- } : s);
2721
- if (tools().length > 0) {
2726
+ if (think().visible)
2727
+ scheduleThinkHide(600);
2728
+ if (tools().length > 0 && toolVisible()) {
2722
2729
  setToolFading(true);
2723
2730
  setToolFade(0);
2724
2731
  }
2725
2732
  thinkBuf = "";
2733
+ thinkOpen = false;
2726
2734
  },
2727
2735
  onTurnEnd() {
2728
2736
  thinkBuf = "";
@@ -2732,6 +2740,7 @@ function createDockFeature(deps) {
2732
2740
  setToolFading(true);
2733
2741
  setToolFade(0);
2734
2742
  }
2743
+ thinkOpen = false;
2735
2744
  },
2736
2745
  tick() {},
2737
2746
  reset() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiwayds/dsh-opentui",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "dsh-opentui": "bin/dsh-opentui.mjs"
@@ -39,6 +39,7 @@
39
39
  "typescript": "^5.7.0",
40
40
  "@types/bun": "latest",
41
41
  "@deepseek-ai/cordis": "4.0.5",
42
+ "@deepseek-ai/dsh-llm": "0.2.1-rc.5",
42
43
  "@dsh-opentui/runtime": "workspace:*",
43
44
  "@dsh-opentui/kit": "workspace:*"
44
45
  },