@aria-cli/cli 1.0.57 → 1.0.59

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 (319) hide show
  1. package/bin/aria.mjs +799 -668
  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/bootstrap-local-control-client.js +0 -2
  6. package/dist/capability-aware-method-proxy.js +0 -42
  7. package/dist/cli-context.js +0 -160
  8. package/dist/commands/arions.js +0 -174
  9. package/dist/commands/auth.js +0 -123
  10. package/dist/commands/daemon.js +0 -367
  11. package/dist/commands/definitions.js +0 -176
  12. package/dist/commands/index.js +0 -80
  13. package/dist/commands/login-handler.js +0 -1108
  14. package/dist/commands/logout-handler.js +0 -92
  15. package/dist/commands/memory-handlers.js +0 -89
  16. package/dist/commands/pairing.js +0 -60
  17. package/dist/commands/runtime-cutover-reset-command.js +0 -12
  18. package/dist/commands/runtime-cutover-reset.js +0 -265
  19. package/dist/commands/terminal-setup.js +0 -84
  20. package/dist/config/aria-config.js +0 -238
  21. package/dist/config/index.js +0 -3
  22. package/dist/config/loader.js +0 -97
  23. package/dist/config.js +0 -142
  24. package/dist/daemon-info.js +0 -10
  25. package/dist/ensure-daemon.js +0 -128
  26. package/dist/entrypoints/command-mode.js +0 -5
  27. package/dist/entrypoints/daemon.js +0 -50
  28. package/dist/entrypoints/headless-stdio.js +0 -25
  29. package/dist/entrypoints/interactive.js +0 -80
  30. package/dist/event-loop-watchdog.js +0 -73
  31. package/dist/headless/auth-orchestrator.js +0 -508
  32. package/dist/headless/auth-service.js +0 -43
  33. package/dist/headless/bootstrap-fast-path.js +0 -112
  34. package/dist/headless/call-command.js +0 -143
  35. package/dist/headless/daemon-service.js +0 -318
  36. package/dist/headless/hook-actions.js +0 -235
  37. package/dist/headless/hook-service.js +0 -42
  38. package/dist/headless/kernel-services.js +0 -216
  39. package/dist/headless/kernel.js +0 -785
  40. package/dist/headless/operations/arion.js +0 -119
  41. package/dist/headless/operations/auth.js +0 -45
  42. package/dist/headless/operations/client.js +0 -31
  43. package/dist/headless/operations/config.js +0 -69
  44. package/dist/headless/operations/daemon.js +0 -47
  45. package/dist/headless/operations/hook.js +0 -56
  46. package/dist/headless/operations/index.js +0 -11
  47. package/dist/headless/operations/memory.js +0 -102
  48. package/dist/headless/operations/message.js +0 -279
  49. package/dist/headless/operations/model.js +0 -100
  50. package/dist/headless/operations/peer.js +0 -56
  51. package/dist/headless/operations/run.js +0 -24
  52. package/dist/headless/operations/session.js +0 -90
  53. package/dist/headless/operations/system.js +0 -19
  54. package/dist/headless/operations/utils.js +0 -35
  55. package/dist/headless/run-orchestrator.js +0 -703
  56. package/dist/headless/stdio-server.js +0 -439
  57. package/dist/history/SessionHistory.js +0 -8
  58. package/dist/history/SessionHistoryClient.js +0 -186
  59. package/dist/history/conversation-message.js +0 -112
  60. package/dist/history/index.js +0 -8
  61. package/dist/history/jsonl-replay.js +0 -154
  62. package/dist/history/repair-tool-pairing.js +0 -84
  63. package/dist/history/stall-phase-bridge.js +0 -11
  64. package/dist/history/turn-accumulator.js +0 -427
  65. package/dist/index.js +0 -7
  66. package/dist/ink-repl.js +0 -4183
  67. package/dist/local-control-bootstrap.js +0 -26
  68. package/dist/local-control-client.js +0 -2
  69. package/dist/local-control-error-reporting.js +0 -34
  70. package/dist/local-control-http-client.js +0 -362
  71. package/dist/local-control-lazy-wrapper.js +0 -363
  72. package/dist/local-control-manager.js +0 -146
  73. package/dist/main.js +0 -62
  74. package/dist/network-security.js +0 -62
  75. package/dist/networking-server.js +0 -38
  76. package/dist/peer-identity.js +0 -23
  77. package/dist/polling-subscription.js +0 -34
  78. package/dist/relaunch.js +0 -617
  79. package/dist/release-notes.js +0 -35
  80. package/dist/repl-cleanup.js +0 -47
  81. package/dist/runtime/configure-bun-sqlite.js +0 -3
  82. package/dist/runtime/crash-handlers.js +0 -111
  83. package/dist/runtime/interactive-invocation.js +0 -39
  84. package/dist/runtime/internal-mode.js +0 -14
  85. package/dist/runtime/launch-spec.js +0 -64
  86. package/dist/runtime/owner-lease.js +0 -44
  87. package/dist/runtime/public-mode.js +0 -20
  88. package/dist/runtime/run-internal-mode.js +0 -18
  89. package/dist/runtime/runtime-kind.js +0 -32
  90. package/dist/runtime/spawn-aria.js +0 -38
  91. package/dist/selectable-client.js +0 -2
  92. package/dist/selectable-peer.js +0 -2
  93. package/dist/session.js +0 -203
  94. package/dist/slash-commands.js +0 -80
  95. package/dist/sounds.js +0 -210
  96. package/dist/ui/App.js +0 -526
  97. package/dist/ui/components/AnthropicMethodPicker.js +0 -6
  98. package/dist/ui/components/ArionPrompt.js +0 -15
  99. package/dist/ui/components/AutocompleteDropdown.js +0 -23
  100. package/dist/ui/components/AutonomySelector.js +0 -55
  101. package/dist/ui/components/Banner.js +0 -98
  102. package/dist/ui/components/ConversationHistory.js +0 -175
  103. package/dist/ui/components/CopilotDeviceLoginFlow.js +0 -88
  104. package/dist/ui/components/CopilotSourcePicker.js +0 -50
  105. package/dist/ui/components/Cost.js +0 -10
  106. package/dist/ui/components/CustomSelect/option-map.js +0 -30
  107. package/dist/ui/components/CustomSelect/select-option.js +0 -13
  108. package/dist/ui/components/CustomSelect/select.js +0 -42
  109. package/dist/ui/components/CustomSelect/use-select-state.js +0 -179
  110. package/dist/ui/components/CustomSelect/use-select.js +0 -15
  111. package/dist/ui/components/ErrorDisplay.js +0 -35
  112. package/dist/ui/components/FallbackToolUseRejectedMessage.js +0 -7
  113. package/dist/ui/components/FileEditToolUpdatedMessage.js +0 -57
  114. package/dist/ui/components/HandoffMarker.js +0 -18
  115. package/dist/ui/components/HighlightedCode.js +0 -21
  116. package/dist/ui/components/InputArea.js +0 -187
  117. package/dist/ui/components/Message.js +0 -25
  118. package/dist/ui/components/OAuthLoginFlow.js +0 -113
  119. package/dist/ui/components/OutputTruncation.js +0 -35
  120. package/dist/ui/components/PermissionPrompt.js +0 -79
  121. package/dist/ui/components/PipelineTimingPanel.js +0 -15
  122. package/dist/ui/components/ProviderMethodPicker.js +0 -61
  123. package/dist/ui/components/ProviderPicker.js +0 -63
  124. package/dist/ui/components/RenderItemView.js +0 -71
  125. package/dist/ui/components/Spinner.js +0 -46
  126. package/dist/ui/components/StatusBar.js +0 -95
  127. package/dist/ui/components/StreamingIndicator.js +0 -55
  128. package/dist/ui/components/StructuredDiff.js +0 -168
  129. package/dist/ui/components/TextInputOverlay.js +0 -43
  130. package/dist/ui/components/ThinkingBlock.js +0 -82
  131. package/dist/ui/components/ToolCost.js +0 -17
  132. package/dist/ui/components/ToolExecution.js +0 -61
  133. package/dist/ui/components/ToolHeader.js +0 -51
  134. package/dist/ui/components/ToolRenderLayoutContext.js +0 -14
  135. package/dist/ui/components/ToolResultWrapper.js +0 -6
  136. package/dist/ui/components/ToolUseLoader.js +0 -35
  137. package/dist/ui/components/TraceWaterfall.js +0 -91
  138. package/dist/ui/components/index.js +0 -33
  139. package/dist/ui/components/messages/AssistantTextMessage.js +0 -25
  140. package/dist/ui/components/messages/UserImageMessage.js +0 -12
  141. package/dist/ui/components/messages/UserTextMessage.js +0 -12
  142. package/dist/ui/components/overlays/ArionSelector.js +0 -68
  143. package/dist/ui/components/overlays/ClientSelector.js +0 -62
  144. package/dist/ui/components/overlays/CommandPalette.js +0 -67
  145. package/dist/ui/components/overlays/DaemonControl.js +0 -87
  146. package/dist/ui/components/overlays/InviteShareOverlay.js +0 -15
  147. package/dist/ui/components/overlays/JoinInviteOverlay.js +0 -32
  148. package/dist/ui/components/overlays/MemoryBrowser.js +0 -100
  149. package/dist/ui/components/overlays/MessageSelector.js +0 -123
  150. package/dist/ui/components/overlays/ModelSelector.js +0 -211
  151. package/dist/ui/components/overlays/PairRequestOverlay.js +0 -42
  152. package/dist/ui/components/overlays/PeerSelector.js +0 -84
  153. package/dist/ui/components/overlays/SessionSelector.js +0 -102
  154. package/dist/ui/components/overlays/SoundSelector.js +0 -86
  155. package/dist/ui/components/overlays/ThemeSelector.js +0 -139
  156. package/dist/ui/components/overlays/index.js +0 -15
  157. package/dist/ui/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -53
  158. package/dist/ui/components/permissions/FallbackPermissionRequest.js +0 -56
  159. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -76
  160. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -18
  161. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -64
  162. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -26
  163. package/dist/ui/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -141
  164. package/dist/ui/components/permissions/PermissionRequest.js +0 -70
  165. package/dist/ui/components/permissions/PermissionRequestTitle.js +0 -41
  166. package/dist/ui/components/permissions/hooks.js +0 -10
  167. package/dist/ui/components/permissions/toolUseOptions.js +0 -68
  168. package/dist/ui/components/permissions/utils.js +0 -10
  169. package/dist/ui/components/text-input/Cursor.js +0 -326
  170. package/dist/ui/components/text-input/TextInput.js +0 -231
  171. package/dist/ui/components/text-input/imagePaste.js +0 -28
  172. package/dist/ui/components/text-input/index.js +0 -6
  173. package/dist/ui/components/text-input/useDoublePress.js +0 -30
  174. package/dist/ui/components/text-input/useTextInput.js +0 -245
  175. package/dist/ui/components/tool-types.js +0 -9
  176. package/dist/ui/constants/figures.js +0 -4
  177. package/dist/ui/constants/index.js +0 -3
  178. package/dist/ui/display-mode.js +0 -93
  179. package/dist/ui/display-policy.js +0 -19
  180. package/dist/ui/hooks/index.js +0 -6
  181. package/dist/ui/hooks/useCommandAutocomplete.js +0 -93
  182. package/dist/ui/hooks/useDoublePress.js +0 -37
  183. package/dist/ui/hooks/useIndicatorState.js +0 -55
  184. package/dist/ui/hooks/useInterval.js +0 -23
  185. package/dist/ui/hooks/useKeyboardShortcuts.js +0 -127
  186. package/dist/ui/hooks/useTerminalSize.js +0 -55
  187. package/dist/ui/hooks/useUnifiedMessages.js +0 -117
  188. package/dist/ui/indicator-state.js +0 -44
  189. package/dist/ui/markdown/highlight.js +0 -44
  190. package/dist/ui/markdown/index.js +0 -1460
  191. package/dist/ui/markdown/tokenizer.js +0 -24
  192. package/dist/ui/render-item.js +0 -5
  193. package/dist/ui/screens/REPL.js +0 -119
  194. package/dist/ui/screens/approval-lifecycle.js +0 -38
  195. package/dist/ui/status-line.js +0 -72
  196. package/dist/ui/theme/index.js +0 -51
  197. package/dist/ui/theme/themes/claude-dark-daltonized.js +0 -51
  198. package/dist/ui/theme/themes/claude-dark.js +0 -50
  199. package/dist/ui/theme/themes/claude-light-daltonized.js +0 -51
  200. package/dist/ui/theme/themes/claude-light.js +0 -50
  201. package/dist/ui/theme/themes/dark-accessible.js +0 -18
  202. package/dist/ui/theme/themes/dark.js +0 -49
  203. package/dist/ui/theme/themes/light-accessible.js +0 -18
  204. package/dist/ui/theme/themes/light.js +0 -49
  205. package/dist/ui/theme/types.js +0 -3
  206. package/dist/ui/theme.js +0 -142
  207. package/dist/ui/to-render-items.js +0 -145
  208. package/dist/ui/tools/AgentTool/index.js +0 -30
  209. package/dist/ui/tools/ArchitectTool/index.js +0 -31
  210. package/dist/ui/tools/AskUserTool/index.js +0 -46
  211. package/dist/ui/tools/BashTool/BashToolResultMessage.js +0 -11
  212. package/dist/ui/tools/BashTool/OutputLine.js +0 -21
  213. package/dist/ui/tools/BashTool/index.js +0 -91
  214. package/dist/ui/tools/BrowseTool/index.js +0 -43
  215. package/dist/ui/tools/BrowserTool/index.js +0 -47
  216. package/dist/ui/tools/CbmTool/index.js +0 -188
  217. package/dist/ui/tools/CheckDelegationTool/index.js +0 -46
  218. package/dist/ui/tools/CheckMessagesTool/index.js +0 -85
  219. package/dist/ui/tools/CreateQuipTool/index.js +0 -30
  220. package/dist/ui/tools/CreateSkillTool/index.js +0 -22
  221. package/dist/ui/tools/CreateToolTool/index.js +0 -31
  222. package/dist/ui/tools/DelegateRemoteTool/index.js +0 -42
  223. package/dist/ui/tools/DeployTool/index.js +0 -47
  224. package/dist/ui/tools/FffTool/index.js +0 -103
  225. package/dist/ui/tools/FileEditTool/index.js +0 -67
  226. package/dist/ui/tools/FileReadTool/index.js +0 -68
  227. package/dist/ui/tools/FileWriteTool/index.js +0 -61
  228. package/dist/ui/tools/ForkTool/index.js +0 -47
  229. package/dist/ui/tools/FrgTool/index.js +0 -96
  230. package/dist/ui/tools/GetThreadTool/index.js +0 -39
  231. package/dist/ui/tools/GlobTool/index.js +0 -50
  232. package/dist/ui/tools/GrepTool/index.js +0 -84
  233. package/dist/ui/tools/HatchArionTool/index.js +0 -36
  234. package/dist/ui/tools/LearnSkillTool/index.js +0 -22
  235. package/dist/ui/tools/LearnTool/index.js +0 -43
  236. package/dist/ui/tools/LearnToolTool/index.js +0 -22
  237. package/dist/ui/tools/ListClientsTool/index.js +0 -39
  238. package/dist/ui/tools/LspTool/index.js +0 -261
  239. package/dist/ui/tools/MCPTool/index.js +0 -33
  240. package/dist/ui/tools/ManageNetworkTool/index.js +0 -53
  241. package/dist/ui/tools/MemoryReadTool/index.js +0 -64
  242. package/dist/ui/tools/MemoryWriteTool/index.js +0 -20
  243. package/dist/ui/tools/NotebookEditTool/index.js +0 -33
  244. package/dist/ui/tools/NotebookReadTool/index.js +0 -25
  245. package/dist/ui/tools/OutlookReadTool/index.js +0 -66
  246. package/dist/ui/tools/OutlookReplyTool/index.js +0 -49
  247. package/dist/ui/tools/OutlookSendTool/index.js +0 -49
  248. package/dist/ui/tools/PauseDelegationTool/index.js +0 -35
  249. package/dist/ui/tools/ProbeTool/index.js +0 -121
  250. package/dist/ui/tools/ProcessTool/index.js +0 -66
  251. package/dist/ui/tools/QuestListTool/index.js +0 -46
  252. package/dist/ui/tools/QuestReportTool/index.js +0 -49
  253. package/dist/ui/tools/QuestUpdateTool/index.js +0 -87
  254. package/dist/ui/tools/QuipCommentTool/index.js +0 -69
  255. package/dist/ui/tools/QuipReadTool/index.js +0 -71
  256. package/dist/ui/tools/RestArionTool/index.js +0 -32
  257. package/dist/ui/tools/RestartTool/index.js +0 -35
  258. package/dist/ui/tools/ResumeDelegationTool/index.js +0 -35
  259. package/dist/ui/tools/RetireArionTool/index.js +0 -32
  260. package/dist/ui/tools/RgTool/index.js +0 -73
  261. package/dist/ui/tools/SearchKnowledgeTool/index.js +0 -43
  262. package/dist/ui/tools/SearchMessagesTool/index.js +0 -43
  263. package/dist/ui/tools/SelfDiagnoseTool/index.js +0 -61
  264. package/dist/ui/tools/SendMessageTool/index.js +0 -45
  265. package/dist/ui/tools/SerenaTool/index.js +0 -124
  266. package/dist/ui/tools/SessionHistoryTool/index.js +0 -52
  267. package/dist/ui/tools/SgTool/index.js +0 -80
  268. package/dist/ui/tools/SlackReactTool/index.js +0 -41
  269. package/dist/ui/tools/SlackReadTool/index.js +0 -48
  270. package/dist/ui/tools/SlackSendTool/index.js +0 -45
  271. package/dist/ui/tools/SpawnWorkerTool/index.js +0 -33
  272. package/dist/ui/tools/StickerRequestTool/index.js +0 -19
  273. package/dist/ui/tools/ThinkTool/index.js +0 -17
  274. package/dist/ui/tools/UgTool/index.js +0 -108
  275. package/dist/ui/tools/UseSkillTool/index.js +0 -22
  276. package/dist/ui/tools/WakeArionTool/index.js +0 -32
  277. package/dist/ui/tools/WebFetchTool/index.js +0 -56
  278. package/dist/ui/tools/WebSearchTool/index.js +0 -44
  279. package/dist/ui/tools/lsTool/index.js +0 -58
  280. package/dist/ui/tools/registry.js +0 -197
  281. package/dist/ui/tools/tool-renderer.js +0 -11
  282. package/dist/ui/tools/truncation.js +0 -35
  283. package/dist/ui/types/anthropic.js +0 -4
  284. package/dist/ui/types/index.js +0 -2
  285. package/dist/ui/types/message.js +0 -3
  286. package/dist/ui/types/tool.js +0 -4
  287. package/dist/ui/utils/array.js +0 -4
  288. package/dist/ui/utils/cursor.js +0 -131
  289. package/dist/ui/utils/diff.js +0 -120
  290. package/dist/ui/utils/format.js +0 -42
  291. package/dist/ui/utils/fuzzy.js +0 -59
  292. package/dist/ui/utils/index.js +0 -11
  293. package/dist/ui/utils/keys.js +0 -8
  294. package/dist/ui/utils/patch.js +0 -17
  295. package/dist/ui/utils/risk.js +0 -114
  296. package/dist/ui/utils/terminal-image.js +0 -70
  297. package/dist/ui/utils/validation.js +0 -48
  298. package/dist/ui/verb-pairs.js +0 -248
  299. package/dist/ui.js +0 -131
  300. package/src/entrypoints/command-mode.ts +0 -5
  301. package/src/entrypoints/daemon.ts +0 -54
  302. package/src/entrypoints/headless-stdio.ts +0 -27
  303. package/src/entrypoints/interactive.ts +0 -112
  304. package/src/main.ts +0 -72
  305. package/src/runtime/configure-bun-sqlite.ts +0 -3
  306. package/src/runtime/crash-handlers.ts +0 -128
  307. package/src/runtime/interactive-invocation.test.ts +0 -42
  308. package/src/runtime/interactive-invocation.ts +0 -51
  309. package/src/runtime/internal-mode.test.ts +0 -19
  310. package/src/runtime/internal-mode.ts +0 -24
  311. package/src/runtime/launch-spec.test.ts +0 -26
  312. package/src/runtime/launch-spec.ts +0 -84
  313. package/src/runtime/owner-lease.ts +0 -52
  314. package/src/runtime/public-mode.test.ts +0 -18
  315. package/src/runtime/public-mode.ts +0 -19
  316. package/src/runtime/run-internal-mode.ts +0 -19
  317. package/src/runtime/runtime-kind.test.ts +0 -23
  318. package/src/runtime/runtime-kind.ts +0 -41
  319. package/src/runtime/spawn-aria.ts +0 -62
@@ -1,35 +0,0 @@
1
- /**
2
- * Release notes shown in the TUI startup banner.
3
- * Update this file each release to keep "What's New" accurate.
4
- *
5
- * Guidelines:
6
- * - Only user-facing features — no bug fixes, refactors, or internals
7
- * - Lead with the verb / action the user can take
8
- * - Keep it to 4-5 items max
9
- */
10
- function resolveVersion() {
11
- // In bundled/compiled builds, __ARIA_VERSION__ is replaced at build time
12
- // by --define. In dev, it's undefined → read from package.json.
13
- if (typeof __ARIA_VERSION__ !== "undefined")
14
- return __ARIA_VERSION__;
15
- // Dev-mode fallback: read from the package.json next to this source file.
16
- // This only runs when bun executes TS directly (not bundled).
17
- try {
18
- const { readFileSync } = require("node:fs");
19
- const { resolve, dirname } = require("node:path");
20
- const pkgPath = resolve(dirname(__filename), "..", "package.json");
21
- return JSON.parse(readFileSync(pkgPath, "utf8")).version;
22
- }
23
- catch {
24
- return "0.0.0-dev";
25
- }
26
- }
27
- export const CLI_VERSION = resolveVersion();
28
- export const WHATS_NEW = [
29
- "⚡ Search millions of lines instantly with native Rust-powered code search",
30
- "🧠 Jump to definitions & find references with real LSP intelligence",
31
- "✏️ Press Esc×2 to edit and fork any previous message in-place",
32
- "🔊 Get audio cues when tasks finish — try /sound to configure",
33
- "🎨 All 87 tools now render rich, beautiful output in the terminal",
34
- ];
35
- //# sourceMappingURL=release-notes.js.map
@@ -1,47 +0,0 @@
1
- function defaultWarn(message) {
2
- console.warn(message);
3
- }
4
- function formatError(err) {
5
- return err instanceof Error ? err.message : String(err);
6
- }
7
- /**
8
- * Run REPL work and ALWAYS release process-pinning resources on exit.
9
- *
10
- * This protects /exit from hanging due to open SQLite handles or background
11
- * worker timers behind Memoria instances.
12
- */
13
- export async function withReplCleanup(run, getResources) {
14
- try {
15
- return await run();
16
- }
17
- finally {
18
- const { release, sessionHistory, pool, aria, warn = defaultWarn } = getResources();
19
- try {
20
- await release?.();
21
- }
22
- catch (err) {
23
- warn(`[aria] Local-control cleanup failed: ${formatError(err)}`);
24
- }
25
- try {
26
- sessionHistory?.close?.();
27
- }
28
- catch (err) {
29
- warn(`[aria] SessionHistory cleanup failed: ${formatError(err)}`);
30
- }
31
- try {
32
- await pool?.closeAll?.();
33
- }
34
- catch (err) {
35
- warn(`[aria] Memoria pool cleanup failed: ${formatError(err)}`);
36
- }
37
- // startInkRepl normally calls aria.shutdown(), but keep a best-effort
38
- // fallback for early failures before that path executes.
39
- try {
40
- await aria?.shutdown?.();
41
- }
42
- catch (err) {
43
- warn(`[aria] Fallback aria shutdown failed: ${formatError(err)}`);
44
- }
45
- }
46
- }
47
- //# sourceMappingURL=repl-cleanup.js.map
@@ -1,3 +0,0 @@
1
- import { configureBunCustomSqlite } from "@aria-cli/tools";
2
- configureBunCustomSqlite();
3
- //# sourceMappingURL=configure-bun-sqlite.js.map
@@ -1,111 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { appendFileSync, mkdirSync, writeFileSync } from "node:fs";
3
- import { homedir } from "node:os";
4
- import { join } from "node:path";
5
- import v8 from "node:v8";
6
- import { RESUME_SESSION_ENV } from "@aria-cli/types";
7
- function getAriaHome() {
8
- return process.env.ARIA_HOME?.trim() || join(homedir(), ".aria");
9
- }
10
- function writeCrashReport(type, error) {
11
- try {
12
- const crashDir = join(getAriaHome(), "crash-reports");
13
- mkdirSync(crashDir, { recursive: true });
14
- const err = error instanceof Error ? error : new Error(String(error));
15
- const memory = process.memoryUsage();
16
- const timestamp = new Date().toISOString();
17
- const sessionId = process.env[RESUME_SESSION_ENV] || "unknown";
18
- const payload = {
19
- timestamp,
20
- sessionId,
21
- type,
22
- error: {
23
- message: err.message,
24
- stack: err.stack,
25
- name: err.name,
26
- },
27
- process: {
28
- pid: process.pid,
29
- heapUsedMb: Math.round((memory.heapUsed / 1024 / 1024) * 100) / 100,
30
- rssMb: Math.round((memory.rss / 1024 / 1024) * 100) / 100,
31
- uptime: Math.round(process.uptime()),
32
- },
33
- };
34
- writeFileSync(join(crashDir, "latest.json"), JSON.stringify(payload, null, 2));
35
- const stackFirst = err.stack?.split("\n")[1]?.trim() ?? "";
36
- const bucket = Math.floor(Date.now() / 10000);
37
- const fingerprint = createHash("sha256")
38
- .update(`${err.message}|${stackFirst}|${bucket}`)
39
- .digest("hex")
40
- .slice(0, 12);
41
- appendFileSync(join(getAriaHome(), "error-events.jsonl"), `${JSON.stringify({
42
- id: `crash-${fingerprint}`,
43
- timestamp,
44
- severity: 0,
45
- category: "crash",
46
- domain: "cli",
47
- name: err.name,
48
- message: err.message,
49
- stackTrace: err.stack,
50
- recoverable: false,
51
- status: "new",
52
- })}\n`, "utf-8");
53
- }
54
- catch {
55
- // Best effort only.
56
- }
57
- }
58
- let installed = false;
59
- /**
60
- * Install V8 heap diagnostics for OOM investigation.
61
- *
62
- * - `setHeapSnapshotNearHeapLimit(3)`: Auto-captures up to 3 progressive heap
63
- * snapshots as the heap approaches the V8 limit. Snapshots land in the
64
- * diagnostic directory and survive the crash — load in Chrome DevTools
65
- * Memory tab for retainer trace analysis.
66
- *
67
- * - `process.report.reportOnFatalError`: Generates a diagnostic JSON report
68
- * on fatal errors (including OOM) with native stack, heap space breakdown,
69
- * libuv handles, and resource usage.
70
- *
71
- * Both are lightweight and production-safe — zero overhead until triggered.
72
- */
73
- function installHeapDiagnostics() {
74
- const crashDir = join(getAriaHome(), "crash-reports");
75
- mkdirSync(crashDir, { recursive: true });
76
- // Auto-capture heap snapshots as V8 approaches the heap limit.
77
- // Writes .heapsnapshot files to crashDir before OOM kills the process.
78
- try {
79
- v8.setHeapSnapshotNearHeapLimit(3);
80
- }
81
- catch {
82
- // Bun or older Node without this API — non-fatal.
83
- }
84
- // Generate a diagnostic report JSON on fatal errors (OOM, segfault).
85
- try {
86
- process.report.reportOnFatalError = true;
87
- process.report.directory = crashDir;
88
- }
89
- catch {
90
- // Non-fatal if report API is unavailable.
91
- }
92
- }
93
- export function installProcessCrashHandlers() {
94
- if (installed)
95
- return;
96
- installed = true;
97
- installHeapDiagnostics();
98
- process.on("uncaughtException", (error, origin) => {
99
- writeCrashReport("uncaughtException", error);
100
- process.stderr.write(`[aria] FATAL uncaughtException (origin: ${origin}):\n`);
101
- process.stderr.write(`${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`);
102
- process.exit(1);
103
- });
104
- process.on("unhandledRejection", (error) => {
105
- writeCrashReport("unhandledRejection", error);
106
- process.stderr.write("[aria] FATAL unhandledRejection:\n");
107
- process.stderr.write(`${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`);
108
- process.exit(1);
109
- });
110
- }
111
- //# sourceMappingURL=crash-handlers.js.map
@@ -1,39 +0,0 @@
1
- import { RESUME_SESSION_ENV, RESTART_KIND_ENV } from "@aria-cli/types";
2
- export function parseInteractiveInvocation(argv) {
3
- let resumeSessionId = null;
4
- let continueLatest = false;
5
- const promptParts = [];
6
- for (let i = 0; i < argv.length; i += 1) {
7
- const arg = argv[i];
8
- if (arg === undefined)
9
- continue;
10
- if (arg === "-r" || arg === "--resume") {
11
- const next = argv[i + 1];
12
- if (!next)
13
- throw new Error("Error: -r/--resume requires a session ID");
14
- resumeSessionId = next;
15
- i += 1;
16
- continue;
17
- }
18
- if (arg === "-c" || arg === "--continue") {
19
- continueLatest = true;
20
- continue;
21
- }
22
- promptParts.push(arg);
23
- }
24
- if (resumeSessionId && continueLatest) {
25
- throw new Error("Error: -r/--resume and -c/--continue are mutually exclusive");
26
- }
27
- if (!resumeSessionId && !continueLatest && process.env[RESUME_SESSION_ENV]) {
28
- resumeSessionId = process.env[RESUME_SESSION_ENV] ?? null;
29
- delete process.env[RESUME_SESSION_ENV];
30
- delete process.env[RESTART_KIND_ENV];
31
- }
32
- return {
33
- prompt: promptParts.length > 0 ? promptParts.join(" ") : undefined,
34
- resumeSessionId,
35
- continueLatest,
36
- rawArgs: [...argv],
37
- };
38
- }
39
- //# sourceMappingURL=interactive-invocation.js.map
@@ -1,14 +0,0 @@
1
- export const INTERNAL_SENTINEL = "__internal";
2
- export function parseInternalInvocation(argv) {
3
- if (argv[0] !== INTERNAL_SENTINEL)
4
- return null;
5
- const mode = argv[1];
6
- if (mode !== "repl" && mode !== "daemon" && mode !== "headless-stdio") {
7
- throw new Error(`[aria] Unknown internal mode \"${String(mode)}\". Expected repl | daemon | headless-stdio.`);
8
- }
9
- return {
10
- mode,
11
- args: argv.slice(2),
12
- };
13
- }
14
- //# sourceMappingURL=internal-mode.js.map
@@ -1,64 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { fileURLToPath } from "node:url";
3
- import { getRuntimeKind } from "./runtime-kind.js";
4
- function getBunCommand() {
5
- return process.platform === "win32" ? "bun.exe" : "bun";
6
- }
7
- function resolveSourceEntrypoint() {
8
- const candidates = [
9
- fileURLToPath(new URL("../main.ts", import.meta.url)),
10
- fileURLToPath(new URL("../main.js", import.meta.url)),
11
- ];
12
- for (const candidate of candidates) {
13
- if (existsSync(candidate)) {
14
- return candidate;
15
- }
16
- }
17
- throw new Error("[aria] Could not resolve Bun source entrypoint for internal relaunch");
18
- }
19
- function resolveBundledEntrypoint() {
20
- // In npm-installed bundle, argv[1] is the aria.mjs file itself
21
- const argv1 = process.argv[1] ?? "";
22
- if (existsSync(argv1))
23
- return argv1;
24
- // Fallback: look relative to import.meta.url
25
- const candidates = [
26
- fileURLToPath(new URL("../../bin/aria.mjs", import.meta.url)),
27
- fileURLToPath(new URL("../bin/aria.mjs", import.meta.url)),
28
- ];
29
- for (const c of candidates) {
30
- if (existsSync(c))
31
- return c;
32
- }
33
- throw new Error("[aria] Could not resolve bundled entrypoint for internal relaunch");
34
- }
35
- export function resolveAriaLaunchSpec(input) {
36
- const runtimeKind = getRuntimeKind();
37
- const forwardedArgs = input.args ?? [];
38
- const env = { ...process.env, ...(input.env ?? {}) };
39
- const cwd = input.cwd ?? process.cwd();
40
- switch (runtimeKind) {
41
- case "source-bun":
42
- return {
43
- command: getBunCommand(),
44
- args: [resolveSourceEntrypoint(), "__internal", input.mode, ...forwardedArgs],
45
- env,
46
- cwd,
47
- };
48
- case "bundled-bun":
49
- return {
50
- command: getBunCommand(),
51
- args: [resolveBundledEntrypoint(), "__internal", input.mode, ...forwardedArgs],
52
- env,
53
- cwd,
54
- };
55
- case "compiled-bun":
56
- return {
57
- command: process.execPath,
58
- args: ["__internal", input.mode, ...forwardedArgs],
59
- env,
60
- cwd,
61
- };
62
- }
63
- }
64
- //# sourceMappingURL=launch-spec.js.map
@@ -1,44 +0,0 @@
1
- export function installOwnerLeaseIfNeeded(options = {}) {
2
- const env = options.env ?? process.env;
3
- const processRef = options.processRef ?? process;
4
- const pollMs = options.pollMs ?? 1000;
5
- const ownerPidRaw = env.ARIA_HARNESS_OWNER_PID;
6
- if (!ownerPidRaw)
7
- return () => { };
8
- const ownerPid = Number.parseInt(ownerPidRaw, 10);
9
- if (!Number.isFinite(ownerPid) || ownerPid <= 0) {
10
- throw new Error(`ARIA_HARNESS_OWNER_PID must be a positive integer, got: ${ownerPidRaw}`);
11
- }
12
- let released = false;
13
- const interval = setInterval(() => {
14
- if (released)
15
- return;
16
- try {
17
- processRef.kill(ownerPid, 0);
18
- }
19
- catch (error) {
20
- const code = error && typeof error === "object" && "code" in error
21
- ? error.code
22
- : undefined;
23
- if (code && code !== "ESRCH")
24
- return;
25
- released = true;
26
- clearInterval(interval);
27
- if (options.onOwnerGone) {
28
- options.onOwnerGone(ownerPid);
29
- return;
30
- }
31
- processRef.kill(processRef.pid, "SIGTERM");
32
- }
33
- }, pollMs);
34
- interval.unref?.();
35
- const dispose = () => {
36
- if (released)
37
- return;
38
- released = true;
39
- clearInterval(interval);
40
- };
41
- processRef.once("exit", dispose);
42
- return dispose;
43
- }
44
- //# sourceMappingURL=owner-lease.js.map
@@ -1,20 +0,0 @@
1
- const PUBLIC_TOP_LEVELS = new Set([
2
- "daemon",
3
- "auth",
4
- "arions",
5
- "headless",
6
- "call",
7
- "pairing",
8
- "runtime-cutover-reset",
9
- "--help",
10
- "-h",
11
- "--version",
12
- "-v",
13
- ]);
14
- export function isPublicCommandInvocation(argv) {
15
- const first = argv[0];
16
- if (!first)
17
- return false;
18
- return PUBLIC_TOP_LEVELS.has(first) || first.startsWith("--");
19
- }
20
- //# sourceMappingURL=public-mode.js.map
@@ -1,18 +0,0 @@
1
- import { parseInteractiveInvocation } from "./interactive-invocation.js";
2
- import { runInteractiveEntrypoint } from "../entrypoints/interactive.js";
3
- import { runDaemonEntrypoint } from "../entrypoints/daemon.js";
4
- import { runHeadlessStdioEntrypoint } from "../entrypoints/headless-stdio.js";
5
- export async function runInternalMode(invocation) {
6
- switch (invocation.mode) {
7
- case "repl":
8
- await runInteractiveEntrypoint(parseInteractiveInvocation(invocation.args));
9
- return;
10
- case "daemon":
11
- await runDaemonEntrypoint(invocation.args);
12
- return;
13
- case "headless-stdio":
14
- await runHeadlessStdioEntrypoint(invocation.args);
15
- return;
16
- }
17
- }
18
- //# sourceMappingURL=run-internal-mode.js.map
@@ -1,32 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { fileURLToPath } from "node:url";
3
- function resolveAdjacentMainCandidates() {
4
- return [
5
- fileURLToPath(new URL("../main.ts", import.meta.url)),
6
- fileURLToPath(new URL("../main.js", import.meta.url)),
7
- ];
8
- }
9
- export function getRuntimeKind() {
10
- const override = process.env.ARIA_RUNTIME_KIND?.trim();
11
- if (override === "source-bun" || override === "compiled-bun" || override === "bundled-bun") {
12
- return override;
13
- }
14
- const argv1 = process.argv[1] ?? "";
15
- // Compiled binary: argv[1] is not a file path
16
- if (!argv1.endsWith(".ts") && !argv1.endsWith(".js") && !argv1.endsWith(".mjs")) {
17
- return "compiled-bun";
18
- }
19
- // Source dev: adjacent main.ts exists
20
- if (resolveAdjacentMainCandidates().some((candidate) => existsSync(candidate))) {
21
- return "source-bun";
22
- }
23
- // Bundled npm install: .mjs file but no adjacent main.ts
24
- return "bundled-bun";
25
- }
26
- export function isSourceRuntime() {
27
- return getRuntimeKind() === "source-bun";
28
- }
29
- export function isCompiledRuntime() {
30
- return getRuntimeKind() === "compiled-bun";
31
- }
32
- //# sourceMappingURL=runtime-kind.js.map
@@ -1,38 +0,0 @@
1
- export function spawnAria(spec, options = {}) {
2
- const listeners = {};
3
- const spawnOptions = {
4
- cwd: spec.cwd,
5
- env: spec.env,
6
- stdio: options.stdio ?? ["inherit", "inherit", "inherit"],
7
- };
8
- if (options.ipc) {
9
- spawnOptions.ipc = (message) => {
10
- for (const fn of listeners["message"] ?? [])
11
- fn(message);
12
- };
13
- }
14
- const proc = Bun.spawn([spec.command, ...spec.args], spawnOptions);
15
- // Wire exit → "close" event, catch → "error" event.
16
- proc.exited
17
- .then((code) => {
18
- for (const fn of listeners["close"] ?? [])
19
- fn(code);
20
- })
21
- .catch((err) => {
22
- const error = err instanceof Error ? err : new Error(String(err));
23
- for (const fn of listeners["error"] ?? [])
24
- fn(error);
25
- });
26
- return {
27
- send(message) {
28
- proc.send(message);
29
- },
30
- on(event, fn) {
31
- (listeners[event] ??= []).push(fn);
32
- },
33
- unref() {
34
- proc.unref();
35
- },
36
- };
37
- }
38
- //# sourceMappingURL=spawn-aria.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=selectable-client.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=selectable-peer.js.map
package/dist/session.js DELETED
@@ -1,203 +0,0 @@
1
- /**
2
- * Arion Session Manager
3
- * Manages the primary arion, active arions, and shared conversation history.
4
- */
5
- import { log } from "@aria-cli/types";
6
- import { Room, parseMessage, ContributionGate, } from "@aria-cli/aria";
7
- export class ArionSession {
8
- room;
9
- history = [];
10
- manager;
11
- router;
12
- memoria;
13
- contributionGate;
14
- initialized = false;
15
- constructor(config) {
16
- this.manager = config.manager;
17
- this.router = config.router;
18
- this.memoria = config.memoria;
19
- this.contributionGate = new ContributionGate(config.router);
20
- this.room = new Room({
21
- onRest: async (arion) => {
22
- await this.manager.rest(arion.name);
23
- if (config.onArionRest) {
24
- await config.onArionRest(arion);
25
- }
26
- },
27
- });
28
- }
29
- /**
30
- * Initialize the session with the default or specified arion as primary.
31
- */
32
- async initialize(activeArionName) {
33
- if (this.initialized)
34
- return;
35
- const arions = await this.manager.list();
36
- const target = activeArionName
37
- ? arions.find((a) => a.name.toLowerCase() === activeArionName.toLowerCase())
38
- : arions.find((a) => a.isDefault);
39
- if (target) {
40
- // Auto-wake resting arions (matches become() behavior)
41
- if (target.status === "resting") {
42
- await this.manager.wake(target.name);
43
- const woken = await this.manager.get(target.name);
44
- if (woken) {
45
- this.room.setPrimary(woken);
46
- }
47
- }
48
- else {
49
- this.room.setPrimary(target);
50
- }
51
- }
52
- this.initialized = true;
53
- }
54
- /**
55
- * Switch to a different arion as primary.
56
- * Wakes resting arions automatically.
57
- */
58
- async become(name) {
59
- let arion = await this.manager.get(name);
60
- if (!arion) {
61
- throw new Error(`Arion not found: ${name}`);
62
- }
63
- if (arion.status === "retired") {
64
- throw new Error(`Cannot become retired arion: ${name}`);
65
- }
66
- if (arion.status === "resting") {
67
- await this.manager.wake(name);
68
- // Re-fetch to get updated status
69
- arion = await this.manager.get(name);
70
- if (!arion) {
71
- throw new Error(`Arion not found after wake: ${name}`);
72
- }
73
- }
74
- this.room.setPrimary(arion);
75
- return arion;
76
- }
77
- /**
78
- * Activate an arion (add to room without making primary).
79
- * Wakes resting arions automatically.
80
- */
81
- async activate(name) {
82
- let arion = await this.manager.get(name);
83
- if (!arion) {
84
- throw new Error(`Arion not found: ${name}`);
85
- }
86
- if (arion.status === "resting") {
87
- await this.manager.wake(name);
88
- // Re-fetch to get updated status
89
- arion = await this.manager.get(name);
90
- if (!arion) {
91
- throw new Error(`Arion not found after wake: ${name}`);
92
- }
93
- }
94
- this.room.enter(arion);
95
- return arion;
96
- }
97
- /**
98
- * Dismiss an arion from the room (send to rest).
99
- * Cannot dismiss the primary arion.
100
- */
101
- async dismiss(name) {
102
- const arion = this.room.get(name);
103
- if (arion && arion !== this.room.getPrimary()) {
104
- await this.room.exit(arion);
105
- }
106
- }
107
- /**
108
- * Get the current primary arion.
109
- */
110
- getPrimary() {
111
- return this.room.getPrimary();
112
- }
113
- /**
114
- * Get the backing room instance for handoff-aware RunSession wiring.
115
- */
116
- getRoom() {
117
- return this.room;
118
- }
119
- /**
120
- * Get all active arions in the room.
121
- */
122
- getActiveArions() {
123
- return this.room.getActive();
124
- }
125
- /**
126
- * Check if an arion is currently active in the room.
127
- */
128
- isActive(name) {
129
- return this.room.isInRoom(name);
130
- }
131
- /**
132
- * Add a message to the conversation history.
133
- */
134
- addToHistory(message) {
135
- this.history.push(message);
136
- }
137
- /**
138
- * Get a copy of the conversation history.
139
- */
140
- getHistory() {
141
- return [...this.history];
142
- }
143
- /**
144
- * Clear the conversation history.
145
- */
146
- clearHistory() {
147
- this.history = [];
148
- }
149
- /**
150
- * Parse a message for @mentions and dismissals.
151
- */
152
- parseMessage(input) {
153
- return parseMessage(input);
154
- }
155
- /**
156
- * Determine which arions should respond to a message.
157
- * Includes addressed arions and evaluates volunteers from other active arions.
158
- * Returns assessment info for volunteers to display contribution type.
159
- */
160
- async getRespondingArions(input, addressedArions, previousResponses) {
161
- const startMs = Date.now();
162
- const responding = addressedArions.map((arion) => ({
163
- arion,
164
- isAddressed: true,
165
- }));
166
- const others = this.room
167
- .getActive()
168
- .filter((a) => !addressedArions.some((addr) => addr.name === a.name));
169
- if (others.length > 0) {
170
- const volunteers = await this.contributionGate.evaluateAll(others, {
171
- message: input,
172
- previousResponses,
173
- conversationHistory: this.history.map((m) => ({
174
- role: m.role,
175
- content: m.content,
176
- })),
177
- }, { maxVolunteers: 2 });
178
- for (const { arion, assessment } of volunteers) {
179
- responding.push({
180
- arion,
181
- isAddressed: false,
182
- assessment: {
183
- confidence: assessment.confidence,
184
- contributionType: assessment.contributionType || "addition",
185
- },
186
- });
187
- }
188
- }
189
- const durationMs = Date.now() - startMs;
190
- if (durationMs > 100 || others.length > 0) {
191
- log.debug(`[cli.responding_arions] ${durationMs}ms — evaluated ${others.length} non-addressed arions, ${responding.length - addressedArions.length} volunteered`);
192
- }
193
- return responding;
194
- }
195
- /**
196
- * Get the Memoria instance for a specific arion.
197
- * Returns null if arion has no Memoria configured.
198
- */
199
- async getArionMemoria(arion) {
200
- return this.manager.getMemoria(arion);
201
- }
202
- }
203
- //# sourceMappingURL=session.js.map