@aria-cli/cli 1.0.56 → 1.0.58

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 (622) hide show
  1. package/bin/aria.mjs +2 -2
  2. package/package.json +17 -76
  3. package/dist/.tsbuildinfo +0 -1
  4. package/dist/attached-local-control-client.js +0 -826
  5. package/dist/attached-local-control-client.js.map +0 -1
  6. package/dist/bootstrap-local-control-client.js +0 -2
  7. package/dist/bootstrap-local-control-client.js.map +0 -1
  8. package/dist/capability-aware-method-proxy.js +0 -42
  9. package/dist/capability-aware-method-proxy.js.map +0 -1
  10. package/dist/cli-context.js +0 -160
  11. package/dist/cli-context.js.map +0 -1
  12. package/dist/commands/arions.js +0 -174
  13. package/dist/commands/arions.js.map +0 -1
  14. package/dist/commands/auth.js +0 -123
  15. package/dist/commands/auth.js.map +0 -1
  16. package/dist/commands/daemon.js +0 -367
  17. package/dist/commands/daemon.js.map +0 -1
  18. package/dist/commands/definitions.js +0 -176
  19. package/dist/commands/definitions.js.map +0 -1
  20. package/dist/commands/index.js +0 -80
  21. package/dist/commands/index.js.map +0 -1
  22. package/dist/commands/login-handler.js +0 -1108
  23. package/dist/commands/login-handler.js.map +0 -1
  24. package/dist/commands/logout-handler.js +0 -92
  25. package/dist/commands/logout-handler.js.map +0 -1
  26. package/dist/commands/memory-handlers.js +0 -89
  27. package/dist/commands/memory-handlers.js.map +0 -1
  28. package/dist/commands/pairing.js +0 -60
  29. package/dist/commands/pairing.js.map +0 -1
  30. package/dist/commands/runtime-cutover-reset-command.js +0 -12
  31. package/dist/commands/runtime-cutover-reset-command.js.map +0 -1
  32. package/dist/commands/runtime-cutover-reset.js +0 -265
  33. package/dist/commands/runtime-cutover-reset.js.map +0 -1
  34. package/dist/commands/terminal-setup.js +0 -84
  35. package/dist/commands/terminal-setup.js.map +0 -1
  36. package/dist/config/aria-config.js +0 -238
  37. package/dist/config/aria-config.js.map +0 -1
  38. package/dist/config/index.js +0 -3
  39. package/dist/config/index.js.map +0 -1
  40. package/dist/config/loader.js +0 -97
  41. package/dist/config/loader.js.map +0 -1
  42. package/dist/config.js +0 -142
  43. package/dist/config.js.map +0 -1
  44. package/dist/daemon-info.js +0 -10
  45. package/dist/daemon-info.js.map +0 -1
  46. package/dist/ensure-daemon.js +0 -128
  47. package/dist/ensure-daemon.js.map +0 -1
  48. package/dist/entrypoints/command-mode.js +0 -5
  49. package/dist/entrypoints/command-mode.js.map +0 -1
  50. package/dist/entrypoints/daemon.js +0 -50
  51. package/dist/entrypoints/daemon.js.map +0 -1
  52. package/dist/entrypoints/headless-stdio.js +0 -25
  53. package/dist/entrypoints/headless-stdio.js.map +0 -1
  54. package/dist/entrypoints/interactive.d.ts.map +0 -1
  55. package/dist/entrypoints/interactive.js +0 -80
  56. package/dist/entrypoints/interactive.js.map +0 -1
  57. package/dist/event-loop-watchdog.js +0 -73
  58. package/dist/event-loop-watchdog.js.map +0 -1
  59. package/dist/headless/auth-orchestrator.js +0 -508
  60. package/dist/headless/auth-orchestrator.js.map +0 -1
  61. package/dist/headless/auth-service.js +0 -43
  62. package/dist/headless/auth-service.js.map +0 -1
  63. package/dist/headless/bootstrap-fast-path.js +0 -112
  64. package/dist/headless/bootstrap-fast-path.js.map +0 -1
  65. package/dist/headless/call-command.js +0 -143
  66. package/dist/headless/call-command.js.map +0 -1
  67. package/dist/headless/daemon-service.js +0 -318
  68. package/dist/headless/daemon-service.js.map +0 -1
  69. package/dist/headless/hook-actions.js +0 -235
  70. package/dist/headless/hook-actions.js.map +0 -1
  71. package/dist/headless/hook-service.js +0 -42
  72. package/dist/headless/hook-service.js.map +0 -1
  73. package/dist/headless/kernel-services.js +0 -216
  74. package/dist/headless/kernel-services.js.map +0 -1
  75. package/dist/headless/kernel.js +0 -785
  76. package/dist/headless/kernel.js.map +0 -1
  77. package/dist/headless/operations/arion.js +0 -119
  78. package/dist/headless/operations/arion.js.map +0 -1
  79. package/dist/headless/operations/auth.js +0 -45
  80. package/dist/headless/operations/auth.js.map +0 -1
  81. package/dist/headless/operations/client.js +0 -31
  82. package/dist/headless/operations/client.js.map +0 -1
  83. package/dist/headless/operations/config.js +0 -69
  84. package/dist/headless/operations/config.js.map +0 -1
  85. package/dist/headless/operations/daemon.js +0 -47
  86. package/dist/headless/operations/daemon.js.map +0 -1
  87. package/dist/headless/operations/hook.js +0 -56
  88. package/dist/headless/operations/hook.js.map +0 -1
  89. package/dist/headless/operations/index.js +0 -11
  90. package/dist/headless/operations/index.js.map +0 -1
  91. package/dist/headless/operations/memory.js +0 -102
  92. package/dist/headless/operations/memory.js.map +0 -1
  93. package/dist/headless/operations/message.js +0 -279
  94. package/dist/headless/operations/message.js.map +0 -1
  95. package/dist/headless/operations/model.js +0 -100
  96. package/dist/headless/operations/model.js.map +0 -1
  97. package/dist/headless/operations/peer.js +0 -56
  98. package/dist/headless/operations/peer.js.map +0 -1
  99. package/dist/headless/operations/run.js +0 -24
  100. package/dist/headless/operations/run.js.map +0 -1
  101. package/dist/headless/operations/session.js +0 -90
  102. package/dist/headless/operations/session.js.map +0 -1
  103. package/dist/headless/operations/system.js +0 -19
  104. package/dist/headless/operations/system.js.map +0 -1
  105. package/dist/headless/operations/utils.js +0 -35
  106. package/dist/headless/operations/utils.js.map +0 -1
  107. package/dist/headless/run-orchestrator.js +0 -703
  108. package/dist/headless/run-orchestrator.js.map +0 -1
  109. package/dist/headless/stdio-server.js +0 -439
  110. package/dist/headless/stdio-server.js.map +0 -1
  111. package/dist/history/SessionHistory.js +0 -8
  112. package/dist/history/SessionHistory.js.map +0 -1
  113. package/dist/history/SessionHistoryClient.js +0 -186
  114. package/dist/history/SessionHistoryClient.js.map +0 -1
  115. package/dist/history/conversation-message.js +0 -112
  116. package/dist/history/conversation-message.js.map +0 -1
  117. package/dist/history/index.js +0 -8
  118. package/dist/history/index.js.map +0 -1
  119. package/dist/history/jsonl-replay.js +0 -154
  120. package/dist/history/jsonl-replay.js.map +0 -1
  121. package/dist/history/repair-tool-pairing.js +0 -84
  122. package/dist/history/repair-tool-pairing.js.map +0 -1
  123. package/dist/history/stall-phase-bridge.js +0 -11
  124. package/dist/history/stall-phase-bridge.js.map +0 -1
  125. package/dist/history/turn-accumulator.js +0 -427
  126. package/dist/history/turn-accumulator.js.map +0 -1
  127. package/dist/index.d.ts.map +0 -1
  128. package/dist/index.js +0 -7
  129. package/dist/index.js.map +0 -1
  130. package/dist/ink-repl.d.ts.map +0 -1
  131. package/dist/ink-repl.js +0 -4183
  132. package/dist/ink-repl.js.map +0 -1
  133. package/dist/local-control-bootstrap.js +0 -26
  134. package/dist/local-control-bootstrap.js.map +0 -1
  135. package/dist/local-control-client.js +0 -2
  136. package/dist/local-control-client.js.map +0 -1
  137. package/dist/local-control-error-reporting.js +0 -34
  138. package/dist/local-control-error-reporting.js.map +0 -1
  139. package/dist/local-control-http-client.js +0 -362
  140. package/dist/local-control-http-client.js.map +0 -1
  141. package/dist/local-control-lazy-wrapper.js +0 -363
  142. package/dist/local-control-lazy-wrapper.js.map +0 -1
  143. package/dist/local-control-manager.js +0 -146
  144. package/dist/local-control-manager.js.map +0 -1
  145. package/dist/main.d.ts.map +0 -1
  146. package/dist/main.js +0 -62
  147. package/dist/main.js.map +0 -1
  148. package/dist/network-security.js +0 -62
  149. package/dist/network-security.js.map +0 -1
  150. package/dist/networking-server.js +0 -38
  151. package/dist/networking-server.js.map +0 -1
  152. package/dist/peer-identity.js +0 -23
  153. package/dist/peer-identity.js.map +0 -1
  154. package/dist/polling-subscription.js +0 -34
  155. package/dist/polling-subscription.js.map +0 -1
  156. package/dist/relaunch.d.ts +0 -63
  157. package/dist/relaunch.d.ts.map +0 -1
  158. package/dist/relaunch.js +0 -617
  159. package/dist/relaunch.js.map +0 -1
  160. package/dist/release-notes.js +0 -35
  161. package/dist/release-notes.js.map +0 -1
  162. package/dist/repl-cleanup.js +0 -47
  163. package/dist/repl-cleanup.js.map +0 -1
  164. package/dist/runtime/configure-bun-sqlite.js +0 -3
  165. package/dist/runtime/configure-bun-sqlite.js.map +0 -1
  166. package/dist/runtime/crash-handlers.js +0 -111
  167. package/dist/runtime/crash-handlers.js.map +0 -1
  168. package/dist/runtime/interactive-invocation.js +0 -39
  169. package/dist/runtime/interactive-invocation.js.map +0 -1
  170. package/dist/runtime/internal-mode.js +0 -14
  171. package/dist/runtime/internal-mode.js.map +0 -1
  172. package/dist/runtime/launch-spec.js +0 -64
  173. package/dist/runtime/launch-spec.js.map +0 -1
  174. package/dist/runtime/owner-lease.js +0 -44
  175. package/dist/runtime/owner-lease.js.map +0 -1
  176. package/dist/runtime/public-mode.js +0 -20
  177. package/dist/runtime/public-mode.js.map +0 -1
  178. package/dist/runtime/run-internal-mode.d.ts.map +0 -1
  179. package/dist/runtime/run-internal-mode.js +0 -18
  180. package/dist/runtime/run-internal-mode.js.map +0 -1
  181. package/dist/runtime/runtime-kind.js +0 -32
  182. package/dist/runtime/runtime-kind.js.map +0 -1
  183. package/dist/runtime/spawn-aria.js +0 -38
  184. package/dist/runtime/spawn-aria.js.map +0 -1
  185. package/dist/selectable-client.js +0 -2
  186. package/dist/selectable-client.js.map +0 -1
  187. package/dist/selectable-peer.js +0 -2
  188. package/dist/selectable-peer.js.map +0 -1
  189. package/dist/session.js +0 -203
  190. package/dist/session.js.map +0 -1
  191. package/dist/slash-commands.js +0 -80
  192. package/dist/slash-commands.js.map +0 -1
  193. package/dist/sounds.js +0 -210
  194. package/dist/sounds.js.map +0 -1
  195. package/dist/ui/App.js +0 -526
  196. package/dist/ui/App.js.map +0 -1
  197. package/dist/ui/components/AnthropicMethodPicker.js +0 -6
  198. package/dist/ui/components/AnthropicMethodPicker.js.map +0 -1
  199. package/dist/ui/components/ArionPrompt.js +0 -15
  200. package/dist/ui/components/ArionPrompt.js.map +0 -1
  201. package/dist/ui/components/AutocompleteDropdown.js +0 -23
  202. package/dist/ui/components/AutocompleteDropdown.js.map +0 -1
  203. package/dist/ui/components/AutonomySelector.js +0 -55
  204. package/dist/ui/components/AutonomySelector.js.map +0 -1
  205. package/dist/ui/components/Banner.js +0 -98
  206. package/dist/ui/components/Banner.js.map +0 -1
  207. package/dist/ui/components/ConversationHistory.js +0 -175
  208. package/dist/ui/components/ConversationHistory.js.map +0 -1
  209. package/dist/ui/components/CopilotDeviceLoginFlow.js +0 -88
  210. package/dist/ui/components/CopilotDeviceLoginFlow.js.map +0 -1
  211. package/dist/ui/components/CopilotSourcePicker.js +0 -50
  212. package/dist/ui/components/CopilotSourcePicker.js.map +0 -1
  213. package/dist/ui/components/Cost.js +0 -10
  214. package/dist/ui/components/Cost.js.map +0 -1
  215. package/dist/ui/components/CustomSelect/option-map.js +0 -30
  216. package/dist/ui/components/CustomSelect/option-map.js.map +0 -1
  217. package/dist/ui/components/CustomSelect/select-option.js +0 -13
  218. package/dist/ui/components/CustomSelect/select-option.js.map +0 -1
  219. package/dist/ui/components/CustomSelect/select.js +0 -42
  220. package/dist/ui/components/CustomSelect/select.js.map +0 -1
  221. package/dist/ui/components/CustomSelect/use-select-state.js +0 -179
  222. package/dist/ui/components/CustomSelect/use-select-state.js.map +0 -1
  223. package/dist/ui/components/CustomSelect/use-select.js +0 -15
  224. package/dist/ui/components/CustomSelect/use-select.js.map +0 -1
  225. package/dist/ui/components/ErrorDisplay.js +0 -35
  226. package/dist/ui/components/ErrorDisplay.js.map +0 -1
  227. package/dist/ui/components/FallbackToolUseRejectedMessage.js +0 -7
  228. package/dist/ui/components/FallbackToolUseRejectedMessage.js.map +0 -1
  229. package/dist/ui/components/FileEditToolUpdatedMessage.js +0 -57
  230. package/dist/ui/components/FileEditToolUpdatedMessage.js.map +0 -1
  231. package/dist/ui/components/HandoffMarker.js +0 -18
  232. package/dist/ui/components/HandoffMarker.js.map +0 -1
  233. package/dist/ui/components/HighlightedCode.js +0 -21
  234. package/dist/ui/components/HighlightedCode.js.map +0 -1
  235. package/dist/ui/components/InputArea.js +0 -187
  236. package/dist/ui/components/InputArea.js.map +0 -1
  237. package/dist/ui/components/Message.js +0 -25
  238. package/dist/ui/components/Message.js.map +0 -1
  239. package/dist/ui/components/OAuthLoginFlow.js +0 -113
  240. package/dist/ui/components/OAuthLoginFlow.js.map +0 -1
  241. package/dist/ui/components/OutputTruncation.js +0 -35
  242. package/dist/ui/components/OutputTruncation.js.map +0 -1
  243. package/dist/ui/components/PermissionPrompt.js +0 -79
  244. package/dist/ui/components/PermissionPrompt.js.map +0 -1
  245. package/dist/ui/components/PipelineTimingPanel.js +0 -15
  246. package/dist/ui/components/PipelineTimingPanel.js.map +0 -1
  247. package/dist/ui/components/ProviderMethodPicker.js +0 -61
  248. package/dist/ui/components/ProviderMethodPicker.js.map +0 -1
  249. package/dist/ui/components/ProviderPicker.js +0 -63
  250. package/dist/ui/components/ProviderPicker.js.map +0 -1
  251. package/dist/ui/components/RenderItemView.js +0 -71
  252. package/dist/ui/components/RenderItemView.js.map +0 -1
  253. package/dist/ui/components/Spinner.js +0 -46
  254. package/dist/ui/components/Spinner.js.map +0 -1
  255. package/dist/ui/components/StatusBar.js +0 -95
  256. package/dist/ui/components/StatusBar.js.map +0 -1
  257. package/dist/ui/components/StreamingIndicator.js +0 -55
  258. package/dist/ui/components/StreamingIndicator.js.map +0 -1
  259. package/dist/ui/components/StructuredDiff.js +0 -168
  260. package/dist/ui/components/StructuredDiff.js.map +0 -1
  261. package/dist/ui/components/TextInputOverlay.js +0 -43
  262. package/dist/ui/components/TextInputOverlay.js.map +0 -1
  263. package/dist/ui/components/ThinkingBlock.js +0 -82
  264. package/dist/ui/components/ThinkingBlock.js.map +0 -1
  265. package/dist/ui/components/ToolCost.js +0 -17
  266. package/dist/ui/components/ToolCost.js.map +0 -1
  267. package/dist/ui/components/ToolExecution.js +0 -61
  268. package/dist/ui/components/ToolExecution.js.map +0 -1
  269. package/dist/ui/components/ToolHeader.js +0 -51
  270. package/dist/ui/components/ToolHeader.js.map +0 -1
  271. package/dist/ui/components/ToolRenderLayoutContext.js +0 -14
  272. package/dist/ui/components/ToolRenderLayoutContext.js.map +0 -1
  273. package/dist/ui/components/ToolResultWrapper.js +0 -6
  274. package/dist/ui/components/ToolResultWrapper.js.map +0 -1
  275. package/dist/ui/components/ToolUseLoader.js +0 -35
  276. package/dist/ui/components/ToolUseLoader.js.map +0 -1
  277. package/dist/ui/components/TraceWaterfall.js +0 -91
  278. package/dist/ui/components/TraceWaterfall.js.map +0 -1
  279. package/dist/ui/components/index.js +0 -33
  280. package/dist/ui/components/index.js.map +0 -1
  281. package/dist/ui/components/messages/AssistantTextMessage.js +0 -25
  282. package/dist/ui/components/messages/AssistantTextMessage.js.map +0 -1
  283. package/dist/ui/components/messages/UserImageMessage.js +0 -12
  284. package/dist/ui/components/messages/UserImageMessage.js.map +0 -1
  285. package/dist/ui/components/messages/UserTextMessage.js +0 -12
  286. package/dist/ui/components/messages/UserTextMessage.js.map +0 -1
  287. package/dist/ui/components/overlays/ArionSelector.js +0 -68
  288. package/dist/ui/components/overlays/ArionSelector.js.map +0 -1
  289. package/dist/ui/components/overlays/ClientSelector.js +0 -62
  290. package/dist/ui/components/overlays/ClientSelector.js.map +0 -1
  291. package/dist/ui/components/overlays/CommandPalette.js +0 -67
  292. package/dist/ui/components/overlays/CommandPalette.js.map +0 -1
  293. package/dist/ui/components/overlays/DaemonControl.js +0 -87
  294. package/dist/ui/components/overlays/DaemonControl.js.map +0 -1
  295. package/dist/ui/components/overlays/InviteShareOverlay.js +0 -15
  296. package/dist/ui/components/overlays/InviteShareOverlay.js.map +0 -1
  297. package/dist/ui/components/overlays/JoinInviteOverlay.js +0 -32
  298. package/dist/ui/components/overlays/JoinInviteOverlay.js.map +0 -1
  299. package/dist/ui/components/overlays/MemoryBrowser.js +0 -100
  300. package/dist/ui/components/overlays/MemoryBrowser.js.map +0 -1
  301. package/dist/ui/components/overlays/MessageSelector.js +0 -123
  302. package/dist/ui/components/overlays/MessageSelector.js.map +0 -1
  303. package/dist/ui/components/overlays/ModelSelector.js +0 -211
  304. package/dist/ui/components/overlays/ModelSelector.js.map +0 -1
  305. package/dist/ui/components/overlays/PairRequestOverlay.js +0 -42
  306. package/dist/ui/components/overlays/PairRequestOverlay.js.map +0 -1
  307. package/dist/ui/components/overlays/PeerSelector.js +0 -84
  308. package/dist/ui/components/overlays/PeerSelector.js.map +0 -1
  309. package/dist/ui/components/overlays/SessionSelector.js +0 -102
  310. package/dist/ui/components/overlays/SessionSelector.js.map +0 -1
  311. package/dist/ui/components/overlays/SoundSelector.js +0 -86
  312. package/dist/ui/components/overlays/SoundSelector.js.map +0 -1
  313. package/dist/ui/components/overlays/ThemeSelector.js +0 -139
  314. package/dist/ui/components/overlays/ThemeSelector.js.map +0 -1
  315. package/dist/ui/components/overlays/index.js +0 -15
  316. package/dist/ui/components/overlays/index.js.map +0 -1
  317. package/dist/ui/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -53
  318. package/dist/ui/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -1
  319. package/dist/ui/components/permissions/FallbackPermissionRequest.js +0 -56
  320. package/dist/ui/components/permissions/FallbackPermissionRequest.js.map +0 -1
  321. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -76
  322. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -1
  323. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -18
  324. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -1
  325. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -64
  326. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -1
  327. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -26
  328. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -1
  329. package/dist/ui/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -141
  330. package/dist/ui/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -1
  331. package/dist/ui/components/permissions/PermissionRequest.js +0 -70
  332. package/dist/ui/components/permissions/PermissionRequest.js.map +0 -1
  333. package/dist/ui/components/permissions/PermissionRequestTitle.js +0 -41
  334. package/dist/ui/components/permissions/PermissionRequestTitle.js.map +0 -1
  335. package/dist/ui/components/permissions/hooks.js +0 -10
  336. package/dist/ui/components/permissions/hooks.js.map +0 -1
  337. package/dist/ui/components/permissions/toolUseOptions.js +0 -68
  338. package/dist/ui/components/permissions/toolUseOptions.js.map +0 -1
  339. package/dist/ui/components/permissions/utils.js +0 -10
  340. package/dist/ui/components/permissions/utils.js.map +0 -1
  341. package/dist/ui/components/text-input/Cursor.js +0 -326
  342. package/dist/ui/components/text-input/Cursor.js.map +0 -1
  343. package/dist/ui/components/text-input/TextInput.js +0 -231
  344. package/dist/ui/components/text-input/TextInput.js.map +0 -1
  345. package/dist/ui/components/text-input/imagePaste.js +0 -28
  346. package/dist/ui/components/text-input/imagePaste.js.map +0 -1
  347. package/dist/ui/components/text-input/index.js +0 -6
  348. package/dist/ui/components/text-input/index.js.map +0 -1
  349. package/dist/ui/components/text-input/useDoublePress.js +0 -30
  350. package/dist/ui/components/text-input/useDoublePress.js.map +0 -1
  351. package/dist/ui/components/text-input/useTextInput.js +0 -245
  352. package/dist/ui/components/text-input/useTextInput.js.map +0 -1
  353. package/dist/ui/components/tool-types.js +0 -9
  354. package/dist/ui/components/tool-types.js.map +0 -1
  355. package/dist/ui/constants/figures.js +0 -4
  356. package/dist/ui/constants/figures.js.map +0 -1
  357. package/dist/ui/constants/index.js +0 -3
  358. package/dist/ui/constants/index.js.map +0 -1
  359. package/dist/ui/display-mode.js +0 -93
  360. package/dist/ui/display-mode.js.map +0 -1
  361. package/dist/ui/display-policy.js +0 -19
  362. package/dist/ui/display-policy.js.map +0 -1
  363. package/dist/ui/hooks/index.js +0 -6
  364. package/dist/ui/hooks/index.js.map +0 -1
  365. package/dist/ui/hooks/useCommandAutocomplete.js +0 -93
  366. package/dist/ui/hooks/useCommandAutocomplete.js.map +0 -1
  367. package/dist/ui/hooks/useDoublePress.js +0 -37
  368. package/dist/ui/hooks/useDoublePress.js.map +0 -1
  369. package/dist/ui/hooks/useIndicatorState.js +0 -55
  370. package/dist/ui/hooks/useIndicatorState.js.map +0 -1
  371. package/dist/ui/hooks/useInterval.js +0 -23
  372. package/dist/ui/hooks/useInterval.js.map +0 -1
  373. package/dist/ui/hooks/useKeyboardShortcuts.js +0 -127
  374. package/dist/ui/hooks/useKeyboardShortcuts.js.map +0 -1
  375. package/dist/ui/hooks/useTerminalSize.js +0 -55
  376. package/dist/ui/hooks/useTerminalSize.js.map +0 -1
  377. package/dist/ui/hooks/useUnifiedMessages.js +0 -117
  378. package/dist/ui/hooks/useUnifiedMessages.js.map +0 -1
  379. package/dist/ui/indicator-state.js +0 -44
  380. package/dist/ui/indicator-state.js.map +0 -1
  381. package/dist/ui/markdown/highlight.js +0 -44
  382. package/dist/ui/markdown/highlight.js.map +0 -1
  383. package/dist/ui/markdown/index.js +0 -1460
  384. package/dist/ui/markdown/index.js.map +0 -1
  385. package/dist/ui/markdown/tokenizer.js +0 -24
  386. package/dist/ui/markdown/tokenizer.js.map +0 -1
  387. package/dist/ui/render-item.js +0 -5
  388. package/dist/ui/render-item.js.map +0 -1
  389. package/dist/ui/screens/REPL.js +0 -119
  390. package/dist/ui/screens/REPL.js.map +0 -1
  391. package/dist/ui/screens/approval-lifecycle.js +0 -38
  392. package/dist/ui/screens/approval-lifecycle.js.map +0 -1
  393. package/dist/ui/status-line.js +0 -72
  394. package/dist/ui/status-line.js.map +0 -1
  395. package/dist/ui/theme/index.js +0 -51
  396. package/dist/ui/theme/index.js.map +0 -1
  397. package/dist/ui/theme/themes/claude-dark-daltonized.js +0 -51
  398. package/dist/ui/theme/themes/claude-dark-daltonized.js.map +0 -1
  399. package/dist/ui/theme/themes/claude-dark.js +0 -50
  400. package/dist/ui/theme/themes/claude-dark.js.map +0 -1
  401. package/dist/ui/theme/themes/claude-light-daltonized.js +0 -51
  402. package/dist/ui/theme/themes/claude-light-daltonized.js.map +0 -1
  403. package/dist/ui/theme/themes/claude-light.js +0 -50
  404. package/dist/ui/theme/themes/claude-light.js.map +0 -1
  405. package/dist/ui/theme/themes/dark-accessible.js +0 -18
  406. package/dist/ui/theme/themes/dark-accessible.js.map +0 -1
  407. package/dist/ui/theme/themes/dark.js +0 -49
  408. package/dist/ui/theme/themes/dark.js.map +0 -1
  409. package/dist/ui/theme/themes/light-accessible.js +0 -18
  410. package/dist/ui/theme/themes/light-accessible.js.map +0 -1
  411. package/dist/ui/theme/themes/light.js +0 -49
  412. package/dist/ui/theme/themes/light.js.map +0 -1
  413. package/dist/ui/theme/types.js +0 -3
  414. package/dist/ui/theme/types.js.map +0 -1
  415. package/dist/ui/theme.js +0 -142
  416. package/dist/ui/theme.js.map +0 -1
  417. package/dist/ui/to-render-items.js +0 -145
  418. package/dist/ui/to-render-items.js.map +0 -1
  419. package/dist/ui/tools/AgentTool/index.js +0 -30
  420. package/dist/ui/tools/AgentTool/index.js.map +0 -1
  421. package/dist/ui/tools/ArchitectTool/index.js +0 -31
  422. package/dist/ui/tools/ArchitectTool/index.js.map +0 -1
  423. package/dist/ui/tools/AskUserTool/index.js +0 -46
  424. package/dist/ui/tools/AskUserTool/index.js.map +0 -1
  425. package/dist/ui/tools/BashTool/BashToolResultMessage.js +0 -11
  426. package/dist/ui/tools/BashTool/BashToolResultMessage.js.map +0 -1
  427. package/dist/ui/tools/BashTool/OutputLine.js +0 -21
  428. package/dist/ui/tools/BashTool/OutputLine.js.map +0 -1
  429. package/dist/ui/tools/BashTool/index.js +0 -91
  430. package/dist/ui/tools/BashTool/index.js.map +0 -1
  431. package/dist/ui/tools/BrowseTool/index.js +0 -43
  432. package/dist/ui/tools/BrowseTool/index.js.map +0 -1
  433. package/dist/ui/tools/BrowserTool/index.js +0 -47
  434. package/dist/ui/tools/BrowserTool/index.js.map +0 -1
  435. package/dist/ui/tools/CbmTool/index.js +0 -188
  436. package/dist/ui/tools/CbmTool/index.js.map +0 -1
  437. package/dist/ui/tools/CheckDelegationTool/index.js +0 -46
  438. package/dist/ui/tools/CheckDelegationTool/index.js.map +0 -1
  439. package/dist/ui/tools/CheckMessagesTool/index.js +0 -85
  440. package/dist/ui/tools/CheckMessagesTool/index.js.map +0 -1
  441. package/dist/ui/tools/CreateQuipTool/index.js +0 -30
  442. package/dist/ui/tools/CreateQuipTool/index.js.map +0 -1
  443. package/dist/ui/tools/CreateSkillTool/index.js +0 -22
  444. package/dist/ui/tools/CreateSkillTool/index.js.map +0 -1
  445. package/dist/ui/tools/CreateToolTool/index.js +0 -31
  446. package/dist/ui/tools/CreateToolTool/index.js.map +0 -1
  447. package/dist/ui/tools/DelegateRemoteTool/index.js +0 -42
  448. package/dist/ui/tools/DelegateRemoteTool/index.js.map +0 -1
  449. package/dist/ui/tools/DeployTool/index.js +0 -47
  450. package/dist/ui/tools/DeployTool/index.js.map +0 -1
  451. package/dist/ui/tools/FffTool/index.js +0 -103
  452. package/dist/ui/tools/FffTool/index.js.map +0 -1
  453. package/dist/ui/tools/FileEditTool/index.js +0 -67
  454. package/dist/ui/tools/FileEditTool/index.js.map +0 -1
  455. package/dist/ui/tools/FileReadTool/index.js +0 -68
  456. package/dist/ui/tools/FileReadTool/index.js.map +0 -1
  457. package/dist/ui/tools/FileWriteTool/index.js +0 -61
  458. package/dist/ui/tools/FileWriteTool/index.js.map +0 -1
  459. package/dist/ui/tools/ForkTool/index.js +0 -47
  460. package/dist/ui/tools/ForkTool/index.js.map +0 -1
  461. package/dist/ui/tools/FrgTool/index.js +0 -96
  462. package/dist/ui/tools/FrgTool/index.js.map +0 -1
  463. package/dist/ui/tools/GetThreadTool/index.js +0 -39
  464. package/dist/ui/tools/GetThreadTool/index.js.map +0 -1
  465. package/dist/ui/tools/GlobTool/index.js +0 -50
  466. package/dist/ui/tools/GlobTool/index.js.map +0 -1
  467. package/dist/ui/tools/GrepTool/index.js +0 -84
  468. package/dist/ui/tools/GrepTool/index.js.map +0 -1
  469. package/dist/ui/tools/HatchArionTool/index.js +0 -36
  470. package/dist/ui/tools/HatchArionTool/index.js.map +0 -1
  471. package/dist/ui/tools/LearnSkillTool/index.js +0 -22
  472. package/dist/ui/tools/LearnSkillTool/index.js.map +0 -1
  473. package/dist/ui/tools/LearnTool/index.js +0 -43
  474. package/dist/ui/tools/LearnTool/index.js.map +0 -1
  475. package/dist/ui/tools/LearnToolTool/index.js +0 -22
  476. package/dist/ui/tools/LearnToolTool/index.js.map +0 -1
  477. package/dist/ui/tools/ListClientsTool/index.js +0 -39
  478. package/dist/ui/tools/ListClientsTool/index.js.map +0 -1
  479. package/dist/ui/tools/LspTool/index.js +0 -261
  480. package/dist/ui/tools/LspTool/index.js.map +0 -1
  481. package/dist/ui/tools/MCPTool/index.js +0 -33
  482. package/dist/ui/tools/MCPTool/index.js.map +0 -1
  483. package/dist/ui/tools/ManageNetworkTool/index.js +0 -53
  484. package/dist/ui/tools/ManageNetworkTool/index.js.map +0 -1
  485. package/dist/ui/tools/MemoryReadTool/index.js +0 -64
  486. package/dist/ui/tools/MemoryReadTool/index.js.map +0 -1
  487. package/dist/ui/tools/MemoryWriteTool/index.js +0 -20
  488. package/dist/ui/tools/MemoryWriteTool/index.js.map +0 -1
  489. package/dist/ui/tools/NotebookEditTool/index.js +0 -33
  490. package/dist/ui/tools/NotebookEditTool/index.js.map +0 -1
  491. package/dist/ui/tools/NotebookReadTool/index.js +0 -25
  492. package/dist/ui/tools/NotebookReadTool/index.js.map +0 -1
  493. package/dist/ui/tools/OutlookReadTool/index.js +0 -66
  494. package/dist/ui/tools/OutlookReadTool/index.js.map +0 -1
  495. package/dist/ui/tools/OutlookReplyTool/index.js +0 -49
  496. package/dist/ui/tools/OutlookReplyTool/index.js.map +0 -1
  497. package/dist/ui/tools/OutlookSendTool/index.js +0 -49
  498. package/dist/ui/tools/OutlookSendTool/index.js.map +0 -1
  499. package/dist/ui/tools/PauseDelegationTool/index.js +0 -35
  500. package/dist/ui/tools/PauseDelegationTool/index.js.map +0 -1
  501. package/dist/ui/tools/ProbeTool/index.js +0 -121
  502. package/dist/ui/tools/ProbeTool/index.js.map +0 -1
  503. package/dist/ui/tools/ProcessTool/index.js +0 -66
  504. package/dist/ui/tools/ProcessTool/index.js.map +0 -1
  505. package/dist/ui/tools/QuestListTool/index.js +0 -46
  506. package/dist/ui/tools/QuestListTool/index.js.map +0 -1
  507. package/dist/ui/tools/QuestReportTool/index.js +0 -49
  508. package/dist/ui/tools/QuestReportTool/index.js.map +0 -1
  509. package/dist/ui/tools/QuestUpdateTool/index.js +0 -87
  510. package/dist/ui/tools/QuestUpdateTool/index.js.map +0 -1
  511. package/dist/ui/tools/QuipCommentTool/index.js +0 -69
  512. package/dist/ui/tools/QuipCommentTool/index.js.map +0 -1
  513. package/dist/ui/tools/QuipReadTool/index.js +0 -71
  514. package/dist/ui/tools/QuipReadTool/index.js.map +0 -1
  515. package/dist/ui/tools/RestArionTool/index.js +0 -32
  516. package/dist/ui/tools/RestArionTool/index.js.map +0 -1
  517. package/dist/ui/tools/RestartTool/index.js +0 -35
  518. package/dist/ui/tools/RestartTool/index.js.map +0 -1
  519. package/dist/ui/tools/ResumeDelegationTool/index.js +0 -35
  520. package/dist/ui/tools/ResumeDelegationTool/index.js.map +0 -1
  521. package/dist/ui/tools/RetireArionTool/index.js +0 -32
  522. package/dist/ui/tools/RetireArionTool/index.js.map +0 -1
  523. package/dist/ui/tools/RgTool/index.js +0 -73
  524. package/dist/ui/tools/RgTool/index.js.map +0 -1
  525. package/dist/ui/tools/SearchKnowledgeTool/index.js +0 -43
  526. package/dist/ui/tools/SearchKnowledgeTool/index.js.map +0 -1
  527. package/dist/ui/tools/SearchMessagesTool/index.js +0 -43
  528. package/dist/ui/tools/SearchMessagesTool/index.js.map +0 -1
  529. package/dist/ui/tools/SelfDiagnoseTool/index.js +0 -61
  530. package/dist/ui/tools/SelfDiagnoseTool/index.js.map +0 -1
  531. package/dist/ui/tools/SendMessageTool/index.js +0 -45
  532. package/dist/ui/tools/SendMessageTool/index.js.map +0 -1
  533. package/dist/ui/tools/SerenaTool/index.js +0 -124
  534. package/dist/ui/tools/SerenaTool/index.js.map +0 -1
  535. package/dist/ui/tools/SessionHistoryTool/index.js +0 -52
  536. package/dist/ui/tools/SessionHistoryTool/index.js.map +0 -1
  537. package/dist/ui/tools/SgTool/index.js +0 -80
  538. package/dist/ui/tools/SgTool/index.js.map +0 -1
  539. package/dist/ui/tools/SlackReactTool/index.js +0 -41
  540. package/dist/ui/tools/SlackReactTool/index.js.map +0 -1
  541. package/dist/ui/tools/SlackReadTool/index.js +0 -48
  542. package/dist/ui/tools/SlackReadTool/index.js.map +0 -1
  543. package/dist/ui/tools/SlackSendTool/index.js +0 -45
  544. package/dist/ui/tools/SlackSendTool/index.js.map +0 -1
  545. package/dist/ui/tools/SpawnWorkerTool/index.js +0 -33
  546. package/dist/ui/tools/SpawnWorkerTool/index.js.map +0 -1
  547. package/dist/ui/tools/StickerRequestTool/index.js +0 -19
  548. package/dist/ui/tools/StickerRequestTool/index.js.map +0 -1
  549. package/dist/ui/tools/ThinkTool/index.js +0 -17
  550. package/dist/ui/tools/ThinkTool/index.js.map +0 -1
  551. package/dist/ui/tools/UgTool/index.js +0 -108
  552. package/dist/ui/tools/UgTool/index.js.map +0 -1
  553. package/dist/ui/tools/UseSkillTool/index.js +0 -22
  554. package/dist/ui/tools/UseSkillTool/index.js.map +0 -1
  555. package/dist/ui/tools/WakeArionTool/index.js +0 -32
  556. package/dist/ui/tools/WakeArionTool/index.js.map +0 -1
  557. package/dist/ui/tools/WebFetchTool/index.js +0 -56
  558. package/dist/ui/tools/WebFetchTool/index.js.map +0 -1
  559. package/dist/ui/tools/WebSearchTool/index.js +0 -44
  560. package/dist/ui/tools/WebSearchTool/index.js.map +0 -1
  561. package/dist/ui/tools/lsTool/index.js +0 -58
  562. package/dist/ui/tools/lsTool/index.js.map +0 -1
  563. package/dist/ui/tools/registry.js +0 -197
  564. package/dist/ui/tools/registry.js.map +0 -1
  565. package/dist/ui/tools/tool-renderer.js +0 -11
  566. package/dist/ui/tools/tool-renderer.js.map +0 -1
  567. package/dist/ui/tools/truncation.js +0 -35
  568. package/dist/ui/tools/truncation.js.map +0 -1
  569. package/dist/ui/types/anthropic.js +0 -4
  570. package/dist/ui/types/anthropic.js.map +0 -1
  571. package/dist/ui/types/index.js +0 -2
  572. package/dist/ui/types/index.js.map +0 -1
  573. package/dist/ui/types/message.js +0 -3
  574. package/dist/ui/types/message.js.map +0 -1
  575. package/dist/ui/types/tool.js +0 -4
  576. package/dist/ui/types/tool.js.map +0 -1
  577. package/dist/ui/utils/array.js +0 -4
  578. package/dist/ui/utils/array.js.map +0 -1
  579. package/dist/ui/utils/cursor.js +0 -131
  580. package/dist/ui/utils/cursor.js.map +0 -1
  581. package/dist/ui/utils/diff.js +0 -120
  582. package/dist/ui/utils/diff.js.map +0 -1
  583. package/dist/ui/utils/format.js +0 -42
  584. package/dist/ui/utils/format.js.map +0 -1
  585. package/dist/ui/utils/fuzzy.js +0 -59
  586. package/dist/ui/utils/fuzzy.js.map +0 -1
  587. package/dist/ui/utils/index.js +0 -11
  588. package/dist/ui/utils/index.js.map +0 -1
  589. package/dist/ui/utils/keys.js +0 -8
  590. package/dist/ui/utils/keys.js.map +0 -1
  591. package/dist/ui/utils/patch.js +0 -17
  592. package/dist/ui/utils/patch.js.map +0 -1
  593. package/dist/ui/utils/risk.js +0 -114
  594. package/dist/ui/utils/risk.js.map +0 -1
  595. package/dist/ui/utils/terminal-image.js +0 -70
  596. package/dist/ui/utils/terminal-image.js.map +0 -1
  597. package/dist/ui/utils/validation.js +0 -48
  598. package/dist/ui/utils/validation.js.map +0 -1
  599. package/dist/ui/verb-pairs.js +0 -248
  600. package/dist/ui/verb-pairs.js.map +0 -1
  601. package/dist/ui.js +0 -131
  602. package/dist/ui.js.map +0 -1
  603. package/src/entrypoints/command-mode.ts +0 -5
  604. package/src/entrypoints/daemon.ts +0 -54
  605. package/src/entrypoints/headless-stdio.ts +0 -27
  606. package/src/entrypoints/interactive.ts +0 -112
  607. package/src/main.ts +0 -72
  608. package/src/runtime/configure-bun-sqlite.ts +0 -3
  609. package/src/runtime/crash-handlers.ts +0 -128
  610. package/src/runtime/interactive-invocation.test.ts +0 -42
  611. package/src/runtime/interactive-invocation.ts +0 -51
  612. package/src/runtime/internal-mode.test.ts +0 -19
  613. package/src/runtime/internal-mode.ts +0 -24
  614. package/src/runtime/launch-spec.test.ts +0 -26
  615. package/src/runtime/launch-spec.ts +0 -84
  616. package/src/runtime/owner-lease.ts +0 -52
  617. package/src/runtime/public-mode.test.ts +0 -18
  618. package/src/runtime/public-mode.ts +0 -19
  619. package/src/runtime/run-internal-mode.ts +0 -19
  620. package/src/runtime/runtime-kind.test.ts +0 -23
  621. package/src/runtime/runtime-kind.ts +0 -41
  622. package/src/runtime/spawn-aria.ts +0 -62
package/dist/relaunch.js DELETED
@@ -1,617 +0,0 @@
1
- /**
2
- * @aria/cli - Relaunch / self-restart infrastructure
3
- *
4
- * Implements the parent-child supervisor pattern (inspired by gemini-cli):
5
- *
6
- * Parent process (supervisor)
7
- * └─ spawns child with ARIA_NO_RELAUNCH=true, stdio: inherit
8
- * └─ loops: if child exits with RELAUNCH_EXIT_CODE → respawn
9
- * └─ otherwise: propagate exit code and exit
10
- *
11
- * Child process (actual ARIA)
12
- * └─ runs the Ink REPL normally
13
- * └─ on restart: requestRelaunch() → process.exit(RELAUNCH_EXIT_CODE)
14
- * └─ supervisor catches it and respawns
15
- *
16
- * This replaces the fragile "detached spawn + kill self" approach
17
- * with a reliable supervisor loop that inherits the terminal properly.
18
- */
19
- import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, readdirSync, } from "node:fs";
20
- import { dirname, join, resolve } from "node:path";
21
- import { NO_RELAUNCH_ENV, RELAUNCH_EXIT_CODE, RESUME_ARION_ENV, RESUME_SESSION_ENV, RESTART_KIND_ENV, clearRelaunchMarker as clearSharedRelaunchMarker, readRelaunchMarker as readSharedRelaunchMarker, writeRelaunchMarker as writeSharedRelaunchMarker, } from "@aria-cli/types";
22
- import { getAriaDir } from "./config.js";
23
- import { resolveAriaLaunchSpec } from "./runtime/launch-spec.js";
24
- import { spawnAria } from "./runtime/spawn-aria.js";
25
- export { NO_RELAUNCH_ENV, RELAUNCH_EXIT_CODE, RESUME_ARION_ENV, RESUME_SESSION_ENV, RESTART_KIND_ENV, } from "@aria-cli/types";
26
- export function writeRelaunchMarker(marker) {
27
- writeSharedRelaunchMarker(marker);
28
- }
29
- export function readRelaunchMarker(pid) {
30
- return readSharedRelaunchMarker(pid);
31
- }
32
- export function clearRelaunchMarker(pid) {
33
- clearSharedRelaunchMarker(pid);
34
- }
35
- function isIgnorableTerminalWriteError(error) {
36
- if (!error || typeof error !== "object")
37
- return false;
38
- const maybe = error;
39
- return maybe.code === "EPIPE" || maybe.code === "EIO" || maybe.code === "ERR_STREAM_DESTROYED";
40
- }
41
- function writeSupervisorStderr(message) {
42
- try {
43
- process.stderr.write(message);
44
- }
45
- catch (error) {
46
- if (isIgnorableTerminalWriteError(error)) {
47
- return;
48
- }
49
- throw error;
50
- }
51
- }
52
- function isProcessExitSentinel(error) {
53
- if (!error || typeof error !== "object") {
54
- return error instanceof Error && /^exit:\d+$/.test(error.message);
55
- }
56
- if (error.__ariaProcessExit === true) {
57
- return true;
58
- }
59
- return error instanceof Error && /^exit:\d+$/.test(error.message);
60
- }
61
- /** Maximum age (ms) for a relaunch marker to be considered valid. */
62
- const RELAUNCH_MARKER_TTL_MS = 30_000;
63
- let pendingResumeSessionId = process.env[RESUME_SESSION_ENV] ?? null;
64
- let pendingArionName = process.env[RESUME_ARION_ENV] || "ARIA";
65
- export function setPendingResumeSessionId(sessionId) {
66
- const normalized = sessionId?.trim() || null;
67
- pendingResumeSessionId = normalized;
68
- if (normalized) {
69
- process.env[RESUME_SESSION_ENV] = normalized;
70
- }
71
- else {
72
- delete process.env[RESUME_SESSION_ENV];
73
- }
74
- }
75
- export function getPendingResumeSessionId() {
76
- return pendingResumeSessionId;
77
- }
78
- export function setPendingArionName(name) {
79
- pendingArionName = name || "ARIA";
80
- process.env[RESUME_ARION_ENV] = pendingArionName;
81
- }
82
- export function getPendingArionName() {
83
- return pendingArionName;
84
- }
85
- function findBunWorkspaceRoot(startDir) {
86
- let dir = resolve(startDir);
87
- while (true) {
88
- if (existsSync(join(dir, "bunfig.toml")) || existsSync(join(dir, "bun.lock")))
89
- return dir;
90
- const parent = dirname(dir);
91
- if (parent === dir)
92
- return null;
93
- dir = parent;
94
- }
95
- }
96
- function getBunCommand() {
97
- return process.platform === "win32" ? "bun.exe" : "bun";
98
- }
99
- /**
100
- * Rebuild workspace before relaunch (dev workflow).
101
- *
102
- * This is best-effort and only runs when a bun workspace root is detected.
103
- */
104
- export async function rebuildWorkspaceIfPresent(startDir = process.cwd()) {
105
- const root = findBunWorkspaceRoot(startDir);
106
- if (!root)
107
- return { attempted: false };
108
- const started = Date.now();
109
- const command = getBunCommand();
110
- const proc = Bun.spawn([command, "run", "build"], {
111
- cwd: root,
112
- env: process.env,
113
- stdin: "inherit",
114
- stdout: "inherit",
115
- stderr: "inherit",
116
- });
117
- const code = await proc.exited;
118
- if (code !== 0) {
119
- throw new Error(`bun run build failed with exit code ${code}`);
120
- }
121
- return {
122
- attempted: true,
123
- root,
124
- durationMs: Date.now() - started,
125
- };
126
- }
127
- /**
128
- * Returns true if we are already running inside a supervised child process.
129
- */
130
- export function isChildProcess() {
131
- return process.env[NO_RELAUNCH_ENV] === "true";
132
- }
133
- /**
134
- * Trigger a relaunch from the child process.
135
- *
136
- * Two modes:
137
- * 1. Supervised child (normal): IPC handoff to supervisor + exit(RELAUNCH_EXIT_CODE)
138
- * 2. Compiled direct (no supervisor): spawn a new process with resume env vars,
139
- * wait for it, and propagate its exit code. This avoids loading the 82MB
140
- * binary twice on the initial startup while still supporting relaunch.
141
- */
142
- export async function requestRelaunch(reason, resumeSessionId) {
143
- const logReason = reason || "Restart requested";
144
- if (resumeSessionId !== undefined) {
145
- setPendingResumeSessionId(resumeSessionId);
146
- }
147
- const sessionId = getPendingResumeSessionId();
148
- const arionName = getPendingArionName();
149
- writeSupervisorStderr(`[aria] Relaunch requested: ${logReason} (session=${sessionId?.slice(0, 8) ?? "none"}, arion=${arionName})\n`);
150
- // Write disk-backed marker as durable fallback in case IPC is lost.
151
- const markerPid = process.ppid || process.pid;
152
- writeRelaunchMarker({
153
- sessionId,
154
- arionName,
155
- pid: markerPid,
156
- timestamp: new Date().toISOString(),
157
- });
158
- // ── Compiled direct mode: no supervisor listening ──────────────────
159
- // Spawn a new ARIA process (supervisor mode) with resume env vars.
160
- // The current process waits for the child and propagates its exit code
161
- // so the terminal stays owned by an ARIA process throughout.
162
- const hasSupervisor = typeof process.send === "function";
163
- if (!hasSupervisor) {
164
- const spec = resolveAriaLaunchSpec({
165
- mode: "repl",
166
- args: [],
167
- env: {
168
- ...process.env,
169
- [NO_RELAUNCH_ENV]: "", // clear — enter supervisor mode
170
- ARIA_USE_SUPERVISOR: "1", // skip compiled-direct, use supervisor loop
171
- [RESUME_SESSION_ENV]: sessionId || "",
172
- [RESUME_ARION_ENV]: arionName,
173
- [RESTART_KIND_ENV]: "explicit",
174
- },
175
- });
176
- writeSupervisorStderr(`[aria] Spawning new supervisor for relaunch...\n`);
177
- const child = spawnAria(spec);
178
- const code = await new Promise((resolve) => {
179
- child.on("close", (c) => resolve(typeof c === "number" ? c : 1));
180
- child.on("error", () => resolve(1));
181
- });
182
- process.exit(code);
183
- throw new Error("Unreachable");
184
- }
185
- // ── Supervised child mode: IPC handoff ─────────────────────────────
186
- // Inform the parent supervisor which session to auto-resume after respawn.
187
- try {
188
- const send = process.send;
189
- if (typeof send === "function") {
190
- const nonce = `${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
191
- const acked = await new Promise((resolve) => {
192
- let settled = false;
193
- const timeout = setTimeout(() => {
194
- if (settled)
195
- return;
196
- settled = true;
197
- process.off("message", onMessage);
198
- resolve(false);
199
- }, 120);
200
- const onMessage = (msg) => {
201
- if (!msg || typeof msg !== "object")
202
- return;
203
- const payload = msg;
204
- if (payload.type !== "aria-relaunch-ack")
205
- return;
206
- if (payload.nonce !== nonce)
207
- return;
208
- if (settled)
209
- return;
210
- settled = true;
211
- clearTimeout(timeout);
212
- process.off("message", onMessage);
213
- resolve(true);
214
- };
215
- process.on("message", onMessage);
216
- send({ type: "aria-relaunch", nonce, resumeSessionId: sessionId, arionName }, (err) => {
217
- if (err && !settled) {
218
- settled = true;
219
- clearTimeout(timeout);
220
- process.off("message", onMessage);
221
- resolve(false);
222
- }
223
- });
224
- });
225
- if (acked) {
226
- writeSupervisorStderr(`[aria] IPC handoff acknowledged by supervisor\n`);
227
- }
228
- else {
229
- writeSupervisorStderr(`[aria] IPC ack timeout — disk marker will be used as fallback\n`);
230
- }
231
- }
232
- }
233
- catch {
234
- // Non-fatal: disk marker is the fallback.
235
- }
236
- process.exit(RELAUNCH_EXIT_CODE);
237
- // Unreachable — satisfies TypeScript
238
- throw new Error("Unreachable");
239
- }
240
- /**
241
- * Supervisor loop: spawns ARIA as a child process and respawns on RELAUNCH_EXIT_CODE.
242
- *
243
- * The child inherits the terminal (stdio: inherit) so the user experience
244
- * is seamless. The parent just watches and re-executes when needed.
245
- *
246
- * @param scriptPath - Legacy compatibility label retained for tests/callers
247
- * @param scriptArgs - Arguments to forward to the internal REPL mode
248
- * @param nodeArgs - Legacy compatibility placeholder (ignored)
249
- */
250
- /** Maximum consecutive crash restarts before giving up. */
251
- const MAX_CRASH_RESTARTS = 3;
252
- function getCrashStatePath(...parts) {
253
- return join(getAriaDir(), ...parts);
254
- }
255
- function getCrashMarkerDir() {
256
- return getCrashStatePath("crash-markers");
257
- }
258
- function getCrashMarkerPath(sessionId) {
259
- return join(getCrashMarkerDir(), `${sessionId}.json`);
260
- }
261
- function readCrashMarker(sessionId) {
262
- const markerPath = getCrashMarkerPath(sessionId);
263
- if (!existsSync(markerPath))
264
- return null;
265
- try {
266
- return JSON.parse(readFileSync(markerPath, "utf-8"));
267
- }
268
- catch {
269
- return null;
270
- }
271
- }
272
- function writeCrashMarker(marker) {
273
- try {
274
- const dir = getCrashMarkerDir();
275
- mkdirSync(dir, { recursive: true });
276
- writeFileSync(getCrashMarkerPath(marker.sessionId), JSON.stringify(marker), "utf-8");
277
- }
278
- catch {
279
- // Best-effort — don't crash the supervisor over crash tracking
280
- }
281
- }
282
- function clearCrashMarker(sessionId) {
283
- try {
284
- const markerPath = getCrashMarkerPath(sessionId);
285
- if (existsSync(markerPath))
286
- unlinkSync(markerPath);
287
- }
288
- catch {
289
- // Best-effort
290
- }
291
- }
292
- function getCrashReportPath() {
293
- return getCrashStatePath("crash-reports", "latest.json");
294
- }
295
- function abandonPoisonedResumeSession(sessionId, crashCount) {
296
- writeSupervisorStderr(`[aria] Session ${sessionId} exceeded crash limit (${crashCount}/${MAX_CRASH_RESTARTS}). ` +
297
- `Starting fresh instead of resuming.\n`);
298
- clearCrashMarker(sessionId);
299
- pendingResumeSessionId = null;
300
- setPendingResumeSessionId(null);
301
- }
302
- function readAndClearCrashReport() {
303
- const reportPath = getCrashReportPath();
304
- if (!existsSync(reportPath))
305
- return null;
306
- try {
307
- const raw = JSON.parse(readFileSync(reportPath, "utf-8"));
308
- try {
309
- unlinkSync(reportPath);
310
- }
311
- catch {
312
- /* best effort */
313
- }
314
- return {
315
- message: raw?.error?.message ?? "unknown",
316
- stack: raw?.error?.stack ?? undefined,
317
- heapMb: raw?.process?.heapUsedMb,
318
- rssMb: raw?.process?.rssMb,
319
- };
320
- }
321
- catch {
322
- try {
323
- unlinkSync(reportPath);
324
- }
325
- catch {
326
- /* best effort */
327
- }
328
- return null;
329
- }
330
- }
331
- /**
332
- * Unified fallback resolver for recovering session context when IPC handoff
333
- * is lost (child exited before parent received the message).
334
- *
335
- * Priority order:
336
- * 1. Disk-backed relaunch marker (written by child before exit)
337
- * 2. SessionHistory lookup (most recent incomplete session for the active arion)
338
- *
339
- * Used for both crash recovery AND explicit restart recovery.
340
- */
341
- async function recoverResumeContext(currentArionName) {
342
- // 1. Try disk-backed relaunch marker (namespaced by current child PID)
343
- const marker = readRelaunchMarker(process.pid);
344
- if (marker) {
345
- const age = Date.now() - new Date(marker.timestamp).getTime();
346
- if (age < RELAUNCH_MARKER_TTL_MS) {
347
- clearRelaunchMarker(process.pid);
348
- return {
349
- sessionId: marker.sessionId,
350
- arionName: marker.arionName || currentArionName,
351
- source: "marker",
352
- };
353
- }
354
- // Stale marker — clean up
355
- clearRelaunchMarker(process.pid);
356
- }
357
- // 2. Query SessionHistory for most recent incomplete session
358
- // First preferred arion, then scan other arions and choose most recently updated.
359
- try {
360
- const { SessionHistory } = await import("./history/index.js");
361
- const { getAriaDir } = await import("./config.js");
362
- const ariaDir = getAriaDir();
363
- const candidateArions = new Set([currentArionName]);
364
- const arionsDir = join(ariaDir, "arions");
365
- if (existsSync(arionsDir)) {
366
- for (const entry of readdirSync(arionsDir, { withFileTypes: true })) {
367
- if (entry.isDirectory() && entry.name.trim()) {
368
- candidateArions.add(entry.name.trim());
369
- }
370
- }
371
- }
372
- let best = null;
373
- for (const arionName of candidateArions) {
374
- const dbPath = SessionHistory.resolvePerArionPath(ariaDir, arionName);
375
- if (!existsSync(dbPath))
376
- continue;
377
- const tmpHistory = new SessionHistory(dbPath);
378
- try {
379
- const incomplete = tmpHistory.getIncompleteSessions(1);
380
- if (incomplete.length === 0)
381
- continue;
382
- const top = incomplete[0];
383
- const updatedAtMs = top.updatedAt.getTime();
384
- // Prefer current arion first when timestamps tie.
385
- if (!best ||
386
- updatedAtMs > best.updatedAtMs ||
387
- (updatedAtMs === best.updatedAtMs && arionName === currentArionName)) {
388
- best = {
389
- sessionId: top.id,
390
- arionName,
391
- updatedAtMs,
392
- };
393
- }
394
- }
395
- finally {
396
- tmpHistory.close();
397
- }
398
- }
399
- if (best) {
400
- return {
401
- sessionId: best.sessionId,
402
- arionName: best.arionName,
403
- source: best.arionName === currentArionName ? "history" : "history-scan",
404
- };
405
- }
406
- }
407
- catch (err) {
408
- writeSupervisorStderr(`[aria] SessionHistory fallback failed: ${err instanceof Error ? err.message : String(err)}\n`);
409
- }
410
- return { sessionId: null, arionName: currentArionName, source: "none" };
411
- }
412
- export async function supervise(scriptPath, scriptArgs, nodeArgs = [], options = {}) {
413
- // Restore crash count from persistent marker if resuming a session
414
- let consecutiveCrashes = 0;
415
- if (pendingResumeSessionId) {
416
- const marker = readCrashMarker(pendingResumeSessionId);
417
- if (marker) {
418
- consecutiveCrashes = marker.count;
419
- if (consecutiveCrashes >= MAX_CRASH_RESTARTS) {
420
- abandonPoisonedResumeSession(pendingResumeSessionId, consecutiveCrashes);
421
- consecutiveCrashes = 0;
422
- }
423
- }
424
- }
425
- // Tracks the kind of restart so the child can distinguish explicit /restart
426
- // from crash recovery (affects whether auto-continue message is injected).
427
- let nextRestartKind;
428
- while (true) {
429
- try {
430
- await options.beforeSpawn?.();
431
- const result = await spawnChild(scriptPath, scriptArgs, nodeArgs, pendingResumeSessionId, pendingArionName, nextRestartKind);
432
- nextRestartKind = undefined; // Reset for next iteration
433
- const exitCode = result.code;
434
- pendingResumeSessionId = result.resumeSessionId;
435
- setPendingResumeSessionId(pendingResumeSessionId);
436
- pendingArionName = result.arionName;
437
- setPendingArionName(pendingArionName);
438
- if (exitCode === 0) {
439
- // Clean exit — clear any crash markers and relaunch marker
440
- if (pendingResumeSessionId)
441
- clearCrashMarker(pendingResumeSessionId);
442
- clearRelaunchMarker(process.pid);
443
- process.exit(0);
444
- }
445
- if (exitCode === RELAUNCH_EXIT_CODE) {
446
- // Explicit restart request — reset crash counter and clear crash marker
447
- consecutiveCrashes = 0;
448
- if (pendingResumeSessionId)
449
- clearCrashMarker(pendingResumeSessionId);
450
- // If IPC didn't deliver the session ID, use the unified fallback resolver.
451
- // This is the key fix: explicit restarts now have the same recovery
452
- // guarantees as crash restarts.
453
- if (!pendingResumeSessionId) {
454
- const recovered = await recoverResumeContext(pendingArionName);
455
- if (recovered.sessionId) {
456
- pendingResumeSessionId = recovered.sessionId;
457
- setPendingResumeSessionId(pendingResumeSessionId);
458
- pendingArionName = recovered.arionName;
459
- setPendingArionName(pendingArionName);
460
- writeSupervisorStderr(`[aria] IPC session ID lost — recovered via ${recovered.source}: ${pendingResumeSessionId.slice(0, 8)}...\n`);
461
- }
462
- }
463
- else {
464
- // IPC succeeded — consume disk marker if present
465
- clearRelaunchMarker(process.pid);
466
- }
467
- nextRestartKind = "explicit";
468
- writeSupervisorStderr(`[aria] Respawning after relaunch request...\n`);
469
- continue;
470
- }
471
- // Unexpected exit (crash, segfault, OOM, unhandled exception)
472
- nextRestartKind = "crash";
473
- consecutiveCrashes++;
474
- const crashAttempt = consecutiveCrashes;
475
- const crashedSessionId = pendingResumeSessionId;
476
- let abandonedResumeSession = false;
477
- // Read crash report written by the child's uncaughtException/unhandledRejection handler
478
- const crashReport = readAndClearCrashReport();
479
- // Persist crash marker so the count survives supervisor restarts
480
- if (crashedSessionId) {
481
- writeCrashMarker({
482
- sessionId: crashedSessionId,
483
- count: crashAttempt,
484
- lastExitCode: exitCode,
485
- lastCrash: new Date().toISOString(),
486
- lastError: crashReport?.message,
487
- lastStack: crashReport?.stack?.slice(0, 2000),
488
- });
489
- }
490
- // Log crash details to stderr for diagnostics
491
- if (crashReport) {
492
- writeSupervisorStderr(`[aria] Crash error: ${crashReport.message}\n`);
493
- if (crashReport.stack) {
494
- writeSupervisorStderr(`[aria] Stack: ${crashReport.stack.slice(0, 2000)}\n`);
495
- }
496
- if (crashReport.heapMb != null || crashReport.rssMb != null) {
497
- writeSupervisorStderr(`[aria] Memory at crash: heap=${crashReport.heapMb ?? "?"}MB, rss=${crashReport.rssMb ?? "?"}MB\n`);
498
- }
499
- }
500
- if (crashedSessionId && crashAttempt >= MAX_CRASH_RESTARTS) {
501
- abandonPoisonedResumeSession(crashedSessionId, crashAttempt);
502
- consecutiveCrashes = 0;
503
- abandonedResumeSession = true;
504
- }
505
- else if (crashAttempt > MAX_CRASH_RESTARTS) {
506
- writeSupervisorStderr(`[aria] Too many consecutive crashes (${crashAttempt}), giving up (exit ${exitCode})\n`);
507
- process.exit(exitCode);
508
- }
509
- const backoffMs = Math.min(1000 * Math.pow(2, Math.max(crashAttempt - 1, 0)), 30000);
510
- writeSupervisorStderr(`[aria] Crash detected (exit ${exitCode}, attempt ${crashAttempt}/${MAX_CRASH_RESTARTS}). ` +
511
- `Restarting in ${backoffMs}ms...\n`);
512
- // Fallback: if IPC didn't deliver the session ID, use the unified resolver.
513
- if (!pendingResumeSessionId && !abandonedResumeSession) {
514
- const recovered = await recoverResumeContext(pendingArionName);
515
- if (recovered.sessionId) {
516
- pendingResumeSessionId = recovered.sessionId;
517
- setPendingResumeSessionId(pendingResumeSessionId);
518
- pendingArionName = recovered.arionName;
519
- setPendingArionName(pendingArionName);
520
- writeSupervisorStderr(`[aria] IPC session ID lost — recovered via ${recovered.source}: ${pendingResumeSessionId.slice(0, 8)}...\n`);
521
- }
522
- }
523
- await new Promise((r) => setTimeout(r, backoffMs));
524
- // Respawn with the same resume session ID so the child auto-continues
525
- }
526
- catch (error) {
527
- if (isProcessExitSentinel(error)) {
528
- throw error;
529
- }
530
- process.stdin.resume();
531
- const message = error instanceof Error ? (error.stack ?? error.message) : String(error);
532
- writeSupervisorStderr(`[aria] Fatal: failed to spawn child process.\n${message}\n`);
533
- process.exit(1);
534
- }
535
- }
536
- }
537
- export async function superviseInteractiveSession(invocation, options = {}) {
538
- const forwardedArgs = [...invocation.rawArgs];
539
- return supervise("__internal-repl", forwardedArgs, [], options);
540
- }
541
- /**
542
- * Spawn a single child process and wait for it to exit.
543
- */
544
- function spawnChild(scriptPath, scriptArgs, nodeArgs, resumeSessionId, arionName, restartKind) {
545
- // Pause parent stdin while child owns the terminal
546
- process.stdin.pause();
547
- void scriptPath;
548
- void nodeArgs;
549
- const childEnv = {
550
- ...process.env,
551
- [NO_RELAUNCH_ENV]: "true",
552
- };
553
- if (resumeSessionId) {
554
- childEnv[RESUME_SESSION_ENV] = resumeSessionId;
555
- }
556
- else {
557
- delete childEnv[RESUME_SESSION_ENV];
558
- }
559
- childEnv[RESUME_ARION_ENV] = arionName;
560
- if (restartKind) {
561
- childEnv[RESTART_KIND_ENV] = restartKind;
562
- }
563
- else {
564
- delete childEnv[RESTART_KIND_ENV];
565
- }
566
- const childArgs = scriptArgs;
567
- const spec = resolveAriaLaunchSpec({
568
- mode: "repl",
569
- args: childArgs,
570
- env: childEnv,
571
- cwd: process.cwd(),
572
- });
573
- const child = spawnAria(spec, { ipc: true });
574
- return new Promise((resolve, reject) => {
575
- let resumeFromChild = resumeSessionId;
576
- let arionFromChild = arionName;
577
- child.on("message", (message) => {
578
- if (!message || typeof message !== "object")
579
- return;
580
- const payload = message;
581
- if (payload.type !== "aria-relaunch")
582
- return;
583
- if (typeof payload.resumeSessionId === "string" && payload.resumeSessionId.trim()) {
584
- resumeFromChild = payload.resumeSessionId.trim();
585
- }
586
- else if (payload.resumeSessionId === null) {
587
- resumeFromChild = null;
588
- }
589
- if (typeof payload.arionName === "string" && payload.arionName.trim()) {
590
- arionFromChild = payload.arionName.trim();
591
- }
592
- // Acknowledge receipt so child can exit with confidence.
593
- try {
594
- child.send({
595
- type: "aria-relaunch-ack",
596
- nonce: typeof payload.nonce === "string" ? payload.nonce : undefined,
597
- });
598
- }
599
- catch {
600
- // Child may have already exited — non-fatal.
601
- }
602
- });
603
- child.on("error", (err) => {
604
- process.stdin.resume();
605
- reject(err);
606
- });
607
- child.on("close", (code) => {
608
- process.stdin.resume();
609
- resolve({
610
- code: (typeof code === "number" ? code : null) ?? 1,
611
- resumeSessionId: resumeFromChild,
612
- arionName: arionFromChild,
613
- });
614
- });
615
- });
616
- }
617
- //# sourceMappingURL=relaunch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relaunch.js","sourceRoot":"","sources":["../src/relaunch.ts"],"names":[],"mappings":"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"}