@aria-cli/cli 1.0.57 → 1.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/bin/aria.mjs +2 -2
  2. package/package.json +17 -76
  3. package/dist/.tsbuildinfo +0 -1
  4. package/dist/attached-local-control-client.js +0 -826
  5. package/dist/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
package/dist/ui/theme.js DELETED
@@ -1,142 +0,0 @@
1
- /**
2
- * UI Theme for Ink Components
3
- */
4
- import { toShortName } from "@aria-cli/models";
5
- export const theme = {
6
- colors: {
7
- // Use terminal's native ANSI colors (adapts to user's color scheme)
8
- cyan: "cyan",
9
- magenta: "magenta",
10
- yellow: "yellow",
11
- green: "green",
12
- blue: "blue",
13
- red: "red",
14
- white: "white",
15
- gray: "gray",
16
- dim: "gray",
17
- },
18
- prompt: {
19
- symbol: "❯",
20
- },
21
- divider: {
22
- char: "─",
23
- },
24
- };
25
- /**
26
- * Resolve an arion color to a renderable color string.
27
- * Named colors → theme lookup. Hex strings → pass through. Unknown → white fallback.
28
- */
29
- export function getArionColor(color) {
30
- if (!color)
31
- return theme.colors.white;
32
- if (color in theme.colors)
33
- return theme.colors[color];
34
- if (color.startsWith("#"))
35
- return color;
36
- return theme.colors.white;
37
- }
38
- /**
39
- * Convert full model name to short display name
40
- * claude-opus-4-6 -> opus-4.6
41
- * claude-sonnet-4-5-20250929 -> sonnet-4.5
42
- */
43
- export function shortModelName(model) {
44
- return toShortName(model);
45
- }
46
- /** Model family → hex color. Same family = same color regardless of provider. */
47
- const MODEL_FAMILY_COLORS = {
48
- // Claude family — Anthropic purple palette
49
- "opus-4.6": "#B4A0FF",
50
- "opus-4.5": "#A08AFF",
51
- "sonnet-4.6": "#5FA8FF",
52
- "sonnet-4.5": "#4A96FF",
53
- "haiku-4.5": "#5CE0D0",
54
- // Gemini family — Google warm palette
55
- "gemini-3.1-pro": "#FFB84D",
56
- "gemini-3-pro": "#FFA833",
57
- "gemini-2.5-pro": "#FF9E22",
58
- "gemini-3-flash": "#8AE065",
59
- "gemini-2.5-flash": "#7BD055",
60
- // GPT family — OpenAI cool palette
61
- "gpt-5.4": "#5CD17A",
62
- "gpt-5.2": "#50C878",
63
- "gpt-5.1": "#45B86A",
64
- "gpt-5.3-codex": "#20B2AA",
65
- "gpt-5.2-codex": "#1CA8A0",
66
- "gpt-5.1-codex": "#189090",
67
- };
68
- /**
69
- * Get display color for a model by short name.
70
- * Strips provider prefixes (bedrock-, copilot suffixes) to find the family.
71
- * Returns undefined for unknown models (caller renders as dimColor).
72
- */
73
- export function getModelColor(shortName) {
74
- if (MODEL_FAMILY_COLORS[shortName])
75
- return MODEL_FAMILY_COLORS[shortName];
76
- // Strip common prefixes/suffixes for cross-provider matching
77
- const normalized = shortName
78
- .replace(/^bedrock-/, "")
79
- .replace(/^claude-/, "")
80
- .replace(/-copilot$/, "");
81
- if (MODEL_FAMILY_COLORS[normalized])
82
- return MODEL_FAMILY_COLORS[normalized];
83
- // Fallback: try matching family root (e.g., "opus-4.6-1m" → "opus-4.6")
84
- const parts = normalized.split("-");
85
- for (let len = parts.length - 1; len >= 2; len--) {
86
- const candidate = parts.slice(0, len).join("-");
87
- if (MODEL_FAMILY_COLORS[candidate])
88
- return MODEL_FAMILY_COLORS[candidate];
89
- }
90
- return undefined;
91
- }
92
- /** Provider icon + color for model selector headers and status bar. */
93
- const PROVIDER_STYLES = {
94
- anthropic: { icon: "◆", color: "#B4A0FF" },
95
- google: { icon: "▲", color: "#4285F4" },
96
- bedrock: { icon: "⬢", color: "#FF9900" },
97
- "bedrock-converse": { icon: "⬢", color: "#FF9900" },
98
- openai: { icon: "◎", color: "#50C878" },
99
- "openai-codex": { icon: "◈", color: "#20B2AA" },
100
- "github-copilot": { icon: "⊡", color: "#6E40C9" },
101
- local: { icon: "○", color: "gray" },
102
- };
103
- export function getProviderStyle(provider) {
104
- return PROVIDER_STYLES[provider] ?? { icon: "○", color: "gray" };
105
- }
106
- /**
107
- * Infer provider from a model short name using naming conventions.
108
- * bedrock-* → bedrock, *-copilot → github-copilot, gemini-* → google,
109
- * gpt-*-codex* → openai-codex, gpt-* → openai, opus/sonnet/haiku → anthropic.
110
- */
111
- function inferProviderFromShortName(shortName) {
112
- if (shortName.startsWith("bedrock-"))
113
- return "bedrock";
114
- if (shortName.endsWith("-copilot")) {
115
- // Copilot wraps multiple providers — detect the underlying family
116
- if (shortName.includes("gpt-") && shortName.includes("-codex"))
117
- return "openai-codex";
118
- if (shortName.includes("gemini-"))
119
- return "google";
120
- return "github-copilot";
121
- }
122
- if (shortName.startsWith("gemini-"))
123
- return "google";
124
- if (shortName.includes("-codex"))
125
- return "openai-codex";
126
- if (shortName.startsWith("gpt-") || shortName.startsWith("o1") || shortName.startsWith("o3"))
127
- return "openai";
128
- if (/^(opus|sonnet|haiku)-/.test(shortName))
129
- return "anthropic";
130
- return undefined;
131
- }
132
- /**
133
- * Get the provider icon for a model short name (for status bar display).
134
- * Returns { icon, color } or undefined for unknown models.
135
- */
136
- export function getModelProviderIcon(shortName) {
137
- const provider = inferProviderFromShortName(shortName);
138
- if (!provider)
139
- return undefined;
140
- return PROVIDER_STYLES[provider];
141
- }
142
- //# sourceMappingURL=theme.js.map
@@ -1,145 +0,0 @@
1
- import { parseImageDataUri, splitTextByInlineImages } from "./utils/terminal-image.js";
2
- export function toRenderItems(committed, preview, options = {}) {
3
- const userName = options.userName || "User";
4
- const items = [];
5
- const toolExecMap = new Map();
6
- function processMessage(msg, isCommitted) {
7
- for (const block of msg.content) {
8
- switch (block.type) {
9
- case "text": {
10
- if (msg.role === "user") {
11
- const segments = splitTextByInlineImages(block.text);
12
- for (const segment of segments) {
13
- if (segment.type === "image" && parseImageDataUri(segment.dataUri)) {
14
- items.push({
15
- kind: "user-image",
16
- id: `${msg.id}-image-${items.length}`,
17
- dataUri: segment.dataUri,
18
- userName,
19
- committed: isCommitted,
20
- });
21
- }
22
- else if (segment.type === "text" && segment.text.length > 0) {
23
- items.push({
24
- kind: "user-message",
25
- id: `${msg.id}-text-${items.length}`,
26
- text: segment.text,
27
- userName,
28
- committed: isCommitted,
29
- });
30
- }
31
- }
32
- }
33
- else if (msg.role === "system" && block.text.length > 0) {
34
- items.push({
35
- kind: "user-message",
36
- id: `${msg.id}-text-${items.length}`,
37
- text: block.text,
38
- userName: "System",
39
- committed: isCommitted,
40
- });
41
- }
42
- else if (msg.role === "assistant" && block.text.trim()) {
43
- items.push({
44
- kind: "assistant-text",
45
- id: `${msg.id}-text-${items.length}`,
46
- text: block.text,
47
- arion: msg.arion
48
- ? {
49
- name: msg.arion.name,
50
- emoji: msg.arion.emoji || "\uD83E\uDD8B",
51
- color: msg.arion.color || "cyan",
52
- }
53
- : undefined,
54
- committed: isCommitted,
55
- });
56
- }
57
- break;
58
- }
59
- case "thinking": {
60
- if (block.content?.trim()) {
61
- items.push({
62
- kind: "thinking",
63
- id: `${msg.id}-thinking-${items.length}`,
64
- content: block.content,
65
- durationSec: block.durationMs != null ? block.durationMs / 1000 : undefined,
66
- arion: msg.arion
67
- ? {
68
- name: msg.arion.name,
69
- emoji: msg.arion.emoji || "\uD83E\uDD8B",
70
- color: msg.arion.color || "cyan",
71
- }
72
- : undefined,
73
- committed: isCommitted,
74
- });
75
- }
76
- break;
77
- }
78
- case "tool_use": {
79
- const item = {
80
- kind: "tool-execution",
81
- id: `${msg.id}-tool-${block.id}`,
82
- toolName: block.name,
83
- input: block.arguments,
84
- output: undefined,
85
- status: "pending",
86
- durationMs: undefined,
87
- usage: undefined,
88
- committed: isCommitted,
89
- };
90
- toolExecMap.set(block.id, item);
91
- items.push(item);
92
- break;
93
- }
94
- case "tool_result": {
95
- // AUDIT FIX #1: Use camelCase fields from ConversationMessage schema
96
- const exec = toolExecMap.get(block.toolUseId);
97
- if (exec) {
98
- exec.output = block.resultData ?? block.content;
99
- exec.status = block.status === "error" ? "error" : "complete";
100
- if (block.status === "error") {
101
- exec.error = typeof block.content === "string" ? block.content : "Tool error";
102
- }
103
- if (block.durationMs != null)
104
- exec.durationMs = block.durationMs;
105
- if (block.usage) {
106
- exec.usage = {
107
- inputTokens: block.usage.inputTokens ?? 0,
108
- outputTokens: block.usage.outputTokens ?? 0,
109
- };
110
- }
111
- if (!isCommitted)
112
- exec.committed = false;
113
- }
114
- break;
115
- }
116
- case "handoff": {
117
- items.push({
118
- kind: "handoff",
119
- id: `${msg.id}-handoff-${items.length}`,
120
- target: block.target,
121
- direction: block.direction === "from" ? "incoming" : "outgoing",
122
- committed: isCommitted,
123
- });
124
- break;
125
- }
126
- case "error": {
127
- items.push({
128
- kind: "error",
129
- id: `${msg.id}-error-${items.length}`,
130
- message: block.content,
131
- suggestion: block.suggestion,
132
- committed: isCommitted,
133
- });
134
- break;
135
- }
136
- }
137
- }
138
- }
139
- for (const msg of committed)
140
- processMessage(msg, true);
141
- for (const msg of preview)
142
- processMessage(msg, false);
143
- return items;
144
- }
145
- //# sourceMappingURL=to-render-items.js.map
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { EOL } from "os";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- import { applyMarkdown } from "../../markdown/index.js";
5
- export const AgentToolRenderers = {
6
- displayName() {
7
- return "Task";
8
- },
9
- renderInput(input, { verbose }) {
10
- // architect: { prompt }
11
- // delegate_arion: { arion, task }
12
- const text = typeof input.prompt === "string"
13
- ? input.prompt
14
- : typeof input.task === "string"
15
- ? input.task
16
- : "";
17
- if (!text)
18
- return "";
19
- const prefix = typeof input.arion === "string" ? `@${input.arion} ` : "";
20
- const lines = text.split(EOL);
21
- return prefix + applyMarkdown(!verbose && lines.length > 1 ? lines[0] + "\u2026" : text);
22
- },
23
- renderRejection() {
24
- return _jsx(FallbackToolUseRejectedMessage, {});
25
- },
26
- renderOutput() {
27
- return null;
28
- },
29
- };
30
- //# sourceMappingURL=index.js.map
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from "ink";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- import { HighlightedCode } from "../../components/HighlightedCode.js";
5
- import { getTheme } from "../../theme/index.js";
6
- import { capLines } from "../truncation.js";
7
- const MAX_LINES = 3;
8
- export const ArchitectToolRenderers = {
9
- displayName() {
10
- return "Architect";
11
- },
12
- renderInput(input) {
13
- return Object.entries(input)
14
- .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)
15
- .join(", ");
16
- },
17
- renderOutput(content, { verbose } = { verbose: false }) {
18
- if (!content || !Array.isArray(content)) {
19
- return _jsx(Text, { children: "(No content)" });
20
- }
21
- const fullText = content.map((_) => _.text).join("\n");
22
- const lines = fullText.split("\n");
23
- const truncated = !verbose && lines.length > MAX_LINES;
24
- const displayText = capLines(truncated ? lines.slice(0, MAX_LINES).join("\n") : fullText);
25
- return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(HighlightedCode, { code: displayText, language: "markdown" }), truncated && (_jsxs(Text, { color: getTheme().colors.textMuted, children: ["... (+", lines.length - MAX_LINES, " lines)"] }))] }));
26
- },
27
- renderRejection() {
28
- return _jsx(FallbackToolUseRejectedMessage, {});
29
- },
30
- };
31
- //# sourceMappingURL=index.js.map
@@ -1,46 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from "ink";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- const MAX_QUESTION_LENGTH = 120;
5
- export const AskUserToolRenderers = {
6
- displayName() {
7
- return "Ask User";
8
- },
9
- renderInput(input) {
10
- // Handle both singular question and questions array (items can be strings or objects)
11
- let question;
12
- if (typeof input.question === "string") {
13
- question = input.question;
14
- }
15
- else {
16
- const first = input.questions?.[0];
17
- question =
18
- typeof first === "string"
19
- ? first
20
- : typeof first?.question === "string"
21
- ? first.question
22
- : "asking user...";
23
- }
24
- if (question.length > MAX_QUESTION_LENGTH) {
25
- return question.slice(0, MAX_QUESTION_LENGTH) + "\u2026";
26
- }
27
- return question;
28
- },
29
- renderRejection() {
30
- return _jsx(FallbackToolUseRejectedMessage, {});
31
- },
32
- renderOutput(output, { verbose }) {
33
- // Handle raw string fallback
34
- if (typeof output === "string") {
35
- return (_jsx(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsx(Text, { children: "Received answer" }) }) }));
36
- }
37
- const answers = output?.answers ?? [];
38
- const n = answers.length;
39
- if (!verbose) {
40
- return (_jsx(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsxs(Text, { children: ["Received ", n, " answer", n !== 1 ? "s" : ""] }) }) }));
41
- }
42
- // Verbose: show answer content
43
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { children: ["Received ", n, " answer", n !== 1 ? "s" : ""] }) }), answers.map((a, i) => (_jsx(Box, { flexDirection: "row", paddingLeft: 4, children: _jsx(Text, { children: typeof a === "string" ? a : (a?.answer ?? JSON.stringify(a)) }) }, i)))] }));
44
- },
45
- };
46
- //# sourceMappingURL=index.js.map
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // Substitutions: theme → ARIA's, Out type inlined
3
- import { Box, Text } from "ink";
4
- import { OutputLine } from "./OutputLine.js";
5
- import { getTheme } from "../../theme/index.js";
6
- function BashToolResultMessage({ content, verbose }) {
7
- const { stdout, stdoutLines, stderr, stderrLines } = content;
8
- return (_jsxs(Box, { flexDirection: "column", children: [stdout !== "" ? _jsx(OutputLine, { content: stdout, lines: stdoutLines, verbose: verbose }) : null, stderr !== "" ? (_jsx(OutputLine, { content: stderr, lines: stderrLines, verbose: verbose, isError: true })) : null, stdout === "" && stderr === "" ? (_jsx(Text, { color: getTheme().colors.textMuted, children: "(No content)" })) : null] }));
9
- }
10
- export default BashToolResultMessage;
11
- //# sourceMappingURL=BashToolResultMessage.js.map
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- // Substitutions: theme → ARIA's, chalk → inline dim, MAX_RENDERED_LINES inlined
3
- import { Box, Text } from "ink";
4
- import { getTheme } from "../../theme/index.js";
5
- import chalk from "chalk";
6
- import { capLine } from "../truncation.js";
7
- const MAX_RENDERED_LINES = 3;
8
- function renderTruncatedContent(content, totalLines) {
9
- const allLines = content.split("\n");
10
- if (allLines.length <= MAX_RENDERED_LINES) {
11
- return allLines.map(capLine).join("\n");
12
- }
13
- return [
14
- ...allLines.slice(0, MAX_RENDERED_LINES).map(capLine),
15
- chalk.grey(`\u2026 +${totalLines - MAX_RENDERED_LINES} lines`),
16
- ].join("\n");
17
- }
18
- export function OutputLine({ content, lines, verbose, isError, }) {
19
- return (_jsx(Box, { justifyContent: "space-between", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: isError ? getTheme().colors.error : undefined, children: verbose ? content.trim() : renderTruncatedContent(content.trim(), lines) }) }) }) }));
20
- }
21
- //# sourceMappingURL=OutputLine.js.map
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Text } from "ink";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- import BashToolResultMessage from "./BashToolResultMessage.js";
5
- export const BashToolRenderers = {
6
- displayName() {
7
- return "Bash";
8
- },
9
- renderInput(input) {
10
- // bash / execute_command: { command }
11
- if (typeof input.command === "string") {
12
- const command = input.command;
13
- if (command.includes("\"$(cat <<'EOF'")) {
14
- const match = command.match(/^(.*?)"?\$\(cat <<'EOF'\n([\s\S]*?)\n\s*EOF\n\s*\)"(.*)$/);
15
- if (match && match[1] && match[2]) {
16
- return `${match[1].trim()} "${match[2].trim()}"${(match[3] || "").trim()}`;
17
- }
18
- }
19
- return command;
20
- }
21
- // exec / spawn: { program, args? }
22
- if (typeof input.program === "string") {
23
- const args = Array.isArray(input.args) ? " " + input.args.join(" ") : "";
24
- return `${input.program}${args}`;
25
- }
26
- // write_stdin: { pid, input } — check before kill since both have pid
27
- if (typeof input.input === "string") {
28
- const preview = input.input.length > 40 ? input.input.slice(0, 40) + "…" : input.input;
29
- return `stdin → ${input.pid ?? ""} "${preview}"`;
30
- }
31
- // kill: { pid, signal? } — has signal field
32
- if (input.signal != null) {
33
- return `kill ${input.signal} ${input.pid}`;
34
- }
35
- // wait_process: { pid, timeoutMs? }
36
- if (typeof input.timeoutMs === "number" || typeof input.timeout === "number") {
37
- return `wait ${input.pid}`;
38
- }
39
- // Generic pid fallback (kill without explicit signal, or other pid tools)
40
- if (input.pid != null && Object.keys(input).length <= 2) {
41
- return `pid ${input.pid}`;
42
- }
43
- // list_processes: no meaningful params
44
- return "";
45
- },
46
- renderRejection() {
47
- return _jsx(FallbackToolUseRejectedMessage, {});
48
- },
49
- renderOutput(content, { verbose }) {
50
- // Handle null/undefined
51
- if (content == null) {
52
- return _jsx(Text, { children: "(No content)" });
53
- }
54
- // Handle string output
55
- if (typeof content === "string") {
56
- return _jsx(Text, { children: content || "(No content)" });
57
- }
58
- // Must be an object at this point
59
- const obj = content;
60
- // BashOutput shape: { stdout, stderr, ... } — the standard bash result
61
- if (typeof obj.stdout === "string" || typeof obj.stderr === "string") {
62
- const normalized = {
63
- stdout: obj.stdout ?? "",
64
- stdoutLines: typeof obj.stdoutLines === "number"
65
- ? obj.stdoutLines
66
- : (obj.stdout ?? "").split("\n").length,
67
- stderr: obj.stderr ?? "",
68
- stderrLines: typeof obj.stderrLines === "number"
69
- ? obj.stderrLines
70
- : (obj.stderr ?? "").split("\n").length,
71
- };
72
- return _jsx(BashToolResultMessage, { content: normalized, verbose: verbose });
73
- }
74
- // Non-BashOutput shapes from spawn/kill/write_stdin/wait_process:
75
- // spawn: { pid }, kill: { signal, killed }, write_stdin: { written },
76
- // wait_process: { exitCode, output }, list_processes: { sessions }
77
- // Render a compact summary.
78
- if (obj.pid != null) {
79
- return _jsxs(Text, { children: ["pid: ", String(obj.pid)] });
80
- }
81
- if (obj.signal != null || obj.killed != null) {
82
- return (_jsxs(Text, { children: [obj.killed ? "Killed" : "Signal sent", obj.signal ? ` (${String(obj.signal)})` : ""] }));
83
- }
84
- if (obj.exitCode != null) {
85
- return _jsxs(Text, { children: ["Exit code: ", String(obj.exitCode)] });
86
- }
87
- // Fallback: JSON
88
- return _jsx(Text, { children: JSON.stringify(content) });
89
- },
90
- };
91
- //# sourceMappingURL=index.js.map
@@ -1,43 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from "ink";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- import { useToolRenderLayout } from "../../components/ToolRenderLayoutContext.js";
5
- import { getTheme } from "../../theme/index.js";
6
- import { applyMarkdown } from "../../markdown/index.js";
7
- function truncateUrl(url, maxLen = 80) {
8
- return url.length > maxLen ? url.slice(0, maxLen - 1) + "\u2026" : url;
9
- }
10
- function BrowsePreview({ preview }) {
11
- const { contentWidth } = useToolRenderLayout();
12
- const previewWidth = Math.max(contentWidth - 4, 1);
13
- return (_jsx(Text, { color: getTheme().colors.textMuted, dimColor: true, children: applyMarkdown(preview, { width: previewWidth }) }));
14
- }
15
- export const BrowseToolRenderers = {
16
- displayName() {
17
- return "Browse";
18
- },
19
- renderInput(input) {
20
- if (input.url) {
21
- return truncateUrl(String(input.url));
22
- }
23
- return Object.entries(input)
24
- .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)
25
- .join(", ");
26
- },
27
- renderRejection() {
28
- return _jsx(FallbackToolUseRejectedMessage, {});
29
- },
30
- renderOutput(output) {
31
- if (!output || typeof output === "string") {
32
- const text = typeof output === "string" ? output : "(No content)";
33
- return (_jsx(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: getTheme().colors.textMuted, children: text }) }) }));
34
- }
35
- const theme = getTheme();
36
- const url = output.finalUrl || output.url || "";
37
- const title = output.title || "";
38
- const preview = output.content ? output.content.slice(0, 200).split("\n")[0] : "";
39
- const cacheStr = output.fromCache ? " (cached)" : "";
40
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [title ? (_jsx(Text, { bold: true, children: title })) : (_jsx(Text, { color: theme.colors.textMuted, children: truncateUrl(url, 60) })), cacheStr && _jsx(Text, { color: theme.colors.textMuted, children: cacheStr }), output.truncated && _jsx(Text, { color: theme.colors.warning, children: " [truncated]" })] }), title && url && (_jsx(Box, { flexDirection: "row", paddingLeft: 4, children: _jsx(Text, { color: theme.colors.textMuted, children: truncateUrl(url, 60) }) })), preview && (_jsx(Box, { flexDirection: "row", paddingLeft: 4, children: _jsx(BrowsePreview, { preview: preview }) }))] }));
41
- },
42
- };
43
- //# sourceMappingURL=index.js.map
@@ -1,47 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from "ink";
3
- import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
4
- import { getTheme } from "../../theme/index.js";
5
- import { safeFallbackText } from "../truncation.js";
6
- function truncateUrl(url, maxLen = 60) {
7
- return url.length > maxLen ? url.slice(0, maxLen - 1) + "\u2026" : url;
8
- }
9
- function formatAction(input) {
10
- const action = input.action || "unknown";
11
- switch (action) {
12
- case "launch":
13
- return input.url ? `launch and navigate to ${truncateUrl(String(input.url))}` : "launch";
14
- case "navigate":
15
- return input.url ? `navigate to ${truncateUrl(String(input.url))}` : "navigate";
16
- case "click":
17
- return input.selector ? `click ${input.selector}` : "click";
18
- case "type":
19
- return input.selector ? `type into ${input.selector}` : "type";
20
- default:
21
- return action;
22
- }
23
- }
24
- export const BrowserToolRenderers = {
25
- displayName() {
26
- return "Browser";
27
- },
28
- renderInput(input, _opts) {
29
- return formatAction(input);
30
- },
31
- renderRejection() {
32
- return _jsx(FallbackToolUseRejectedMessage, {});
33
- },
34
- renderOutput(output, _opts) {
35
- const theme = getTheme();
36
- if (!output) {
37
- return (_jsx(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: theme.colors.textMuted, children: "(No content)" }) }) }));
38
- }
39
- if (typeof output === "string") {
40
- return (_jsx(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "row", children: _jsx(Text, { children: safeFallbackText(output) }) }) }));
41
- }
42
- const title = output.title || "";
43
- const url = output.url || "";
44
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { flexDirection: "row", children: title ? (_jsx(Text, { bold: true, children: title })) : url ? (_jsx(Text, { color: theme.colors.textMuted, children: truncateUrl(url) })) : (_jsx(Text, { color: theme.colors.success, children: "Done" })) }), title && url && (_jsx(Box, { flexDirection: "row", paddingLeft: 4, children: _jsx(Text, { color: theme.colors.textMuted, children: truncateUrl(url) }) })), output.error && (_jsx(Box, { flexDirection: "row", paddingLeft: 4, children: _jsx(Text, { color: theme.colors.error, children: output.error }) }))] }));
45
- },
46
- };
47
- //# sourceMappingURL=index.js.map