arc402-cli 1.4.50 → 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 (291) 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 +3 -0
  12. package/dist/commands/chat.d.ts.map +1 -0
  13. package/dist/commands/chat.js +752 -0
  14. package/dist/commands/chat.js.map +1 -0
  15. package/dist/commands/compute.d.ts.map +1 -1
  16. package/dist/commands/compute.js +84 -10
  17. package/dist/commands/compute.js.map +1 -1
  18. package/dist/commands/daemon.d.ts.map +1 -1
  19. package/dist/commands/daemon.js +44 -5
  20. package/dist/commands/daemon.js.map +1 -1
  21. package/dist/commands/discover.d.ts.map +1 -1
  22. package/dist/commands/discover.js +20 -0
  23. package/dist/commands/discover.js.map +1 -1
  24. package/dist/commands/hermes-init.d.ts +1 -1
  25. package/dist/commands/hermes-init.js +9 -9
  26. package/dist/commands/hermes-init.js.map +1 -1
  27. package/dist/commands/hire.d.ts.map +1 -1
  28. package/dist/commands/hire.js +20 -0
  29. package/dist/commands/hire.js.map +1 -1
  30. package/dist/commands/index.d.ts +3 -0
  31. package/dist/commands/index.d.ts.map +1 -0
  32. package/dist/commands/index.js +74 -0
  33. package/dist/commands/index.js.map +1 -0
  34. package/dist/commands/lifecycle.d.ts +3 -0
  35. package/dist/commands/lifecycle.d.ts.map +1 -0
  36. package/dist/commands/lifecycle.js +58 -0
  37. package/dist/commands/lifecycle.js.map +1 -0
  38. package/dist/commands/security.d.ts +3 -0
  39. package/dist/commands/security.d.ts.map +1 -0
  40. package/dist/commands/security.js +44 -0
  41. package/dist/commands/security.js.map +1 -0
  42. package/dist/commands/status.d.ts +18 -0
  43. package/dist/commands/status.d.ts.map +1 -0
  44. package/dist/commands/status.js +179 -0
  45. package/dist/commands/status.js.map +1 -0
  46. package/dist/commands/subscription.d.ts +3 -0
  47. package/dist/commands/subscription.d.ts.map +1 -0
  48. package/dist/commands/subscription.js +465 -0
  49. package/dist/commands/subscription.js.map +1 -0
  50. package/dist/commands/workroom.d.ts.map +1 -1
  51. package/dist/commands/workroom.js +13 -0
  52. package/dist/commands/workroom.js.map +1 -1
  53. package/dist/commerce-client.d.ts +77 -0
  54. package/dist/commerce-client.d.ts.map +1 -0
  55. package/dist/commerce-client.js +224 -0
  56. package/dist/commerce-client.js.map +1 -0
  57. package/dist/commerce-index.d.ts +39 -0
  58. package/dist/commerce-index.d.ts.map +1 -0
  59. package/dist/commerce-index.js +294 -0
  60. package/dist/commerce-index.js.map +1 -0
  61. package/dist/config.d.ts +6 -0
  62. package/dist/config.d.ts.map +1 -1
  63. package/dist/config.js.map +1 -1
  64. package/dist/daemon/config.d.ts +1 -0
  65. package/dist/daemon/config.d.ts.map +1 -1
  66. package/dist/daemon/config.js +7 -3
  67. package/dist/daemon/config.js.map +1 -1
  68. package/dist/daemon/index.d.ts.map +1 -1
  69. package/dist/daemon/index.js +18 -4
  70. package/dist/daemon/index.js.map +1 -1
  71. package/dist/daemon-client.d.ts +46 -0
  72. package/dist/daemon-client.d.ts.map +1 -0
  73. package/dist/daemon-client.js +80 -0
  74. package/dist/daemon-client.js.map +1 -0
  75. package/dist/index.js +40 -34
  76. package/dist/index.js.map +1 -1
  77. package/dist/program.d.ts.map +1 -1
  78. package/dist/program.js +14 -0
  79. package/dist/program.js.map +1 -1
  80. package/dist/tui/App.d.ts.map +1 -1
  81. package/dist/tui/App.js +61 -58
  82. package/dist/tui/App.js.map +1 -1
  83. package/dist/tui/InputLine.d.ts +4 -2
  84. package/dist/tui/InputLine.d.ts.map +1 -1
  85. package/dist/tui/InputLine.js +79 -60
  86. package/dist/tui/InputLine.js.map +1 -1
  87. package/dist/tui/KernelPayloadRenderer.d.ts +12 -0
  88. package/dist/tui/KernelPayloadRenderer.d.ts.map +1 -0
  89. package/dist/tui/KernelPayloadRenderer.js +41 -0
  90. package/dist/tui/KernelPayloadRenderer.js.map +1 -0
  91. package/dist/tui/Viewport.d.ts +15 -5
  92. package/dist/tui/Viewport.d.ts.map +1 -1
  93. package/dist/tui/Viewport.js +18 -24
  94. package/dist/tui/Viewport.js.map +1 -1
  95. package/dist/tui/command-catalog.d.ts +11 -0
  96. package/dist/tui/command-catalog.d.ts.map +1 -0
  97. package/dist/tui/command-catalog.js +119 -0
  98. package/dist/tui/command-catalog.js.map +1 -0
  99. package/dist/tui/command-renderers.d.ts +33 -0
  100. package/dist/tui/command-renderers.d.ts.map +1 -0
  101. package/dist/tui/command-renderers.js +215 -0
  102. package/dist/tui/command-renderers.js.map +1 -0
  103. package/dist/tui/commerce-format.d.ts +3 -0
  104. package/dist/tui/commerce-format.d.ts.map +1 -0
  105. package/dist/tui/commerce-format.js +19 -0
  106. package/dist/tui/commerce-format.js.map +1 -0
  107. package/dist/tui/components/commerce/AgentPicker.d.ts +7 -0
  108. package/dist/tui/components/commerce/AgentPicker.d.ts.map +1 -0
  109. package/dist/tui/components/commerce/AgentPicker.js +33 -0
  110. package/dist/tui/components/commerce/AgentPicker.js.map +1 -0
  111. package/dist/tui/components/commerce/AgreementList.d.ts +18 -0
  112. package/dist/tui/components/commerce/AgreementList.d.ts.map +1 -0
  113. package/dist/tui/components/commerce/AgreementList.js +25 -0
  114. package/dist/tui/components/commerce/AgreementList.js.map +1 -0
  115. package/dist/tui/components/commerce/ComputeCard.d.ts +14 -0
  116. package/dist/tui/components/commerce/ComputeCard.d.ts.map +1 -0
  117. package/dist/tui/components/commerce/ComputeCard.js +9 -0
  118. package/dist/tui/components/commerce/ComputeCard.js.map +1 -0
  119. package/dist/tui/components/commerce/DiscoverList.d.ts +20 -0
  120. package/dist/tui/components/commerce/DiscoverList.d.ts.map +1 -0
  121. package/dist/tui/components/commerce/DiscoverList.js +22 -0
  122. package/dist/tui/components/commerce/DiscoverList.js.map +1 -0
  123. package/dist/tui/components/commerce/HireCard.d.ts +14 -0
  124. package/dist/tui/components/commerce/HireCard.d.ts.map +1 -0
  125. package/dist/tui/components/commerce/HireCard.js +11 -0
  126. package/dist/tui/components/commerce/HireCard.js.map +1 -0
  127. package/dist/tui/components/commerce/ProfileCard.d.ts +19 -0
  128. package/dist/tui/components/commerce/ProfileCard.d.ts.map +1 -0
  129. package/dist/tui/components/commerce/ProfileCard.js +10 -0
  130. package/dist/tui/components/commerce/ProfileCard.js.map +1 -0
  131. package/dist/tui/components/commerce/RoundsList.d.ts +18 -0
  132. package/dist/tui/components/commerce/RoundsList.d.ts.map +1 -0
  133. package/dist/tui/components/commerce/RoundsList.js +9 -0
  134. package/dist/tui/components/commerce/RoundsList.js.map +1 -0
  135. package/dist/tui/components/commerce/SquadCard.d.ts +25 -0
  136. package/dist/tui/components/commerce/SquadCard.d.ts.map +1 -0
  137. package/dist/tui/components/commerce/SquadCard.js +10 -0
  138. package/dist/tui/components/commerce/SquadCard.js.map +1 -0
  139. package/dist/tui/components/commerce/StatusCard.d.ts +21 -0
  140. package/dist/tui/components/commerce/StatusCard.d.ts.map +1 -0
  141. package/dist/tui/components/commerce/StatusCard.js +10 -0
  142. package/dist/tui/components/commerce/StatusCard.js.map +1 -0
  143. package/dist/tui/components/commerce/SubscribeCard.d.ts +13 -0
  144. package/dist/tui/components/commerce/SubscribeCard.d.ts.map +1 -0
  145. package/dist/tui/components/commerce/SubscribeCard.js +10 -0
  146. package/dist/tui/components/commerce/SubscribeCard.js.map +1 -0
  147. package/dist/tui/components/commerce/WorkroomCard.d.ts +18 -0
  148. package/dist/tui/components/commerce/WorkroomCard.d.ts.map +1 -0
  149. package/dist/tui/components/commerce/WorkroomCard.js +10 -0
  150. package/dist/tui/components/commerce/WorkroomCard.js.map +1 -0
  151. package/dist/tui/components/commerce/common.d.ts +53 -0
  152. package/dist/tui/components/commerce/common.d.ts.map +1 -0
  153. package/dist/tui/components/commerce/common.js +71 -0
  154. package/dist/tui/components/commerce/common.js.map +1 -0
  155. package/dist/tui/components/commerce/index.d.ts +11 -0
  156. package/dist/tui/components/commerce/index.d.ts.map +1 -0
  157. package/dist/tui/components/commerce/index.js +27 -0
  158. package/dist/tui/components/commerce/index.js.map +1 -0
  159. package/dist/tui/hire-interactive.d.ts +13 -0
  160. package/dist/tui/hire-interactive.d.ts.map +1 -0
  161. package/dist/tui/hire-interactive.js +157 -0
  162. package/dist/tui/hire-interactive.js.map +1 -0
  163. package/dist/tui/kernel-payload.d.ts +45 -0
  164. package/dist/tui/kernel-payload.d.ts.map +1 -0
  165. package/dist/tui/kernel-payload.js +8 -0
  166. package/dist/tui/kernel-payload.js.map +1 -0
  167. package/dist/tui/kernel.d.ts +6 -0
  168. package/dist/tui/kernel.d.ts.map +1 -0
  169. package/dist/tui/kernel.js +791 -0
  170. package/dist/tui/kernel.js.map +1 -0
  171. package/dist/tui/render-inline.d.ts +9 -0
  172. package/dist/tui/render-inline.d.ts.map +1 -0
  173. package/dist/tui/render-inline.js +32 -0
  174. package/dist/tui/render-inline.js.map +1 -0
  175. package/dist/tui/useChat.d.ts.map +1 -1
  176. package/dist/tui/useChat.js +2 -2
  177. package/dist/tui/useChat.js.map +1 -1
  178. package/dist/tui/useCommand.d.ts +2 -2
  179. package/dist/tui/useCommand.d.ts.map +1 -1
  180. package/dist/tui/useCommand.js +57 -19
  181. package/dist/tui/useCommand.js.map +1 -1
  182. package/dist/tui/useDaemonEvents.d.ts +4 -0
  183. package/dist/tui/useDaemonEvents.d.ts.map +1 -0
  184. package/dist/tui/useDaemonEvents.js +69 -0
  185. package/dist/tui/useDaemonEvents.js.map +1 -0
  186. package/dist/tui/useTerminalSize.d.ts +11 -0
  187. package/dist/tui/useTerminalSize.d.ts.map +1 -0
  188. package/dist/tui/useTerminalSize.js +32 -0
  189. package/dist/tui/useTerminalSize.js.map +1 -0
  190. package/dist/tui-esm/App.js +136 -0
  191. package/dist/tui-esm/App.js.map +1 -0
  192. package/dist/tui-esm/Footer.js +13 -0
  193. package/dist/tui-esm/Footer.js.map +1 -0
  194. package/dist/tui-esm/Header.js +19 -0
  195. package/dist/tui-esm/Header.js.map +1 -0
  196. package/dist/tui-esm/InputLine.js +121 -0
  197. package/dist/tui-esm/InputLine.js.map +1 -0
  198. package/dist/tui-esm/Viewport.js +39 -0
  199. package/dist/tui-esm/Viewport.js.map +1 -0
  200. package/dist/tui-esm/WalletConnectPairing.js +61 -0
  201. package/dist/tui-esm/WalletConnectPairing.js.map +1 -0
  202. package/dist/tui-esm/command-catalog.js +20 -0
  203. package/dist/tui-esm/command-catalog.js.map +1 -0
  204. package/dist/tui-esm/command-renderers.js +180 -0
  205. package/dist/tui-esm/command-renderers.js.map +1 -0
  206. package/dist/tui-esm/commerce-format.js +19 -0
  207. package/dist/tui-esm/commerce-format.js.map +1 -0
  208. package/dist/tui-esm/components/Button.js +21 -0
  209. package/dist/tui-esm/components/Button.js.map +1 -0
  210. package/dist/tui-esm/components/CeremonyView.js +10 -0
  211. package/dist/tui-esm/components/CeremonyView.js.map +1 -0
  212. package/dist/tui-esm/components/CompletionDropdown.js +23 -0
  213. package/dist/tui-esm/components/CompletionDropdown.js.map +1 -0
  214. package/dist/tui-esm/components/ConfirmPrompt.js +10 -0
  215. package/dist/tui-esm/components/ConfirmPrompt.js.map +1 -0
  216. package/dist/tui-esm/components/CustomTextInput.js +99 -0
  217. package/dist/tui-esm/components/CustomTextInput.js.map +1 -0
  218. package/dist/tui-esm/components/InteractiveTable.js +61 -0
  219. package/dist/tui-esm/components/InteractiveTable.js.map +1 -0
  220. package/dist/tui-esm/components/StepSpinner.js +32 -0
  221. package/dist/tui-esm/components/StepSpinner.js.map +1 -0
  222. package/dist/tui-esm/components/Toast.js +29 -0
  223. package/dist/tui-esm/components/Toast.js.map +1 -0
  224. package/dist/tui-esm/components/commerce/AgreementList.js +25 -0
  225. package/dist/tui-esm/components/commerce/AgreementList.js.map +1 -0
  226. package/dist/tui-esm/components/commerce/ComputeCard.js +9 -0
  227. package/dist/tui-esm/components/commerce/ComputeCard.js.map +1 -0
  228. package/dist/tui-esm/components/commerce/DiscoverList.js +14 -0
  229. package/dist/tui-esm/components/commerce/DiscoverList.js.map +1 -0
  230. package/dist/tui-esm/components/commerce/HireCard.js +11 -0
  231. package/dist/tui-esm/components/commerce/HireCard.js.map +1 -0
  232. package/dist/tui-esm/components/commerce/RoundsList.js +9 -0
  233. package/dist/tui-esm/components/commerce/RoundsList.js.map +1 -0
  234. package/dist/tui-esm/components/commerce/SquadCard.js +10 -0
  235. package/dist/tui-esm/components/commerce/SquadCard.js.map +1 -0
  236. package/dist/tui-esm/components/commerce/StatusCard.js +10 -0
  237. package/dist/tui-esm/components/commerce/StatusCard.js.map +1 -0
  238. package/dist/tui-esm/components/commerce/SubscribeCard.js +10 -0
  239. package/dist/tui-esm/components/commerce/SubscribeCard.js.map +1 -0
  240. package/dist/tui-esm/components/commerce/WorkroomCard.js +10 -0
  241. package/dist/tui-esm/components/commerce/WorkroomCard.js.map +1 -0
  242. package/dist/tui-esm/components/commerce/common.js +71 -0
  243. package/dist/tui-esm/components/commerce/common.js.map +1 -0
  244. package/dist/tui-esm/components/commerce/index.js +27 -0
  245. package/dist/tui-esm/components/commerce/index.js.map +1 -0
  246. package/dist/tui-esm/index.js +55 -0
  247. package/dist/tui-esm/index.js.map +1 -0
  248. package/dist/tui-esm/kernel.js +734 -0
  249. package/dist/tui-esm/kernel.js.map +1 -0
  250. package/dist/tui-esm/render-inline.js +32 -0
  251. package/dist/tui-esm/render-inline.js.map +1 -0
  252. package/dist/tui-esm/useChat.js +91 -0
  253. package/dist/tui-esm/useChat.js.map +1 -0
  254. package/dist/tui-esm/useCommand.js +142 -0
  255. package/dist/tui-esm/useCommand.js.map +1 -0
  256. package/dist/tui-esm/useNotifications.js +17 -0
  257. package/dist/tui-esm/useNotifications.js.map +1 -0
  258. package/dist/tui-esm/useScroll.js +46 -0
  259. package/dist/tui-esm/useScroll.js.map +1 -0
  260. package/dist/tui-esm/useTerminalSize.js +32 -0
  261. package/dist/tui-esm/useTerminalSize.js.map +1 -0
  262. package/dist/ui/banner.d.ts.map +1 -1
  263. package/dist/ui/banner.js +46 -2
  264. package/dist/ui/banner.js.map +1 -1
  265. package/hermes/DELIVERY-SPEC.md +219 -0
  266. package/hermes/HERMES-INTEGRATION-SPEC.md +338 -0
  267. package/hermes/plugins/arc402_hermes/__init__.py +5 -0
  268. package/hermes/plugins/arc402_hermes/plugin.py +489 -0
  269. package/hermes/plugins/arc402_hermes/py.typed +0 -0
  270. package/hermes/plugins/arc402_hermes.egg-info/PKG-INFO +24 -0
  271. package/hermes/plugins/arc402_hermes.egg-info/SOURCES.txt +10 -0
  272. package/hermes/plugins/arc402_hermes.egg-info/dependency_links.txt +1 -0
  273. package/hermes/plugins/arc402_hermes.egg-info/entry_points.txt +2 -0
  274. package/hermes/plugins/arc402_hermes.egg-info/requires.txt +5 -0
  275. package/hermes/plugins/arc402_hermes.egg-info/top_level.txt +1 -0
  276. package/hermes/plugins/arc402_plugin.py +489 -0
  277. package/hermes/plugins/dist/arc402_hermes-1.0.0-py3-none-any.whl +0 -0
  278. package/hermes/plugins/dist/arc402_hermes-1.0.0.tar.gz +0 -0
  279. package/hermes/plugins/pyproject.toml +47 -0
  280. package/hermes/skills/arc402-agent/SKILL.md +559 -0
  281. package/hermes/workroom/README.md +174 -0
  282. package/hermes/workroom/hermes-daemon.toml +21 -0
  283. package/hermes/workroom/hermes-worker/IDENTITY.md +44 -0
  284. package/hermes/workroom/hermes-worker/SOUL.md +45 -0
  285. package/hermes/workroom/hermes-worker/config.json +32 -0
  286. package/hermes/workroom/hermes-worker/datasets/.gitkeep +0 -0
  287. package/hermes/workroom/hermes-worker/knowledge/.gitkeep +0 -0
  288. package/hermes/workroom/hermes-worker/memory/learnings.md +9 -0
  289. package/hermes/workroom/hermes-worker/skills/.gitkeep +0 -0
  290. package/package.json +9 -3
  291. package/README.md +0 -288
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Footer = Footer;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ /**
7
+ * Fixed footer containing the input line.
8
+ * Pinned at the bottom of the screen.
9
+ */
10
+ function Footer({ children }) {
11
+ return ((0, jsx_runtime_1.jsx)(ink_1.Box, { flexShrink: 0, children: children }));
12
+ }
13
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/tui/Footer.tsx"],"names":[],"mappings":";;AAWA,wBAMC;;AAhBD,6BAA0B;AAM1B;;;GAGG;AACH,SAAgB,MAAM,CAAC,EAAE,QAAQ,EAAe;IAC9C,OAAO,CACL,uBAAC,SAAG,IAAC,UAAU,EAAE,CAAC,YACf,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Header = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = __importDefault(require("react"));
9
+ const ink_1 = require("ink");
10
+ const banner_1 = require("../ui/banner");
11
+ /**
12
+ * Fixed header showing the ASCII art banner + status info.
13
+ * Never re-renders unless config changes.
14
+ */
15
+ exports.Header = react_1.default.memo(function Header({ network, wallet, balance, }) {
16
+ const bannerLines = (0, banner_1.getBannerLines)({ network, wallet, balance });
17
+ return ((0, jsx_runtime_1.jsx)(ink_1.Box, { flexDirection: "column", children: bannerLines.map((line, i) => ((0, jsx_runtime_1.jsx)(ink_1.Text, { children: line }, i))) }));
18
+ });
19
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/tui/Header.tsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAC1B,6BAAgC;AAChC,yCAA8C;AAS9C;;;GAGG;AACU,QAAA,MAAM,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,EAC/C,OAAO,EACP,MAAM,EACN,OAAO,GACK;IACZ,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAEjE,OAAO,CACL,uBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,uBAAC,UAAI,cAAU,IAAI,IAAR,CAAC,CAAe,CAC5B,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InputLine = InputLine;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const ink_1 = require("ink");
10
+ const ink_text_input_1 = __importDefault(require("ink-text-input"));
11
+ const command_catalog_1 = require("./command-catalog");
12
+ /**
13
+ * Input line with command history navigation and tab completion.
14
+ * Uses ink-text-input for text input with cursor.
15
+ */
16
+ function InputLine({ onSubmit, isDisabled = false }) {
17
+ const [value, setValue] = (0, react_1.useState)("");
18
+ const [history, setHistory] = (0, react_1.useState)([]);
19
+ const [historyIdx, setHistoryIdx] = (0, react_1.useState)(-1);
20
+ const [historyTemp, setHistoryTemp] = (0, react_1.useState)("");
21
+ const [topCmds] = (0, react_1.useState)(() => [...command_catalog_1.TUI_TOP_LEVEL_COMMANDS]);
22
+ const [subCmds] = (0, react_1.useState)(() => new Map(Object.entries(command_catalog_1.TUI_SUBCOMMANDS)));
23
+ const handleSubmit = (0, react_1.useCallback)((val) => {
24
+ const trimmed = val.trim();
25
+ if (!trimmed)
26
+ return;
27
+ // Add to history (avoid duplicate of last entry)
28
+ setHistory((prev) => {
29
+ if (prev[prev.length - 1] === trimmed)
30
+ return prev;
31
+ return [...prev, trimmed];
32
+ });
33
+ setHistoryIdx(-1);
34
+ setHistoryTemp("");
35
+ setValue("");
36
+ onSubmit(trimmed);
37
+ }, [onSubmit]);
38
+ (0, ink_1.useInput)((_input, key) => {
39
+ if (isDisabled)
40
+ return;
41
+ // Up arrow — history prev
42
+ if (key.upArrow) {
43
+ setHistory((hist) => {
44
+ setHistoryIdx((idx) => {
45
+ if (idx === -1) {
46
+ setHistoryTemp(value);
47
+ const newIdx = hist.length - 1;
48
+ if (newIdx >= 0)
49
+ setValue(hist[newIdx]);
50
+ return newIdx;
51
+ }
52
+ else if (idx > 0) {
53
+ const newIdx = idx - 1;
54
+ setValue(hist[newIdx]);
55
+ return newIdx;
56
+ }
57
+ return idx;
58
+ });
59
+ return hist;
60
+ });
61
+ return;
62
+ }
63
+ // Down arrow — history next
64
+ if (key.downArrow) {
65
+ setHistory((hist) => {
66
+ setHistoryIdx((idx) => {
67
+ if (idx >= 0) {
68
+ const newIdx = idx + 1;
69
+ if (newIdx >= hist.length) {
70
+ setValue(historyTemp);
71
+ return -1;
72
+ }
73
+ else {
74
+ setValue(hist[newIdx]);
75
+ return newIdx;
76
+ }
77
+ }
78
+ return idx;
79
+ });
80
+ return hist;
81
+ });
82
+ return;
83
+ }
84
+ // Tab — completion
85
+ if (_input === "\t") {
86
+ const allTop = [...command_catalog_1.BUILTIN_CMDS, ...topCmds];
87
+ const trimmed = value.trimStart();
88
+ const spaceIdx = trimmed.indexOf(" ");
89
+ let completions;
90
+ if (spaceIdx === -1) {
91
+ completions = allTop.filter((cmd) => cmd.startsWith(trimmed));
92
+ }
93
+ else {
94
+ const parent = trimmed.slice(0, spaceIdx);
95
+ const rest = trimmed.slice(spaceIdx + 1);
96
+ const subs = subCmds.get(parent) ?? [];
97
+ completions = subs
98
+ .filter((s) => s.startsWith(rest))
99
+ .map((s) => `${parent} ${s}`);
100
+ }
101
+ if (completions.length === 0)
102
+ return;
103
+ if (completions.length === 1) {
104
+ setValue(completions[0] + " ");
105
+ return;
106
+ }
107
+ // Find common prefix
108
+ const common = completions.reduce((a, b) => {
109
+ let i = 0;
110
+ while (i < a.length && i < b.length && a[i] === b[i])
111
+ i++;
112
+ return a.slice(0, i);
113
+ });
114
+ if (common.length > value.trimStart().length) {
115
+ setValue(common);
116
+ }
117
+ }
118
+ }, { isActive: !isDisabled });
119
+ 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 })] }));
120
+ }
121
+ //# sourceMappingURL=InputLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/tui/InputLine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Viewport = Viewport;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ /**
7
+ * 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.
11
+ */
12
+ function Viewport({ lines, scrollOffset, isAutoScroll, viewportHeight }) {
13
+ // Compute the window slice
14
+ // scrollOffset=0 → show last viewportHeight lines
15
+ // scrollOffset=N → show lines ending viewportHeight+N from end
16
+ const totalLines = lines.length;
17
+ let endIdx;
18
+ let startIdx;
19
+ if (scrollOffset === 0) {
20
+ // Auto-scroll: pinned to bottom
21
+ endIdx = totalLines;
22
+ startIdx = Math.max(0, endIdx - viewportHeight);
23
+ }
24
+ else {
25
+ // Scrolled up: scrollOffset lines from bottom
26
+ endIdx = Math.max(0, totalLines - scrollOffset);
27
+ startIdx = Math.max(0, endIdx - viewportHeight);
28
+ }
29
+ const visibleLines = lines.slice(startIdx, endIdx);
30
+ // Pad with empty lines if fewer than viewportHeight
31
+ const padCount = Math.max(0, viewportHeight - visibleLines.length);
32
+ const paddedLines = [
33
+ ...Array(padCount).fill(""),
34
+ ...visibleLines,
35
+ ];
36
+ const canScrollDown = scrollOffset > 0;
37
+ 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" }) }))] }));
38
+ }
39
+ //# sourceMappingURL=Viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../src/tui/Viewport.tsx"],"names":[],"mappings":";;AAiBA,4BA4CC;;AA5DD,6BAAgC;AAUhC;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAiB;IAE3F,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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletConnectPairing = WalletConnectPairing;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const ink_1 = require("ink");
7
+ const qr_render_js_1 = require("../ui/qr-render.js");
8
+ /**
9
+ * Renders WalletConnect pairing inside the Ink TUI viewport:
10
+ * - ASCII QR code
11
+ * - Deep links for MetaMask, Rainbow, Trust, etc.
12
+ * - Status transitions: connecting → connected → chain-switching → ready
13
+ */
14
+ function WalletConnectPairing({ onComplete, onError, connect, }) {
15
+ const [stage, setStage] = (0, react_1.useState)("connecting");
16
+ const [uri, setUri] = (0, react_1.useState)(null);
17
+ const [links, setLinks] = (0, react_1.useState)({});
18
+ const [account, setAccount] = (0, react_1.useState)(null);
19
+ const [qrLines, setQrLines] = (0, react_1.useState)([]);
20
+ const [detail, setDetail] = (0, react_1.useState)("");
21
+ const handleUri = (0, react_1.useCallback)((wcUri, wcLinks) => {
22
+ setUri(wcUri);
23
+ setLinks(wcLinks);
24
+ // Generate ASCII QR using our compact renderer
25
+ try {
26
+ const lines = (0, qr_render_js_1.renderQR)(wcUri);
27
+ setQrLines(lines);
28
+ }
29
+ catch {
30
+ // QR rendering is best-effort
31
+ }
32
+ }, []);
33
+ const handleStatus = (0, react_1.useCallback)((status, statusDetail) => {
34
+ setStage(status);
35
+ if (statusDetail)
36
+ setDetail(statusDetail);
37
+ if (status === "connected" && statusDetail) {
38
+ setAccount(statusDetail);
39
+ }
40
+ }, []);
41
+ (0, react_1.useEffect)(() => {
42
+ const callbacks = {
43
+ onUri: handleUri,
44
+ onStatus: handleStatus,
45
+ };
46
+ connect(callbacks)
47
+ .then((result) => onComplete(result))
48
+ .catch((err) => onError(err instanceof Error ? err.message : String(err)));
49
+ }, [connect, handleUri, handleStatus, onComplete, onError]);
50
+ const statusIcon = stage === "error" ? "✗" : stage === "ready" ? "✓" : "◈";
51
+ const statusColor = stage === "error" ? "red" : stage === "ready" ? "green" : "cyan";
52
+ const statusMessages = {
53
+ connecting: "Waiting for wallet approval...",
54
+ connected: `Connected: ${account ?? ""}`,
55
+ "chain-switching": `Switching chain${detail ? `: ${detail}` : ""}...`,
56
+ ready: `Ready — ${account ?? ""}`,
57
+ error: detail || "Connection failed",
58
+ };
59
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", paddingLeft: 1, children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { color: "cyan", bold: true, children: "WalletConnect Pairing" }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: " " }), (0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsxs)(ink_1.Text, { color: statusColor, children: [statusIcon, " "] }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: statusMessages[stage] })] }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: " " }), uri && stage === "connecting" && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "Tap a link for your wallet app:" }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: " " }), Object.entries(links).map(([name, link]) => ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", children: [(0, jsx_runtime_1.jsxs)(ink_1.Text, { color: "white", children: [name, ":"] }), (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: link }), (0, jsx_runtime_1.jsx)(ink_1.Text, { children: " " })] }, name))), qrLines.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "Or scan QR:" }), qrLines.map((line, i) => ((0, jsx_runtime_1.jsx)(ink_1.Text, { children: line }, i)))] }))] }))] }));
60
+ }
61
+ //# sourceMappingURL=WalletConnectPairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectPairing.js","sourceRoot":"","sources":["../../src/tui/WalletConnectPairing.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TUI_SUBCOMMANDS = exports.TUI_TOP_LEVEL_COMMANDS = exports.BUILTIN_CMDS = void 0;
4
+ exports.BUILTIN_CMDS = ["help", "exit", "quit", "clear", "status"];
5
+ exports.TUI_TOP_LEVEL_COMMANDS = [
6
+ "status",
7
+ "discover",
8
+ "agreements",
9
+ "workroom",
10
+ "subscription",
11
+ "subscribe",
12
+ "arena",
13
+ ];
14
+ exports.TUI_SUBCOMMANDS = {
15
+ workroom: ["status", "worker"],
16
+ subscription: ["status", "list", "cancel", "topup"],
17
+ arena: ["rounds", "squad"],
18
+ squad: ["list", "info"],
19
+ };
20
+ //# sourceMappingURL=command-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../../src/tui/command-catalog.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAEpE,QAAA,sBAAsB,GAAG;IACpC,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,cAAc;IACd,WAAW;IACX,OAAO;CACC,CAAC;AAEE,QAAA,eAAe,GAA6B;IACvD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IACnD,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printStatusCard = printStatusCard;
4
+ exports.printDiscoverList = printDiscoverList;
5
+ exports.printHireCard = printHireCard;
6
+ exports.printAgreementList = printAgreementList;
7
+ exports.printComputeCard = printComputeCard;
8
+ exports.printSubscribeCard = printSubscribeCard;
9
+ exports.printRoundsList = printRoundsList;
10
+ exports.printSquadCard = printSquadCard;
11
+ exports.printWorkroomCard = printWorkroomCard;
12
+ const commerce_format_1 = require("./commerce-format");
13
+ const render_inline_1 = require("./render-inline");
14
+ function emit(lines) {
15
+ for (const line of lines)
16
+ (0, render_inline_1.writeTuiLine)(line);
17
+ }
18
+ function separator() {
19
+ return "─".repeat(60);
20
+ }
21
+ function badge(label) {
22
+ return label ? ` ${label}` : "";
23
+ }
24
+ function detail(label, value) {
25
+ return ` ${label.padEnd(14)} ${value}`;
26
+ }
27
+ function bullet(value) {
28
+ return ` • ${value}`;
29
+ }
30
+ function listItem(title, meta, detailLine, status) {
31
+ return [
32
+ `${title}${badge(status)}`,
33
+ ...(meta ? [meta] : []),
34
+ ...(detailLine ? [detailLine] : []),
35
+ ];
36
+ }
37
+ async function printStatusCard(props) {
38
+ emit([
39
+ "◈ Wallet Status",
40
+ `${props.wallet}${badge(props.status?.label)}`,
41
+ props.network,
42
+ separator(),
43
+ detail("balance", props.balance ?? "n/a"),
44
+ detail("endpoint", props.endpoint ?? "n/a"),
45
+ ...(typeof props.trustScore === "number"
46
+ ? [detail("trust", (0, commerce_format_1.formatPercent)(Math.min(100, Math.max(0, props.trustScore / 5)), 1))]
47
+ : []),
48
+ ...(props.agreements
49
+ ? [
50
+ "",
51
+ "agreements",
52
+ detail("active", String(props.agreements.active)),
53
+ detail("verify", String(props.agreements.pendingVerification)),
54
+ detail("disputed", String(props.agreements.disputed)),
55
+ ]
56
+ : []),
57
+ ...(props.workroom
58
+ ? [
59
+ "",
60
+ "workroom",
61
+ detail("status", props.workroom.status),
62
+ detail("jobs", String(props.workroom.activeJobs ?? 0)),
63
+ detail("harness", props.workroom.harness ?? "n/a"),
64
+ ]
65
+ : []),
66
+ ]);
67
+ }
68
+ async function printDiscoverList(props) {
69
+ emit([
70
+ "◈ Discover",
71
+ `${props.title ?? "Discover Results"}${badge(props.status?.label)}`,
72
+ ...(props.summary ? [props.summary] : []),
73
+ separator(),
74
+ ...props.agents.flatMap((agent) => listItem(`#${agent.rank} ${agent.name}`, `${agent.wallet} · trust ${agent.trustScore}${agent.priceLabel ? ` · ${agent.priceLabel}` : ""}`, `${agent.serviceType}${agent.capabilitySummary ? ` · ${agent.capabilitySummary}` : ""}${typeof agent.compositeScore === "number" ? ` · score ${(0, commerce_format_1.formatPercent)(agent.compositeScore * 100, 1)}` : ""}`, agent.endpointStatus).map((line) => ` ${line}`)),
75
+ `${props.agents.length} ranked result${props.agents.length === 1 ? "" : "s"}`,
76
+ ]);
77
+ }
78
+ async function printHireCard(props) {
79
+ emit([
80
+ "◈ Hire",
81
+ `${props.providerName ? `${props.providerName} · ${props.providerAddress}` : props.providerAddress}${badge(props.status?.label)}`,
82
+ props.capability,
83
+ separator(),
84
+ detail("price", props.price),
85
+ detail("deadline", props.deadline ?? "open"),
86
+ detail("agreement", props.agreementId ?? "pending"),
87
+ detail("tx", props.txHash ?? "not submitted"),
88
+ ...((props.notes ?? []).length > 0
89
+ ? ["", "operator notes", ...(props.notes ?? []).map(bullet)]
90
+ : []),
91
+ ]);
92
+ }
93
+ async function printAgreementList(props) {
94
+ emit([
95
+ "◈ Agreements",
96
+ `${props.roleLabel ?? "Recent Agreements"}${badge(props.status?.label)}`,
97
+ ...(props.totalEscrowLabel ? [props.totalEscrowLabel] : []),
98
+ separator(),
99
+ ...(props.agreements.length > 0
100
+ ? props.agreements.flatMap((agreement) => listItem(`#${agreement.id} ${agreement.counterparty}`, `${agreement.serviceType}${agreement.price ? ` · ${agreement.price}` : ""}`, agreement.verifyWindowMinutes !== undefined
101
+ ? `verify window ${(0, commerce_format_1.formatCountdown)(agreement.verifyWindowMinutes)}`
102
+ : agreement.deadlineMinutes !== undefined
103
+ ? `deadline ${(0, commerce_format_1.formatCountdown)(agreement.deadlineMinutes)}`
104
+ : undefined, agreement.status).map((line) => ` ${line}`))
105
+ : [" No agreements found."]),
106
+ ]);
107
+ }
108
+ async function printComputeCard(props) {
109
+ emit([
110
+ "◈ Compute Session",
111
+ `${props.sessionId}${badge(props.status?.label)}`,
112
+ `${props.provider} · ${props.gpuSpec}`,
113
+ separator(),
114
+ detail("rate", props.rateLabel),
115
+ detail("consumed", props.consumedLabel ?? "n/a"),
116
+ detail("cost", props.costLabel ?? "n/a"),
117
+ detail("remaining", props.remainingLabel ?? "n/a"),
118
+ ...(props.utilizationPercent !== undefined
119
+ ? [detail("utilization", (0, commerce_format_1.formatPercent)(props.utilizationPercent, 2))]
120
+ : []),
121
+ ]);
122
+ }
123
+ async function printSubscribeCard(props) {
124
+ emit([
125
+ "◈ Subscription",
126
+ `${props.provider}${badge(props.status?.label)}`,
127
+ props.planId,
128
+ separator(),
129
+ detail("rate", props.rateLabel),
130
+ detail("months", String(props.months ?? 1)),
131
+ detail("renewal", props.nextRenewalLabel ?? "immediate access"),
132
+ detail("payments", props.paymentOptions?.length ? props.paymentOptions.join(", ") : "subscription"),
133
+ ...((props.accessSummary ?? []).length > 0
134
+ ? ["", "access", ...(props.accessSummary ?? []).map(bullet)]
135
+ : []),
136
+ ]);
137
+ }
138
+ async function printRoundsList(props) {
139
+ emit([
140
+ "◈ Arena",
141
+ `${props.title ?? "Arena Rounds"}${badge(props.status?.label)}`,
142
+ separator(),
143
+ ...(props.rounds.length > 0
144
+ ? props.rounds.flatMap((round) => listItem(`#${round.id} ${round.question}`, `${round.category ?? "uncategorized"} · ${round.timingLabel}`, `YES ${round.yesLabel} · NO ${round.noLabel}`, round.resolved ? (round.outcomeLabel ?? "resolved") : "open").map((line) => ` ${line}`))
145
+ : [" No arena rounds found."]),
146
+ "Built for round boards and live resolution views.",
147
+ ]);
148
+ }
149
+ async function printSquadCard(props) {
150
+ emit([
151
+ "◈ Squad",
152
+ `${props.name}${badge(props.status?.label ?? props.statusLabel)}`,
153
+ props.id,
154
+ separator(),
155
+ detail("domain", props.domainTag),
156
+ detail("members", String(props.memberCount)),
157
+ detail("invite", props.inviteOnly ? "yes" : "no"),
158
+ detail("creator", props.creator ?? "n/a"),
159
+ ...((props.members ?? []).length > 0
160
+ ? ["", "members", ...(props.members ?? []).map((member) => bullet(`${member.agent}${member.role ? ` · ${member.role}` : ""}${member.trustScore !== undefined ? ` · trust ${member.trustScore}` : ""}`))]
161
+ : []),
162
+ ...((props.briefings ?? []).length > 0
163
+ ? ["", "briefings", ...(props.briefings ?? []).map((briefing) => bullet(`${briefing.preview}${briefing.publishedLabel ? ` · ${briefing.publishedLabel}` : ""}${briefing.tags?.length ? ` · ${briefing.tags.join(", ")}` : ""}`))]
164
+ : []),
165
+ ]);
166
+ }
167
+ async function printWorkroomCard(props) {
168
+ emit([
169
+ "◈ Workroom",
170
+ `${props.runtime ?? "Governed execution environment"}${badge(props.status?.label ?? props.statusLabel)}`,
171
+ separator(),
172
+ detail("harness", props.harness ?? "n/a"),
173
+ detail("queue", String(props.queueDepth ?? props.activeJobs?.length ?? 0)),
174
+ detail("policy", props.policyHash ?? "n/a"),
175
+ ...((props.activeJobs ?? []).length > 0
176
+ ? ["", "jobs", ...(props.activeJobs ?? []).map((job) => bullet(`${job.id} · ${job.status}${job.harness ? ` · ${job.harness}` : ""}${job.task ? ` · ${job.task}` : ""}`))]
177
+ : []),
178
+ ]);
179
+ }
180
+ //# sourceMappingURL=command-renderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-renderers.js","sourceRoot":"","sources":["../../src/tui/command-renderers.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatPercent = formatPercent;
4
+ exports.formatCountdown = formatCountdown;
5
+ function formatPercent(value, digits = 0) {
6
+ if (!Number.isFinite(value))
7
+ return "0%";
8
+ return `${value.toFixed(digits)}%`;
9
+ }
10
+ function formatCountdown(minutes) {
11
+ if (minutes === undefined || minutes === null || !Number.isFinite(minutes))
12
+ return "n/a";
13
+ if (minutes < 60)
14
+ return `${Math.max(0, Math.round(minutes))}m`;
15
+ const hours = Math.floor(minutes / 60);
16
+ const mins = Math.round(minutes % 60);
17
+ return `${hours}h ${mins}m`;
18
+ }
19
+ //# sourceMappingURL=commerce-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commerce-format.js","sourceRoot":"","sources":["../../src/tui/commerce-format.ts"],"names":[],"mappings":";;AAAA,sCAGC;AAED,0CAMC;AAXD,SAAgB,aAAa,CAAC,KAAa,EAAE,MAAM,GAAG,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACtC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Button = Button;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ const VARIANT_COLORS = {
7
+ primary: "cyan",
8
+ danger: "red",
9
+ dim: "gray",
10
+ };
11
+ function Button({ label, onPress, variant = "primary" }) {
12
+ const { isFocused } = (0, ink_1.useFocus)();
13
+ (0, ink_1.useInput)((_input, key) => {
14
+ if (key.return) {
15
+ onPress();
16
+ }
17
+ }, { isActive: isFocused });
18
+ const color = isFocused ? VARIANT_COLORS[variant] ?? "cyan" : "white";
19
+ return ((0, jsx_runtime_1.jsx)(ink_1.Box, { children: (0, jsx_runtime_1.jsxs)(ink_1.Text, { color: color, bold: isFocused, children: [isFocused ? "▸ " : " ", label] }) }));
20
+ }
21
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/tui/components/Button.tsx"],"names":[],"mappings":";;AAeA,wBAsBC;;AApCD,6BAAoD;AAQpD,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,SAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAe;IACzE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAQ,GAAE,CAAC;IAEjC,IAAA,cAAQ,EACN,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtE,OAAO,CACL,uBAAC,SAAG,cACF,wBAAC,UAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,aAChC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACvB,KAAK,IACD,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CeremonyView = CeremonyView;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ const StepSpinner_js_1 = require("./StepSpinner.js");
7
+ function CeremonyView({ title, steps }) {
8
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { marginBottom: 1, children: (0, jsx_runtime_1.jsxs)(ink_1.Text, { bold: true, color: "cyan", children: ["\u25C8 ", title] }) }), steps.map((step, i) => ((0, jsx_runtime_1.jsx)(StepSpinner_js_1.StepSpinner, { step: i + 1, total: steps.length, label: step.label, status: step.status, detail: step.detail, error: step.error }, i)))] }));
9
+ }
10
+ //# sourceMappingURL=CeremonyView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CeremonyView.js","sourceRoot":"","sources":["../../../src/tui/components/CeremonyView.tsx"],"names":[],"mappings":";;AAiBA,oCAqBC;;AArCD,6BAAgC;AAChC,qDAA+C;AAe/C,SAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAqB;IAC9D,OAAO,CACL,wBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,uBAAC,SAAG,IAAC,YAAY,EAAE,CAAC,YAClB,wBAAC,UAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,wBAClB,KAAK,IACH,GACH,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,uBAAC,4BAAW,IAEV,IAAI,EAAE,CAAC,GAAG,CAAC,EACX,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IANZ,CAAC,CAON,CACH,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompletionDropdown = CompletionDropdown;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ink_1 = require("ink");
6
+ const MAX_VISIBLE = 8;
7
+ function CompletionDropdown({ candidates, selectedIndex, visible, }) {
8
+ if (!visible || candidates.length === 0)
9
+ return null;
10
+ // Window the list if there are too many candidates
11
+ let startIdx = 0;
12
+ if (candidates.length > MAX_VISIBLE) {
13
+ startIdx = Math.max(0, selectedIndex - Math.floor(MAX_VISIBLE / 2));
14
+ startIdx = Math.min(startIdx, candidates.length - MAX_VISIBLE);
15
+ }
16
+ const visibleCandidates = candidates.slice(startIdx, startIdx + MAX_VISIBLE);
17
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { flexDirection: "column", marginLeft: 4, children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { children: (0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "┌─ completions ─" }) }), visibleCandidates.map((candidate, i) => {
18
+ const actualIdx = startIdx + i;
19
+ const isSelected = actualIdx === selectedIndex;
20
+ return ((0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "│" }), (0, jsx_runtime_1.jsxs)(ink_1.Text, { color: isSelected ? "cyan" : "white", bold: isSelected, children: [isSelected ? " ▸ " : " ", candidate] })] }, candidate));
21
+ }), (0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, { dimColor: true, children: "└─" }), candidates.length > MAX_VISIBLE && ((0, jsx_runtime_1.jsxs)(ink_1.Text, { dimColor: true, children: [" ", "(", candidates.length, " total)"] }))] })] }));
22
+ }
23
+ //# sourceMappingURL=CompletionDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletionDropdown.js","sourceRoot":"","sources":["../../../src/tui/components/CompletionDropdown.tsx"],"names":[],"mappings":";;AAWA,gDA4CC;;AAtDD,6BAAgC;AAQhC,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,SAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,aAAa,EACb,OAAO,GACiB;IACxB,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErD,mDAAmD;IACnD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QACpC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CACxC,QAAQ,EACR,QAAQ,GAAG,WAAW,CACvB,CAAC;IAEF,OAAO,CACL,wBAAC,SAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,uBAAC,SAAG,cACF,uBAAC,UAAI,IAAC,QAAQ,kBAAE,kBAAkB,GAAQ,GACtC,EACL,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,SAAS,KAAK,aAAa,CAAC;gBAC/C,OAAO,CACL,wBAAC,SAAG,eACF,uBAAC,UAAI,IAAC,QAAQ,kBAAE,GAAG,GAAQ,EAC3B,wBAAC,UAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,aACzD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC1B,SAAS,IACL,KALC,SAAS,CAMb,CACP,CAAC;YACJ,CAAC,CAAC,EACF,wBAAC,SAAG,eACF,uBAAC,UAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,EAC3B,UAAU,CAAC,MAAM,GAAG,WAAW,IAAI,CAClC,wBAAC,UAAI,IAAC,QAAQ,mBAAE,GAAG,OAAG,UAAU,CAAC,MAAM,eAAe,CACvD,IACG,IACF,CACP,CAAC;AACJ,CAAC"}