@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,114 +0,0 @@
1
- // packages/cli/src/ui/utils/risk.ts
2
- export function assessToolRisk(toolName, args) {
3
- const reasons = [];
4
- let score = 30; // Base score (moderate)
5
- // Tool-specific risk assessment
6
- switch (toolName.toLowerCase()) {
7
- case "fileread":
8
- case "glob":
9
- case "grep":
10
- case "ls":
11
- case "read":
12
- score = 10; // Low risk - read-only
13
- break;
14
- case "fileedit":
15
- case "edit":
16
- score = 40; // Moderate - modifies existing files
17
- reasons.push("Modifies existing file");
18
- break;
19
- case "filewrite":
20
- case "write":
21
- score = 50; // Moderate-high - creates/overwrites files
22
- reasons.push("Creates or overwrites file");
23
- break;
24
- case "bash":
25
- score = assessBashRisk(typeof args.command === "string" ? args.command : undefined, reasons);
26
- break;
27
- default:
28
- score = 50; // Unknown tools default to moderate-high
29
- reasons.push("Unknown tool type");
30
- }
31
- // Determine level from score
32
- let level;
33
- if (score < 30) {
34
- level = "low";
35
- }
36
- else if (score < 70) {
37
- level = "moderate";
38
- }
39
- else {
40
- level = "high";
41
- }
42
- return { level, score, reasons };
43
- }
44
- function assessBashRisk(command, reasons) {
45
- if (!command)
46
- return 50;
47
- const cmd = command.toLowerCase();
48
- let score = 40;
49
- // High-risk patterns
50
- const highRiskPatterns = [
51
- { pattern: /\brm\s+-(rf|fr|r\b)|\brm\s+--recursive/, reason: "Recursive delete command" },
52
- { pattern: /\bsudo\b/, reason: "Elevated privileges" },
53
- { pattern: /\bchmod\b.*777/, reason: "Insecure permissions" },
54
- { pattern: /\|\s*(bash|sh|zsh)\b/, reason: "Piped to shell execution" },
55
- { pattern: /\b(curl|wget)\b.*\|\s*(bash|sh)/, reason: "Remote script execution" },
56
- { pattern: /\bdd\b/, reason: "Low-level disk operation" },
57
- { pattern: /\bmkfs\b/, reason: "Filesystem creation" },
58
- { pattern: />\s*\/dev\//, reason: "Device file write" },
59
- { pattern: /\bchmod\s+000/, reason: "Removes all file permissions" },
60
- { pattern: /(?:^|[;&|])\s*>/, reason: "File truncation via redirect" },
61
- {
62
- pattern: /\b(curl|wget)\b.*-o.*&&\s*(bash|sh|chmod)/,
63
- reason: "Download and execute pattern",
64
- },
65
- ];
66
- for (const { pattern, reason } of highRiskPatterns) {
67
- if (pattern.test(cmd)) {
68
- score = Math.max(score, 80);
69
- reasons.push(reason);
70
- }
71
- }
72
- // Moderate-risk patterns
73
- const moderateRiskPatterns = [
74
- { pattern: /\brm\b/, reason: "Delete command" },
75
- { pattern: /\bmv\b/, reason: "Move/rename command" },
76
- { pattern: /\bcp\b.*-r/, reason: "Recursive copy" },
77
- { pattern: /\bnpm\s+(install|i)\b/, reason: "Package installation" },
78
- { pattern: /\bgit\s+(push|reset|rebase)/, reason: "Git write operation" },
79
- { pattern: /\btruncate\b/, reason: "File truncation command" },
80
- { pattern: /\bkill\s+-9\b|\bpkill\b/, reason: "Force kill process" },
81
- ];
82
- for (const { pattern, reason } of moderateRiskPatterns) {
83
- if (pattern.test(cmd) && score < 60) {
84
- score = Math.max(score, 50);
85
- reasons.push(reason);
86
- }
87
- }
88
- // Low-risk patterns
89
- const lowRiskPatterns = [
90
- /\bls\b/,
91
- /\bcat\b/,
92
- /\bgrep\b/,
93
- /\bfind\b/,
94
- /\becho\b/,
95
- /\bpwd\b/,
96
- /\bwhoami\b/,
97
- /\bgit\s+(status|log|diff|branch)\b/,
98
- ];
99
- if (lowRiskPatterns.some((p) => p.test(cmd)) && reasons.length === 0) {
100
- score = 20;
101
- }
102
- return score;
103
- }
104
- export function getRiskColor(level, theme) {
105
- switch (level) {
106
- case "low":
107
- return theme.colors.success;
108
- case "moderate":
109
- return theme.colors.warning;
110
- case "high":
111
- return theme.colors.error;
112
- }
113
- }
114
- //# sourceMappingURL=risk.js.map
@@ -1,70 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- const IMAGE_DATA_URI_RE = /data:image\/[a-zA-Z0-9.+-]+;base64,[a-zA-Z0-9+/=\n\r]+/g;
3
- export function isITerm2Terminal() {
4
- return (process.env.TERM_PROGRAM ?? "").toLowerCase() === "iterm.app";
5
- }
6
- export function supportsInlineImages() {
7
- return isITerm2Terminal() && Boolean(process.stdout?.isTTY);
8
- }
9
- export function parseImageDataUri(text) {
10
- const trimmed = text.trim();
11
- const match = trimmed.match(/^data:(image\/[a-zA-Z0-9.+-]+);base64,([a-zA-Z0-9+/=\n\r]+)$/);
12
- if (!match)
13
- return null;
14
- const [, mimeType, base64Payload] = match;
15
- if (!mimeType || !base64Payload)
16
- return null;
17
- try {
18
- const cleanPayload = base64Payload.replace(/\s+/g, "");
19
- const buffer = Buffer.from(cleanPayload, "base64");
20
- if (buffer.length === 0)
21
- return null;
22
- return { buffer, mimeType };
23
- }
24
- catch {
25
- return null;
26
- }
27
- }
28
- export function terminalInlineImageFromDataUri(text) {
29
- const parsed = parseImageDataUri(text);
30
- if (!parsed)
31
- return null;
32
- return terminalInlineImage(parsed.buffer, parsed.mimeType);
33
- }
34
- export function terminalInlineImage(buffer, mimeType = "image/png") {
35
- if (!supportsInlineImages())
36
- return null;
37
- const payload = buffer.toString("base64");
38
- // iTerm2 proprietary escape sequence (OSC 1337)
39
- //  (BEL) terminator is widely supported in iTerm2.
40
- return `\u001b]1337;File=inline=1;preserveAspectRatio=1;size=${buffer.length};type=${mimeType}:${payload}\u0007`;
41
- }
42
- export function terminalInlineImageFromPath(path, mimeType = "image/png") {
43
- try {
44
- const buffer = readFileSync(path);
45
- return terminalInlineImage(buffer, mimeType);
46
- }
47
- catch {
48
- return null;
49
- }
50
- }
51
- export function splitTextByInlineImages(text) {
52
- const segments = [];
53
- let lastIndex = 0;
54
- for (const match of text.matchAll(IMAGE_DATA_URI_RE)) {
55
- const index = match.index ?? 0;
56
- const matched = match[0] ?? "";
57
- if (!matched)
58
- continue;
59
- if (index > lastIndex) {
60
- segments.push({ type: "text", text: text.slice(lastIndex, index) });
61
- }
62
- segments.push({ type: "image", dataUri: matched });
63
- lastIndex = index + matched.length;
64
- }
65
- if (lastIndex < text.length) {
66
- segments.push({ type: "text", text: text.slice(lastIndex) });
67
- }
68
- return segments.length > 0 ? segments : [{ type: "text", text }];
69
- }
70
- //# sourceMappingURL=terminal-image.js.map
@@ -1,48 +0,0 @@
1
- // packages/cli/src/ui/utils/validation.ts
2
- export function success() {
3
- return { valid: true };
4
- }
5
- export function failure(message, suggestion) {
6
- return { valid: false, message, suggestion };
7
- }
8
- export function findSimilar(input, candidates, threshold = 0.6) {
9
- const inputLower = input.toLowerCase();
10
- // Exact prefix match first
11
- const prefixMatch = candidates.find((c) => c.toLowerCase().startsWith(inputLower));
12
- if (prefixMatch)
13
- return prefixMatch;
14
- // Levenshtein distance for typos
15
- let bestMatch;
16
- let bestScore = 0;
17
- for (const candidate of candidates) {
18
- const score = similarity(inputLower, candidate.toLowerCase());
19
- if (score > threshold && score > bestScore) {
20
- bestScore = score;
21
- bestMatch = candidate;
22
- }
23
- }
24
- return bestMatch;
25
- }
26
- function similarity(a, b) {
27
- if (a === b)
28
- return 1;
29
- if (a.length === 0 || b.length === 0)
30
- return 0;
31
- const matrix = [];
32
- for (let i = 0; i <= a.length; i++) {
33
- matrix[i] = [i];
34
- }
35
- for (let j = 0; j <= b.length; j++) {
36
- matrix[0][j] = j;
37
- }
38
- for (let i = 1; i <= a.length; i++) {
39
- for (let j = 1; j <= b.length; j++) {
40
- const cost = a[i - 1] === b[j - 1] ? 0 : 1;
41
- matrix[i][j] = Math.min(matrix[i - 1][j] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j - 1] + cost);
42
- }
43
- }
44
- const distance = matrix[a.length][b.length];
45
- const maxLen = Math.max(a.length, b.length);
46
- return 1 - distance / maxLen;
47
- }
48
- //# sourceMappingURL=validation.js.map
@@ -1,248 +0,0 @@
1
- // Shared verb pairs for thinking indicator and thinking block.
2
- // Present tense shown in StreamingIndicator, past tense in ThinkingBlock.
3
- export const VERB_PAIRS = [
4
- // ── General ──────────────────────────────────────────────────────────
5
- { present: "Accomplishing", past: "Accomplished" },
6
- { present: "Actioning", past: "Actioned" },
7
- { present: "Actualizing", past: "Actualized" },
8
- { present: "Absquatulating", past: "Absquatulated" }, // archaic: departing abruptly
9
- { present: "Brewing", past: "Brewed" },
10
- { present: "Calculating", past: "Calculated" },
11
- { present: "Cerebrating", past: "Cerebrated" },
12
- { present: "Churning", past: "Churned" },
13
- { present: "Coalescing", past: "Coalesced" },
14
- { present: "Cogitating", past: "Cogitated" },
15
- { present: "Conjuring", past: "Conjured" },
16
- { present: "Considering", past: "Considered" },
17
- { present: "Contemplating", past: "Contemplated" },
18
- { present: "Cooking", past: "Cooked" },
19
- { present: "Crafting", past: "Crafted" },
20
- { present: "Crunching", past: "Crunched" },
21
- { present: "Deliberating", past: "Deliberated" },
22
- { present: "Determining", past: "Determined" },
23
- { present: "Dillydallying", past: "Dillydallied" },
24
- { present: "Discombobulating", past: "Discombobulated" },
25
- { present: "Doing", past: "Done" },
26
- { present: "Effecting", past: "Effected" },
27
- { present: "Fizzwizzling", past: "Fizzwizzled" }, // Roald Dahl energy
28
- { present: "Forging", past: "Forged" },
29
- { present: "Frobnicating", past: "Frobnicated" }, // hacker jargon: twiddle purposelessly
30
- { present: "Gallivanting", past: "Gallivanted" },
31
- { present: "Generating", past: "Generated" },
32
- { present: "Hatching", past: "Hatched" },
33
- { present: "Herding", past: "Herded" },
34
- { present: "Honking", past: "Honked" },
35
- { present: "Ideating", past: "Ideated" },
36
- { present: "Inferring", past: "Inferred" },
37
- { present: "Lollygagging", past: "Lollygagged" },
38
- { present: "Manifesting", past: "Manifested" },
39
- { present: "Marinating", past: "Marinated" },
40
- { present: "Moseying", past: "Moseyed" },
41
- { present: "Mulling", past: "Mulled" },
42
- { present: "Mustering", past: "Mustered" },
43
- { present: "Musing", past: "Mused" },
44
- { present: "Noodling", past: "Noodled" },
45
- { present: "Perambulating", past: "Perambulated" }, // fancy strolling
46
- { present: "Percolating", past: "Percolated" },
47
- { present: "Pondering", past: "Pondered" },
48
- { present: "Prestidigitating", past: "Prestidigitated" },
49
- { present: "Processing", past: "Processed" },
50
- { present: "Puttering", past: "Puttered" },
51
- { present: "Reflecting", past: "Reflected" },
52
- { present: "Reticulating", past: "Reticulated" },
53
- { present: "Ruminating", past: "Ruminated" },
54
- { present: "Schlepping", past: "Schlepped" },
55
- { present: "Shenaniganing", past: "Shenaniganed" },
56
- { present: "Skedaddling", past: "Skedaddled" },
57
- { present: "Snozzwangling", past: "Snozzwangled" }, // made-up Dahl-esque nonsense
58
- { present: "Simmering", past: "Simmered" },
59
- { present: "Smooshing", past: "Smooshed" },
60
- { present: "Spinning", past: "Spun" },
61
- { present: "Stewing", past: "Stewed" },
62
- { present: "Synthesizing", past: "Synthesized" },
63
- { present: "Thaumaturging", past: "Thaumaturged" },
64
- { present: "Thinking", past: "Thought" },
65
- { present: "Transmogrifying", past: "Transmogrified" },
66
- { present: "Transmuting", past: "Transmuted" },
67
- { present: "Vibing", past: "Vibed" },
68
- { present: "Weaving", past: "Woven" },
69
- { present: "Working", past: "Worked" },
70
- // ── ARIA / Arion 🦋 ─────────────────────────────────────────────────
71
- { present: "Chrysalizing", past: "Chrysalized" }, // cocoon phase
72
- { present: "Fluttering", past: "Fluttered" }, // butterfly vibes
73
- { present: "Harmonizing", past: "Harmonized" }, // ARIA = music
74
- { present: "Metamorphosing", past: "Metamorphosed" }, // butterfly transformation
75
- { present: "Orchestrating", past: "Orchestrated" }, // conductor energy
76
- // ── Pokémon ──────────────────────────────────────────────────────────
77
- { present: "Catching", past: "Caught" }, // Gotta catch 'em all
78
- { present: "Evolving", past: "Evolved" }, // What? ARIA is evolving!
79
- { present: "Mega Evolving", past: "Mega Evolved" }, // beyond evolution
80
- { present: "Summoning", past: "Summoned" }, // I choose you!
81
- // ── Dragon Ball ──────────────────────────────────────────────────────
82
- { present: "Charging", past: "Charged" }, // Kamehame…HAAA
83
- { present: "Fusing", past: "Fused" }, // fu-sion-HA!
84
- { present: "Kamehameha-ing", past: "Kamehameha'd" }, // KA-ME-HA-ME-HAAA
85
- { present: "Powering Up", past: "Powered Up" }, // OVER 9000!!!
86
- { present: "Spirit Bombing", past: "Spirit Bombed" }, // lend me your energy
87
- { present: "Transcending", past: "Transcended" }, // ultra instinct
88
- // ── One Piece ────────────────────────────────────────────────────────
89
- { present: "Gear Shifting", past: "Gear Shifted" }, // GEAR FIFTH
90
- { present: "Gum-Gum-ing", past: "Gum-Gum'd" }, // gomu gomu no~
91
- { present: "Navigating", past: "Navigated" }, // to the Grand Line
92
- { present: "Plundering", past: "Plundered" }, // pirate things
93
- { present: "Sailing", past: "Sailed" }, // to the New World
94
- { present: "Setting Sail", past: "Set Sail" }, // the king of pirates
95
- // ── Gundam ───────────────────────────────────────────────────────────
96
- { present: "Catapulting", past: "Catapulted" }, // Gundam, launching!
97
- { present: "Mobilizing", past: "Mobilized" }, // mobile suit go
98
- { present: "Newtypeing", past: "Newtyped" }, // awakened pilot sense
99
- { present: "Trans-Am-ing", past: "Trans-Am'd" }, // 00 Gundam overdrive
100
- // ── Marvel ───────────────────────────────────────────────────────────
101
- { present: "Assembling", past: "Assembled" }, // Avengers, assemble!
102
- { present: "Hulking", past: "Hulked" }, // ARIA smash
103
- { present: "Snapping", past: "Snapped" }, // perfectly balanced
104
- { present: "Vibranium-ing", past: "Vibranium'd" }, // Wakanda forever
105
- // ── Sci-fi / Fantasy ────────────────────────────────────────────────
106
- { present: "Alchemizing", past: "Alchemized" }, // equivalent exchange
107
- { present: "Assimilating", past: "Assimilated" }, // resistance is futile
108
- { present: "Astral Projecting", past: "Astral Projected" }, // out of body
109
- { present: "Beaming", past: "Beamed" }, // beam me up
110
- { present: "Cloaking", past: "Cloaked" }, // Romulan style
111
- { present: "Dematerializing", past: "Dematerialized" }, // TARDIS vibes
112
- { present: "Enchanting", past: "Enchanted" }, // +5 to wisdom
113
- { present: "Engaging", past: "Engaged" }, // make it so
114
- { present: "Ensorcelling", past: "Ensorcelled" }, // bewitching
115
- { present: "Holographing", past: "Holographed" }, // help me Obi-Wan
116
- { present: "Hyperjumping", past: "Hyperjumped" }, // punch it, Chewie
117
- { present: "Morphing", past: "Morphed" }, // it's morphin' time
118
- { present: "Nebulizing", past: "Nebulized" }, // dissolving into stardust
119
- { present: "Phasing", past: "Phased" }, // passing through walls
120
- { present: "Quantum Leaping", past: "Quantum Leapt" }, // oh boy
121
- { present: "Shapeshifting", past: "Shapeshifted" }, // T-1000
122
- { present: "Spellcasting", past: "Spellcast" }, // rolling a nat 20
123
- { present: "Teleporting", past: "Teleported" }, // *blink*
124
- { present: "Terraforming", past: "Terraformed" }, // making worlds
125
- { present: "Time Traveling", past: "Time Traveled" }, // 1.21 gigawatts!
126
- { present: "Time Warping", past: "Time Warped" }, // it's just a jump to the left
127
- { present: "Transforming", past: "Transformed" }, // more than meets the eye
128
- { present: "Warping", past: "Warped" }, // warp drive
129
- { present: "Wormholing", past: "Wormholed" }, // bending spacetime
130
- // ── Totally Made Up ──────────────────────────────────────────────────
131
- { present: "Bepuzzling", past: "Bepuzzled" },
132
- { present: "Blorbulating", past: "Blorbulated" },
133
- { present: "Cattywampusing", past: "Cattywampused" },
134
- { present: "Cromulating", past: "Cromulated" }, // perfectly cromulent
135
- { present: "Discorbuflating", past: "Discorbuflated" },
136
- { present: "Embiggenating", past: "Embiggenated" }, // a noble spirit embiggens
137
- { present: "Flibbertigibbeting", past: "Flibbertigibbeted" },
138
- { present: "Flonkifying", past: "Flonkified" },
139
- { present: "Frobscottling", past: "Frobscottled" }, // BFG-tier nonsense
140
- { present: "Glorpifying", past: "Glorpified" },
141
- { present: "Gobsmacking", past: "Gobsmacked" },
142
- { present: "Higgledy-piggling", past: "Higgledy-piggled" },
143
- { present: "Kerfuffling", past: "Kerfuffled" },
144
- { present: "Mumblewumbling", past: "Mumblewumbled" },
145
- { present: "Phantasmagoring", past: "Phantasmagored" },
146
- { present: "Quibberflasting", past: "Quibberflasted" },
147
- { present: "Quorfluxing", past: "Quorfluxed" },
148
- { present: "Rigmaroling", past: "Rigmaroled" },
149
- { present: "Snizzleworfing", past: "Snizzleworfed" },
150
- { present: "Snorfulating", past: "Snorfulated" },
151
- { present: "Spatchcocking", past: "Spatchcocked" }, // real word, absurd out of context
152
- { present: "Wibbling", past: "Wibbled" }, // Doctor Who vibes
153
- { present: "Yoinking", past: "Yoinked" },
154
- { present: "Zippledorping", past: "Zippledorped" },
155
- { present: "Zorbinating", past: "Zorbinated" },
156
- // ── Manga (general) ─────────────────────────────────────────────────
157
- { present: "Awakening", past: "Awakened" }, // final form unlocked
158
- { present: "Bankai-ing", past: "Bankai'd" }, // Bleach
159
- { present: "Rasengan-ing", past: "Rasengan'd" }, // Naruto
160
- { present: "Unleashing", past: "Unleashed" }, // hidden power
161
- ];
162
- export function pickRandomVerbPair() {
163
- return VERB_PAIRS[Math.floor(Math.random() * VERB_PAIRS.length)] ?? VERB_PAIRS[0];
164
- }
165
- /**
166
- * Convert a present-tense verb to past tense using the verb pairs table.
167
- * Falls back to the input if not found.
168
- */
169
- export function presentToPast(present) {
170
- const pair = VERB_PAIRS.find((p) => p.present === present);
171
- return pair?.past ?? present;
172
- }
173
- // Words dropped entirely from display (file/web tools only)
174
- const DROP_WORDS = new Set(["file", "web"]);
175
- // Tool names that don't read well when naively title-cased.
176
- // Maps the raw tool name to the word(s) used for display.
177
- const TOOL_ALIASES = {
178
- ls: "list",
179
- rm: "remove",
180
- cp: "copy",
181
- mv: "move",
182
- cd: "change_dir",
183
- mkdir: "make_dir",
184
- };
185
- // Known nouns in tool names — never inflected with "-ing".
186
- // Any word NOT in this set is treated as the verb.
187
- const NOUNS = new Set([
188
- "arion",
189
- "delegation",
190
- "knowledge",
191
- "patch",
192
- "processes",
193
- "process",
194
- "quest",
195
- "skill",
196
- "stdin",
197
- "tool",
198
- "user",
199
- "worker",
200
- ]);
201
- /**
202
- * Format a snake_case tool name for display.
203
- * Drops "file" and "web" for brevity, title-cases the rest.
204
- * When active=true, adds "-ing" to the verb word (first non-noun).
205
- *
206
- * Base: "create_skill" → "Create Skill", "read_file" → "Read", "quest_list" → "Quest List"
207
- * Active: "create_skill" → "Creating Skill", "read_file" → "Reading", "quest_list" → "Quest Listing"
208
- */
209
- export function toolDisplayName(toolName, active = false) {
210
- const canonical = TOOL_ALIASES[toolName] ?? toolName;
211
- const words = canonical.split("_").filter((w) => !DROP_WORDS.has(w.toLowerCase()));
212
- if (words.length === 0)
213
- return active ? addIng(canonical.toLowerCase()) : capitalize(canonical);
214
- // Find verb index: first non-noun word; fallback to first word
215
- const verbIdx = active ? findVerbIndex(words) : -1;
216
- return words
217
- .map((w, i) => (i === verbIdx ? addIng(w.toLowerCase()) : capitalize(w.toLowerCase())))
218
- .join(" ");
219
- }
220
- function findVerbIndex(words) {
221
- const idx = words.findIndex((w) => !NOUNS.has(w.toLowerCase()));
222
- return idx >= 0 ? idx : 0;
223
- }
224
- // Words where the final consonant doubles before "-ing" (stressed final CVC)
225
- const DOUBLE_FINAL = new Set([
226
- "glob",
227
- "grep",
228
- "run",
229
- "get",
230
- "set",
231
- "put",
232
- "stop",
233
- "spin",
234
- "forget",
235
- ]);
236
- function addIng(lower) {
237
- if (lower.endsWith("e") && lower.length > 2) {
238
- return capitalize(lower.slice(0, -1)) + "ing";
239
- }
240
- if (DOUBLE_FINAL.has(lower)) {
241
- return capitalize(lower) + lower[lower.length - 1] + "ing";
242
- }
243
- return capitalize(lower) + "ing";
244
- }
245
- function capitalize(s) {
246
- return s.charAt(0).toUpperCase() + s.slice(1);
247
- }
248
- //# sourceMappingURL=verb-pairs.js.map
package/dist/ui.js DELETED
@@ -1,131 +0,0 @@
1
- /**
2
- * ARIA CLI UI Components
3
- * Polished terminal UI with colors, spinners, and system messages
4
- */
5
- // ANSI color codes
6
- export const colors = {
7
- reset: "\x1b[0m",
8
- bold: "\x1b[1m",
9
- dim: "\x1b[2m",
10
- cyan: "\x1b[36m",
11
- magenta: "\x1b[35m",
12
- green: "\x1b[32m",
13
- yellow: "\x1b[33m",
14
- red: "\x1b[31m",
15
- blue: "\x1b[34m",
16
- white: "\x1b[37m",
17
- gray: "\x1b[90m",
18
- };
19
- // Cursor control
20
- export const cursor = {
21
- hide: "\x1b[?25l",
22
- show: "\x1b[?25h",
23
- clearLine: "\x1b[2K",
24
- moveUp: (n) => `\x1b[${n}A`,
25
- moveDown: (n) => `\x1b[${n}B`,
26
- moveToColumn: (n) => `\x1b[${n}G`,
27
- };
28
- // Box drawing characters
29
- const box = {
30
- topLeft: "┌",
31
- bottomLeft: "└",
32
- vertical: "│",
33
- };
34
- /**
35
- * Animated spinner with label
36
- */
37
- export class Spinner {
38
- interval = null;
39
- frame = 0;
40
- frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
41
- label;
42
- labelColor;
43
- lineCount = 1;
44
- minimal;
45
- constructor(label = "", labelColor = colors.yellow, minimal = false) {
46
- this.label = label;
47
- this.labelColor = labelColor;
48
- this.minimal = minimal;
49
- }
50
- start() {
51
- process.stdout.write(cursor.hide);
52
- if (this.minimal) {
53
- // Minimal mode: just the spinner, no prefix
54
- this.interval = setInterval(() => {
55
- process.stdout.write(`\r${colors.cyan}${this.frames[this.frame++ % this.frames.length]}${colors.reset}`);
56
- }, 80);
57
- }
58
- else {
59
- const prefix = `${colors.magenta}ARIA${colors.reset} ${colors.dim}${box.topLeft}${colors.reset} `;
60
- const labelText = this.label ? `${this.labelColor}${this.label}${colors.reset} ` : "";
61
- this.interval = setInterval(() => {
62
- process.stdout.write(`\r${prefix}${labelText}${colors.cyan}${this.frames[this.frame++ % this.frames.length]}${colors.reset}`);
63
- }, 80);
64
- }
65
- }
66
- stop() {
67
- if (this.interval) {
68
- clearInterval(this.interval);
69
- this.interval = null;
70
- }
71
- process.stdout.write("\r" + cursor.clearLine);
72
- process.stdout.write(cursor.show);
73
- }
74
- /** Get number of lines this spinner occupies */
75
- getLineCount() {
76
- return this.lineCount;
77
- }
78
- }
79
- /**
80
- * System message box for displaying status and results
81
- */
82
- export class SystemMessage {
83
- /**
84
- * Display a boxed message with header and content lines
85
- */
86
- static show(options) {
87
- const { header, headerColor, content = [], contentColor = `${colors.dim}${colors.gray}`, } = options;
88
- const prefix = `${colors.magenta}ARIA${colors.reset}`;
89
- const dimBorder = `${colors.dim}${colors.gray}`;
90
- // Header line
91
- console.log(`${prefix} ${dimBorder}${box.topLeft}${colors.reset} ${headerColor}${header}${colors.reset}`);
92
- // Content lines
93
- for (let i = 0; i < content.length; i++) {
94
- const borderChar = i === content.length - 1 ? box.bottomLeft : box.vertical;
95
- console.log(` ${dimBorder}${borderChar}${colors.reset} ${contentColor}${content[i]}${colors.reset}`);
96
- }
97
- return 1 + content.length; // Return line count
98
- }
99
- /**
100
- * Show "remembered" message with learned memories
101
- */
102
- static showRemembered(memories) {
103
- if (memories.length === 0)
104
- return;
105
- SystemMessage.show({
106
- header: "remembered",
107
- headerColor: colors.green,
108
- content: memories.map((m) => m.content),
109
- });
110
- }
111
- /**
112
- * Show error message
113
- */
114
- static showError(message) {
115
- SystemMessage.show({
116
- header: `⚠ error`,
117
- headerColor: colors.red,
118
- content: [message],
119
- });
120
- }
121
- }
122
- /**
123
- * Format the user prompt
124
- */
125
- export function formatPrompt(userName) {
126
- if (userName) {
127
- return `${colors.cyan}${userName}${colors.reset} `;
128
- }
129
- return `${colors.cyan}>${colors.reset} `;
130
- }
131
- //# sourceMappingURL=ui.js.map
@@ -1,5 +0,0 @@
1
- import { program } from "../commands/index.js";
2
-
3
- export async function runCommandMode(argv = process.argv): Promise<void> {
4
- await program.parseAsync(argv);
5
- }
@@ -1,54 +0,0 @@
1
- import type { DaemonLauncherCliOptions } from "@aria-cli/server/daemon-launcher";
2
- import { runServerDaemonLauncherFromCli } from "@aria-cli/server/daemon-launcher";
3
-
4
- function requireValue(argv: string[], index: number, flag: string): string {
5
- const value = argv[index + 1];
6
- if (!value) throw new Error(`${flag} requires a value`);
7
- return value;
8
- }
9
-
10
- function parseDaemonArgs(argv: string[]): DaemonLauncherCliOptions {
11
- const options: DaemonLauncherCliOptions = {};
12
-
13
- for (let i = 0; i < argv.length; i += 1) {
14
- const arg = argv[i];
15
- switch (arg) {
16
- case "--arion":
17
- options.arion = requireValue(argv, i, arg);
18
- i += 1;
19
- break;
20
- case "--port":
21
- options.port = requireValue(argv, i, arg);
22
- i += 1;
23
- break;
24
- case "--interval-ms":
25
- options.intervalMs = requireValue(argv, i, arg);
26
- i += 1;
27
- break;
28
- case "--allowed-tool-categories":
29
- options.allowedToolCategories = requireValue(argv, i, arg);
30
- i += 1;
31
- break;
32
- case "--allowed-shell-commands":
33
- options.allowedShellCommands = requireValue(argv, i, arg);
34
- i += 1;
35
- break;
36
- case "--max-write-ops-per-minute":
37
- options.maxWriteOpsPerMinute = requireValue(argv, i, arg);
38
- i += 1;
39
- break;
40
- case "--max-git-pushes-per-hour":
41
- options.maxGitPushesPerHour = requireValue(argv, i, arg);
42
- i += 1;
43
- break;
44
- default:
45
- throw new Error(`[aria] Unknown internal daemon arg: ${arg}`);
46
- }
47
- }
48
-
49
- return options;
50
- }
51
-
52
- export async function runDaemonEntrypoint(argv: string[]): Promise<void> {
53
- await runServerDaemonLauncherFromCli(parseDaemonArgs(argv));
54
- }