@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,24 +0,0 @@
1
- // packages/cli/src/ui/markdown/tokenizer.ts
2
- import { marked } from "marked";
3
- /**
4
- * Tokenize markdown string into AST tokens
5
- */
6
- export function tokenize(markdown) {
7
- return marked.lexer(markdown);
8
- }
9
- /**
10
- * Check if token is a specific type
11
- */
12
- export function isTokenType(token, type) {
13
- return token.type === type;
14
- }
15
- /**
16
- * Get inline tokens from a token (for nested parsing)
17
- */
18
- export function getInlineTokens(token) {
19
- if ("tokens" in token && Array.isArray(token.tokens)) {
20
- return token.tokens;
21
- }
22
- return [];
23
- }
24
- //# sourceMappingURL=tokenizer.js.map
@@ -1,5 +0,0 @@
1
- /** Flat render model for the ARIA CLI rendering pipeline.
2
- * Replaces the nested DisplayMessage + ContentBlock[] model.
3
- * Each item has `committed` for Static/Live split. */
4
- export {};
5
- //# sourceMappingURL=render-item.js.map
@@ -1,119 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * REPL screen — top-level orchestrator for the ARIA terminal UI.
4
- *
5
- * This module bridges ARIA's runner-event-driven architecture with
6
- * rendering components. It delegates to the
7
- * existing App component for layout and message rendering, while
8
- * adding the forked permission UI for tool approval flows.
9
- *
10
- * Architecture:
11
- * ink-repl.tsx (runner integration, session mgmt, config)
12
- * → REPL.tsx (this file — permission UI bridge)
13
- * → App.tsx (layout, overlays, hotkeys, message rendering)
14
- * → toRenderItems → applyDisplayPolicy → RenderItemView → ToolExecution
15
- * → per-tool renderers (tools/tool-renderer.ts defines the interface)
16
- *
17
- * Per-tool renderers (tools/registry.ts) provide display name, args, and result rendering.
18
- * tool-renderer.ts defines the canonical ToolRenderer interface.
19
- */
20
- import { useMemo, useState } from "react";
21
- import { Box, useStdout } from "ink";
22
- import { App } from "../App.js";
23
- import { PermissionRequest, } from "../components/permissions/PermissionRequest.js";
24
- import { createApprovalLifecycle } from "./approval-lifecycle.js";
25
- /** Canonical tool renderer registry — no adapter layer */
26
- import { TOOL_RENDERERS } from "../tools/registry.js";
27
- export { TOOL_RENDERERS } from "../tools/registry.js";
28
- /**
29
- * Create a ToolLike adapter from ARIA's approval request for the
30
- * forked PermissionRequest component.
31
- */
32
- function createToolLikeForApproval(toolName) {
33
- const renderer = TOOL_RENDERERS[toolName.toLowerCase()];
34
- return {
35
- name: toolName,
36
- userFacingName(input) {
37
- if (renderer) {
38
- return renderer.displayName(input);
39
- }
40
- return toolName;
41
- },
42
- renderToolUseMessage(input, options) {
43
- if (renderer) {
44
- return renderer.renderInput(input, options);
45
- }
46
- return JSON.stringify(input);
47
- },
48
- isReadOnly() {
49
- // Read-only tools don't typically need approval
50
- return false;
51
- },
52
- inputSchema: {
53
- parse(input) {
54
- return (input ?? {});
55
- },
56
- },
57
- };
58
- }
59
- /** Synthetic AssistantMessage for the permission flow */
60
- const SYNTHETIC_ASSISTANT_MESSAGE = {
61
- message: { id: "aria-approval" },
62
- };
63
- /**
64
- * Map ARIA risk level string to a numeric score (0-1) for the
65
- * forked PermissionRequest's riskScore display.
66
- */
67
- function riskLevelToScore(level) {
68
- switch (level) {
69
- case "low":
70
- return 0.2;
71
- case "moderate":
72
- return 0.5;
73
- case "high":
74
- return 0.9;
75
- }
76
- }
77
- /**
78
- * REPL — the top-level screen component.
79
- *
80
- * Wraps App with the forked permission UI. When a tool approval
81
- * request arrives (from ink-repl's onApprovalNeeded callback), this
82
- * component renders the PermissionRequest overlay
83
- * instead of ARIA's basic PermissionPrompt.
84
- */
85
- export function REPL(props) {
86
- const { stdout } = useStdout();
87
- const columns = stdout?.columns ?? 80;
88
- const [verbose] = useState(false);
89
- const approvalLifecycle = useMemo(() => {
90
- if (!props.approvalRequest)
91
- return null;
92
- return createApprovalLifecycle(props.onApprovalChoice);
93
- }, [props.approvalRequest, props.onApprovalChoice]);
94
- // Convert ARIA's approval request to the forked PermissionRequest interface.
95
- const toolUseConfirm = useMemo(() => {
96
- if (!props.approvalRequest || !approvalLifecycle)
97
- return null;
98
- const { toolName, input, riskLevel } = props.approvalRequest;
99
- return {
100
- assistantMessage: SYNTHETIC_ASSISTANT_MESSAGE,
101
- tool: createToolLikeForApproval(toolName),
102
- description: `${toolName} requires approval`,
103
- input: (input ?? {}),
104
- commandPrefix: null,
105
- riskScore: riskLevelToScore(riskLevel),
106
- onAbort: approvalLifecycle.onAbort,
107
- onAllow: approvalLifecycle.onAllow,
108
- onReject: approvalLifecycle.onReject,
109
- };
110
- }, [approvalLifecycle, props.approvalRequest]);
111
- // When approval is active, overlay the PermissionRequest on top of App.
112
- // Approval decisions are settled immediately by onAllow/onReject/onAbort;
113
- // onDone is only a safety-net cleanup path for buggy or partial callers.
114
- if (toolUseConfirm && approvalLifecycle) {
115
- return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(App, { ...props }), _jsx(PermissionRequest, { toolUseConfirm: toolUseConfirm, onDone: approvalLifecycle.onDone, verbose: verbose })] }));
116
- }
117
- return _jsx(App, { ...props });
118
- }
119
- //# sourceMappingURL=REPL.js.map
@@ -1,38 +0,0 @@
1
- /**
2
- * Creates a one-shot approval lifecycle.
3
- *
4
- * Design goals:
5
- * - onAllow/onReject/onAbort are authoritative and immediately settle approval
6
- * - onDone is only a safety-net cleanup path, not the primary source of truth
7
- * - duplicate calls are ignored
8
- * - buggy ordering like onDone() before onAllow() in the same tick still resolves
9
- * correctly because onDone defers its fallback deny to a microtask
10
- */
11
- export function createApprovalLifecycle(onApprovalChoice) {
12
- let settled = false;
13
- const settle = (approved) => {
14
- if (settled)
15
- return;
16
- settled = true;
17
- onApprovalChoice(approved);
18
- };
19
- return {
20
- onAbort() {
21
- settle(false);
22
- },
23
- onAllow(_type) {
24
- settle(true);
25
- },
26
- onReject() {
27
- settle(false);
28
- },
29
- onDone() {
30
- queueMicrotask(() => {
31
- if (!settled) {
32
- settle(false);
33
- }
34
- });
35
- },
36
- };
37
- }
38
- //# sourceMappingURL=approval-lifecycle.js.map
@@ -1,72 +0,0 @@
1
- /**
2
- * Status Line Component
3
- * Shows which arions are active in the conversation.
4
- */
5
- import { colors } from "../ui.js";
6
- /**
7
- * Calculate the visual width of a string in the terminal.
8
- * Emojis are typically 2 columns wide.
9
- */
10
- export function visualWidth(str) {
11
- // Match emoji sequences (including skin tone modifiers, ZWJ sequences, etc.)
12
- const emojiPattern = /\p{Emoji_Presentation}|\p{Extended_Pictographic}/gu;
13
- const emojis = str.match(emojiPattern) || [];
14
- // Count extra width needed for emojis
15
- // - Emojis with length 2 (surrogate pairs) already have visual width 2 in str.length
16
- // - Emojis with length 1 (BMP) need +1 to account for 2-column display
17
- let extraWidth = 0;
18
- for (const emoji of emojis) {
19
- if (emoji.length === 1) {
20
- extraWidth += 1;
21
- }
22
- // Emojis with length 2 already contribute correctly to str.length
23
- }
24
- return str.length + extraWidth;
25
- }
26
- /**
27
- * Format a status line showing active arions.
28
- *
29
- * Example output for single arion:
30
- * ┌──────────────────────────────────────────────────┐
31
- * │ 🔬 Nova │ analytical+playful │ ████░░░░ 12 memories │
32
- * └──────────────────────────────────────────────────┘
33
- *
34
- * Example output for multiple arions:
35
- * ┌──────────────────────────────────────────────────┐
36
- * │ 🔬 Nova + 🤖 CodeBot │ 2 active │
37
- * └──────────────────────────────────────────────────┘
38
- */
39
- export function formatStatusLine(activeArions, options = {}) {
40
- const { memoryCount } = options;
41
- if (activeArions.length === 0) {
42
- // Show ARIA as the fallback host when no arion is active
43
- const memoryDisplay = memoryCount !== undefined
44
- ? ` │ ${"█".repeat(Math.min(8, Math.floor(memoryCount / 10)))}${"░".repeat(Math.max(0, 8 - Math.floor(memoryCount / 10)))} ${memoryCount} memories`
45
- : "";
46
- const content = `🌟 ARIA │ host${memoryDisplay}`;
47
- const padding = Math.max(0, 50 - visualWidth(content));
48
- return `${colors.dim}┌${"─".repeat(52)}┐${colors.reset}
49
- ${colors.dim}│${colors.reset} ${content}${" ".repeat(padding)} ${colors.dim}│${colors.reset}
50
- ${colors.dim}└${"─".repeat(52)}┘${colors.reset}`;
51
- }
52
- const arionDisplay = activeArions.map((a) => `${a.emoji} ${a.name}`).join(" + ");
53
- const countDisplay = activeArions.length > 1
54
- ? `${activeArions.length} active`
55
- : activeArions[0].personality.traits.slice(0, 2).join("+") || "active";
56
- const memoryDisplay = memoryCount !== undefined
57
- ? ` │ ${"█".repeat(Math.min(8, Math.floor(memoryCount / 10)))}${"░".repeat(Math.max(0, 8 - Math.floor(memoryCount / 10)))} ${memoryCount} memories`
58
- : "";
59
- const content = `${arionDisplay} │ ${countDisplay}${memoryDisplay}`;
60
- const padding = Math.max(0, 50 - visualWidth(content));
61
- return `${colors.dim}┌${"─".repeat(52)}┐${colors.reset}
62
- ${colors.dim}│${colors.reset} ${content}${" ".repeat(padding)} ${colors.dim}│${colors.reset}
63
- ${colors.dim}└${"─".repeat(52)}┘${colors.reset}`;
64
- }
65
- /**
66
- * Generate ANSI escape sequence to clear the status line.
67
- * Moves cursor up 3 lines and clears from cursor to end of screen.
68
- */
69
- export function clearStatusLine() {
70
- return "\x1b[3A\x1b[0J"; // Move up 3 lines and clear
71
- }
72
- //# sourceMappingURL=status-line.js.map
@@ -1,51 +0,0 @@
1
- // packages/cli/src/ui/theme/index.ts
2
- import { darkTheme } from "./themes/dark.js";
3
- import { lightTheme } from "./themes/light.js";
4
- import { darkAccessibleTheme } from "./themes/dark-accessible.js";
5
- import { lightAccessibleTheme } from "./themes/light-accessible.js";
6
- import { claudeDarkTheme } from "./themes/claude-dark.js";
7
- import { claudeLightTheme } from "./themes/claude-light.js";
8
- import { claudeDarkDaltonizedTheme } from "./themes/claude-dark-daltonized.js";
9
- import { claudeLightDaltonizedTheme } from "./themes/claude-light-daltonized.js";
10
- export * from "./types.js";
11
- const themes = {
12
- dark: darkTheme,
13
- light: lightTheme,
14
- "dark-accessible": darkAccessibleTheme,
15
- "light-accessible": lightAccessibleTheme,
16
- "claude-dark": claudeDarkTheme,
17
- "claude-light": claudeLightTheme,
18
- "claude-dark-daltonized": claudeDarkDaltonizedTheme,
19
- "claude-light-daltonized": claudeLightDaltonizedTheme,
20
- };
21
- let currentTheme = darkTheme;
22
- export function setTheme(name) {
23
- if (themes[name]) {
24
- currentTheme = themes[name];
25
- }
26
- }
27
- export function getTheme() {
28
- return currentTheme;
29
- }
30
- export function getAvailableThemes() {
31
- return Object.keys(themes);
32
- }
33
- /** Get a theme definition by name without mutating the current theme. */
34
- export function getThemeDefinition(name) {
35
- return themes[name];
36
- }
37
- /**
38
- * Resolve an arion color to a renderable color string.
39
- * Named colors → theme lookup. Hex strings → pass through. Unknown → white fallback.
40
- */
41
- export function getArionColor(color) {
42
- if (!color)
43
- return currentTheme.colors.arion.white;
44
- if (color in currentTheme.colors.arion) {
45
- return currentTheme.colors.arion[color];
46
- }
47
- if (color.startsWith("#"))
48
- return color;
49
- return currentTheme.colors.arion.white;
50
- }
51
- //# sourceMappingURL=index.js.map
@@ -1,51 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/claude-dark-daltonized.ts
2
- // Ported from dark-daltonized theme palette
3
- // Uses blue/red instead of green/red for color-blind accessibility
4
- export const claudeDarkDaltonizedTheme = {
5
- name: "claude-dark-daltonized",
6
- displayName: "Claude Dark (Daltonized)",
7
- colors: {
8
- primary: "#5f97cd",
9
- secondary: "#888888",
10
- text: "#ffffff",
11
- textMuted: "#999999",
12
- textInverse: "#000000",
13
- success: "#3399ff",
14
- error: "#ff6666",
15
- warning: "#ffcc00",
16
- info: "#99ccff",
17
- diffAdded: "#004466",
18
- diffAddedDimmed: "#3e515b",
19
- diffRemoved: "#660000",
20
- diffRemovedDimmed: "#3e2c2c",
21
- arion: {
22
- cyan: "#99ccff",
23
- magenta: "#3399ff",
24
- yellow: "#ffcc00",
25
- green: "#3399ff",
26
- blue: "#5f97cd",
27
- red: "#ff6666",
28
- white: "#ffffff",
29
- },
30
- },
31
- symbols: {
32
- prompt: "❯",
33
- divider: "─",
34
- success: "✓",
35
- error: "✗",
36
- warning: "⚠",
37
- info: "ℹ",
38
- pending: "○",
39
- bullet: "•",
40
- arrow: "→",
41
- },
42
- banner: {
43
- gradient: {
44
- start: "#3399ff",
45
- middle: "#5f97cd",
46
- end: "#99ccff",
47
- },
48
- animationDuration: 1600,
49
- },
50
- };
51
- //# sourceMappingURL=claude-dark-daltonized.js.map
@@ -1,50 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/claude-dark.ts
2
- // Ported from dark theme palette
3
- export const claudeDarkTheme = {
4
- name: "claude-dark",
5
- displayName: "Claude Dark",
6
- colors: {
7
- primary: "#5f97cd",
8
- secondary: "#888888",
9
- text: "#ffffff",
10
- textMuted: "#999999",
11
- textInverse: "#000000",
12
- success: "#4eba65",
13
- error: "#ff6b80",
14
- warning: "#ffc107",
15
- info: "#b1b9f9",
16
- diffAdded: "#225c2b",
17
- diffAddedDimmed: "#47584a",
18
- diffRemoved: "#7a2936",
19
- diffRemovedDimmed: "#69484d",
20
- arion: {
21
- cyan: "#b1b9f9",
22
- magenta: "#fd5db1",
23
- yellow: "#ffc107",
24
- green: "#4eba65",
25
- blue: "#5f97cd",
26
- red: "#ff6b80",
27
- white: "#ffffff",
28
- },
29
- },
30
- symbols: {
31
- prompt: "❯",
32
- divider: "─",
33
- success: "✓",
34
- error: "✗",
35
- warning: "⚠",
36
- info: "ℹ",
37
- pending: "○",
38
- bullet: "•",
39
- arrow: "→",
40
- },
41
- banner: {
42
- gradient: {
43
- start: "#fd5db1",
44
- middle: "#5f97cd",
45
- end: "#b1b9f9",
46
- },
47
- animationDuration: 1600,
48
- },
49
- };
50
- //# sourceMappingURL=claude-dark.js.map
@@ -1,51 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/claude-light-daltonized.ts
2
- // Ported from light-daltonized theme palette
3
- // Uses blue/red instead of green/red for color-blind accessibility
4
- export const claudeLightDaltonizedTheme = {
5
- name: "claude-light-daltonized",
6
- displayName: "Claude Light (Daltonized)",
7
- colors: {
8
- primary: "#5f97cd",
9
- secondary: "#999999",
10
- text: "#000000",
11
- textMuted: "#666666",
12
- textInverse: "#ffffff",
13
- success: "#006699",
14
- error: "#cc0000",
15
- warning: "#ff9900",
16
- info: "#3366ff",
17
- diffAdded: "#99ccff",
18
- diffAddedDimmed: "#d1e7fd",
19
- diffRemoved: "#ffcccc",
20
- diffRemovedDimmed: "#ffe9e9",
21
- arion: {
22
- cyan: "#3366ff",
23
- magenta: "#0066cc",
24
- yellow: "#ff9900",
25
- green: "#006699",
26
- blue: "#5f97cd",
27
- red: "#cc0000",
28
- white: "#333333",
29
- },
30
- },
31
- symbols: {
32
- prompt: "❯",
33
- divider: "─",
34
- success: "✓",
35
- error: "✗",
36
- warning: "⚠",
37
- info: "ℹ",
38
- pending: "○",
39
- bullet: "•",
40
- arrow: "→",
41
- },
42
- banner: {
43
- gradient: {
44
- start: "#0066cc",
45
- middle: "#5f97cd",
46
- end: "#3366cc",
47
- },
48
- animationDuration: 1600,
49
- },
50
- };
51
- //# sourceMappingURL=claude-light-daltonized.js.map
@@ -1,50 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/claude-light.ts
2
- // Ported from light theme palette
3
- export const claudeLightTheme = {
4
- name: "claude-light",
5
- displayName: "Claude Light",
6
- colors: {
7
- primary: "#5f97cd",
8
- secondary: "#999999",
9
- text: "#000000",
10
- textMuted: "#666666",
11
- textInverse: "#ffffff",
12
- success: "#2c7a39",
13
- error: "#ab2b3f",
14
- warning: "#966c1e",
15
- info: "#5769f7",
16
- diffAdded: "#69db7c",
17
- diffAddedDimmed: "#c7e1cb",
18
- diffRemoved: "#ffa8b4",
19
- diffRemovedDimmed: "#fdd2d8",
20
- arion: {
21
- cyan: "#5769f7",
22
- magenta: "#ff0087",
23
- yellow: "#966c1e",
24
- green: "#2c7a39",
25
- blue: "#5f97cd",
26
- red: "#ab2b3f",
27
- white: "#333333",
28
- },
29
- },
30
- symbols: {
31
- prompt: "❯",
32
- divider: "─",
33
- success: "✓",
34
- error: "✗",
35
- warning: "⚠",
36
- info: "ℹ",
37
- pending: "○",
38
- bullet: "•",
39
- arrow: "→",
40
- },
41
- banner: {
42
- gradient: {
43
- start: "#ff0087",
44
- middle: "#5f97cd",
45
- end: "#5769f7",
46
- },
47
- animationDuration: 1600,
48
- },
49
- };
50
- //# sourceMappingURL=claude-light.js.map
@@ -1,18 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/dark-accessible.ts
2
- import { darkTheme } from "./dark.js";
3
- export const darkAccessibleTheme = {
4
- ...darkTheme,
5
- name: "dark-accessible",
6
- displayName: "Dark (Accessible)",
7
- colors: {
8
- ...darkTheme.colors,
9
- success: "#006699",
10
- error: "#cc0000",
11
- warning: "#ffaa00",
12
- diffAdded: "#006699",
13
- diffAddedDimmed: "#003d5c",
14
- diffRemoved: "#cc0000",
15
- diffRemovedDimmed: "#660000",
16
- },
17
- };
18
- //# sourceMappingURL=dark-accessible.js.map
@@ -1,49 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/dark.ts
2
- export const darkTheme = {
3
- name: "dark",
4
- displayName: "Dark",
5
- colors: {
6
- primary: "#5f97cd",
7
- secondary: "#888888",
8
- text: "#ffffff",
9
- textMuted: "#999999",
10
- textInverse: "#000000",
11
- success: "#4eba65",
12
- error: "#ff6b80",
13
- warning: "#ffc107",
14
- info: "#00d9ff",
15
- diffAdded: "#4eba65",
16
- diffAddedDimmed: "#2d5a35",
17
- diffRemoved: "#ff6b80",
18
- diffRemovedDimmed: "#8a3a45",
19
- arion: {
20
- cyan: "#00d9ff",
21
- magenta: "#bd00ff",
22
- yellow: "#ffc107",
23
- green: "#4eba65",
24
- blue: "#5f97cd",
25
- red: "#ff6b80",
26
- white: "#ffffff",
27
- },
28
- },
29
- symbols: {
30
- prompt: "❯",
31
- divider: "─",
32
- success: "✓",
33
- error: "✗",
34
- warning: "⚠",
35
- info: "ℹ",
36
- pending: "○",
37
- bullet: "•",
38
- arrow: "→",
39
- },
40
- banner: {
41
- gradient: {
42
- start: "#00D9FF",
43
- middle: "#BD00FF",
44
- end: "#6366F1",
45
- },
46
- animationDuration: 1600,
47
- },
48
- };
49
- //# sourceMappingURL=dark.js.map
@@ -1,18 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/light-accessible.ts
2
- import { lightTheme } from "./light.js";
3
- export const lightAccessibleTheme = {
4
- ...lightTheme,
5
- name: "light-accessible",
6
- displayName: "Light (Accessible)",
7
- colors: {
8
- ...lightTheme.colors,
9
- success: "#005588",
10
- error: "#aa0000",
11
- warning: "#996600",
12
- diffAdded: "#005588",
13
- diffAddedDimmed: "#b3d4e8",
14
- diffRemoved: "#aa0000",
15
- diffRemovedDimmed: "#e8b3b3",
16
- },
17
- };
18
- //# sourceMappingURL=light-accessible.js.map
@@ -1,49 +0,0 @@
1
- // packages/cli/src/ui/theme/themes/light.ts
2
- export const lightTheme = {
3
- name: "light",
4
- displayName: "Light",
5
- colors: {
6
- primary: "#5f97cd",
7
- secondary: "#999999",
8
- text: "#000000",
9
- textMuted: "#666666",
10
- textInverse: "#ffffff",
11
- success: "#2c7a39",
12
- error: "#ab2b3f",
13
- warning: "#b8860b",
14
- info: "#0077aa",
15
- diffAdded: "#2c7a39",
16
- diffAddedDimmed: "#a8d5b1",
17
- diffRemoved: "#ab2b3f",
18
- diffRemovedDimmed: "#e8b4bc",
19
- arion: {
20
- cyan: "#0077aa",
21
- magenta: "#aa0077",
22
- yellow: "#b8860b",
23
- green: "#2c7a39",
24
- blue: "#5f97cd",
25
- red: "#ab2b3f",
26
- white: "#333333",
27
- },
28
- },
29
- symbols: {
30
- prompt: "❯",
31
- divider: "─",
32
- success: "✓",
33
- error: "✗",
34
- warning: "⚠",
35
- info: "ℹ",
36
- pending: "○",
37
- bullet: "•",
38
- arrow: "→",
39
- },
40
- banner: {
41
- gradient: {
42
- start: "#0077aa",
43
- middle: "#aa0077",
44
- end: "#5f5fd7",
45
- },
46
- animationDuration: 1600,
47
- },
48
- };
49
- //# sourceMappingURL=light.js.map
@@ -1,3 +0,0 @@
1
- // packages/cli/src/ui/theme/types.ts
2
- export {};
3
- //# sourceMappingURL=types.js.map