arc402-cli 1.5.0 → 1.6.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.
Files changed (228) hide show
  1. package/dist/commands/agreements.d.ts.map +1 -1
  2. package/dist/commands/agreements.js +19 -0
  3. package/dist/commands/agreements.js.map +1 -1
  4. package/dist/commands/arena-v2.d.ts.map +1 -1
  5. package/dist/commands/arena-v2.js +129 -4
  6. package/dist/commands/arena-v2.js.map +1 -1
  7. package/dist/commands/auth.d.ts +11 -0
  8. package/dist/commands/auth.d.ts.map +1 -0
  9. package/dist/commands/auth.js +188 -0
  10. package/dist/commands/auth.js.map +1 -0
  11. package/dist/commands/chat.d.ts.map +1 -1
  12. package/dist/commands/chat.js +194 -3
  13. package/dist/commands/chat.js.map +1 -1
  14. package/dist/commands/compute.d.ts.map +1 -1
  15. package/dist/commands/compute.js +84 -10
  16. package/dist/commands/compute.js.map +1 -1
  17. package/dist/commands/discover.d.ts.map +1 -1
  18. package/dist/commands/discover.js +20 -0
  19. package/dist/commands/discover.js.map +1 -1
  20. package/dist/commands/hire.d.ts.map +1 -1
  21. package/dist/commands/hire.js +20 -0
  22. package/dist/commands/hire.js.map +1 -1
  23. package/dist/commands/lifecycle.d.ts +3 -0
  24. package/dist/commands/lifecycle.d.ts.map +1 -0
  25. package/dist/commands/lifecycle.js +58 -0
  26. package/dist/commands/lifecycle.js.map +1 -0
  27. package/dist/commands/security.d.ts +3 -0
  28. package/dist/commands/security.d.ts.map +1 -0
  29. package/dist/commands/security.js +44 -0
  30. package/dist/commands/security.js.map +1 -0
  31. package/dist/commands/status.d.ts.map +1 -1
  32. package/dist/commands/status.js +38 -0
  33. package/dist/commands/status.js.map +1 -1
  34. package/dist/commands/subscription.d.ts.map +1 -1
  35. package/dist/commands/subscription.js +313 -21
  36. package/dist/commands/subscription.js.map +1 -1
  37. package/dist/commands/workroom.d.ts.map +1 -1
  38. package/dist/commands/workroom.js +13 -0
  39. package/dist/commands/workroom.js.map +1 -1
  40. package/dist/program.d.ts.map +1 -1
  41. package/dist/program.js +6 -0
  42. package/dist/program.js.map +1 -1
  43. package/dist/tui/App.d.ts.map +1 -1
  44. package/dist/tui/App.js +61 -58
  45. package/dist/tui/App.js.map +1 -1
  46. package/dist/tui/InputLine.d.ts +4 -2
  47. package/dist/tui/InputLine.d.ts.map +1 -1
  48. package/dist/tui/InputLine.js +79 -60
  49. package/dist/tui/InputLine.js.map +1 -1
  50. package/dist/tui/KernelPayloadRenderer.d.ts +12 -0
  51. package/dist/tui/KernelPayloadRenderer.d.ts.map +1 -0
  52. package/dist/tui/KernelPayloadRenderer.js +41 -0
  53. package/dist/tui/KernelPayloadRenderer.js.map +1 -0
  54. package/dist/tui/Viewport.d.ts +15 -5
  55. package/dist/tui/Viewport.d.ts.map +1 -1
  56. package/dist/tui/Viewport.js +18 -24
  57. package/dist/tui/Viewport.js.map +1 -1
  58. package/dist/tui/command-catalog.d.ts +11 -0
  59. package/dist/tui/command-catalog.d.ts.map +1 -0
  60. package/dist/tui/command-catalog.js +119 -0
  61. package/dist/tui/command-catalog.js.map +1 -0
  62. package/dist/tui/command-renderers.d.ts +33 -0
  63. package/dist/tui/command-renderers.d.ts.map +1 -0
  64. package/dist/tui/command-renderers.js +215 -0
  65. package/dist/tui/command-renderers.js.map +1 -0
  66. package/dist/tui/commerce-format.d.ts +3 -0
  67. package/dist/tui/commerce-format.d.ts.map +1 -0
  68. package/dist/tui/commerce-format.js +19 -0
  69. package/dist/tui/commerce-format.js.map +1 -0
  70. package/dist/tui/components/commerce/AgentPicker.d.ts +7 -0
  71. package/dist/tui/components/commerce/AgentPicker.d.ts.map +1 -0
  72. package/dist/tui/components/commerce/AgentPicker.js +33 -0
  73. package/dist/tui/components/commerce/AgentPicker.js.map +1 -0
  74. package/dist/tui/components/commerce/AgreementList.d.ts +18 -0
  75. package/dist/tui/components/commerce/AgreementList.d.ts.map +1 -0
  76. package/dist/tui/components/commerce/AgreementList.js +25 -0
  77. package/dist/tui/components/commerce/AgreementList.js.map +1 -0
  78. package/dist/tui/components/commerce/ComputeCard.d.ts +14 -0
  79. package/dist/tui/components/commerce/ComputeCard.d.ts.map +1 -0
  80. package/dist/tui/components/commerce/ComputeCard.js +9 -0
  81. package/dist/tui/components/commerce/ComputeCard.js.map +1 -0
  82. package/dist/tui/components/commerce/DiscoverList.d.ts +20 -0
  83. package/dist/tui/components/commerce/DiscoverList.d.ts.map +1 -0
  84. package/dist/tui/components/commerce/DiscoverList.js +22 -0
  85. package/dist/tui/components/commerce/DiscoverList.js.map +1 -0
  86. package/dist/tui/components/commerce/HireCard.d.ts +14 -0
  87. package/dist/tui/components/commerce/HireCard.d.ts.map +1 -0
  88. package/dist/tui/components/commerce/HireCard.js +11 -0
  89. package/dist/tui/components/commerce/HireCard.js.map +1 -0
  90. package/dist/tui/components/commerce/ProfileCard.d.ts +19 -0
  91. package/dist/tui/components/commerce/ProfileCard.d.ts.map +1 -0
  92. package/dist/tui/components/commerce/ProfileCard.js +10 -0
  93. package/dist/tui/components/commerce/ProfileCard.js.map +1 -0
  94. package/dist/tui/components/commerce/RoundsList.d.ts +18 -0
  95. package/dist/tui/components/commerce/RoundsList.d.ts.map +1 -0
  96. package/dist/tui/components/commerce/RoundsList.js +9 -0
  97. package/dist/tui/components/commerce/RoundsList.js.map +1 -0
  98. package/dist/tui/components/commerce/SquadCard.d.ts +25 -0
  99. package/dist/tui/components/commerce/SquadCard.d.ts.map +1 -0
  100. package/dist/tui/components/commerce/SquadCard.js +10 -0
  101. package/dist/tui/components/commerce/SquadCard.js.map +1 -0
  102. package/dist/tui/components/commerce/StatusCard.d.ts +21 -0
  103. package/dist/tui/components/commerce/StatusCard.d.ts.map +1 -0
  104. package/dist/tui/components/commerce/StatusCard.js +10 -0
  105. package/dist/tui/components/commerce/StatusCard.js.map +1 -0
  106. package/dist/tui/components/commerce/SubscribeCard.d.ts +13 -0
  107. package/dist/tui/components/commerce/SubscribeCard.d.ts.map +1 -0
  108. package/dist/tui/components/commerce/SubscribeCard.js +10 -0
  109. package/dist/tui/components/commerce/SubscribeCard.js.map +1 -0
  110. package/dist/tui/components/commerce/WorkroomCard.d.ts +18 -0
  111. package/dist/tui/components/commerce/WorkroomCard.d.ts.map +1 -0
  112. package/dist/tui/components/commerce/WorkroomCard.js +10 -0
  113. package/dist/tui/components/commerce/WorkroomCard.js.map +1 -0
  114. package/dist/tui/components/commerce/common.d.ts +53 -0
  115. package/dist/tui/components/commerce/common.d.ts.map +1 -0
  116. package/dist/tui/components/commerce/common.js +71 -0
  117. package/dist/tui/components/commerce/common.js.map +1 -0
  118. package/dist/tui/components/commerce/index.d.ts +11 -0
  119. package/dist/tui/components/commerce/index.d.ts.map +1 -0
  120. package/dist/tui/components/commerce/index.js +27 -0
  121. package/dist/tui/components/commerce/index.js.map +1 -0
  122. package/dist/tui/hire-interactive.d.ts +13 -0
  123. package/dist/tui/hire-interactive.d.ts.map +1 -0
  124. package/dist/tui/hire-interactive.js +157 -0
  125. package/dist/tui/hire-interactive.js.map +1 -0
  126. package/dist/tui/kernel-payload.d.ts +45 -0
  127. package/dist/tui/kernel-payload.d.ts.map +1 -0
  128. package/dist/tui/kernel-payload.js +8 -0
  129. package/dist/tui/kernel-payload.js.map +1 -0
  130. package/dist/tui/kernel.d.ts +6 -0
  131. package/dist/tui/kernel.d.ts.map +1 -0
  132. package/dist/tui/kernel.js +791 -0
  133. package/dist/tui/kernel.js.map +1 -0
  134. package/dist/tui/render-inline.d.ts +9 -0
  135. package/dist/tui/render-inline.d.ts.map +1 -0
  136. package/dist/tui/render-inline.js +32 -0
  137. package/dist/tui/render-inline.js.map +1 -0
  138. package/dist/tui/useChat.d.ts.map +1 -1
  139. package/dist/tui/useChat.js +2 -2
  140. package/dist/tui/useChat.js.map +1 -1
  141. package/dist/tui/useCommand.d.ts +2 -2
  142. package/dist/tui/useCommand.d.ts.map +1 -1
  143. package/dist/tui/useCommand.js +57 -19
  144. package/dist/tui/useCommand.js.map +1 -1
  145. package/dist/tui/useDaemonEvents.d.ts +4 -0
  146. package/dist/tui/useDaemonEvents.d.ts.map +1 -0
  147. package/dist/tui/useDaemonEvents.js +69 -0
  148. package/dist/tui/useDaemonEvents.js.map +1 -0
  149. package/dist/tui/useTerminalSize.d.ts +11 -0
  150. package/dist/tui/useTerminalSize.d.ts.map +1 -0
  151. package/dist/tui/useTerminalSize.js +32 -0
  152. package/dist/tui/useTerminalSize.js.map +1 -0
  153. package/dist/tui-esm/App.js +136 -0
  154. package/dist/tui-esm/App.js.map +1 -0
  155. package/dist/tui-esm/Footer.js +13 -0
  156. package/dist/tui-esm/Footer.js.map +1 -0
  157. package/dist/tui-esm/Header.js +19 -0
  158. package/dist/tui-esm/Header.js.map +1 -0
  159. package/dist/tui-esm/InputLine.js +121 -0
  160. package/dist/tui-esm/InputLine.js.map +1 -0
  161. package/dist/tui-esm/Viewport.js +39 -0
  162. package/dist/tui-esm/Viewport.js.map +1 -0
  163. package/dist/tui-esm/WalletConnectPairing.js +61 -0
  164. package/dist/tui-esm/WalletConnectPairing.js.map +1 -0
  165. package/dist/tui-esm/command-catalog.js +20 -0
  166. package/dist/tui-esm/command-catalog.js.map +1 -0
  167. package/dist/tui-esm/command-renderers.js +180 -0
  168. package/dist/tui-esm/command-renderers.js.map +1 -0
  169. package/dist/tui-esm/commerce-format.js +19 -0
  170. package/dist/tui-esm/commerce-format.js.map +1 -0
  171. package/dist/tui-esm/components/Button.js +21 -0
  172. package/dist/tui-esm/components/Button.js.map +1 -0
  173. package/dist/tui-esm/components/CeremonyView.js +10 -0
  174. package/dist/tui-esm/components/CeremonyView.js.map +1 -0
  175. package/dist/tui-esm/components/CompletionDropdown.js +23 -0
  176. package/dist/tui-esm/components/CompletionDropdown.js.map +1 -0
  177. package/dist/tui-esm/components/ConfirmPrompt.js +10 -0
  178. package/dist/tui-esm/components/ConfirmPrompt.js.map +1 -0
  179. package/dist/tui-esm/components/CustomTextInput.js +99 -0
  180. package/dist/tui-esm/components/CustomTextInput.js.map +1 -0
  181. package/dist/tui-esm/components/InteractiveTable.js +61 -0
  182. package/dist/tui-esm/components/InteractiveTable.js.map +1 -0
  183. package/dist/tui-esm/components/StepSpinner.js +32 -0
  184. package/dist/tui-esm/components/StepSpinner.js.map +1 -0
  185. package/dist/tui-esm/components/Toast.js +29 -0
  186. package/dist/tui-esm/components/Toast.js.map +1 -0
  187. package/dist/tui-esm/components/commerce/AgreementList.js +25 -0
  188. package/dist/tui-esm/components/commerce/AgreementList.js.map +1 -0
  189. package/dist/tui-esm/components/commerce/ComputeCard.js +9 -0
  190. package/dist/tui-esm/components/commerce/ComputeCard.js.map +1 -0
  191. package/dist/tui-esm/components/commerce/DiscoverList.js +14 -0
  192. package/dist/tui-esm/components/commerce/DiscoverList.js.map +1 -0
  193. package/dist/tui-esm/components/commerce/HireCard.js +11 -0
  194. package/dist/tui-esm/components/commerce/HireCard.js.map +1 -0
  195. package/dist/tui-esm/components/commerce/RoundsList.js +9 -0
  196. package/dist/tui-esm/components/commerce/RoundsList.js.map +1 -0
  197. package/dist/tui-esm/components/commerce/SquadCard.js +10 -0
  198. package/dist/tui-esm/components/commerce/SquadCard.js.map +1 -0
  199. package/dist/tui-esm/components/commerce/StatusCard.js +10 -0
  200. package/dist/tui-esm/components/commerce/StatusCard.js.map +1 -0
  201. package/dist/tui-esm/components/commerce/SubscribeCard.js +10 -0
  202. package/dist/tui-esm/components/commerce/SubscribeCard.js.map +1 -0
  203. package/dist/tui-esm/components/commerce/WorkroomCard.js +10 -0
  204. package/dist/tui-esm/components/commerce/WorkroomCard.js.map +1 -0
  205. package/dist/tui-esm/components/commerce/common.js +71 -0
  206. package/dist/tui-esm/components/commerce/common.js.map +1 -0
  207. package/dist/tui-esm/components/commerce/index.js +27 -0
  208. package/dist/tui-esm/components/commerce/index.js.map +1 -0
  209. package/dist/tui-esm/index.js +55 -0
  210. package/dist/tui-esm/index.js.map +1 -0
  211. package/dist/tui-esm/kernel.js +734 -0
  212. package/dist/tui-esm/kernel.js.map +1 -0
  213. package/dist/tui-esm/render-inline.js +32 -0
  214. package/dist/tui-esm/render-inline.js.map +1 -0
  215. package/dist/tui-esm/useChat.js +91 -0
  216. package/dist/tui-esm/useChat.js.map +1 -0
  217. package/dist/tui-esm/useCommand.js +142 -0
  218. package/dist/tui-esm/useCommand.js.map +1 -0
  219. package/dist/tui-esm/useNotifications.js +17 -0
  220. package/dist/tui-esm/useNotifications.js.map +1 -0
  221. package/dist/tui-esm/useScroll.js +46 -0
  222. package/dist/tui-esm/useScroll.js.map +1 -0
  223. package/dist/tui-esm/useTerminalSize.js +32 -0
  224. package/dist/tui-esm/useTerminalSize.js.map +1 -0
  225. package/dist/ui/banner.d.ts.map +1 -1
  226. package/dist/ui/banner.js +46 -2
  227. package/dist/ui/banner.js.map +1 -1
  228. package/package.json +1 -1
@@ -8,47 +8,51 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const ink_1 = require("ink");
10
10
  const ink_text_input_1 = __importDefault(require("ink-text-input"));
11
- const program_1 = require("../program");
12
- const BUILTIN_CMDS = ["help", "exit", "quit", "clear", "status"];
11
+ const command_catalog_1 = require("./command-catalog");
12
+ const CompletionDropdown_1 = require("./components/CompletionDropdown");
13
+ const ALL_TOP = [...command_catalog_1.BUILTIN_CMDS, ...command_catalog_1.TUI_TOP_LEVEL_COMMANDS];
14
+ const SUB_MAP = new Map(Object.entries(command_catalog_1.TUI_SUBCOMMANDS));
13
15
  /**
14
- * Input line with command history navigation and tab completion.
15
- * Uses ink-text-input for text input with cursor.
16
+ * Input line with:
17
+ * - Command history navigation (↑/↓)
18
+ * - Live completion dropdown (Tab cycles, Esc dismisses)
19
+ * - Tab expansion on single match
16
20
  */
17
21
  function InputLine({ onSubmit, isDisabled = false }) {
18
22
  const [value, setValue] = (0, react_1.useState)("");
19
23
  const [history, setHistory] = (0, react_1.useState)([]);
20
24
  const [historyIdx, setHistoryIdx] = (0, react_1.useState)(-1);
21
25
  const [historyTemp, setHistoryTemp] = (0, react_1.useState)("");
22
- // Lazily build command list for tab completion
23
- const [topCmds] = (0, react_1.useState)(() => {
24
- try {
25
- const prog = (0, program_1.createProgram)();
26
- return prog.commands.map((cmd) => cmd.name());
27
- }
28
- catch {
26
+ // Completion state
27
+ const [completions, setCompletions] = (0, react_1.useState)([]);
28
+ const [completionIdx, setCompletionIdx] = (0, react_1.useState)(0);
29
+ const [dropdownVisible, setDropdownVisible] = (0, react_1.useState)(false);
30
+ const computeCompletions = (0, react_1.useCallback)((input) => {
31
+ const trimmed = input.trimStart();
32
+ if (!trimmed)
29
33
  return [];
34
+ const spaceIdx = trimmed.indexOf(" ");
35
+ if (spaceIdx === -1) {
36
+ return ALL_TOP.filter((cmd) => cmd.startsWith(trimmed) && cmd !== trimmed);
30
37
  }
31
- });
32
- const [subCmds] = (0, react_1.useState)(() => {
33
- try {
34
- const prog = (0, program_1.createProgram)();
35
- const map = new Map();
36
- for (const cmd of prog.commands) {
37
- if (cmd.commands.length > 0) {
38
- map.set(cmd.name(), cmd.commands.map((s) => s.name()));
39
- }
40
- }
41
- return map;
42
- }
43
- catch {
44
- return new Map();
45
- }
46
- });
38
+ const parent = trimmed.slice(0, spaceIdx);
39
+ const rest = trimmed.slice(spaceIdx + 1);
40
+ const subs = SUB_MAP.get(parent) ?? [];
41
+ return subs
42
+ .filter((s) => s.startsWith(rest) && s !== rest)
43
+ .map((s) => `${parent} ${s}`);
44
+ }, []);
45
+ const handleChange = (0, react_1.useCallback)((newVal) => {
46
+ setValue(newVal);
47
+ const candidates = computeCompletions(newVal);
48
+ setCompletions(candidates);
49
+ setCompletionIdx(0);
50
+ setDropdownVisible(candidates.length > 0);
51
+ }, [computeCompletions]);
47
52
  const handleSubmit = (0, react_1.useCallback)((val) => {
48
53
  const trimmed = val.trim();
49
54
  if (!trimmed)
50
55
  return;
51
- // Add to history (avoid duplicate of last entry)
52
56
  setHistory((prev) => {
53
57
  if (prev[prev.length - 1] === trimmed)
54
58
  return prev;
@@ -57,25 +61,41 @@ function InputLine({ onSubmit, isDisabled = false }) {
57
61
  setHistoryIdx(-1);
58
62
  setHistoryTemp("");
59
63
  setValue("");
64
+ setCompletions([]);
65
+ setDropdownVisible(false);
60
66
  onSubmit(trimmed);
61
67
  }, [onSubmit]);
62
- (0, ink_1.useInput)((_input, key) => {
68
+ (0, ink_1.useInput)((input, key) => {
63
69
  if (isDisabled)
64
70
  return;
65
- // Up arrow history prev
71
+ // Escapedismiss dropdown
72
+ if (key.escape) {
73
+ setDropdownVisible(false);
74
+ return;
75
+ }
76
+ // Up arrow — history or cycle completion up
66
77
  if (key.upArrow) {
78
+ if (dropdownVisible && completions.length > 0) {
79
+ setCompletionIdx((idx) => Math.max(0, idx - 1));
80
+ return;
81
+ }
67
82
  setHistory((hist) => {
68
83
  setHistoryIdx((idx) => {
69
84
  if (idx === -1) {
70
85
  setHistoryTemp(value);
71
86
  const newIdx = hist.length - 1;
72
- if (newIdx >= 0)
87
+ if (newIdx >= 0) {
73
88
  setValue(hist[newIdx]);
89
+ setCompletions([]);
90
+ setDropdownVisible(false);
91
+ }
74
92
  return newIdx;
75
93
  }
76
94
  else if (idx > 0) {
77
95
  const newIdx = idx - 1;
78
96
  setValue(hist[newIdx]);
97
+ setCompletions([]);
98
+ setDropdownVisible(false);
79
99
  return newIdx;
80
100
  }
81
101
  return idx;
@@ -84,18 +104,26 @@ function InputLine({ onSubmit, isDisabled = false }) {
84
104
  });
85
105
  return;
86
106
  }
87
- // Down arrow — history next
107
+ // Down arrow — history or cycle completion down
88
108
  if (key.downArrow) {
109
+ if (dropdownVisible && completions.length > 0) {
110
+ setCompletionIdx((idx) => Math.min(completions.length - 1, idx + 1));
111
+ return;
112
+ }
89
113
  setHistory((hist) => {
90
114
  setHistoryIdx((idx) => {
91
115
  if (idx >= 0) {
92
116
  const newIdx = idx + 1;
93
117
  if (newIdx >= hist.length) {
94
118
  setValue(historyTemp);
119
+ setCompletions([]);
120
+ setDropdownVisible(false);
95
121
  return -1;
96
122
  }
97
123
  else {
98
124
  setValue(hist[newIdx]);
125
+ setCompletions([]);
126
+ setDropdownVisible(false);
99
127
  return newIdx;
100
128
  }
101
129
  }
@@ -105,41 +133,32 @@ function InputLine({ onSubmit, isDisabled = false }) {
105
133
  });
106
134
  return;
107
135
  }
108
- // Tab — completion
109
- if (_input === "\t") {
110
- const allTop = [...BUILTIN_CMDS, ...topCmds];
111
- const trimmed = value.trimStart();
112
- const spaceIdx = trimmed.indexOf(" ");
113
- let completions;
114
- if (spaceIdx === -1) {
115
- completions = allTop.filter((cmd) => cmd.startsWith(trimmed));
116
- }
117
- else {
118
- const parent = trimmed.slice(0, spaceIdx);
119
- const rest = trimmed.slice(spaceIdx + 1);
120
- const subs = subCmds.get(parent) ?? [];
121
- completions = subs
122
- .filter((s) => s.startsWith(rest))
123
- .map((s) => `${parent} ${s}`);
124
- }
136
+ // Tab — complete selected candidate or cycle
137
+ if (input === "\t") {
125
138
  if (completions.length === 0)
126
139
  return;
127
140
  if (completions.length === 1) {
128
- setValue(completions[0] + " ");
141
+ const completed = completions[0] + " ";
142
+ setValue(completed);
143
+ setCompletions([]);
144
+ setDropdownVisible(false);
129
145
  return;
130
146
  }
131
- // Find common prefix
132
- const common = completions.reduce((a, b) => {
133
- let i = 0;
134
- while (i < a.length && i < b.length && a[i] === b[i])
135
- i++;
136
- return a.slice(0, i);
137
- });
138
- if (common.length > value.trimStart().length) {
139
- setValue(common);
147
+ // Multi: apply currently selected completion
148
+ if (dropdownVisible) {
149
+ const selected = completions[completionIdx];
150
+ if (selected) {
151
+ setValue(selected + " ");
152
+ setCompletions([]);
153
+ setDropdownVisible(false);
154
+ }
155
+ return;
140
156
  }
157
+ // Reveal dropdown on first Tab
158
+ setDropdownVisible(true);
159
+ return;
141
160
  }
142
161
  }, { isActive: !isDisabled });
143
- return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { color: "cyan", children: "\u25C8" }), (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: " arc402 " }), (0, jsx_runtime_1.jsxs)(ink_1.Text, { color: "white", children: [">", " "] }), (0, jsx_runtime_1.jsx)(ink_text_input_1.default, { value: value, onChange: setValue, onSubmit: handleSubmit, focus: !isDisabled })] }));
162
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", children: [dropdownVisible && completions.length > 0 && ((0, jsx_runtime_1.jsx)(CompletionDropdown_1.CompletionDropdown, { candidates: completions, selectedIndex: completionIdx, visible: dropdownVisible })), (0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { color: "cyan", children: "\u25C8" }), (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: " arc402 " }), (0, jsx_runtime_1.jsxs)(ink_1.Text, { color: "white", children: [">", " "] }), (0, jsx_runtime_1.jsx)(ink_text_input_1.default, { value: value, onChange: handleChange, onSubmit: handleSubmit, focus: !isDisabled })] })] }));
144
163
  }
145
164
  //# sourceMappingURL=InputLine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/tui/InputLine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/tui/InputLine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { KernelPayload } from "./kernel-payload";
2
+ interface KernelPayloadRendererProps {
3
+ payload: KernelPayload;
4
+ }
5
+ /**
6
+ * Maps typed KernelPayload structs to Phase 2 Ink commerce components.
7
+ * This is the bridge that makes real inline component rendering viable:
8
+ * the kernel returns data, this component renders it inside the Ink tree.
9
+ */
10
+ export declare function KernelPayloadRenderer({ payload }: KernelPayloadRendererProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=KernelPayloadRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelPayloadRenderer.d.ts","sourceRoot":"","sources":["../../src/tui/KernelPayloadRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAStD,UAAU,0BAA0B;IAClC,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,0BAA0B,2CAkD5E"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KernelPayloadRenderer = KernelPayloadRenderer;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ const StatusCard_1 = require("./components/commerce/StatusCard");
7
+ const DiscoverList_1 = require("./components/commerce/DiscoverList");
8
+ const AgreementList_1 = require("./components/commerce/AgreementList");
9
+ const WorkroomCard_1 = require("./components/commerce/WorkroomCard");
10
+ const SubscribeCard_1 = require("./components/commerce/SubscribeCard");
11
+ const RoundsList_1 = require("./components/commerce/RoundsList");
12
+ const SquadCard_1 = require("./components/commerce/SquadCard");
13
+ /**
14
+ * Maps typed KernelPayload structs to Phase 2 Ink commerce components.
15
+ * This is the bridge that makes real inline component rendering viable:
16
+ * the kernel returns data, this component renders it inside the Ink tree.
17
+ */
18
+ function KernelPayloadRenderer({ payload }) {
19
+ switch (payload.type) {
20
+ case "status":
21
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(StatusCard_1.StatusCard, { ...payload.props }), payload.guidance?.map((line, i) => ((0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: line }, i)))] }));
22
+ case "discover":
23
+ return (0, jsx_runtime_1.jsx)(DiscoverList_1.DiscoverList, { ...payload.props });
24
+ case "agreements":
25
+ return (0, jsx_runtime_1.jsx)(AgreementList_1.AgreementList, { ...payload.props });
26
+ case "workroom":
27
+ return (0, jsx_runtime_1.jsx)(WorkroomCard_1.WorkroomCard, { ...payload.props });
28
+ case "subscribe":
29
+ return (0, jsx_runtime_1.jsx)(SubscribeCard_1.SubscribeCard, { ...payload.props });
30
+ case "rounds":
31
+ return (0, jsx_runtime_1.jsx)(RoundsList_1.RoundsList, { ...payload.props });
32
+ case "squad":
33
+ return (0, jsx_runtime_1.jsx)(SquadCard_1.SquadCard, { ...payload.props });
34
+ case "squads":
35
+ return ((0, jsx_runtime_1.jsx)(ink_1.Box, { flexDirection: "column", children: payload.cards.map((card, i) => ((0, jsx_runtime_1.jsx)(ink_1.Box, { flexDirection: "column", marginBottom: 1, children: (0, jsx_runtime_1.jsx)(SquadCard_1.SquadCard, { ...card }) }, i))) }));
36
+ case "not_found":
37
+ case "error":
38
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { color: "yellow", children: "\u26A0 " }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: payload.message })] }));
39
+ }
40
+ }
41
+ //# sourceMappingURL=KernelPayloadRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelPayloadRenderer.js","sourceRoot":"","sources":["../../src/tui/KernelPayloadRenderer.tsx"],"names":[],"mappings":";;AAoBA,sDAkDC;;AArED,6BAAgC;AAEhC,iEAA8D;AAC9D,qEAAkE;AAClE,uEAAoE;AACpE,qEAAkE;AAClE,uEAAoE;AACpE,iEAA8D;AAC9D,+DAA4D;AAM5D;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,EAAE,OAAO,EAA8B;IAC3E,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,CACL,wBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,uBAAC,uBAAU,OAAK,OAAO,CAAC,KAAK,GAAI,EAChC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,uBAAC,UAAI,IAAS,QAAQ,kBAAE,IAAI,IAAjB,CAAC,CAAwB,CACrC,CAAC,IACE,CACP,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO,uBAAC,2BAAY,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE7C,KAAK,YAAY;YACf,OAAO,uBAAC,6BAAa,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE9C,KAAK,UAAU;YACb,OAAO,uBAAC,2BAAY,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE7C,KAAK,WAAW;YACd,OAAO,uBAAC,6BAAa,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE9C,KAAK,QAAQ;YACX,OAAO,uBAAC,uBAAU,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE3C,KAAK,OAAO;YACV,OAAO,uBAAC,qBAAS,OAAK,OAAO,CAAC,KAAK,GAAI,CAAC;QAE1C,KAAK,QAAQ;YACX,OAAO,CACL,uBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC9B,uBAAC,SAAG,IAAS,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YACjD,uBAAC,qBAAS,OAAK,IAAI,GAAI,IADf,CAAC,CAEL,CACP,CAAC,GACE,CACP,CAAC;QAEJ,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,CACL,wBAAC,SAAG,eACF,uBAAC,UAAI,IAAC,KAAK,EAAC,QAAQ,wBAAU,EAC9B,uBAAC,UAAI,cAAE,OAAO,CAAC,OAAO,GAAQ,IAC1B,CACP,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -1,14 +1,24 @@
1
+ import type { KernelPayload } from "./kernel-payload";
2
+ export type ViewportEntry = string | KernelPayload;
1
3
  interface ViewportProps {
2
- lines: string[];
4
+ lines: ViewportEntry[];
3
5
  scrollOffset: number;
4
6
  isAutoScroll: boolean;
7
+ /** Exact number of rows available for content, computed by App from measured layout. */
8
+ viewportHeight: number;
5
9
  }
6
10
  /**
7
11
  * Scrollable output area that fills remaining terminal space.
8
- * Renders a window slice of the buffer, not terminal scroll.
9
- * scrollOffset=0 means pinned to bottom (auto-scroll).
10
- * Positive scrollOffset means scrolled up by that many lines.
12
+ * Renders strings as Text lines and KernelPayloads as Phase 2 Ink components.
13
+ *
14
+ * NOTE: KernelPayload entries are treated as single logical blocks that always
15
+ * render fully — they are not sliced by the scroll window. Only string lines
16
+ * participate in the scroll window calculation. This keeps the Phase 2
17
+ * components rendering correctly while maintaining scroll for text output.
18
+ *
19
+ * For the viewport height calculation, each payload counts as 1 "slot" in
20
+ * the buffer but renders as a full component block.
11
21
  */
12
- export declare function Viewport({ lines, scrollOffset, isAutoScroll }: ViewportProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function Viewport({ lines, scrollOffset, isAutoScroll, viewportHeight }: ViewportProps): import("react/jsx-runtime").JSX.Element;
13
23
  export {};
14
24
  //# sourceMappingURL=Viewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/tui/Viewport.tsx"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,aAAa,2CAsD5E"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/tui/Viewport.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,UAAU,aAAa;IACrB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,aAAa,2CA2C5F"}
@@ -3,46 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Viewport = Viewport;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const ink_1 = require("ink");
6
+ const KernelPayloadRenderer_1 = require("./KernelPayloadRenderer");
6
7
  /**
7
8
  * Scrollable output area that fills remaining terminal space.
8
- * Renders a window slice of the buffer, not terminal scroll.
9
- * scrollOffset=0 means pinned to bottom (auto-scroll).
10
- * Positive scrollOffset means scrolled up by that many lines.
9
+ * Renders strings as Text lines and KernelPayloads as Phase 2 Ink components.
10
+ *
11
+ * NOTE: KernelPayload entries are treated as single logical blocks that always
12
+ * render fully — they are not sliced by the scroll window. Only string lines
13
+ * participate in the scroll window calculation. This keeps the Phase 2
14
+ * components rendering correctly while maintaining scroll for text output.
15
+ *
16
+ * For the viewport height calculation, each payload counts as 1 "slot" in
17
+ * the buffer but renders as a full component block.
11
18
  */
12
- function Viewport({ lines, scrollOffset, isAutoScroll }) {
13
- const { stdout } = (0, ink_1.useStdout)();
14
- const termRows = stdout?.rows ?? 24;
15
- // We'll compute the viewport height: total rows minus fixed areas
16
- // Header is approximately bannerLines + separator (~14-16 rows)
17
- // Footer is 1 row
18
- // We'll use a reasonable estimate here; the parent App can pass exact height
19
- const HEADER_ROWS = 15; // approximate
20
- const FOOTER_ROWS = 1;
21
- const viewportHeight = Math.max(1, termRows - HEADER_ROWS - FOOTER_ROWS);
22
- // Compute the window slice
23
- // scrollOffset=0 → show last viewportHeight lines
24
- // scrollOffset=N → show lines ending viewportHeight+N from end
19
+ function Viewport({ lines, scrollOffset, isAutoScroll, viewportHeight }) {
25
20
  const totalLines = lines.length;
26
21
  let endIdx;
27
22
  let startIdx;
28
23
  if (scrollOffset === 0) {
29
- // Auto-scroll: pinned to bottom
30
24
  endIdx = totalLines;
31
25
  startIdx = Math.max(0, endIdx - viewportHeight);
32
26
  }
33
27
  else {
34
- // Scrolled up: scrollOffset lines from bottom
35
28
  endIdx = Math.max(0, totalLines - scrollOffset);
36
29
  startIdx = Math.max(0, endIdx - viewportHeight);
37
30
  }
38
- const visibleLines = lines.slice(startIdx, endIdx);
39
- // Pad with empty lines if fewer than viewportHeight
40
- const padCount = Math.max(0, viewportHeight - visibleLines.length);
41
- const paddedLines = [
31
+ const visibleEntries = lines.slice(startIdx, endIdx);
32
+ // Pad with empty strings if fewer than viewportHeight string entries
33
+ const stringCount = visibleEntries.filter((e) => typeof e === "string").length;
34
+ const padCount = Math.max(0, viewportHeight - stringCount - (visibleEntries.length - stringCount));
35
+ const paddedEntries = [
42
36
  ...Array(padCount).fill(""),
43
- ...visibleLines,
37
+ ...visibleEntries,
44
38
  ];
45
39
  const canScrollDown = scrollOffset > 0;
46
- return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", flexGrow: 1, children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { flexDirection: "column", flexGrow: 1, children: paddedLines.map((line, i) => ((0, jsx_runtime_1.jsx)(ink_1.Text, { children: line }, i))) }), canScrollDown && !isAutoScroll && ((0, jsx_runtime_1.jsx)(ink_1.Box, { justifyContent: "flex-end", children: (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "\u2193 more" }) }))] }));
40
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", flexGrow: 1, children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { flexDirection: "column", flexGrow: 1, children: paddedEntries.map((entry, i) => typeof entry === "string" ? ((0, jsx_runtime_1.jsx)(ink_1.Text, { children: entry }, i)) : ((0, jsx_runtime_1.jsx)(KernelPayloadRenderer_1.KernelPayloadRenderer, { payload: entry }, i))) }), canScrollDown && !isAutoScroll && ((0, jsx_runtime_1.jsx)(ink_1.Box, { justifyContent: "flex-end", children: (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "\u2193 more" }) }))] }));
47
41
  }
48
42
  //# sourceMappingURL=Viewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../src/tui/Viewport.tsx"],"names":[],"mappings":";;AAeA,4BAsDC;;AApED,6BAA2C;AAQ3C;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAiB;IAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,eAAS,GAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAEpC,kEAAkE;IAClE,gEAAgE;IAChE,kBAAkB;IAClB,6EAA6E;IAC7E,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,cAAc;IACtC,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;IAEzE,2BAA2B;IAC3B,kDAAkD;IAClD,+DAA+D;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,IAAI,MAAc,CAAC;IACnB,IAAI,QAAgB,CAAC;IAErB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,gCAAgC;QAChC,MAAM,GAAG,UAAU,CAAC;QACpB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;QAChD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEnD,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG;QAClB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,GAAG,YAAY;KAChB,CAAC;IAEF,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC;IAEvC,OAAO,CACL,wBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,uBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACpC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,uBAAC,UAAI,cAAU,IAAI,IAAR,CAAC,CAAe,CAC5B,CAAC,GACE,EACL,aAAa,IAAI,CAAC,YAAY,IAAI,CACjC,uBAAC,SAAG,IAAC,cAAc,EAAC,UAAU,YAC5B,uBAAC,UAAI,IAAC,QAAQ,kCAAc,GACxB,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../src/tui/Viewport.tsx"],"names":[],"mappings":";;AA2BA,4BA2CC;;AArED,6BAAgC;AAEhC,mEAAgE;AAYhE;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAiB;IAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,IAAI,MAAc,CAAC;IACnB,IAAI,QAAgB,CAAC;IAErB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,UAAU,CAAC;QACpB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;QAChD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAErD,qEAAqE;IACrE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,WAAW,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IACnG,MAAM,aAAa,GAAoB;QACrC,GAAG,KAAK,CAAS,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,GAAG,cAAc;KAClB,CAAC;IAEF,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC;IAEvC,OAAO,CACL,wBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,uBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACpC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC1B,uBAAC,UAAI,cAAU,KAAK,IAAT,CAAC,CAAgB,CAC7B,CAAC,CAAC,CAAC,CACF,uBAAC,6CAAqB,IAAS,OAAO,EAAE,KAAK,IAAjB,CAAC,CAAoB,CAClD,CACF,GACG,EACL,aAAa,IAAI,CAAC,YAAY,IAAI,CACjC,uBAAC,SAAG,IAAC,cAAc,EAAC,UAAU,YAC5B,uBAAC,UAAI,IAAC,QAAQ,kCAAc,GACxB,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const BUILTIN_CMDS: readonly ["help", "exit", "quit", "clear"];
2
+ export declare const TUI_TOP_LEVEL_COMMANDS: readonly ["status", "discover", "agreements", "workroom", "subscription", "subscribe", "arena", "hire", "accept", "deliver", "verify", "cancel", "dispute", "negotiate", "trust", "compute", "wallet", "agent", "endpoint", "daemon", "setup", "doctor", "migrate", "chat", "feed", "watch", "job", "plan", "x402"];
3
+ export declare const TUI_SUBCOMMANDS: Record<string, string[]>;
4
+ export declare const TUI_HELP_SECTIONS: {
5
+ label: string;
6
+ commands: {
7
+ cmd: string;
8
+ desc: string;
9
+ }[];
10
+ }[];
11
+ //# sourceMappingURL=command-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../src/tui/command-catalog.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,4CAA6C,CAAC;AAGvE,eAAO,MAAM,sBAAsB,qTAmCzB,CAAC;AAGX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAepD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;GA2D7B,CAAC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TUI_HELP_SECTIONS = exports.TUI_SUBCOMMANDS = exports.TUI_TOP_LEVEL_COMMANDS = exports.BUILTIN_CMDS = void 0;
4
+ exports.BUILTIN_CMDS = ["help", "exit", "quit", "clear"];
5
+ // Full TUI command surface — kernel-handled routes + legacy CLI adapter routes
6
+ exports.TUI_TOP_LEVEL_COMMANDS = [
7
+ // Kernel-extracted (Phase 2 Ink components)
8
+ "status",
9
+ "discover",
10
+ "agreements",
11
+ "workroom",
12
+ "subscription",
13
+ "subscribe",
14
+ "arena",
15
+ // Commerce write paths (legacy CLI adapter)
16
+ "hire",
17
+ "accept",
18
+ "deliver",
19
+ "verify",
20
+ "cancel",
21
+ "dispute",
22
+ "negotiate",
23
+ "trust",
24
+ // Compute
25
+ "compute",
26
+ // Wallet + identity
27
+ "wallet",
28
+ "agent",
29
+ "endpoint",
30
+ // Operator
31
+ "daemon",
32
+ "setup",
33
+ "doctor",
34
+ "migrate",
35
+ "chat",
36
+ "feed",
37
+ "watch",
38
+ "job",
39
+ "plan",
40
+ "x402",
41
+ ];
42
+ // Subcommands for Tab completion
43
+ exports.TUI_SUBCOMMANDS = {
44
+ // Kernel routes
45
+ workroom: ["status", "start", "stop", "init", "logs", "worker", "policy-hash", "install-service"],
46
+ subscription: ["status", "list", "cancel", "topup"],
47
+ arena: ["rounds", "squad", "profile", "standings", "stats", "status", "inbox", "discover", "trending", "briefing", "newsletter"],
48
+ squad: ["list", "create", "join", "info", "contribute"],
49
+ // Legacy routes
50
+ compute: ["offer", "discover", "hire", "status", "end", "sessions"],
51
+ wallet: ["deploy", "status", "authorize-machine-key", "set-guardian", "freeze", "unfreeze", "set-spend-limits"],
52
+ agent: ["register", "update", "status", "info"],
53
+ endpoint: ["setup", "status", "doctor", "claim", "update"],
54
+ daemon: ["init", "start", "stop", "restart", "logs", "status", "config"],
55
+ negotiate: ["start", "status", "accept", "reject"],
56
+ job: ["files", "fetch", "manifest"],
57
+ plan: ["create", "list"],
58
+ };
59
+ exports.TUI_HELP_SECTIONS = [
60
+ {
61
+ label: "Status + Discovery",
62
+ commands: [
63
+ { cmd: "status", desc: "Wallet · daemon · workroom overview" },
64
+ { cmd: "discover", desc: "Find agents by capability, trust, price" },
65
+ { cmd: "agreements", desc: "List active/past agreements" },
66
+ { cmd: "workroom status", desc: "Workroom container + job queue" },
67
+ ],
68
+ },
69
+ {
70
+ label: "Commerce",
71
+ commands: [
72
+ { cmd: "hire <endpoint>", desc: "Propose a ServiceAgreement" },
73
+ { cmd: "accept <id>", desc: "Accept an agreement as provider" },
74
+ { cmd: "deliver <id>", desc: "Commit deliverable on-chain" },
75
+ { cmd: "verify <id>", desc: "Release escrow after delivery" },
76
+ { cmd: "cancel <id>", desc: "Cancel and refund escrow" },
77
+ { cmd: "negotiate <endpoint>", desc: "Pre-hire negotiation session" },
78
+ ],
79
+ },
80
+ {
81
+ label: "Subscriptions",
82
+ commands: [
83
+ { cmd: "subscribe <endpoint>", desc: "Inspect + stage subscription" },
84
+ { cmd: "subscription status <id>", desc: "Check subscription state" },
85
+ { cmd: "subscription list", desc: "List active subscriptions" },
86
+ { cmd: "plan create", desc: "Publish a subscription plan" },
87
+ ],
88
+ },
89
+ {
90
+ label: "Compute",
91
+ commands: [
92
+ { cmd: "compute hire <provider>", desc: "Rent GPU session" },
93
+ { cmd: "compute status <id>", desc: "Session metrics + cost" },
94
+ { cmd: "compute end <id>", desc: "End session + settle" },
95
+ { cmd: "compute discover", desc: "Find GPU providers" },
96
+ ],
97
+ },
98
+ {
99
+ label: "Arena",
100
+ commands: [
101
+ { cmd: "arena rounds", desc: "Active prediction rounds" },
102
+ { cmd: "arena squad list", desc: "Research squads" },
103
+ { cmd: "arena standings", desc: "Leaderboard" },
104
+ { cmd: "arena stats", desc: "Protocol stats" },
105
+ ],
106
+ },
107
+ {
108
+ label: "Operator",
109
+ commands: [
110
+ { cmd: "daemon start", desc: "Start local node" },
111
+ { cmd: "chat", desc: "Commerce REPL (harness-agnostic)" },
112
+ { cmd: "workroom start", desc: "Start workroom container" },
113
+ { cmd: "watch", desc: "Live event stream from daemon" },
114
+ { cmd: "doctor", desc: "System health check" },
115
+ { cmd: "setup", desc: "Guided first-run setup" },
116
+ ],
117
+ },
118
+ ];
119
+ //# sourceMappingURL=command-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../../src/tui/command-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ProfileCardProps } from "./components/commerce/ProfileCard";
2
+ import type { AgreementListProps } from "./components/commerce/AgreementList";
3
+ import type { ComputeCardProps } from "./components/commerce/ComputeCard";
4
+ import type { DiscoverListProps } from "./components/commerce/DiscoverList";
5
+ import type { HireCardProps } from "./components/commerce/HireCard";
6
+ import type { RoundsListProps } from "./components/commerce/RoundsList";
7
+ import type { SquadCardProps } from "./components/commerce/SquadCard";
8
+ import type { StatusCardProps } from "./components/commerce/StatusCard";
9
+ import type { SubscribeCardProps } from "./components/commerce/SubscribeCard";
10
+ import type { WorkroomCardProps } from "./components/commerce/WorkroomCard";
11
+ export declare function printStatusCard(props: StatusCardProps): Promise<void>;
12
+ export declare function printDiscoverList(props: DiscoverListProps): Promise<void>;
13
+ export declare function printHireCard(props: HireCardProps): Promise<void>;
14
+ export declare function printAgreementList(props: AgreementListProps): Promise<void>;
15
+ export declare function printComputeCard(props: ComputeCardProps): Promise<void>;
16
+ export declare function printSubscribeCard(props: SubscribeCardProps): Promise<void>;
17
+ export declare function printRoundsList(props: RoundsListProps): Promise<void>;
18
+ export declare function printSquadCard(props: SquadCardProps): Promise<void>;
19
+ export interface StandingsEntry {
20
+ rank: number;
21
+ agent: string;
22
+ wins: number;
23
+ losses: number;
24
+ netUsdc: string;
25
+ }
26
+ export interface StandingsProps {
27
+ entries: StandingsEntry[];
28
+ title?: string;
29
+ }
30
+ export declare function printProfileCard(props: ProfileCardProps): Promise<void>;
31
+ export declare function printStandings(props: StandingsProps): Promise<void>;
32
+ export declare function printWorkroomCard(props: WorkroomCardProps): Promise<void>;
33
+ //# sourceMappingURL=command-renderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-renderers.d.ts","sourceRoot":"","sources":["../../src/tui/command-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAgC5E,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjF;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc7E;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3E;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB7E;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzE;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/E"}