@aria-cli/cli 1.0.51 → 1.0.54

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 +569 -569
  2. package/package.json +14 -73
  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 -245
  11. package/dist/commands/definitions.js +0 -176
  12. package/dist/commands/index.js +0 -74
  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 -38
  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 -588
  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 -44
  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,245 +0,0 @@
1
- /**
2
- * Daemon command - monitor-style projection over the shared daemon service.
3
- *
4
- * The CLI wrapper only parses options, starts/stops the daemon via the
5
- * canonical `daemon.*` service, prints human status lines, and stays resident
6
- * until interrupted. It must not own runtime bootstrap semantics directly.
7
- */
8
- import { createCliContext } from "../cli-context.js";
9
- import { loadConfig } from "../config.js";
10
- import { createDaemonService } from "../headless/daemon-service.js";
11
- function formatStorageDiagnostics(storage) {
12
- if (!storage || typeof storage !== "object") {
13
- return [];
14
- }
15
- const lines = [];
16
- const storageRecord = storage;
17
- for (const [label, raw] of Object.entries(storageRecord)) {
18
- if (!raw || typeof raw !== "object")
19
- continue;
20
- const value = raw;
21
- const parts = [
22
- `backend=${String(value.backend ?? "unknown")}`,
23
- `extensions=${String(value.loadableExtensions ?? false)}`,
24
- `customSQLite=${String(value.customSQLiteConfigured ?? false)}`,
25
- ];
26
- if (typeof value.sqliteVec === "boolean") {
27
- parts.push(`sqliteVec=${String(value.sqliteVec)}`);
28
- }
29
- if (typeof value.vectorSearchMode === "string") {
30
- parts.push(`vectorMode=${value.vectorSearchMode}`);
31
- }
32
- if (typeof value.customSQLitePath === "string") {
33
- parts.push(`sqlitePath=${value.customSQLitePath}`);
34
- }
35
- lines.push(`[daemon] storage.${label} ${parts.join(" · ")}`);
36
- }
37
- return lines;
38
- }
39
- function parsePositiveInt(raw, field, fallback) {
40
- if (raw === undefined || raw.trim() === "")
41
- return fallback;
42
- const value = Number.parseInt(raw, 10);
43
- if (!Number.isFinite(value) || value <= 0) {
44
- throw new Error(`${field} must be a positive integer`);
45
- }
46
- return value;
47
- }
48
- function parseCsv(raw) {
49
- if (!raw)
50
- return undefined;
51
- const values = raw
52
- .split(",")
53
- .map((entry) => entry.trim())
54
- .filter((entry) => entry.length > 0);
55
- return values.length > 0 ? values : undefined;
56
- }
57
- function parsePort(raw, fallback) {
58
- if (raw === undefined || raw.trim() === "")
59
- return fallback;
60
- const value = Number.parseInt(raw, 10);
61
- if (!Number.isFinite(value) || value < 0) {
62
- throw new Error("port must be a non-negative integer (0 = OS-assigned)");
63
- }
64
- return value;
65
- }
66
- function parseDaemonOptions(options) {
67
- return {
68
- arion: options.arion,
69
- port: parsePort(options.port, 0),
70
- intervalMs: parsePositiveInt(options.intervalMs, "intervalMs", 60_000),
71
- allowedToolCategories: parseCsv(options.allowedToolCategories),
72
- allowedShellCommands: parseCsv(options.allowedShellCommands),
73
- maxWriteOpsPerMinute: options.maxWriteOpsPerMinute !== undefined
74
- ? parsePositiveInt(options.maxWriteOpsPerMinute, "maxWriteOpsPerMinute", 30)
75
- : undefined,
76
- maxGitPushesPerHour: options.maxGitPushesPerHour !== undefined
77
- ? parsePositiveInt(options.maxGitPushesPerHour, "maxGitPushesPerHour", 5)
78
- : undefined,
79
- foreground: options.foreground === true,
80
- };
81
- }
82
- function waitForAbort(signal) {
83
- if (signal.aborted)
84
- return Promise.resolve();
85
- return new Promise((resolve) => {
86
- signal.addEventListener("abort", () => resolve(), { once: true });
87
- });
88
- }
89
- function toDaemonInput(options) {
90
- return {
91
- ...(options.arion ? { arion: options.arion } : {}),
92
- ...(options.port >= 0 ? { port: options.port } : {}),
93
- intervalMs: options.intervalMs,
94
- ...(options.allowedToolCategories
95
- ? { allowedToolCategories: options.allowedToolCategories }
96
- : {}),
97
- ...(options.allowedShellCommands ? { allowedShellCommands: options.allowedShellCommands } : {}),
98
- ...(typeof options.maxWriteOpsPerMinute === "number"
99
- ? { maxWriteOpsPerMinute: options.maxWriteOpsPerMinute }
100
- : {}),
101
- ...(typeof options.maxGitPushesPerHour === "number"
102
- ? { maxGitPushesPerHour: options.maxGitPushesPerHour }
103
- : {}),
104
- };
105
- }
106
- export function buildSafetyPolicy(options) {
107
- const policy = {};
108
- if (options.allowedToolCategories) {
109
- policy.allowedToolCategories = options.allowedToolCategories;
110
- }
111
- if (options.allowedShellCommands) {
112
- policy.allowedShellCommands = options.allowedShellCommands;
113
- }
114
- if (typeof options.maxWriteOpsPerMinute === "number") {
115
- policy.maxWriteOpsPerMinute = options.maxWriteOpsPerMinute;
116
- }
117
- if (typeof options.maxGitPushesPerHour === "number") {
118
- policy.maxGitPushesPerHour = options.maxGitPushesPerHour;
119
- }
120
- return policy;
121
- }
122
- export async function runDaemonFromCli(options = {}) {
123
- const parsed = parseDaemonOptions(options);
124
- await runDaemon(parsed);
125
- }
126
- export async function stopDaemonFromCli() {
127
- const { resolveRuntimeRootDirectory, findRuntimeOwnerRecordByAriaHome, removeRuntimeOwnerRecord, } = await import("@aria-cli/server");
128
- const { getAriaDir } = await import("../config.js");
129
- const ariaHome = getAriaDir();
130
- const runtimeRoot = resolveRuntimeRootDirectory();
131
- const owner = findRuntimeOwnerRecordByAriaHome(runtimeRoot, ariaHome);
132
- if (!owner) {
133
- console.log("[daemon] no running daemon found");
134
- return;
135
- }
136
- try {
137
- process.kill(owner.runtimePid, "SIGINT");
138
- console.log(`[daemon] sent SIGINT to pid ${owner.runtimePid}`);
139
- // Wait for process to exit
140
- const deadline = Date.now() + 5_000;
141
- while (Date.now() < deadline) {
142
- try {
143
- process.kill(owner.runtimePid, 0);
144
- await new Promise((r) => setTimeout(r, 200));
145
- }
146
- catch {
147
- break; // Process exited
148
- }
149
- }
150
- // Force kill if still alive
151
- try {
152
- process.kill(owner.runtimePid, 0);
153
- process.kill(owner.runtimePid, "SIGKILL");
154
- console.log(`[daemon] force-killed pid ${owner.runtimePid}`);
155
- }
156
- catch {
157
- // Already dead — good
158
- }
159
- }
160
- catch {
161
- // PID doesn't exist — stale record
162
- }
163
- removeRuntimeOwnerRecord(runtimeRoot, owner.nodeId);
164
- console.log("[daemon] stopped");
165
- }
166
- export async function restartDaemonFromCli(options = {}) {
167
- await stopDaemonFromCli();
168
- await new Promise((r) => setTimeout(r, 500));
169
- const { ensureDaemon } = await import("../ensure-daemon.js");
170
- const cliContext = await createCliContext();
171
- const conn = await ensureDaemon(cliContext);
172
- const peers = await conn.control.listPeers();
173
- console.log(`[daemon] restarted (${peers.length} peers connected)`);
174
- await cliContext.pool?.closeAll?.();
175
- }
176
- async function runDaemon(options) {
177
- const config = loadConfig();
178
- const arionName = options.arion?.trim() || config.activeArion?.trim() || "ARIA";
179
- const cliContext = await createCliContext({ startupMode: "daemon" });
180
- const daemonService = createDaemonService({
181
- cli: cliContext,
182
- cwd: process.cwd(),
183
- arionName,
184
- });
185
- try {
186
- const status = await daemonService.start(toDaemonInput(options));
187
- console.log(`[daemon] runtime node ${String(status.nodeId ?? "unknown")}`);
188
- console.log(`[daemon] runtime ${String(status.runtimeId ?? "unknown")} listening on port ${String(status.port ?? "unknown")}`);
189
- console.log(`[daemon] running arion "${arionName}" (interval ${options.intervalMs}ms)`);
190
- for (const line of formatStorageDiagnostics(status.storage)) {
191
- console.log(line);
192
- }
193
- }
194
- catch (err) {
195
- console.error(`[daemon] Runtime startup failed: ${err instanceof Error ? err.message : String(err)}`);
196
- process.exitCode = 1;
197
- await cliContext.pool.closeAll().catch(() => { });
198
- return;
199
- }
200
- // ── Default mode: print status and exit ──────────────────────────
201
- // The detached daemon child is self-sufficient. The CLI wrapper does
202
- // not need to stay resident. Use --foreground to keep a monitor alive.
203
- if (!options.foreground) {
204
- console.log("[daemon] started (use --foreground to keep this process as a monitor)");
205
- await cliContext.pool.closeAll().catch(() => { });
206
- return;
207
- }
208
- // ── Foreground monitor mode ──────────────────────────────────────
209
- // Stay resident and poll status. Ctrl-C stops both this monitor and
210
- // the daemon (via shouldStopOnShutdown).
211
- console.log("[daemon] foreground monitor active (Ctrl-C to stop daemon)");
212
- const controller = new AbortController();
213
- const onSigint = () => controller.abort();
214
- const onSigterm = () => controller.abort();
215
- const onSighup = () => {
216
- // Attached-client terminal hangups must not stop the runtime by themselves.
217
- };
218
- process.on("SIGINT", onSigint);
219
- process.on("SIGTERM", onSigterm);
220
- process.on("SIGHUP", onSighup);
221
- const statusPoll = setInterval(() => {
222
- void daemonService.status({}).catch(() => { });
223
- }, Math.min(Math.max(options.intervalMs, 1_000), 5_000));
224
- try {
225
- await waitForAbort(controller.signal);
226
- }
227
- finally {
228
- clearInterval(statusPoll);
229
- try {
230
- if (controller.signal.aborted && daemonService.shouldStopOnShutdown?.()) {
231
- await daemonService.stop?.(toDaemonInput(options));
232
- }
233
- }
234
- catch {
235
- // Stop is best-effort during shutdown.
236
- }
237
- await daemonService.releaseAll?.();
238
- await cliContext.pool.closeAll().catch(() => { });
239
- process.removeListener("SIGINT", onSigint);
240
- process.removeListener("SIGTERM", onSigterm);
241
- process.removeListener("SIGHUP", onSighup);
242
- console.log("[daemon] stopped");
243
- }
244
- }
245
- //# sourceMappingURL=daemon.js.map
@@ -1,176 +0,0 @@
1
- /**
2
- * Command definitions for the CLI
3
- */
4
- export const COMMANDS = [
5
- // Arion commands
6
- {
7
- name: "become",
8
- description: "Switch to another arion",
9
- usage: "/become <name>",
10
- args: ["<name>"],
11
- requiresArgs: true,
12
- },
13
- { name: "arions", description: "List all arions", args: [] },
14
- {
15
- name: "hatch",
16
- description: "Create a new arion",
17
- usage: "/hatch <name> [description]",
18
- args: ["<name>", "[description]"],
19
- requiresArgs: true,
20
- },
21
- {
22
- name: "rest",
23
- description: "Put an arion to rest",
24
- usage: "/rest <name>",
25
- args: ["<name>"],
26
- requiresArgs: true,
27
- },
28
- {
29
- name: "wake",
30
- description: "Wake a resting arion",
31
- usage: "/wake <name>",
32
- args: ["<name>"],
33
- requiresArgs: true,
34
- },
35
- // Model commands
36
- {
37
- name: "model",
38
- description: "Change or view current AI model",
39
- usage: "/model [name|list|refresh] [--provider <name>] [--use-env]",
40
- args: ["[name|list|refresh]", "[--provider <name>]", "[--use-env]"],
41
- },
42
- // Safety commands
43
- {
44
- name: "autonomy",
45
- description: "Change permission approval policy",
46
- usage: "/autonomy [level]",
47
- args: ["[level]"],
48
- },
49
- // Sound commands
50
- {
51
- name: "sound",
52
- description: "Open sound preferences or toggle notifications",
53
- usage: "/sound [on|off]",
54
- args: ["[on|off]"],
55
- },
56
- // Memory commands
57
- {
58
- name: "remember",
59
- description: "Store a memory",
60
- usage: "/remember <text>",
61
- args: ["<text>"],
62
- requiresArgs: true,
63
- },
64
- {
65
- name: "recall",
66
- description: "Search memories",
67
- usage: "/recall <query>",
68
- args: ["<query>"],
69
- requiresArgs: true,
70
- },
71
- {
72
- name: "recall_knowledge",
73
- description: "Search learned tools (skills, procedures, techniques)",
74
- usage: "/recall_knowledge <topic>",
75
- args: ["<topic>"],
76
- requiresArgs: true,
77
- },
78
- {
79
- name: "send",
80
- description: "Send a peer or same-home client message through the runtime transport",
81
- usage: "/send <peer-name|node-id|client-id> <message>",
82
- args: ["<peer-name|node-id|client-id>", "<message>"],
83
- requiresArgs: true,
84
- },
85
- {
86
- name: "forget",
87
- description: "Delete a memory",
88
- usage: "/forget <id>",
89
- args: ["<id>"],
90
- requiresArgs: true,
91
- },
92
- { name: "memories", description: "Browse all memories", args: [] },
93
- // Session commands
94
- {
95
- name: "resume",
96
- description: "Resume a previous session",
97
- args: ["[session-id]"],
98
- },
99
- {
100
- name: "fork",
101
- description: "Fork the current session into a new branch",
102
- usage: "/fork [session-id] [message-count] [--stay]",
103
- args: ["[session-id]", "[message-count]", "[--stay]"],
104
- },
105
- { name: "clear", description: "Clear the screen", args: [] },
106
- // Auth commands
107
- {
108
- name: "login",
109
- description: "Authenticate with provider (bedrock, anthropic, openai, google, copilot)",
110
- usage: "/login [provider] [api-key|--profile <label>|--source <gh|device>]",
111
- args: ["[provider]", "[api-key|flags]"],
112
- },
113
- {
114
- name: "logout",
115
- description: "Disconnect a provider or clear all credentials",
116
- usage: "/logout [provider|all]",
117
- args: ["[provider|all]"],
118
- },
119
- {
120
- name: "auth",
121
- description: "Auth utilities such as importing env credentials into session scope",
122
- usage: "/auth import-env [provider ...] | /auth clear-session | /auth status-session",
123
- args: ["import-env|clear-session|status-session", "[provider ...]"],
124
- },
125
- // System commands
126
- { name: "help", description: "Show available commands", args: [] },
127
- {
128
- name: "daemon",
129
- description: "Open daemon control panel or run start/stop/restart",
130
- usage: "/daemon [start|stop|restart]",
131
- args: ["[start|stop|restart]"],
132
- },
133
- {
134
- name: "terminal-setup",
135
- description: "Install Shift+Enter newline key binding for supported terminals",
136
- usage: "/terminal-setup",
137
- args: [],
138
- },
139
- // Display commands
140
- {
141
- name: "theme",
142
- description: "View or change the color theme",
143
- usage: "/theme [name]",
144
- args: ["[name]"],
145
- },
146
- // Peer discovery commands
147
- {
148
- name: "invite",
149
- description: "Create an internet invite token",
150
- usage: "/invite [label]",
151
- args: ["[label]"],
152
- },
153
- {
154
- name: "join",
155
- description: "Accept an internet invite token",
156
- usage: "/join [token]",
157
- args: ["[token]"],
158
- },
159
- { name: "peers", description: "Show nearby peers and connect", args: [] },
160
- { name: "clients", description: "Show same-home attached clients", args: [] },
161
- { name: "exit", description: "Exit ARIA", args: [] },
162
- ];
163
- /**
164
- * Get a command by name
165
- */
166
- export function getCommand(name) {
167
- return COMMANDS.find((c) => c.name === name);
168
- }
169
- /**
170
- * Filter commands by prefix
171
- */
172
- export function filterCommands(prefix) {
173
- const lower = prefix.toLowerCase();
174
- return COMMANDS.filter((c) => c.name.toLowerCase().startsWith(lower));
175
- }
176
- //# sourceMappingURL=definitions.js.map
@@ -1,74 +0,0 @@
1
- /**
2
- * ARIA CLI Commands - Command infrastructure using Commander.js
3
- */
4
- import { Command } from "commander";
5
- import { createArionsCommand } from "./arions.js";
6
- import { createAuthCommand } from "./auth.js";
7
- import { runDaemonFromCli, stopDaemonFromCli, restartDaemonFromCli } from "./daemon.js";
8
- import { createHeadlessCallCommand } from "../headless/call-command.js";
9
- import { createPairingCommand } from "./pairing.js";
10
- import { createRuntimeCutoverResetCommand } from "./runtime-cutover-reset-command.js";
11
- import { startHeadlessStdioServer } from "../headless/stdio-server.js";
12
- // Create the main program
13
- export const program = new Command();
14
- import { CLI_VERSION } from "../release-notes.js";
15
- program
16
- .name("aria")
17
- .description("ARIA - Adaptive Reasoning Intelligence Agent")
18
- .version(CLI_VERSION);
19
- // Arions command - Manage Arion personas
20
- program.addCommand(createArionsCommand());
21
- // Auth command - Manage API keys
22
- program.addCommand(createAuthCommand());
23
- // Pairing command - End-user internet invite/join
24
- program.addCommand(createPairingCommand());
25
- program
26
- .command("headless")
27
- .description("Run the persistent headless stdio control server")
28
- .option("--arion <name>", "Arion name for per-Arion session context")
29
- .action(async (options) => {
30
- await startHeadlessStdioServer({
31
- cwd: process.cwd(),
32
- arionName: options.arion,
33
- });
34
- });
35
- program.addCommand(createHeadlessCallCommand());
36
- // Daemon command group
37
- const daemonCmd = program.command("daemon").description("Manage the ARIA daemon");
38
- daemonCmd
39
- .command("start", { isDefault: true })
40
- .description("Start the daemon (default: launch and exit; use --foreground to stay resident)")
41
- .option("--arion <name>", "Run daemon for a specific Arion")
42
- .option("--port <port>", "Server port (default: 0 = OS-assigned)")
43
- .option("--interval-ms <ms>", "Wake loop interval in milliseconds (default: 60000)")
44
- .option("--foreground", "Stay resident as a monitor (Ctrl-C stops the daemon)")
45
- .option("--allowed-tool-categories <list>", "Comma-separated tool category allowlist")
46
- .option("--allowed-shell-commands <list>", "Comma-separated shell command prefix allowlist")
47
- .option("--max-write-ops-per-minute <count>", "Rate limit for write operations per minute")
48
- .option("--max-git-pushes-per-hour <count>", "Rate limit for git pushes per hour")
49
- .action(async (options) => {
50
- await runDaemonFromCli(options);
51
- });
52
- daemonCmd
53
- .command("stop")
54
- .description("Stop the running daemon")
55
- .action(async () => {
56
- await stopDaemonFromCli();
57
- });
58
- daemonCmd
59
- .command("restart")
60
- .description("Stop the daemon and start a fresh one")
61
- .action(async () => {
62
- await restartDaemonFromCli();
63
- });
64
- program.addCommand(createRuntimeCutoverResetCommand());
65
- // Export for use in bin/aria.js
66
- export { createArionsCommand } from "./arions.js";
67
- export { createAuthCommand } from "./auth.js";
68
- export { createHeadlessCallCommand } from "../headless/call-command.js";
69
- export { runDaemonFromCli } from "./daemon.js";
70
- export { createPairingCommand } from "./pairing.js";
71
- export { createRuntimeCutoverResetCommand } from "./runtime-cutover-reset-command.js";
72
- export { startHeadlessStdioServer } from "../headless/stdio-server.js";
73
- export { runtimeCutoverResetCommand } from "./runtime-cutover-reset.js";
74
- //# sourceMappingURL=index.js.map