@h-rig/cli 0.0.6-alpha.85 → 0.0.6-alpha.87

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 (69) hide show
  1. package/dist/bin/rig.js +79 -1027
  2. package/dist/src/app-opentui/bootstrap.js +79 -1027
  3. package/dist/src/app-opentui/command-palette.js +1 -0
  4. package/dist/src/app-opentui/drone.js +1 -0
  5. package/dist/src/app-opentui/index.js +61 -1024
  6. package/dist/src/app-opentui/list-search.d.ts +5 -1
  7. package/dist/src/app-opentui/list-search.js +2 -2
  8. package/dist/src/app-opentui/react/App.js +62 -970
  9. package/dist/src/app-opentui/react/Backdrop.js +3 -9
  10. package/dist/src/app-opentui/react/ChromeHost.js +6 -1038
  11. package/dist/src/app-opentui/react/SceneFrameView.js +55 -5
  12. package/dist/src/app-opentui/react/launch.js +62 -970
  13. package/dist/src/app-opentui/react/syntax.js +1 -0
  14. package/dist/src/app-opentui/registry.js +3 -5
  15. package/dist/src/app-opentui/render/constants.d.ts +0 -1
  16. package/dist/src/app-opentui/render/constants.js +0 -2
  17. package/dist/src/app-opentui/render/graphics.js +3 -9
  18. package/dist/src/app-opentui/render/hover.d.ts +11 -0
  19. package/dist/src/app-opentui/render/hover.js +34 -0
  20. package/dist/src/app-opentui/render/native-host.js +1 -0
  21. package/dist/src/app-opentui/render/panels.js +50 -3
  22. package/dist/src/app-opentui/render/preloader.js +1 -0
  23. package/dist/src/app-opentui/render/scene.js +1 -0
  24. package/dist/src/app-opentui/render/text.d.ts +13 -0
  25. package/dist/src/app-opentui/render/text.js +54 -5
  26. package/dist/src/app-opentui/render/type-bar.js +1 -0
  27. package/dist/src/app-opentui/runtime.js +62 -1025
  28. package/dist/src/app-opentui/scenes/command.js +1 -0
  29. package/dist/src/app-opentui/scenes/doctor.js +1 -0
  30. package/dist/src/app-opentui/scenes/error.js +1 -0
  31. package/dist/src/app-opentui/scenes/family-domains/agent.js +1 -0
  32. package/dist/src/app-opentui/scenes/family-domains/browser.js +1 -0
  33. package/dist/src/app-opentui/scenes/family-domains/dist.js +1 -0
  34. package/dist/src/app-opentui/scenes/family-domains/git.js +1 -0
  35. package/dist/src/app-opentui/scenes/family-domains/github.js +1 -0
  36. package/dist/src/app-opentui/scenes/family-domains/harness.js +1 -0
  37. package/dist/src/app-opentui/scenes/family-domains/index.js +1 -0
  38. package/dist/src/app-opentui/scenes/family-domains/kit.js +1 -0
  39. package/dist/src/app-opentui/scenes/family-domains/profile.js +1 -0
  40. package/dist/src/app-opentui/scenes/family-domains/queue.js +1 -0
  41. package/dist/src/app-opentui/scenes/family-domains/remote.js +1 -0
  42. package/dist/src/app-opentui/scenes/family-domains/review.js +1 -0
  43. package/dist/src/app-opentui/scenes/family-domains/setup.js +1 -0
  44. package/dist/src/app-opentui/scenes/family-domains/stats.js +1 -0
  45. package/dist/src/app-opentui/scenes/family.js +1 -0
  46. package/dist/src/app-opentui/scenes/fleet.js +3 -5
  47. package/dist/src/app-opentui/scenes/handoff.js +1 -0
  48. package/dist/src/app-opentui/scenes/help.js +1 -0
  49. package/dist/src/app-opentui/scenes/inbox.js +1 -0
  50. package/dist/src/app-opentui/scenes/init.js +1 -0
  51. package/dist/src/app-opentui/scenes/inspect.js +1 -0
  52. package/dist/src/app-opentui/scenes/main.js +1 -0
  53. package/dist/src/app-opentui/scenes/pi.js +1 -0
  54. package/dist/src/app-opentui/scenes/plugin.js +1 -0
  55. package/dist/src/app-opentui/scenes/repo.js +1 -0
  56. package/dist/src/app-opentui/scenes/run-detail.js +1 -0
  57. package/dist/src/app-opentui/scenes/server.js +1 -0
  58. package/dist/src/app-opentui/scenes/tasks.js +3 -5
  59. package/dist/src/app-opentui/scenes/workspace.js +1 -0
  60. package/dist/src/app-opentui/selectable.js +1 -0
  61. package/dist/src/app-opentui/theme.d.ts +1 -0
  62. package/dist/src/app-opentui/theme.js +1 -0
  63. package/package.json +8 -8
  64. package/dist/src/app-opentui/render/image-visual-layer-worker.d.ts +0 -1
  65. package/dist/src/app-opentui/render/image-visual-layer-worker.js +0 -1084
  66. package/dist/src/app-opentui/render/image-visual-layer.d.ts +0 -109
  67. package/dist/src/app-opentui/render/image-visual-layer.js +0 -1068
  68. package/dist/src/app-opentui/terminal-capabilities.d.ts +0 -7
  69. package/dist/src/app-opentui/terminal-capabilities.js +0 -15
@@ -17,6 +17,7 @@ var RIG_UI = {
17
17
  bg2: "#0b0c0e",
18
18
  panel: "#101115",
19
19
  panel2: "#14161b",
20
+ hover: "#181b24",
20
21
  glass: "#1e2230",
21
22
  border: "#2a2e3a",
22
23
  ink: "#f4f5f8",
@@ -95,15 +96,60 @@ function fitSceneLines(lines, layout) {
95
96
 
96
97
  // packages/cli/src/app-opentui/render/text.ts
97
98
  import { RGBA as RGBA2, TextAttributes as TextAttributes3, TextRenderable } from "@opentui/core";
99
+
100
+ // packages/cli/src/app-opentui/render/hover.ts
101
+ var hoveredId;
102
+ var listeners = new Set;
103
+ function isHovered(id) {
104
+ return id !== undefined && id === hoveredId;
105
+ }
106
+ function setHoveredSelectableId(id) {
107
+ if (hoveredId === id)
108
+ return;
109
+ hoveredId = id;
110
+ for (const listener of listeners)
111
+ listener();
112
+ }
113
+ function clearHoveredSelectableId(id) {
114
+ if (id !== undefined && hoveredId === id)
115
+ setHoveredSelectableId(undefined);
116
+ }
117
+
118
+ // packages/cli/src/app-opentui/render/text.ts
98
119
  var TRANSPARENT = RGBA2.fromInts(0, 0, 0, 0);
120
+ var HOVER_BG = RGBA2.fromHex(RIG_UI.hover);
121
+ function lineIsClickable(line) {
122
+ return line?.selectable !== undefined || line?.selectableIndex !== undefined;
123
+ }
124
+ function lineSelectableId(line) {
125
+ return line?.selectable?.id ?? line?.selectableId;
126
+ }
127
+ function lineBackground(line) {
128
+ if (line?.bg)
129
+ return RGBA2.fromHex(line.bg);
130
+ const id = lineSelectableId(line);
131
+ if (id !== undefined && isHovered(id))
132
+ return HOVER_BG;
133
+ return TRANSPARENT;
134
+ }
99
135
  function selectableMouseHandler(currentLineRef, onLineMouseDown) {
100
136
  return (event) => {
101
137
  const currentLine = currentLineRef();
102
- if (currentLine?.selectableIndex === undefined)
138
+ if (!lineIsClickable(currentLine))
103
139
  return;
104
140
  onLineMouseDown?.(currentLine, event);
105
141
  };
106
142
  }
143
+ function hoverHandlers(currentLineRef) {
144
+ return {
145
+ onMouseOver: () => {
146
+ const id = lineSelectableId(currentLineRef());
147
+ if (id !== undefined)
148
+ setHoveredSelectableId(id);
149
+ },
150
+ onMouseOut: () => clearHoveredSelectableId(lineSelectableId(currentLineRef()))
151
+ };
152
+ }
107
153
  function createFlowTextLine(renderer, id, onLineMouseDown) {
108
154
  let currentLine;
109
155
  const renderable = new TextRenderable(renderer, {
@@ -114,7 +160,8 @@ function createFlowTextLine(renderer, id, onLineMouseDown) {
114
160
  flexShrink: 0,
115
161
  fg: RIG_UI.ink2,
116
162
  selectable: true,
117
- onMouseDown: selectableMouseHandler(() => currentLine, onLineMouseDown)
163
+ onMouseDown: selectableMouseHandler(() => currentLine, onLineMouseDown),
164
+ ...hoverHandlers(() => currentLine)
118
165
  });
119
166
  renderable.setRigSceneLine = (line) => {
120
167
  currentLine = line;
@@ -128,7 +175,7 @@ function applyFlowTextLine(renderable, line, width) {
128
175
  renderable.width = Math.max(1, width);
129
176
  renderable.content = line?.styledText ?? line?.text ?? "";
130
177
  renderable.fg = line?.fg ?? RIG_UI.ink2;
131
- renderable.bg = line?.bg ?? TRANSPARENT;
178
+ renderable.bg = lineBackground(line);
132
179
  renderable.attributes = line?.bold ? TextAttributes3.BOLD : line?.dim ? TextAttributes3.DIM : 0;
133
180
  }
134
181
 
@@ -435,13 +482,16 @@ function lineContent(line) {
435
482
  }
436
483
  function LineView(props) {
437
484
  const { line, onLineClick } = props;
485
+ const id = lineSelectableId(line);
438
486
  return /* @__PURE__ */ jsxDEV("text", {
439
487
  style: { position: "absolute", left: props.left, top: props.top, width: props.width, zIndex: 5 },
440
488
  fg: line.fg ?? RIG_UI.ink2,
441
- bg: line.bg ?? TRANSPARENT,
489
+ bg: lineBackground(line),
442
490
  attributes: lineAttributes(line),
443
491
  content: lineContent(line),
444
- onMouseDown: onLineClick ? () => onLineClick(line) : undefined
492
+ onMouseDown: onLineClick ? () => onLineClick(line) : undefined,
493
+ onMouseOver: id !== undefined ? () => setHoveredSelectableId(id) : undefined,
494
+ onMouseOut: id !== undefined ? () => clearHoveredSelectableId(id) : undefined
445
495
  }, undefined, false, undefined, this);
446
496
  }
447
497
  function PanelHost(props) {