@aria-cli/cli 1.0.50 → 1.0.51

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 +1 -1
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/attached-local-control-client.js +826 -0
  4. package/dist/bootstrap-local-control-client.js +2 -0
  5. package/dist/capability-aware-method-proxy.js +42 -0
  6. package/dist/cli-context.js +160 -0
  7. package/dist/commands/arions.js +174 -0
  8. package/dist/commands/auth.js +123 -0
  9. package/dist/commands/daemon.js +245 -0
  10. package/dist/commands/definitions.js +176 -0
  11. package/dist/commands/index.js +74 -0
  12. package/dist/commands/login-handler.js +1108 -0
  13. package/dist/commands/logout-handler.js +92 -0
  14. package/dist/commands/memory-handlers.js +89 -0
  15. package/dist/commands/pairing.js +60 -0
  16. package/dist/commands/runtime-cutover-reset-command.js +12 -0
  17. package/dist/commands/runtime-cutover-reset.js +265 -0
  18. package/dist/commands/terminal-setup.js +84 -0
  19. package/dist/config/aria-config.js +238 -0
  20. package/dist/config/index.js +3 -0
  21. package/dist/config/loader.js +97 -0
  22. package/dist/config.js +142 -0
  23. package/dist/daemon-info.js +10 -0
  24. package/dist/ensure-daemon.js +128 -0
  25. package/dist/entrypoints/command-mode.js +5 -0
  26. package/dist/entrypoints/daemon.js +50 -0
  27. package/dist/entrypoints/headless-stdio.js +25 -0
  28. package/dist/entrypoints/interactive.js +80 -0
  29. package/dist/event-loop-watchdog.js +73 -0
  30. package/dist/headless/auth-orchestrator.js +508 -0
  31. package/dist/headless/auth-service.js +43 -0
  32. package/dist/headless/bootstrap-fast-path.js +112 -0
  33. package/dist/headless/call-command.js +143 -0
  34. package/dist/headless/daemon-service.js +318 -0
  35. package/dist/headless/hook-actions.js +235 -0
  36. package/dist/headless/hook-service.js +42 -0
  37. package/dist/headless/kernel-services.js +216 -0
  38. package/dist/headless/kernel.js +785 -0
  39. package/dist/headless/operations/arion.js +119 -0
  40. package/dist/headless/operations/auth.js +45 -0
  41. package/dist/headless/operations/client.js +31 -0
  42. package/dist/headless/operations/config.js +69 -0
  43. package/dist/headless/operations/daemon.js +47 -0
  44. package/dist/headless/operations/hook.js +56 -0
  45. package/dist/headless/operations/index.js +11 -0
  46. package/dist/headless/operations/memory.js +102 -0
  47. package/dist/headless/operations/message.js +279 -0
  48. package/dist/headless/operations/model.js +100 -0
  49. package/dist/headless/operations/peer.js +56 -0
  50. package/dist/headless/operations/run.js +24 -0
  51. package/dist/headless/operations/session.js +90 -0
  52. package/dist/headless/operations/system.js +19 -0
  53. package/dist/headless/operations/utils.js +35 -0
  54. package/dist/headless/run-orchestrator.js +703 -0
  55. package/dist/headless/stdio-server.js +439 -0
  56. package/dist/history/SessionHistory.js +8 -0
  57. package/dist/history/SessionHistoryClient.js +186 -0
  58. package/dist/history/conversation-message.js +112 -0
  59. package/dist/history/index.js +8 -0
  60. package/dist/history/jsonl-replay.js +154 -0
  61. package/dist/history/repair-tool-pairing.js +84 -0
  62. package/dist/history/stall-phase-bridge.js +11 -0
  63. package/dist/history/turn-accumulator.js +427 -0
  64. package/dist/index.js +7 -0
  65. package/dist/ink-repl.js +4183 -0
  66. package/dist/local-control-bootstrap.js +26 -0
  67. package/dist/local-control-client.js +2 -0
  68. package/dist/local-control-error-reporting.js +34 -0
  69. package/dist/local-control-http-client.js +362 -0
  70. package/dist/local-control-lazy-wrapper.js +363 -0
  71. package/dist/local-control-manager.js +146 -0
  72. package/dist/main.js +38 -0
  73. package/dist/network-security.js +62 -0
  74. package/dist/networking-server.js +38 -0
  75. package/dist/peer-identity.js +23 -0
  76. package/dist/polling-subscription.js +34 -0
  77. package/dist/relaunch.js +588 -0
  78. package/dist/release-notes.js +35 -0
  79. package/dist/repl-cleanup.js +47 -0
  80. package/dist/runtime/configure-bun-sqlite.js +3 -0
  81. package/dist/runtime/crash-handlers.js +111 -0
  82. package/dist/runtime/interactive-invocation.js +39 -0
  83. package/dist/runtime/internal-mode.js +14 -0
  84. package/dist/runtime/launch-spec.js +64 -0
  85. package/dist/runtime/owner-lease.js +44 -0
  86. package/dist/runtime/public-mode.js +20 -0
  87. package/dist/runtime/run-internal-mode.js +18 -0
  88. package/dist/runtime/runtime-kind.js +32 -0
  89. package/dist/runtime/spawn-aria.js +38 -0
  90. package/dist/selectable-client.js +2 -0
  91. package/dist/selectable-peer.js +2 -0
  92. package/dist/session.js +203 -0
  93. package/dist/slash-commands.js +80 -0
  94. package/dist/sounds.js +210 -0
  95. package/dist/ui/App.js +526 -0
  96. package/dist/ui/components/AnthropicMethodPicker.js +6 -0
  97. package/dist/ui/components/ArionPrompt.js +15 -0
  98. package/dist/ui/components/AutocompleteDropdown.js +23 -0
  99. package/dist/ui/components/AutonomySelector.js +55 -0
  100. package/dist/ui/components/Banner.js +98 -0
  101. package/dist/ui/components/ConversationHistory.js +175 -0
  102. package/dist/ui/components/CopilotDeviceLoginFlow.js +88 -0
  103. package/dist/ui/components/CopilotSourcePicker.js +50 -0
  104. package/dist/ui/components/Cost.js +10 -0
  105. package/dist/ui/components/CustomSelect/option-map.js +30 -0
  106. package/dist/ui/components/CustomSelect/select-option.js +13 -0
  107. package/dist/ui/components/CustomSelect/select.js +42 -0
  108. package/dist/ui/components/CustomSelect/use-select-state.js +179 -0
  109. package/dist/ui/components/CustomSelect/use-select.js +15 -0
  110. package/dist/ui/components/ErrorDisplay.js +35 -0
  111. package/dist/ui/components/FallbackToolUseRejectedMessage.js +7 -0
  112. package/dist/ui/components/FileEditToolUpdatedMessage.js +57 -0
  113. package/dist/ui/components/HandoffMarker.js +18 -0
  114. package/dist/ui/components/HighlightedCode.js +21 -0
  115. package/dist/ui/components/InputArea.js +187 -0
  116. package/dist/ui/components/Message.js +25 -0
  117. package/dist/ui/components/OAuthLoginFlow.js +113 -0
  118. package/dist/ui/components/OutputTruncation.js +35 -0
  119. package/dist/ui/components/PermissionPrompt.js +79 -0
  120. package/dist/ui/components/PipelineTimingPanel.js +15 -0
  121. package/dist/ui/components/ProviderMethodPicker.js +61 -0
  122. package/dist/ui/components/ProviderPicker.js +63 -0
  123. package/dist/ui/components/RenderItemView.js +71 -0
  124. package/dist/ui/components/Spinner.js +46 -0
  125. package/dist/ui/components/StatusBar.js +95 -0
  126. package/dist/ui/components/StreamingIndicator.js +55 -0
  127. package/dist/ui/components/StructuredDiff.js +168 -0
  128. package/dist/ui/components/TextInputOverlay.js +43 -0
  129. package/dist/ui/components/ThinkingBlock.js +82 -0
  130. package/dist/ui/components/ToolCost.js +17 -0
  131. package/dist/ui/components/ToolExecution.js +61 -0
  132. package/dist/ui/components/ToolHeader.js +51 -0
  133. package/dist/ui/components/ToolRenderLayoutContext.js +14 -0
  134. package/dist/ui/components/ToolResultWrapper.js +6 -0
  135. package/dist/ui/components/ToolUseLoader.js +35 -0
  136. package/dist/ui/components/TraceWaterfall.js +91 -0
  137. package/dist/ui/components/index.js +33 -0
  138. package/dist/ui/components/messages/AssistantTextMessage.js +25 -0
  139. package/dist/ui/components/messages/UserImageMessage.js +12 -0
  140. package/dist/ui/components/messages/UserTextMessage.js +12 -0
  141. package/dist/ui/components/overlays/ArionSelector.js +68 -0
  142. package/dist/ui/components/overlays/ClientSelector.js +62 -0
  143. package/dist/ui/components/overlays/CommandPalette.js +67 -0
  144. package/dist/ui/components/overlays/DaemonControl.js +87 -0
  145. package/dist/ui/components/overlays/InviteShareOverlay.js +15 -0
  146. package/dist/ui/components/overlays/JoinInviteOverlay.js +32 -0
  147. package/dist/ui/components/overlays/MemoryBrowser.js +100 -0
  148. package/dist/ui/components/overlays/MessageSelector.js +123 -0
  149. package/dist/ui/components/overlays/ModelSelector.js +211 -0
  150. package/dist/ui/components/overlays/PairRequestOverlay.js +42 -0
  151. package/dist/ui/components/overlays/PeerSelector.js +84 -0
  152. package/dist/ui/components/overlays/SessionSelector.js +102 -0
  153. package/dist/ui/components/overlays/SoundSelector.js +86 -0
  154. package/dist/ui/components/overlays/ThemeSelector.js +139 -0
  155. package/dist/ui/components/overlays/index.js +15 -0
  156. package/dist/ui/components/permissions/BashPermissionRequest/BashPermissionRequest.js +53 -0
  157. package/dist/ui/components/permissions/FallbackPermissionRequest.js +56 -0
  158. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +76 -0
  159. package/dist/ui/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +18 -0
  160. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +64 -0
  161. package/dist/ui/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +26 -0
  162. package/dist/ui/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +141 -0
  163. package/dist/ui/components/permissions/PermissionRequest.js +70 -0
  164. package/dist/ui/components/permissions/PermissionRequestTitle.js +41 -0
  165. package/dist/ui/components/permissions/hooks.js +10 -0
  166. package/dist/ui/components/permissions/toolUseOptions.js +68 -0
  167. package/dist/ui/components/permissions/utils.js +10 -0
  168. package/dist/ui/components/text-input/Cursor.js +326 -0
  169. package/dist/ui/components/text-input/TextInput.js +231 -0
  170. package/dist/ui/components/text-input/imagePaste.js +28 -0
  171. package/dist/ui/components/text-input/index.js +6 -0
  172. package/dist/ui/components/text-input/useDoublePress.js +30 -0
  173. package/dist/ui/components/text-input/useTextInput.js +245 -0
  174. package/dist/ui/components/tool-types.js +9 -0
  175. package/dist/ui/constants/figures.js +4 -0
  176. package/dist/ui/constants/index.js +3 -0
  177. package/dist/ui/display-mode.js +93 -0
  178. package/dist/ui/display-policy.js +19 -0
  179. package/dist/ui/hooks/index.js +6 -0
  180. package/dist/ui/hooks/useCommandAutocomplete.js +93 -0
  181. package/dist/ui/hooks/useDoublePress.js +37 -0
  182. package/dist/ui/hooks/useIndicatorState.js +55 -0
  183. package/dist/ui/hooks/useInterval.js +23 -0
  184. package/dist/ui/hooks/useKeyboardShortcuts.js +127 -0
  185. package/dist/ui/hooks/useTerminalSize.js +55 -0
  186. package/dist/ui/hooks/useUnifiedMessages.js +117 -0
  187. package/dist/ui/indicator-state.js +44 -0
  188. package/dist/ui/markdown/highlight.js +44 -0
  189. package/dist/ui/markdown/index.js +1460 -0
  190. package/dist/ui/markdown/tokenizer.js +24 -0
  191. package/dist/ui/render-item.js +5 -0
  192. package/dist/ui/screens/REPL.js +119 -0
  193. package/dist/ui/screens/approval-lifecycle.js +38 -0
  194. package/dist/ui/status-line.js +72 -0
  195. package/dist/ui/theme/index.js +51 -0
  196. package/dist/ui/theme/themes/claude-dark-daltonized.js +51 -0
  197. package/dist/ui/theme/themes/claude-dark.js +50 -0
  198. package/dist/ui/theme/themes/claude-light-daltonized.js +51 -0
  199. package/dist/ui/theme/themes/claude-light.js +50 -0
  200. package/dist/ui/theme/themes/dark-accessible.js +18 -0
  201. package/dist/ui/theme/themes/dark.js +49 -0
  202. package/dist/ui/theme/themes/light-accessible.js +18 -0
  203. package/dist/ui/theme/themes/light.js +49 -0
  204. package/dist/ui/theme/types.js +3 -0
  205. package/dist/ui/theme.js +142 -0
  206. package/dist/ui/to-render-items.js +145 -0
  207. package/dist/ui/tools/AgentTool/index.js +30 -0
  208. package/dist/ui/tools/ArchitectTool/index.js +31 -0
  209. package/dist/ui/tools/AskUserTool/index.js +46 -0
  210. package/dist/ui/tools/BashTool/BashToolResultMessage.js +11 -0
  211. package/dist/ui/tools/BashTool/OutputLine.js +21 -0
  212. package/dist/ui/tools/BashTool/index.js +91 -0
  213. package/dist/ui/tools/BrowseTool/index.js +43 -0
  214. package/dist/ui/tools/BrowserTool/index.js +47 -0
  215. package/dist/ui/tools/CbmTool/index.js +188 -0
  216. package/dist/ui/tools/CheckDelegationTool/index.js +46 -0
  217. package/dist/ui/tools/CheckMessagesTool/index.js +85 -0
  218. package/dist/ui/tools/CreateQuipTool/index.js +30 -0
  219. package/dist/ui/tools/CreateSkillTool/index.js +22 -0
  220. package/dist/ui/tools/CreateToolTool/index.js +31 -0
  221. package/dist/ui/tools/DelegateRemoteTool/index.js +42 -0
  222. package/dist/ui/tools/DeployTool/index.js +47 -0
  223. package/dist/ui/tools/FffTool/index.js +103 -0
  224. package/dist/ui/tools/FileEditTool/index.js +67 -0
  225. package/dist/ui/tools/FileReadTool/index.js +68 -0
  226. package/dist/ui/tools/FileWriteTool/index.js +61 -0
  227. package/dist/ui/tools/ForkTool/index.js +47 -0
  228. package/dist/ui/tools/FrgTool/index.js +96 -0
  229. package/dist/ui/tools/GetThreadTool/index.js +39 -0
  230. package/dist/ui/tools/GlobTool/index.js +50 -0
  231. package/dist/ui/tools/GrepTool/index.js +84 -0
  232. package/dist/ui/tools/HatchArionTool/index.js +36 -0
  233. package/dist/ui/tools/LearnSkillTool/index.js +22 -0
  234. package/dist/ui/tools/LearnTool/index.js +43 -0
  235. package/dist/ui/tools/LearnToolTool/index.js +22 -0
  236. package/dist/ui/tools/ListClientsTool/index.js +39 -0
  237. package/dist/ui/tools/LspTool/index.js +261 -0
  238. package/dist/ui/tools/MCPTool/index.js +33 -0
  239. package/dist/ui/tools/ManageNetworkTool/index.js +53 -0
  240. package/dist/ui/tools/MemoryReadTool/index.js +64 -0
  241. package/dist/ui/tools/MemoryWriteTool/index.js +20 -0
  242. package/dist/ui/tools/NotebookEditTool/index.js +33 -0
  243. package/dist/ui/tools/NotebookReadTool/index.js +25 -0
  244. package/dist/ui/tools/OutlookReadTool/index.js +66 -0
  245. package/dist/ui/tools/OutlookReplyTool/index.js +49 -0
  246. package/dist/ui/tools/OutlookSendTool/index.js +49 -0
  247. package/dist/ui/tools/PauseDelegationTool/index.js +35 -0
  248. package/dist/ui/tools/ProbeTool/index.js +121 -0
  249. package/dist/ui/tools/ProcessTool/index.js +66 -0
  250. package/dist/ui/tools/QuestListTool/index.js +46 -0
  251. package/dist/ui/tools/QuestReportTool/index.js +49 -0
  252. package/dist/ui/tools/QuestUpdateTool/index.js +87 -0
  253. package/dist/ui/tools/QuipCommentTool/index.js +69 -0
  254. package/dist/ui/tools/QuipReadTool/index.js +71 -0
  255. package/dist/ui/tools/RestArionTool/index.js +32 -0
  256. package/dist/ui/tools/RestartTool/index.js +35 -0
  257. package/dist/ui/tools/ResumeDelegationTool/index.js +35 -0
  258. package/dist/ui/tools/RetireArionTool/index.js +32 -0
  259. package/dist/ui/tools/RgTool/index.js +73 -0
  260. package/dist/ui/tools/SearchKnowledgeTool/index.js +43 -0
  261. package/dist/ui/tools/SearchMessagesTool/index.js +43 -0
  262. package/dist/ui/tools/SelfDiagnoseTool/index.js +61 -0
  263. package/dist/ui/tools/SendMessageTool/index.js +45 -0
  264. package/dist/ui/tools/SerenaTool/index.js +124 -0
  265. package/dist/ui/tools/SessionHistoryTool/index.js +52 -0
  266. package/dist/ui/tools/SgTool/index.js +80 -0
  267. package/dist/ui/tools/SlackReactTool/index.js +41 -0
  268. package/dist/ui/tools/SlackReadTool/index.js +48 -0
  269. package/dist/ui/tools/SlackSendTool/index.js +45 -0
  270. package/dist/ui/tools/SpawnWorkerTool/index.js +33 -0
  271. package/dist/ui/tools/StickerRequestTool/index.js +19 -0
  272. package/dist/ui/tools/ThinkTool/index.js +17 -0
  273. package/dist/ui/tools/UgTool/index.js +108 -0
  274. package/dist/ui/tools/UseSkillTool/index.js +22 -0
  275. package/dist/ui/tools/WakeArionTool/index.js +32 -0
  276. package/dist/ui/tools/WebFetchTool/index.js +56 -0
  277. package/dist/ui/tools/WebSearchTool/index.js +44 -0
  278. package/dist/ui/tools/lsTool/index.js +58 -0
  279. package/dist/ui/tools/registry.js +197 -0
  280. package/dist/ui/tools/tool-renderer.js +11 -0
  281. package/dist/ui/tools/truncation.js +35 -0
  282. package/dist/ui/types/anthropic.js +4 -0
  283. package/dist/ui/types/index.js +2 -0
  284. package/dist/ui/types/message.js +3 -0
  285. package/dist/ui/types/tool.js +4 -0
  286. package/dist/ui/utils/array.js +4 -0
  287. package/dist/ui/utils/cursor.js +131 -0
  288. package/dist/ui/utils/diff.js +120 -0
  289. package/dist/ui/utils/format.js +42 -0
  290. package/dist/ui/utils/fuzzy.js +59 -0
  291. package/dist/ui/utils/index.js +11 -0
  292. package/dist/ui/utils/keys.js +8 -0
  293. package/dist/ui/utils/patch.js +17 -0
  294. package/dist/ui/utils/risk.js +114 -0
  295. package/dist/ui/utils/terminal-image.js +70 -0
  296. package/dist/ui/utils/validation.js +48 -0
  297. package/dist/ui/verb-pairs.js +248 -0
  298. package/dist/ui.js +131 -0
  299. package/package.json +73 -14
  300. package/src/entrypoints/command-mode.ts +5 -0
  301. package/src/entrypoints/daemon.ts +54 -0
  302. package/src/entrypoints/headless-stdio.ts +27 -0
  303. package/src/entrypoints/interactive.ts +112 -0
  304. package/src/main.ts +44 -0
  305. package/src/runtime/configure-bun-sqlite.ts +3 -0
  306. package/src/runtime/crash-handlers.ts +128 -0
  307. package/src/runtime/interactive-invocation.test.ts +42 -0
  308. package/src/runtime/interactive-invocation.ts +51 -0
  309. package/src/runtime/internal-mode.test.ts +19 -0
  310. package/src/runtime/internal-mode.ts +24 -0
  311. package/src/runtime/launch-spec.test.ts +26 -0
  312. package/src/runtime/launch-spec.ts +84 -0
  313. package/src/runtime/owner-lease.ts +52 -0
  314. package/src/runtime/public-mode.test.ts +18 -0
  315. package/src/runtime/public-mode.ts +19 -0
  316. package/src/runtime/run-internal-mode.ts +19 -0
  317. package/src/runtime/runtime-kind.test.ts +23 -0
  318. package/src/runtime/runtime-kind.ts +41 -0
  319. package/src/runtime/spawn-aria.ts +62 -0
package/bin/aria.mjs CHANGED
@@ -4723,7 +4723,7 @@ ${$.toString("base64").match(/.{1,64}/g)?.join(`
4723
4723
  CREATE INDEX IF NOT EXISTS idx_delegation_transitions_id
4724
4724
  ON delegation_transitions(delegation_id);
4725
4725
  `)}mapRow($){if(!$)return;let Z=G0.safeParse($.remote_node_id?.trim());return{id:$.id,type:$.type,task:$.task,state:$.state,...$.arion_name?{arionName:$.arion_name}:{},...Z.success?{remoteNodeId:Z.data}:{},...$.remote_display_name_snapshot?{remoteDisplayNameSnapshot:$.remote_display_name_snapshot}:{},...$.tier?{tier:$.tier}:{},...$.result?{result:$.result}:{},...$.error?{error:$.error}:{},createdAt:$.created_at,updatedAt:$.updated_at,...$.metadata?{metadata:$.metadata}:{}}}create($){let Z=Date.now(),J=$.metadata?JSON.stringify($.metadata):null;this.db.transaction(()=>{this.stmtInsert.run($.id,$.type,$.task,"created",$.arionName??null,$.remoteNodeId??null,$.remoteDisplayNameSnapshot??null,$.tier??null,J,Z,Z),this.stmtInsertTransition.run($.id,null,"created",Z,null)})()}transition($,Z,J){let X=Date.now(),Q=this.stmtGet.get($)?.state??null;this.db.transaction(()=>{this.stmtUpdateState.run(Z,X,$),this.stmtInsertTransition.run($,Q,Z,X,J??null)})()}complete($,Z){let J=Date.now(),Y=this.stmtGet.get($)?.state??null;this.db.transaction(()=>{this.stmtUpdateResult.run("completed",Z??null,null,J,$),this.stmtInsertTransition.run($,Y,"completed",J,null)})()}fail($,Z){let J=Date.now(),Y=this.stmtGet.get($)?.state??null;this.db.transaction(()=>{this.stmtUpdateResult.run("failed",null,Z,J,$),this.stmtInsertTransition.run($,Y,"failed",J,Z)})()}get($){return this.mapRow(this.stmtGet.get($))}findRecoverable(){return this.stmtFindNonTerminal.all().map(($)=>this.mapRow($))}cleanup($=86400000){let Z=Date.now()-$;this.db.transaction(()=>{this.stmtCleanup.run(Z),this.stmtCleanupStore.run(Z)})()}record($){switch($.event){case"created":if(!this.get($.id))this.create({id:$.id,type:$.type,task:$.task,arionName:$.arionName,remoteNodeId:$.remoteNodeId,remoteDisplayNameSnapshot:$.remoteDisplayNameSnapshot,tier:$.tier});this.transition($.id,"running");break;case"completed":this.complete($.id,$.result);break;case"failed":this.fail($.id,$.error??"Unknown error");break;case"aborted":this.transition($.id,"aborted");break}}}var P90=_(()=>{W8()});var V8=_(()=>{pB();sE();pB();pB();pB();T80();v80();JM();uy();ZM();py();A90();dy();GM();oy();sy();ry();zM();Vy();Ky();ey();$v();_90();Kf();HM();Zv();P90();i_();Q_();Z_();b0();S80();Sy();e80()});import{jsx as YJ,jsxs as DM}from"react/jsx-runtime";import{useState as WT0,useRef as T90}from"react";import{Box as $F,Text as wY,useInput as HT0}from"ink";function Jv({currentLevel:$,onSelect:Z,onCancel:J,isActive:X=!0}){let Y=e(),Q=iZ.indexOf($),G=Q>=0?Q:0,[V,W]=WT0(G),H=T90(G),K=T90(!1),z=(B)=>{W((F)=>{let D=B(F);return H.current=D,D})},U=process.stdin.isTTY??!1;return HT0((B,F)=>{if(K.current)return;if(F.upArrow)z((D)=>Math.max(0,D-1));else if(F.downArrow)z((D)=>Math.min(iZ.length-1,D+1));else if(F.return)K.current=!0,Z(iZ[H.current]);else if(W$(B,F))K.current=!0,J()},{isActive:X&&U}),DM($F,{flexDirection:"column",borderStyle:"round",borderColor:Y.colors.secondary,paddingX:1,paddingY:1,width:48,children:[YJ($F,{marginBottom:1,children:YJ(wY,{bold:!0,children:"Autonomy Level"})}),YJ($F,{marginBottom:1,children:DM(wY,{children:["Current: ",YJ(wY,{bold:!0,children:$})]})}),iZ.map((B,F)=>{let D=F===V,O=D?"\u25CF":"\u25CB",L=B==="high"||B==="full";return DM($F,{gap:1,children:[YJ(wY,{color:D?Y.colors.primary:void 0,children:O}),YJ(wY,{color:D?Y.colors.primary:L?Y.colors.warning:void 0,bold:D,children:B.padEnd(10)}),YJ(wY,{color:Y.colors.textMuted,children:KT0[B]})]},B)}),YJ($F,{marginTop:1,children:DM(wY,{color:Y.colors.textMuted,children:["\u2191\u2193"," Navigate Enter Select Esc Cancel"]})})]})}var KT0;var C90=_(()=>{E0();V8();KT0={minimal:"Confirm all tool calls",balanced:"Confirm dangerous only",high:"Auto-approve everything",full:"Auto-approve everything"}});import{jsxs as dL$,jsx as lL$}from"react/jsx-runtime";import{Box as nL$,Text as iL$}from"ink";var R90=_(()=>{E0()});import{jsx as SY,jsxs as OM}from"react/jsx-runtime";import{Box as NM,Text as IY}from"ink";function BT0($){if($<1000)return`${Math.round($)}ms`;if($<60000)return`${($/1000).toFixed(1)}s`;let Z=Math.floor($/60000),J=Math.round($%60000/1000);return`${Z}m ${J}s`}function w90($,Z,J){let X=Math.round(Z*$),Y=Math.max(zT0,Math.round(J*$)),Q=Math.max(0,$-X-Y);return"\u2591".repeat(X)+"\u2588".repeat(Y)+"\u2591".repeat(Q)}function Yv({spans:$,width:Z}){let J=e(),X=Z??UT0,Y=$.filter((K)=>K.endTime!==void 0||K.durationMs!==void 0);if(Y.length===0)return SY(NM,{children:SY(IY,{dimColor:!0,children:"(no completed spans)"})});let Q=Y.map((K)=>{let z=K.durationMs??K.endTime-K.startTime,U=K.endTime??K.startTime+z;return{...K,durationMs:z,endTime:U}}),G=Math.min(...Q.map((K)=>K.startTime)),W=Math.max(...Q.map((K)=>K.endTime))-G;if(W<=0)return SY(NM,{flexDirection:"column",children:Q.map((K)=>OM(IY,{dimColor:!0,children:[Xv[K.spanType]??K.spanType," ","\u2588"," 0ms (",K.name,")"]},K.spanId))});let H=Math.max(...Q.map((K)=>{let z=Xv[K.spanType]??K.spanType;return(K.parentSpanId!==void 0?2:0)+z.length}));return SY(NM,{flexDirection:"column",children:Q.map((K)=>{let z=K.parentSpanId!==void 0,U=z?" ":"",B=Xv[K.spanType]??K.spanType,F=(U+B).padEnd(H),D=(K.startTime-G)/W,O=K.durationMs/W,L=w90(X,D,O),q=BT0(K.durationMs),A=K.spanType==="tool_execution"&&K.name?` (${K.name})`:"";return OM(NM,{children:[OM(IY,{color:J.colors.textMuted,children:[" ",F]}),SY(IY,{children:" "}),SY(IY,{color:z?J.colors.info:J.colors.success,children:L}),SY(IY,{children:" "}),OM(IY,{dimColor:!0,children:[q,A]})]},K.spanId)})})}var zT0=1,UT0=20,Xv;var S90=_(()=>{E0();Xv={model_call:"model_call",tool_execution:"tool_exec",handoff:"handoff",approval:"approval",session_phase:"session",runner_phase:"runner"}});import{jsxs as rW}from"react/jsx-runtime";import{Box as I90,Text as LM}from"ink";function b90($){if($<1000)return`${Math.round($)}ms`;return`${($/1000).toFixed(2)}s`}function Qv({report:$}){let Z=e();if(!$||$.phases.length===0)return null;return rW(I90,{flexDirection:"column",marginTop:1,children:[rW(LM,{color:Z.colors.textMuted,children:[" Pipeline timing (",b90($.totalMs),")"]}),$.phases.map((J)=>rW(I90,{children:[rW(LM,{color:Z.colors.info,children:[" ",J.phase.padEnd(24)]}),rW(LM,{color:Z.colors.text,children:[" ",b90(J.durationMs)]}),rW(LM,{color:Z.colors.textMuted,children:[" (",J.pct,"%)"]})]},`${J.phase}:${J.durationMs}`))]})}var k90=_(()=>{E0()});import{jsxs as f90,jsx as FT0}from"react/jsx-runtime";import{useRef as DT0}from"react";import{Box as OT0,Text as y90}from"ink";import NT0 from"gradient-string";function h90($){if($<60)return`${$}s`;let Z=Math.floor($/60),J=$%60;return`${Z}m ${J}s`}function LT0($){if($>=1000)return`${($/1000).toFixed(1)}k tokens`;return`${$} tokens`}function Vv({state:$,elapsedSeconds:Z,totalTokens:J,thoughtForSeconds:X,currentVerb:Y}){let Q=[...v90,...[...v90].reverse()],G=Math.floor(Date.now()/120)%Q.length,V=DT0(j1().present),W=Y||V.current,H=e(),K=G%Gv.length,z=[...Gv.slice(K),...Gv.slice(0,K)],U=NT0(z),B=`${Q[G]} ${W}\u2026`,F=U(B),D=h90(Z),O=LT0(J),L;if($==="thinking")L="(thinking)";else if(X&&X>0)L=`(${D} \xB7 \u2193 ${O} \xB7 thought for ${h90(X)})`;else L=`(${D} \xB7 \u2193 ${O} \xB7 esc to cancel)`;return f90(OT0,{flexDirection:"row",marginTop:1,children:[f90(y90,{children:[F," "]}),FT0(y90,{color:H.colors.textMuted,children:L})]})}var Gv,v90;var x90=_(()=>{E0();AV();Gv=["#5f97cd","#7baed4","#97c4db","#7baed4"],v90=process.platform==="darwin"?["\xB7","\u2722","\u2733","\u2217","\u273B","\u273D"]:["\xB7","\u2722","*","\u2217","\u273B","\u273D"]});import{jsxs as m90,jsx as g90}from"react/jsx-runtime";import{Box as AT0,Text as c90}from"ink";function Wv($){return $>=70?"high":$>=30?"moderate":"low"}function qT0($){let Z=e();switch($){case"low":return{highlightColor:Z.colors.success,textColor:Z.colors.primary};case"moderate":return{highlightColor:Z.colors.warning,textColor:Z.colors.warning};case"high":return{highlightColor:Z.colors.error,textColor:Z.colors.error}}}function e7($){if($===null)return e().colors.primary;let Z=Wv($);return qT0(Z).textColor}function ET0({riskScore:$}){let Z=Wv($);return m90(c90,{color:e7($),children:["Risk: ",Z]})}function c1({title:$,riskScore:Z}){return m90(AT0,{flexDirection:"column",children:[g90(c90,{bold:!0,color:e().colors.primary,children:$}),Z!==null&&g90(ET0,{riskScore:Z})]})}var bY=_(()=>{E0()});function $5($,Z){}import{structuredPatch as _T0}from"diff";function AM($,Z,J,X=3){let Y=_T0($,$,Z,J,"","",{context:X}),Q=0,G=0,V=Y.hunks.map((W)=>{let H=[],K=W.oldStart,z=W.newStart;for(let U of W.lines){let B=U.slice(1);if(U.startsWith("+"))H.push({type:"added",content:B,newLineNo:z++}),Q++;else if(U.startsWith("-"))H.push({type:"removed",content:B,oldLineNo:K++}),G++;else H.push({type:"unchanged",content:B,oldLineNo:K++,newLineNo:z++})}return{oldStart:W.oldStart,oldLines:W.oldLines,newStart:W.newStart,newLines:W.newLines,lines:H}});return{filePath:$,hunks:V,additions:Q,deletions:G}}var Hv=()=>{};import{jsx as qM,jsxs as MT0}from"react/jsx-runtime";import{existsSync as PT0,readFileSync as jT0}from"fs";import{useMemo as u90}from"react";import{Box as Kv,Text as TT0}from"ink";import{relative as CT0}from"path";function p90({file_path:$,new_string:Z,old_string:J,verbose:X,useBorder:Y=!0,width:Q}){let G=u90(()=>PT0($)?jT0($,"utf8"):"",[$]),V=u90(()=>{let W=G.replace(J,Z);return AM($,G,W)},[$,G,J,Z]);return qM(Kv,{flexDirection:"column",children:MT0(Kv,{borderColor:e().colors.secondary,borderStyle:Y?"round":void 0,flexDirection:"column",paddingX:1,children:[qM(Kv,{paddingBottom:1,children:qM(TT0,{bold:!0,children:X?$:CT0(process.cwd(),$)})}),qM(fX,{diff:V,dim:!1,width:Q,showHeader:!1})]})})}var d90=_(()=>{PV();E0();Hv()});import{jsx as zv,jsxs as RT0}from"react/jsx-runtime";import{Box as wT0,Text as Uv}from"ink";function l90({isFocused:$,isSelected:Z,smallPointer:J,children:X}){let Y=e();return RT0(wT0,{gap:1,children:[$&&zv(Uv,{color:Y.colors.primary,children:J?IT0:ST0}),zv(Uv,{color:$?Y.colors.primary:void 0,bold:Z,children:X}),Z&&zv(Uv,{color:Y.colors.success,children:bT0})]})}var ST0="\u276F",IT0="\u25BE",bT0="\u2714";var a90=_(()=>{E0()});var EM;var n90=_(()=>{QJ();EM=class EM extends Map{first;constructor($){let Z=[],J,X,Y=0;for(let Q of $){let G={...Q,previous:X,next:void 0,index:Y};if(X)X.next=G;J||=G;let V="value"in Q?Q.value:Bv(Q);Z.push([V,G]),Y++,X=G}super(Z);this.first=J}}});import{isDeepStrictEqual as kT0}from"util";import{useReducer as fT0,useCallback as Fv,useMemo as yT0,useState as vT0,useEffect as Dv}from"react";var hT0=($,Z)=>{switch(Z.type){case"focus-next-option":{if(!$.focusedValue)return $;let J=$.optionMap.get($.focusedValue);if(!J)return $;let X=J.next;while(X&&!("value"in X))X=X.next;if(!X)return $;if(!(X.index>=$.visibleToIndex))return{...$,focusedValue:X.value};let Q=Math.min($.optionMap.size,$.visibleToIndex+1),G=Q-$.visibleOptionCount;return{...$,focusedValue:X.value,visibleFromIndex:G,visibleToIndex:Q}}case"focus-previous-option":{if(!$.focusedValue)return $;let J=$.optionMap.get($.focusedValue);if(!J)return $;let X=J.previous;while(X&&!("value"in X))X=X.previous;if(!X)return $;if(!(X.index<=$.visibleFromIndex))return{...$,focusedValue:X.value};let Q=Math.max(0,$.visibleFromIndex-1),G=Q+$.visibleOptionCount;return{...$,focusedValue:X.value,visibleFromIndex:Q,visibleToIndex:G}}case"select-focused-option":return{...$,previousValue:$.value,value:$.focusedValue};case"reset":return Z.state;case"set-focus":return{...$,focusedValue:Z.value}}},Ov=($)=>$.flatMap((Z)=>{if("options"in Z){let J=Ov(Z.options),X=J.flatMap((Q)=>("value"in Q)?Q.value:[]);return[...Z.header!==void 0?[{header:Z.header,optionValues:X}]:[],...J]}return Z}),i90=({visibleOptionCount:$,defaultValue:Z,options:J})=>{let X=Ov(J),Y=typeof $==="number"?Math.min($,X.length):X.length,Q=new EM(X),G=Q.first,V=G&&"value"in G?G.value:void 0;return{optionMap:Q,visibleOptionCount:Y,focusedValue:V,visibleFromIndex:0,visibleToIndex:Y,previousValue:Z,value:Z}},o90=({visibleOptionCount:$=5,options:Z,defaultValue:J,onChange:X,onFocus:Y,focusValue:Q})=>{let G=Ov(Z),[V,W]=fT0(hT0,{visibleOptionCount:$,defaultValue:J,options:Z},i90),[H,K]=vT0(G);if(G!==H&&!kT0(G,H))W({type:"reset",state:i90({visibleOptionCount:$,defaultValue:J,options:Z})}),K(G);let z=Fv(()=>{W({type:"focus-next-option"})},[]),U=Fv(()=>{W({type:"focus-previous-option"})},[]),B=Fv(()=>{W({type:"select-focused-option"})},[]),F=yT0(()=>{return G.map((D,O)=>({...D,index:O})).slice(V.visibleFromIndex,V.visibleToIndex)},[G,V.visibleFromIndex,V.visibleToIndex]);return Dv(()=>{if(V.value&&V.previousValue!==V.value)X?.(V.value)},[V.previousValue,V.value,Z,X]),Dv(()=>{if(V.focusedValue)Y?.(V.focusedValue)},[V.focusedValue,Y]),Dv(()=>{if(Q)W({type:"set-focus",value:Q})},[Q]),{focusedValue:V.focusedValue,visibleFromIndex:V.visibleFromIndex,visibleToIndex:V.visibleToIndex,value:V.value,visibleOptions:F,focusNextOption:z,focusPreviousOption:U,selectFocusedOption:B}};var s90=_(()=>{n90()});import{useInput as xT0}from"ink";var r90=({isDisabled:$=!1,state:Z})=>{xT0((J,X)=>{if(X.downArrow)Z.focusNextOption();if(X.upArrow)Z.focusPreviousOption();if(X.return)Z.selectFocusedOption()},{isActive:!$})};var t90=()=>{};import{jsx as Nv,Fragment as gT0,jsxs as mT0}from"react/jsx-runtime";import{Box as cT0,Text as uT0}from"ink";function u1({isDisabled:$=!1,visibleOptionCount:Z=5,highlightText:J,options:X,defaultValue:Y,onChange:Q,onFocus:G,focusValue:V}){let W=o90({visibleOptionCount:Z,options:X,defaultValue:Y,onChange:Q,onFocus:G,focusValue:V});r90({isDisabled:$,state:W});let H=e();return Nv(cT0,{flexDirection:"column",children:W.visibleOptions.map((K)=>{let z="value"in K?K.value:Bv(K),U=!$&&W.focusedValue!==void 0&&("value"in K?W.focusedValue===K.value:K.optionValues.includes(W.focusedValue)),B=!!W.value&&("value"in K?W.value===K.value:K.optionValues.includes(W.value)),F="header"in K,D="label"in K?K.label:K.header,O=D;if(J&&D.includes(J)){let L=D.indexOf(J);O=mT0(gT0,{children:[D.slice(0,L),Nv(uT0,{color:H.colors.primary,bold:!0,children:J}),D.slice(L+J.length)]})}return Nv(l90,{isFocused:U,isSelected:B,smallPointer:F,children:O},z)})})}var Bv=($)=>`HEADER-${$.optionValues.join(",")}`;var QJ=_(()=>{a90();s90();t90();E0()});import{jsx as _M,jsxs as Lv}from"react/jsx-runtime";import{Box as e90,Text as $40}from"ink";import{useMemo as pT0}from"react";import{basename as dT0,extname as lT0,isAbsolute as aT0,resolve as Av}from"path";import nT0 from"chalk";function iT0($){return(aT0($)?Av($):Av(process.cwd(),$)).startsWith(Av(process.cwd()))}function oT0($){let Z=iT0($)?[{label:"Yes, and don't ask again this session",value:"yes-dont-ask-again"}]:[];return[{label:"Yes",value:"yes"},...Z,{label:`No, and provide instructions (${nT0.bold.hex(e().colors.warning)("esc")})`,value:"no"}]}function Z40({toolUseConfirm:$,onDone:Z,verbose:J}){let{columns:X}=X9(),{file_path:Y,new_string:Q,old_string:G}=$.input,V=pT0(()=>({completion_type:"str_replace_single",language_name:sT0(Y)}),[Y]);return $5($,V),Lv(e90,{flexDirection:"column",borderStyle:"round",borderColor:e7($.riskScore),marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1,children:[_M(c1,{title:"Edit file",riskScore:$.riskScore}),_M(p90,{file_path:Y,new_string:Q,old_string:G,verbose:J,width:X-12}),Lv(e90,{flexDirection:"column",children:[Lv($40,{children:["Do you want to make this edit to ",_M($40,{bold:!0,children:dT0(Y)}),"?"]}),_M(u1,{options:oT0(Y),onChange:(W)=>{switch(W){case"yes":$.onAllow("temporary"),Z();break;case"yes-dont-ask-again":$.onAllow("permanent"),Z();break;case"no":$.onReject(),Z();break}}})]})]})}function sT0($){let Z=lT0($);return Z?Z.slice(1):"unknown"}var J40=_(()=>{E0();bY();d90();P1();QJ()});import ZF from"chalk";function rT0($){let J=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,"");if(/&&|\|\||[;|]/.test(J))return!0;if(/`/.test(J))return!0;if(/\$\(/.test(J))return!0;return!1}function X40({toolUseConfirm:$,command:Z}){let J=!rT0(Z)&&$.commandPrefix&&!$.commandPrefix.commandInjectionDetected,X=JF($),Y=J&&X!==null,Q=[];if(Y)Q=[{label:`Yes, and don't ask again for ${ZF.bold(X)} commands in ${ZF.bold(process.cwd())}`,value:"yes-dont-ask-again-prefix"}];else if(J)Q=[{label:`Yes, and don't ask again for ${ZF.bold(Z)} commands in ${ZF.bold(process.cwd())}`,value:"yes-dont-ask-again-full"}];return[{label:"Yes",value:"yes"},...Q,{label:`No, and provide instructions (${ZF.bold.hex(e().colors.warning)("esc")})`,value:"no"}]}var Y40=_(()=>{XF();E0()});import{jsx as YF,jsxs as qv}from"react/jsx-runtime";import{Box as Ev,Text as _v}from"ink";import{useMemo as tT0}from"react";function Q40({toolUseConfirm:$,onDone:Z}){let J=e(),{command:X}=$.tool.inputSchema.parse($.input),Y=tT0(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);return $5($,Y),qv(Ev,{flexDirection:"column",borderStyle:"round",borderColor:J.colors.primary,marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1,children:[YF(c1,{title:"Bash command",riskScore:$.riskScore}),qv(Ev,{flexDirection:"column",paddingX:2,paddingY:1,children:[YF(_v,{children:$.tool.renderToolUseMessage({command:X},{verbose:!1})}),YF(_v,{color:J.colors.textMuted,children:$.description})]}),qv(Ev,{flexDirection:"column",children:[YF(_v,{children:"Do you want to proceed?"}),YF(u1,{options:X40({toolUseConfirm:$,command:X}),onChange:(Q)=>{switch(Q){case"yes":$.onAllow("temporary"),Z();break;case"yes-dont-ask-again-prefix":{if(JF($)!==null)$.onAllow("permanent");else $.onAllow("temporary");Z();break}case"yes-dont-ask-again-full":$.onAllow("permanent"),Z();break;case"no":$.onReject(),Z();break}}})]})]})}var G40=_(()=>{E0();XF();bY();QJ();Y40()});import{jsx as QF,jsxs as MM}from"react/jsx-runtime";import{Box as Mv,Text as PM}from"ink";import{useMemo as eT0}from"react";import Pv from"chalk";function jM({toolUseConfirm:$,onDone:Z,verbose:J}){let X=e(),Y=$.tool.userFacingName($.input),Q=Y.endsWith(" (MCP)")?Y.slice(0,-6):Y,G=eT0(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);return $5($,G),MM(Mv,{flexDirection:"column",borderStyle:"round",borderColor:e7($.riskScore),marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1,children:[QF(c1,{title:"Tool use",riskScore:$.riskScore}),MM(Mv,{flexDirection:"column",paddingX:2,paddingY:1,children:[MM(PM,{children:[Q,"(",$.tool.renderToolUseMessage($.input,{verbose:J}),")",Y.endsWith(" (MCP)")?QF(PM,{color:X.colors.textMuted,children:" (MCP)"}):""]}),QF(PM,{color:X.colors.textMuted,children:$.description})]}),MM(Mv,{flexDirection:"column",children:[QF(PM,{children:"Do you want to proceed?"}),QF(u1,{options:[{label:"Yes",value:"yes"},{label:`Yes, and don't ask again for ${Pv.bold(Q)} commands in ${Pv.bold(process.cwd())}`,value:"yes-dont-ask-again"},{label:`No, and provide instructions (${Pv.bold.hex(e().colors.warning)("esc")})`,value:"no"}],onChange:(V)=>{switch(V){case"yes":$.onAllow("temporary"),Z();break;case"yes-dont-ask-again":$.onAllow("permanent"),Z();break;case"no":$.onReject(),Z();break}}})]})]})}var jv=_(()=>{E0();bY();QJ()});import{jsx as TM,jsxs as $C0}from"react/jsx-runtime";import{existsSync as ZC0,readFileSync as JC0}from"fs";import{useMemo as Tv}from"react";import{Box as V40,Text as XC0}from"ink";import{extname as YC0,relative as QC0}from"path";function W40({file_path:$,content:Z,verbose:J,width:X}){let Y=Tv(()=>ZC0($),[$]),Q=Tv(()=>{if(!Y)return"";return JC0($,"utf8")},[$,Y]),G=Tv(()=>{if(!Y)return null;return AM($,Q,Z)},[Y,$,Q,Z]);return $C0(V40,{borderColor:e().colors.secondary,borderStyle:"round",flexDirection:"column",paddingX:1,children:[TM(V40,{paddingBottom:1,children:TM(XC0,{bold:!0,children:J?$:QC0(process.cwd(),$)})}),G?TM(fX,{diff:G,dim:!1,width:X,showHeader:!1}):TM(C1,{code:Z||"(No content)",language:YC0($).slice(1)})]})}var H40=_(()=>{PV();E0();TV();Hv()});import{jsx as GF,jsxs as Cv}from"react/jsx-runtime";import{Box as Rv,Text as K40}from"ink";import{useMemo as z40}from"react";import{basename as GC0,extname as VC0}from"path";import{existsSync as WC0}from"fs";import HC0 from"chalk";function U40({toolUseConfirm:$,onDone:Z,verbose:J}){let{file_path:X,content:Y}=$.input,Q=z40(()=>WC0(X),[X]),G=z40(()=>({completion_type:"write_file_single",language_name:KC0(X)}),[X]),{columns:V}=X9();return $5($,G),Cv(Rv,{flexDirection:"column",borderStyle:"round",borderColor:e7($.riskScore),marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1,children:[GF(c1,{title:`${Q?"Edit":"Create"} file`,riskScore:$.riskScore}),GF(Rv,{flexDirection:"column",children:GF(W40,{file_path:X,content:Y,verbose:J,width:V-12})}),Cv(Rv,{flexDirection:"column",children:[Cv(K40,{children:["Do you want to ",Q?"make this edit to":"create"," ",GF(K40,{bold:!0,children:GC0(X)}),"?"]}),GF(u1,{options:[{label:"Yes",value:"yes"},{label:"Yes, and don't ask again this session",value:"yes-dont-ask-again"},{label:`No, and provide instructions (${HC0.bold.hex(e().colors.warning)("esc")})`,value:"no"}],onChange:(W)=>{switch(W){case"yes":$.onAllow("temporary"),Z();break;case"yes-dont-ask-again":$.onAllow("permanent"),Z();break;case"no":$.onReject(),Z();break}}})]})]})}function KC0($){let Z=VC0($);return Z?Z.slice(1):"unknown"}var B40=_(()=>{E0();bY();H40();P1();QJ()});import{jsx as tW,jsxs as wv}from"react/jsx-runtime";import{Box as Sv,Text as F40}from"ink";import{useMemo as zC0}from"react";import UC0 from"chalk";import{isAbsolute as BC0,resolve as D40}from"path";function CM($){return BC0($)?D40($):D40(process.cwd(),$)}function FC0($){return CM($).startsWith(CM(process.cwd()))}function OC0(){DC0=!0}function EC0($){let Z=$.tool.name;if(NC0.has(Z))return"file_path";if(LC0.has(Z))return"path";if(AC0.has(Z))return"notebook_path";return null}function _C0($){return qC0.has($.tool.name)}function MC0($){let Z=EC0($),J=$.input;if(Z&&Z in J)if(typeof J[Z]==="string")return CM(J[Z]);else return CM(process.cwd());return null}function O40({toolUseConfirm:$,onDone:Z,verbose:J}){let X=MC0($);if(!X)return tW(jM,{toolUseConfirm:$,onDone:Z,verbose:J});return tW(jC0,{toolUseConfirm:$,path:X,onDone:Z,verbose:J})}function PC0($,Z){if($.tool.isReadOnly())return[];return FC0(Z)?[{label:"Yes, and don't ask again for file edits this session",value:"yes-dont-ask-again"}]:[]}function jC0({toolUseConfirm:$,path:Z,onDone:J,verbose:X}){let Y=$.tool.userFacingName($.input),G=`${$.tool.isReadOnly()?"Read":"Edit"} ${_C0($)?"files":"file"}`,V=zC0(()=>({completion_type:"tool_use_single",language_name:"none"}),[]);return $5($,V),wv(Sv,{flexDirection:"column",borderStyle:"round",borderColor:e7($.riskScore),marginTop:1,paddingLeft:1,paddingRight:1,paddingBottom:1,children:[tW(c1,{title:G,riskScore:$.riskScore}),tW(Sv,{flexDirection:"column",paddingX:2,paddingY:1,children:wv(F40,{children:[Y,"(",$.tool.renderToolUseMessage($.input,{verbose:X}),")"]})}),wv(Sv,{flexDirection:"column",children:[tW(F40,{children:"Do you want to proceed?"}),tW(u1,{options:[{label:"Yes",value:"yes"},...PC0($,Z),{label:`No, and provide instructions (${UC0.bold.hex(e().colors.warning)("esc")})`,value:"no"}],onChange:(W)=>{switch(W){case"yes":$.onAllow("temporary"),J();break;case"yes-dont-ask-again":OC0(),$.onAllow("permanent"),J();break;case"no":$.onReject(),J();break}}})]})]})}var DC0=!1,NC0,LC0,AC0,qC0;var N40=_(()=>{E0();bY();jv();QJ();NC0=new Set(["Edit","file_edit","str_replace_editor","Write","file_write","create_file","Read","file_read","read_file"]),LC0=new Set(["Glob","glob","Grep","grep","LS","ls"]),AC0=new Set(["NotebookEdit","notebook_edit","NotebookRead","notebook_read"]),qC0=new Set(["Glob","glob","Grep","grep","LS","ls"])});import{jsx as TC0}from"react/jsx-runtime";import{useInput as CC0}from"ink";import*as L40 from"react";function bC0($){if(RC0.has($))return Z40;if(wC0.has($))return U40;if(SC0.has($))return Q40;if(IC0.has($))return O40;return jM}function JF($){return $.commandPrefix&&!$.commandPrefix.commandInjectionDetected&&$.commandPrefix.commandPrefix||null}function Iv({toolUseConfirm:$,onDone:Z,verbose:J}){let X=L40.useRef(!1);CC0((Q,G)=>{if(X.current)return;if(G.ctrl&&Q==="c"||W$(Q,G))X.current=!0,$.onReject(),Z()});let Y=bC0($.tool.name);return TC0(Y,{toolUseConfirm:$,onDone:Z,verbose:J})}var RC0,wC0,SC0,IC0;var XF=_(()=>{J40();G40();jv();B40();N40();RC0=new Set(["Edit","file_edit","str_replace_editor"]),wC0=new Set(["Write","file_write","create_file"]),SC0=new Set(["Bash","bash","execute_command"]),IC0=new Set(["Glob","glob","Grep","grep","LS","ls","Read","file_read","read_file","NotebookRead","notebook_read","NotebookEdit","notebook_edit"])});import{jsx as RM,jsxs as eW}from"react/jsx-runtime";import{useState as A40,useEffect as q40}from"react";import{Box as wM,Text as $H,useInput as kC0}from"ink";function bv($){return/\s/.test($.trimStart())}function fC0($){return $.trimStart().split(/\s+/,1)[0]??""}function kv({commands:$,initialFilter:Z="",onSelect:J,onHandOffInput:X,onCancel:Y}){let[Q,G]=A40(0),[V,W]=A40(Z),H=fC0(V).toLowerCase(),K=$.filter((B)=>B.name.toLowerCase().includes(H));q40(()=>{G((B)=>Math.min(B,Math.max(0,K.length-1)))},[K.length]),q40(()=>{if(!X||!bv(V))return;X(`/${V}`)},[V,X]);let z=K.length>0?Math.min(Q,K.length-1):0,U=process.stdin.isTTY??!1;return kC0((B,F)=>{if(W$(B,F)){Y();return}if(F.return&&bv(V)&&X){X(`/${V}`);return}if(F.return&&K.length>0){J(K[z]);return}if(F.upArrow){G((D)=>Math.max(0,D-1));return}if(F.downArrow){G((D)=>Math.min(K.length-1,D+1));return}if(F.backspace||F.delete){W((D)=>D.slice(0,-1));return}if(B&&!F.ctrl&&!F.meta){let D=V+B;if(X&&bv(D)){X(`/${D}`);return}W(D)}},{isActive:U}),eW(wM,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:1,children:[eW(wM,{marginBottom:1,children:[RM($H,{bold:!0,children:"Commands"}),V&&eW($H,{dimColor:!0,children:[" /",V]})]}),K.map((B,F)=>eW(wM,{children:[eW($H,{inverse:F===z,children:["/",B.name]}),eW($H,{dimColor:!0,children:[" ",B.description]})]},B.name)),K.length===0&&RM($H,{dimColor:!0,children:"No matching commands"}),RM(wM,{marginTop:1,children:RM($H,{dimColor:!0,children:"\u2191\u2193 navigate \u23CE select esc cancel"})})]})}var E40=()=>{};import{jsx as VF,jsxs as ZH}from"react/jsx-runtime";import{useState as _40,useEffect as yC0}from"react";import{Box as SM,Text as kY,useInput as vC0}from"ink";function fv({arions:$,initialFilter:Z="",statusFilter:J="all",onSelect:X,onCancel:Y}){let[Q,G]=_40(0),[V,W]=_40(Z),H=$.filter((U)=>{if(J==="active"&&U.isResting)return!1;if(J==="resting"&&!U.isResting)return!1;return U.name.toLowerCase().includes(V.toLowerCase())});yC0(()=>{G((U)=>Math.min(U,Math.max(0,H.length-1)))},[H.length]);let K=H.length>0?Math.min(Q,H.length-1):0,z=process.stdin.isTTY??!1;return vC0((U,B)=>{if(W$(U,B)){Y();return}if(B.return&&H.length>0){X(H[K]);return}if(B.upArrow){G((F)=>Math.max(0,F-1));return}if(B.downArrow){G((F)=>Math.min(H.length-1,F+1));return}if(B.backspace||B.delete){W((F)=>F.slice(0,-1));return}if(U&&!B.ctrl&&!B.meta)W((F)=>F+U)},{isActive:z}),ZH(SM,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:1,children:[ZH(SM,{marginBottom:1,children:[VF(kY,{bold:!0,children:J==="active"?"Active Arions":J==="resting"?"Resting Arions":"Arions"}),V&&ZH(kY,{dimColor:!0,children:[" @",V]})]}),H.length===0&&VF(kY,{dimColor:!0,children:$.length===0?"No arions available. Create one with /hatch":J==="active"?"No active arions":J==="resting"?"No resting arions":"No matching arions"}),H.map((U,B)=>{let F=oz(U.color),D=U.isActive?" (active)":U.isResting?" (resting)":"";return ZH(SM,{children:[ZH(kY,{inverse:B===K,children:[U.emoji," ",VF(kY,{color:F,children:U.name})]}),ZH(kY,{dimColor:!0,children:[" ",U.description,D]})]},U.name)}),VF(SM,{marginTop:1,children:VF(kY,{dimColor:!0,children:"\u2191\u2193 navigate \u23CE select esc cancel"})})]})}var M40=_(()=>{KV()});import{jsx as LZ,jsxs as p1}from"react/jsx-runtime";import{useState as yv,useEffect as hC0,useMemo as xC0}from"react";import{Box as GJ,Text as f4,useInput as gC0}from"ink";function cC0($){return mC0[$]||$}function j40($){let Z=P40.indexOf($);return Z>=0?Z:P40.length}function uC0($,Z,J){let X=new Map;for(let G of $){let V=G.provider||"other",W=X.get(V)??[];W.push(G),X.set(V,W)}let Y={powerful:0,balanced:1,fast:2,ensemble:3},Q=[...X.entries()].sort(([G],[V])=>j40(G)-j40(V));for(let[G,V]of Q){Z.push({type:"header",label:cC0(G),provider:G});let W=(U)=>{if(!U)return"balanced";let B=U.toLowerCase();if(B.includes("deep"))return"powerful";if(B.includes("quick"))return"fast";return"balanced"},H=[/^claude-opus-|^opus-|^bedrock-opus-/,/^claude-sonnet-|^sonnet-|^bedrock-sonnet-/,/^claude-haiku-|^haiku-|^bedrock-haiku-/,/^claude-/,/^gpt-/,/^o[0-9]/,/^gemini-/],K=(U)=>{let B=U.toLowerCase();for(let F=0;F<H.length;F++)if(H[F].test(B))return F;return H.length},z=[...V].sort((U,B)=>{let F=K(U.name),D=K(B.name);if(F!==D)return F-D;return B.name.localeCompare(U.name)});for(let U of z)J.push(Z.length),Z.push({type:"model",model:U})}}function vv({models:$,initialFilter:Z="",effortLevel:J,onSelect:X,onCancel:Y}){let[Q,G]=yv(Z),[V,W]=yv(J??"high"),K=$.filter((A)=>A.name.toLowerCase().includes(Q.toLowerCase())),{items:z,selectableIndices:U}=xC0(()=>{if(!K.some((M)=>M.provider))return{items:K.map((M)=>({type:"model",model:M})),selectableIndices:K.map((M,T)=>T)};let N=[],E=[];return uC0(K,N,E),{items:N,selectableIndices:E}},[K]),B=U.findIndex((A)=>{let N=z[A];return N?.type==="model"&&N.model.isCurrent}),[F,D]=yv(B>=0?B:0);hC0(()=>{D((A)=>Math.min(A,Math.max(0,U.length-1)))},[U.length]);let O=U.length>0?Math.min(F,U.length-1):0,L=process.stdin.isTTY??!1;gC0((A,N)=>{if(W$(A,N)){Y();return}if(N.return&&U.length>0){let E=U[O],M=z[E];if(M.type==="model")X(M.model,V);return}if(N.leftArrow){W((E)=>{let M=WF.indexOf(E);return WF[Math.max(0,M-1)]});return}if(N.rightArrow){W((E)=>{let M=WF.indexOf(E);return WF[Math.min(WF.length-1,M+1)]});return}if(N.upArrow){D((E)=>Math.max(0,E-1));return}if(N.downArrow){D((E)=>Math.min(U.length-1,E+1));return}if(N.backspace||N.delete){G((E)=>E.slice(0,-1));return}if(A&&!N.ctrl&&!N.meta)G((E)=>E+A)},{isActive:L});let q=U.length>0?` [${O+1}/${U.length}]`:"";return p1(GJ,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:1,children:[p1(GJ,{marginBottom:1,children:[LZ(f4,{bold:!0,children:"Model"}),LZ(f4,{dimColor:!0,children:q}),LZ(f4,{children:" "}),Q?LZ(f4,{color:"cyan",children:Q}):LZ(f4,{dimColor:!0,children:"Type to search..."})]}),K.length===0&&LZ(f4,{dimColor:!0,children:"No matching models"}),(()=>{let A=z.reduce((N,E)=>{if(E.type!=="model")return N;return Math.max(N,E.model.name.length)},0);return z.map((N,E)=>{if(N.type==="header"){let a=Oa(N.provider);return p1(GJ,{marginTop:E>0?1:0,children:[p1(f4,{color:a.color,children:[a.icon," "]}),LZ(f4,{bold:!0,color:a.color,children:N.label})]},`header-${N.label}-${E}`)}if(N.type==="hint")return LZ(GJ,{marginTop:1,children:LZ(f4,{dimColor:!0,italic:!0,children:N.label})},"hint");let M=U[O]===E,T=N.model.description,k=N.model.name.padEnd(A),R=GA(N.model.name);return p1(GJ,{children:[p1(f4,{inverse:M,color:M?void 0:R,dimColor:M?!1:!R,children:[N.model.isCurrent?"\u25CF":"\u25CB"," ",k]}),T&&p1(f4,{dimColor:!0,children:[" ",N.model.description]})]},N.model.value??`${N.model.provider}-${N.model.name}`)})})(),p1(GJ,{marginTop:1,flexDirection:"column",children:[p1(GJ,{children:[p1(f4,{color:T40[V],children:[pC0[V]," "]}),p1(f4,{color:T40[V],bold:!0,children:[dC0[V]," effort"]}),V==="high"&&LZ(f4,{dimColor:!0,children:" (default)"}),LZ(f4,{dimColor:!0,children:" \u2190 \u2192 to adjust"})]}),LZ(GJ,{marginTop:0,children:LZ(f4,{dimColor:!0,children:"\u2191\u2193 navigate \u2190 \u2192 effort \u23CE select esc cancel"})})]})]})}var mC0,P40,WF,pC0,dC0,T40;var C40=_(()=>{KV();mC0={anthropic:"Anthropic","openai-codex":"OpenAI Codex",google:"Google",bedrock:"AWS Bedrock","bedrock-converse":"AWS Bedrock (Converse)","github-copilot":"GitHub Copilot",openai:"OpenAI",local:"Local"},P40=["anthropic","openai-codex","google","bedrock","bedrock-converse","github-copilot","openai","local"];WF=["low","medium","high","max"],pC0={low:"\u258C",medium:"\u258C\u258C",high:"\u258C\u258C\u258C",max:"\u258C\u258C\u258C\u258C"},dC0={low:"Low",medium:"Medium",high:"High",max:"Max"},T40={low:"blue",medium:"cyan",high:"yellow",max:"magenta"}});import{jsx as VJ,jsxs as Z5}from"react/jsx-runtime";import{useState as hv,useEffect as lC0}from"react";import{Box as JH,Text as d1,useInput as aC0}from"ink";import nC0 from"ink-spinner";function xv({memories:$,mode:Z="browse",isLoading:J=!1,onSelect:X,onCancel:Y}){let[Q,G]=hv(0),[V,W]=hv(""),[H,K]=hv(0),z=8,U=$.filter((N)=>N.content.toLowerCase().includes(V.toLowerCase())),B=Math.max(1,Math.ceil(U.length/8)),F=U.slice(H*8,(H+1)*8);lC0(()=>{G((N)=>Math.min(N,Math.max(0,F.length-1)))},[F.length]);let D=F.length>0?Math.min(Q,F.length-1):0,O=process.stdin.isTTY??!1;aC0((N,E)=>{if(W$(N,E)){Y();return}if(E.return&&F.length>0&&Z==="forget"){X?.(F[D]);return}if(E.upArrow){G((M)=>Math.max(0,M-1));return}if(E.downArrow){G((M)=>Math.min(F.length-1,M+1));return}if(E.leftArrow&&H>0){K((M)=>M-1),G(0);return}if(E.rightArrow&&H<B-1){K((M)=>M+1),G(0);return}if(E.backspace||E.delete){W((M)=>M.slice(0,-1)),K(0),G(0);return}if(N&&!E.ctrl&&!E.meta)W((M)=>M+N),K(0),G(0)},{isActive:O});function L(N){let E=N instanceof Date?N:new Date(N);if(isNaN(E.getTime()))return"unknown";let T=new Date().getTime()-E.getTime(),k=Math.floor(T/86400000);if(k===0)return"today";if(k===1)return"yesterday";if(k<7)return`${k}d ago`;if(k<30)return`${Math.floor(k/7)}w ago`;return`${Math.floor(k/30)}mo ago`}function q(N,E){if(N.length<=E)return N;return N.slice(0,E-3)+"..."}return Z5(JH,{flexDirection:"column",borderStyle:"round",borderColor:Z==="forget"?"red":"cyan",paddingX:1,children:[Z5(JH,{marginBottom:1,children:[VJ(d1,{bold:!0,color:Z==="forget"?"red":"cyan",children:Z==="forget"?"Select Memory to Delete":"Memories"}),V&&Z5(d1,{dimColor:!0,children:[' (filter: "',V,'")']}),Z5(d1,{dimColor:!0,children:[" - ",U.length," memories"]})]}),J&&Z5(JH,{children:[VJ(d1,{color:"cyan",children:VJ(nC0,{type:"dots"})}),VJ(d1,{dimColor:!0,children:" Loading memories..."})]}),!J&&U.length===0&&VJ(d1,{dimColor:!0,children:$.length===0?"No memories stored yet. Use /remember to add some.":"No memories match your filter."}),!J&&F.map((N,E)=>{let M=E===D,T=L(N.createdAt),k=q(N.content,60);return Z5(JH,{flexDirection:"row",children:[Z5(d1,{inverse:M,children:[M?">":" "," ",k]}),Z5(d1,{dimColor:!0,children:[" [",T,"]"]}),N.network&&Z5(d1,{dimColor:!0,children:[" (",N.network,")"]})]},N.id)}),!J&&B>1&&VJ(JH,{marginTop:1,children:Z5(d1,{dimColor:!0,children:["Page ",H+1,"/",B]})}),VJ(JH,{marginTop:1,children:VJ(d1,{dimColor:!0,children:Z==="forget"?"type to filter arrows navigate enter delete esc cancel":"type to filter arrows navigate esc close"})})]})}var R40=()=>{};import{jsx as HF,jsxs as J5}from"react/jsx-runtime";import{useState as gv,useEffect as w40}from"react";import{Box as XH,Text as W2,useInput as iC0}from"ink";function oC0($){let J=Date.now()-$.getTime(),X=Math.floor(J/60000),Y=Math.floor(J/3600000),Q=Math.floor(J/86400000);if(X<1)return"just now";if(X<60)return`${X}m ago`;if(Y<24)return`${Y}h ago`;if(Q<7)return`${Q}d ago`;return $.toLocaleDateString()}function mv({sessions:$,onSelect:Z,onCancel:J,onSearch:X,onPageChange:Y}){let{columns:Q}=X9(),[G,V]=gv(0),[W,H]=gv(""),[K,z]=gv(0),U=8,B=Math.max(1,Math.ceil($.length/8)),F=$.slice(K*8,(K+1)*8);w40(()=>{V((A)=>Math.min(A,Math.max(0,F.length-1)))},[F.length]),w40(()=>{z((A)=>Math.min(A,Math.max(0,B-1)))},[B]);let D=F.length>0?Math.min(G,F.length-1):0,O=process.stdin.isTTY??!1;iC0((A,N)=>{if(W$(A,N))J();else if(N.return&&F.length>0)Z(F[D].id);else if(N.upArrow)V((E)=>Math.max(0,E-1));else if(N.downArrow)V((E)=>Math.min(F.length-1,E+1));else if(N.leftArrow&&K>0)z((E)=>E-1),V(0);else if(N.leftArrow&&K===0)Y?.("prev"),V(0);else if(N.rightArrow&&K<B-1)z((E)=>E+1),V(0);else if(N.rightArrow&&K===B-1)Y?.("next"),V(0);else if(N.backspace||N.delete){let E=W.slice(0,-1);H(E),z(0),V(0),X(E)}else if(A&&!N.ctrl&&!N.meta){let E=W+A;H(E),z(0),V(0),X(E)}},{isActive:O});function L(A,N){if(A.length<=N)return A;return A.slice(0,N-3)+"..."}let q=Math.max(30,Math.min(120,Q-28));return J5(XH,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[J5(XH,{marginBottom:1,children:[HF(W2,{bold:!0,color:"cyan",children:"Sessions"}),W&&J5(W2,{dimColor:!0,children:[' (filter: "',W,'")']}),J5(W2,{dimColor:!0,children:[" - ",$.length," sessions"]})]}),$.length===0?HF(W2,{dimColor:!0,children:W?"No sessions match your filter.":"No sessions yet."}):F.map((A,N)=>{let E=N===D,M=oC0(A.updatedAt),T=A.title??A.preview??"Untitled session",k=K*8+N;return J5(XH,{flexDirection:"column",marginBottom:N<F.length-1?1:0,children:[J5(XH,{flexDirection:"row",children:[J5(W2,{inverse:E,children:[E?">":" "," ",k+1,". ",L(T,q)]}),J5(W2,{dimColor:!0,children:[" [",M,"]"]})]}),J5(W2,{dimColor:!0,children:[" ",A.arion," | ",A.model," | ",A.messageCount," messages"]})]},A.id)}),$.length>0&&B>1&&HF(XH,{marginTop:1,children:J5(W2,{dimColor:!0,children:["Page ",K+1,"/",B]})}),HF(XH,{marginTop:1,children:HF(W2,{dimColor:!0,children:"type to search arrows navigate enter resume esc cancel"})})]})}var S40=_(()=>{P1()});import{jsx as KF,jsxs as fY}from"react/jsx-runtime";import{useState as cv,useEffect as IM,useMemo as sC0}from"react";import{Box as bM,Text as WJ,useInput as rC0}from"ink";function tC0($,Z){if($.length<=Z)return $;return $.slice(0,Z-3)+"\u2026"}function eC0($){switch($){case"user":return"\uD83D\uDC64";case"assistant":return"\uD83E\uDD16";case"system":return"\u2699\uFE0F";case"tool":return"\uD83D\uDD27";default:return" "}}function $R0($){switch($){case"user":return"cyan";case"assistant":return"green";case"system":return"yellow";case"tool":return"gray";default:return"white"}}function uv({messages:$,onSelect:Z,onCancel:J}){let{columns:X,rows:Y}=X9(),[Q,G]=cv(0),[V,W]=cv(""),H=sC0(()=>{if(!V)return $;let L=V.toLowerCase();return $.filter((q)=>q.text.toLowerCase().includes(L)||q.role.toLowerCase().includes(L)||q.arion&&q.arion.toLowerCase().includes(L))},[$,V]);IM(()=>{G((L)=>Math.min(L,Math.max(0,H.length-1)))},[H.length]),IM(()=>{if(!V){let L=H.reduce((q,A,N)=>A.role==="user"?N:q,0);G(L)}},[]);let K=Math.max(4,Y-10),[z,U]=cv(0);IM(()=>{if(Q<z)U(Q);else if(Q>=z+K)U(Q-K+1)},[Q,K,z]),IM(()=>{let L=H.reduce((q,A,N)=>A.role==="user"?N:q,0);U(Math.max(0,L-K+2))},[V]);let B=H.slice(z,z+K),F=H.length>0?Math.min(Q,H.length-1):0,D=process.stdin.isTTY??!1;rC0((L,q)=>{if(W$(L,q))J();else if(q.return&&H.length>0){let A=H[F];if(A&&A.role==="user")Z(A.index,A.text)}else if(q.upArrow)G((A)=>Math.max(0,A-1));else if(q.downArrow)G((A)=>Math.min(H.length-1,A+1));else if(q.backspace||q.delete){let A=V.slice(0,-1);W(A),G(0)}else if(L&&!q.ctrl&&!q.meta){let A=V+L;W(A),G(0)}},{isActive:D});let O=Math.max(30,Math.min(120,X-16));return fY(bM,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[fY(bM,{marginBottom:1,children:[KF(WJ,{bold:!0,color:"cyan",children:"Edit Message"}),V?fY(WJ,{dimColor:!0,children:[" ",'(search: "',V,'") \u2014 ',H.length,"/",$.length," messages"]}):fY(WJ,{dimColor:!0,children:[" \u2014 ",$.length," messages \xB7 select a user message to edit"]})]}),z>0&&fY(WJ,{dimColor:!0,children:[" \u2191 ",z," more above"]}),H.length===0?KF(WJ,{dimColor:!0,children:V?`No messages match "${V}".`:"No messages."}):B.map((L,q)=>{let N=z+q===F,E=L.role==="user",M=eC0(L.role),T=$R0(L.role),k=N?"\u276F":" ",R=tC0(L.text.replace(/\n/g," ").trim()||"(empty)",O);return KF(bM,{flexDirection:"row",children:fY(WJ,{inverse:N,color:N?void 0:T,dimColor:!E&&!N,bold:E,children:[k," ",M," ",R]})},`${L.index}-${q}`)}),z+K<H.length&&fY(WJ,{dimColor:!0,children:[" \u2193 ",H.length-z-K," more below"]}),KF(bM,{marginTop:1,children:KF(WJ,{dimColor:!0,children:"type to search \xB7 \u2191\u2193 navigate \xB7 enter select user message \xB7 esc cancel"})})]})}var I40=_(()=>{P1()});import{jsx as Q$,jsxs as l9}from"react/jsx-runtime";import ZR0,{useState as JR0,useMemo as pv}from"react";import{Box as d9,Text as F$,useInput as XR0}from"ink";function b40($){if($.includes("daltonized")||$.includes("accessible"))return"accessible";if($.startsWith("claude-"))return"claude";return"standard"}function GR0($){let Z=$.colors.text.replace("#",""),J=parseInt(Z.slice(0,2),16),X=parseInt(Z.slice(2,4),16),Y=parseInt(Z.slice(4,6),16);return(J*299+X*587+Y*114)/1000<128}function VR0($){return I7().map((Z)=>{let J=KA(Z);return{name:Z,displayName:J.displayName,isCurrent:Z===$,isLight:GR0(J),category:b40(Z)}})}function WR0({theme:$}){let Z=$.colors,J=Z.primary,X=Z.info,Y=Z.success,Q=Z.textMuted,G=Z.text;return l9(d9,{flexDirection:"column",children:[Q$(F$,{color:Q,children:"// fetch a user by ID"}),l9(d9,{children:[Q$(F$,{color:J,children:"async function "}),Q$(F$,{color:G,children:"fetchUser"}),Q$(F$,{color:G,children:"("}),Q$(F$,{color:G,children:"id"}),Q$(F$,{color:G,children:": "}),Q$(F$,{color:Y,children:"string"}),Q$(F$,{color:G,children:") {"})]}),l9(d9,{children:[Q$(F$,{color:G,children:" "}),Q$(F$,{color:J,children:"const "}),Q$(F$,{color:G,children:"res = "}),Q$(F$,{color:J,children:"await "}),Q$(F$,{color:G,children:"fetch("}),Q$(F$,{color:X,children:"`/api/users/${"}),Q$(F$,{color:G,children:"id"}),Q$(F$,{color:X,children:"}`"}),Q$(F$,{color:G,children:")"})]}),l9(d9,{children:[Q$(F$,{color:G,children:" "}),Q$(F$,{color:J,children:"if "}),Q$(F$,{color:G,children:"(!res.ok) "}),Q$(F$,{color:J,children:"throw new "}),Q$(F$,{color:Y,children:"Error"}),Q$(F$,{color:G,children:"("}),Q$(F$,{color:X,children:"`HTTP ${"}),Q$(F$,{color:G,children:"res.status"}),Q$(F$,{color:X,children:"}`"}),Q$(F$,{color:G,children:")"})]}),l9(d9,{children:[Q$(F$,{color:G,children:" "}),Q$(F$,{color:J,children:"return "}),Q$(F$,{color:G,children:"res.json() "}),Q$(F$,{color:J,children:"as "}),Q$(F$,{color:Y,children:"Promise"}),Q$(F$,{color:G,children:"<"}),Q$(F$,{color:Y,children:"User"}),Q$(F$,{color:G,children:">"})]}),Q$(F$,{color:G,children:"}"})]})}function HR0({theme:$}){let{colors:Z,symbols:J}=$;return l9(d9,{flexDirection:"column",borderStyle:"single",borderColor:Z.secondary,paddingX:1,children:[l9(F$,{bold:!0,color:Z.primary,children:[J.prompt," ",$.displayName]}),Q$(d9,{marginTop:1,flexDirection:"column",children:Q$(WR0,{theme:$})}),l9(d9,{marginTop:1,flexDirection:"column",children:[l9(F$,{color:Z.success,children:[J.success," Tests passed (3/3)"]}),l9(F$,{color:Z.error,children:[J.error," Error: connection refused"]}),l9(F$,{color:Z.warning,children:[J.warning," Deprecated API call"]}),Q$(d9,{children:Q$(F$,{color:Z.diffAdded,children:"+ const data = await fetch(url);"})}),Q$(d9,{children:Q$(F$,{color:Z.diffRemoved,children:"- const data = http.get(url);"})}),l9(F$,{color:Z.textMuted,children:[J.info," 1.2k tokens ",J.bullet," $0.01 ",J.bullet," 0.8s"]})]})]})}function dv({onSelect:$,onCancel:Z}){let J=pv(()=>e().name,[]),X=pv(()=>VR0(J),[J]),{items:Y,selectableIndices:Q}=pv(()=>{let D=[],O=[],L=new Map;for(let q of X){let A=L.get(q.category)??[];A.push(q),L.set(q.category,A)}for(let q of QR0){let A=L.get(q);if(!A?.length)continue;D.push({type:"header",label:YR0[q]??q});for(let N of A)O.push(D.length),D.push({type:"theme",option:N})}return{items:D,selectableIndices:O}},[X]),G=Q.findIndex((D)=>{let O=Y[D];return O?.type==="theme"&&O.option.isCurrent}),[V,W]=JR0(G>=0?G:0),H=Q.length>0?Math.min(V,Q.length-1):0,K=Y[Q[H]],z=K?.type==="theme"?K.option.name:null;if(z)S7(z);let U=ZR0.useCallback(()=>{S7(J),Z()},[J,Z]),B=process.stdin.isTTY??!1;XR0((D,O)=>{if(W$(D,O)){U();return}if(O.return&&Q.length>0){let L=Q[H],q=Y[L];if(q.type==="theme")$({name:q.option.name,displayName:q.option.displayName});return}if(O.upArrow){W((L)=>Math.max(0,L-1));return}if(O.downArrow){W((L)=>Math.min(Q.length-1,L+1));return}},{isActive:B});let F=e();return l9(d9,{flexDirection:"column",borderStyle:"round",borderColor:F.colors.primary,paddingX:1,children:[l9(d9,{marginBottom:1,children:[Q$(F$,{bold:!0,color:F.colors.primary,children:"Theme"}),l9(F$,{color:F.colors.textMuted,children:[" ",F.symbols.arrow," select a color theme"]})]}),l9(d9,{children:[Q$(d9,{flexDirection:"column",width:38,children:Y.map((D,O)=>{if(D.type==="header")return Q$(d9,{marginTop:O>0?1:0,children:Q$(F$,{bold:!0,color:F.colors.textMuted,children:D.label})},`header-${D.label}`);let L=Q[H]===O,{option:q}=D;return Q$(d9,{children:l9(F$,{inverse:L,color:L?F.colors.primary:F.colors.text,children:[q.isCurrent?"\u25CF":"\u25CB"," ",q.displayName]})},q.name)})}),Q$(d9,{flexDirection:"column",flexGrow:1,marginLeft:2,children:Q$(HR0,{theme:F})})]}),Q$(d9,{marginTop:1,children:l9(F$,{color:F.colors.textMuted,children:["\u2191\u2193"," navigate ","\u23CE"," select esc cancel"]})})]})}var YR0,QR0;var k40=_(()=>{E0();YR0={standard:"Standard",claude:"Claude",accessible:"Accessible"},QR0=["standard","claude","accessible"]});import{jsxs as yY,jsx as kM}from"react/jsx-runtime";import{useState as f40,useEffect as KR0,useMemo as zR0}from"react";import{Box as lv,Text as HJ,useInput as UR0}from"ink";function BR0($,Z){let J=Z.trim().toLowerCase();if(!J)return!0;return[$.displayNameSnapshot,$.nodeId,$.host,$.port?.toString(),$.principalFingerprint,$.transport,$.status].filter((Y)=>typeof Y==="string"&&Y.length>0).map((Y)=>Y.toLowerCase()).some((Y)=>Y.includes(J))}function av($,Z){if(Z<=0)return 0;return Math.min($,Z-1)}function nv({peers:$,sameHomeClientsAvailable:Z=!1,onSelect:J,onCancel:X}){let[Y,Q]=f40(0),[G,V]=f40(""),W=e(),H=zR0(()=>$.filter((B)=>BR0(B,G)),[$,G]);KR0(()=>{Q((B)=>av(B,H.length))},[H.length]);let K=av(Y,H.length),z=process.stdin.isTTY??!1;UR0((B,F)=>{if(W$(B,F)){X();return}if(F.return){if(H.length>0)J(H[K]);return}if(F.upArrow){Q((D)=>Math.max(0,D-1));return}if(F.downArrow){Q((D)=>av(D+1,H.length));return}if(F.backspace||F.delete){V((D)=>D.slice(0,-1)),Q(0);return}if(B&&!F.ctrl&&!F.meta){V((D)=>D+B),Q(0);return}},{isActive:z});let U=(B)=>`${B.slice(0,4)} ${B.slice(4,8)} ${B.slice(8,12)} ${B.slice(12,16)}`;return yY(lv,{flexDirection:"column",borderStyle:"round",borderColor:W.colors.secondary,paddingX:1,children:[yY(HJ,{bold:!0,color:W.colors.primary,children:[" ","Nearby Peers"," "]}),G?yY(HJ,{dimColor:!0,children:[' (filter: "',G,'")']}):null,H.length===0&&kM(HJ,{dimColor:!0,children:G?"No peers match your filter.":Z?"No peer nodes. Use /clients for same-home terminals.":"Scanning... no peers found yet"}),H.map((B,F)=>yY(lv,{children:[yY(HJ,{inverse:F===K,color:F===K?W.colors.primary:void 0,children:[F===K?" \u25B8 ":" ",B.displayNameSnapshot]}),B.status==="connected"?kM(HJ,{color:"green",children:" \u2713 connected"}):yY(HJ,{dimColor:!0,children:[" ",B.host,":",B.port]}),B.principalFingerprint?yY(HJ,{color:W.colors.secondary,children:[" ",U(B.principalFingerprint)]}):null]},`${B.displayNameSnapshot}-${B.nodeId}-${F}`)),kM(lv,{marginTop:H.length>0?1:0,children:kM(HJ,{dimColor:!0,children:"type to search \u2191\u2193 navigate \u23CE connect esc cancel"})})]})}var y40=_(()=>{E0()});import{jsxs as YH,jsx as iv}from"react/jsx-runtime";import{useEffect as FR0,useMemo as DR0,useState as v40}from"react";import{Box as ov,Text as QH,useInput as OR0}from"ink";function NR0($,Z){let J=Z.trim().toLowerCase();if(!J)return!0;return $.displayLabel.toLowerCase().includes(J)||$.clientId.toLowerCase().includes(J)||$.clientKind.toLowerCase().includes(J)}function sv($,Z){if(Z<=0)return 0;return Math.min($,Z-1)}function rv({clients:$,onSelect:Z,onCancel:J}){let[X,Y]=v40(0),[Q,G]=v40(""),V=e(),W=DR0(()=>$.filter((z)=>NR0(z,Q)),[$,Q]);FR0(()=>{Y((z)=>sv(z,W.length))},[W.length]);let H=sv(X,W.length),K=process.stdin.isTTY??!1;return OR0((z,U)=>{if(W$(z,U)){J();return}if(U.return){if(W.length>0&&!W[H]?.self)Z(W[H]);return}if(U.upArrow){Y((B)=>Math.max(0,B-1));return}if(U.downArrow){Y((B)=>sv(B+1,W.length));return}if(U.backspace||U.delete){G((B)=>B.slice(0,-1)),Y(0);return}if(z&&!U.ctrl&&!U.meta)G((B)=>B+z),Y(0)},{isActive:K}),YH(ov,{flexDirection:"column",borderStyle:"round",borderColor:V.colors.secondary,paddingX:1,children:[YH(QH,{bold:!0,color:V.colors.primary,children:[" ","Same-Home Clients"," "]}),Q?YH(QH,{dimColor:!0,children:[' (filter: "',Q,'")']}):null,W.length===0&&iv(QH,{dimColor:!0,children:"No same-home clients found."}),W.map((z,U)=>YH(ov,{flexDirection:"column",children:[YH(QH,{inverse:U===H,color:U===H?V.colors.primary:void 0,children:[U===H?" \u25B8 ":" ",z.displayLabel]}),YH(QH,{dimColor:!0,children:[" ",z.clientId,z.self?" self \xB7 not sendable":""]})]},`${z.clientId}-${U}`)),iv(ov,{marginTop:W.length>0?1:0,children:iv(QH,{dimColor:!0,children:"type to search \u2191\u2193 navigate \u23CE select esc cancel"})})]})}var h40=_(()=>{E0()});import{jsx as KJ,jsxs as zF}from"react/jsx-runtime";import{Box as fM,Text as H2,useInput as LR0}from"ink";function tv({inviteToken:$,inviteLabel:Z,expiresAt:J,onClose:X}){let Y=e(),Q=process.stdin.isTTY??!1;return LR0((G,V)=>{if(V.return||W$(G,V))X()},{isActive:Q}),zF(fM,{flexDirection:"column",borderStyle:"round",borderColor:Y.colors.secondary,paddingX:1,paddingY:1,children:[KJ(H2,{bold:!0,color:Y.colors.primary,children:"Internet Invite"}),Z?zF(H2,{children:["Label: ",KJ(H2,{bold:!0,children:Z})]}):null,J?zF(H2,{dimColor:!0,children:["Expires: ",J]}):null,zF(fM,{marginTop:1,flexDirection:"column",children:[KJ(H2,{children:"Share this token:"}),KJ(H2,{children:$})]}),zF(fM,{marginTop:1,flexDirection:"column",children:[KJ(H2,{children:"Join with:"}),KJ(H2,{children:`aria pairing join ${$}`})]}),KJ(fM,{marginTop:1,children:KJ(H2,{dimColor:!0,children:"Press Enter or Esc to close."})})]})}var x40=_(()=>{E0()});import{jsx as zJ,jsxs as AR0}from"react/jsx-runtime";import{useState as qR0}from"react";import{Box as yM,Text as UF,useInput as ER0}from"ink";function ev({onSubmit:$,onCancel:Z,error:J}){let[X,Y]=qR0(""),Q=e(),G=process.stdin.isTTY??!1;return ER0((V,W)=>{if(W$(V,W)){Z();return}if(W.return){let H=X.trim();if(H.length>0)$(H);return}if(W.backspace||W.delete){Y((H)=>H.slice(0,-1));return}if(V&&!W.ctrl&&!W.meta)Y((H)=>H+V)},{isActive:G}),AR0(yM,{flexDirection:"column",borderStyle:"round",borderColor:Q.colors.secondary,paddingX:1,paddingY:1,children:[zJ(UF,{bold:!0,color:Q.colors.primary,children:"Join Invite"}),zJ(UF,{children:"Paste the invite token and press Enter."}),zJ(yM,{marginTop:1,children:zJ(UF,{children:X||" "})}),J?zJ(yM,{marginTop:1,children:zJ(UF,{color:Q.colors.error,children:J})}):null,zJ(yM,{marginTop:1,children:zJ(UF,{dimColor:!0,children:"Type token, Enter to join, Esc to cancel."})})]})}var g40=_(()=>{E0()});import{jsxs as vY,jsx as BF}from"react/jsx-runtime";import{useState as _R0,useRef as MR0}from"react";import{Box as FF,Text as hY,useInput as PR0}from"ink";function $h({request:$,onAccept:Z,onReject:J}){let[X,Y]=_R0("accept"),Q=MR0(!1),G=e(),V=process.stdin.isTTY??!1,W=(H)=>`${H.slice(0,4)} ${H.slice(4,8)} ${H.slice(8,12)} ${H.slice(12,16)}`;return PR0((H,K)=>{if(Q.current)return;if(K.return){if(Q.current=!0,X==="accept")Z();else J();return}if(W$(H,K)){Q.current=!0,J();return}if(K.leftArrow||K.rightArrow||K.tab)Y((z)=>z==="accept"?"reject":"accept")},{isActive:V}),vY(FF,{flexDirection:"column",borderStyle:"round",borderColor:G.colors.warning,paddingX:2,paddingY:1,children:[vY(hY,{bold:!0,color:G.colors.warning,children:[" ","Connection Request"," "]}),BF(FF,{marginTop:1,children:vY(hY,{children:[BF(hY,{bold:!0,children:$.displayNameSnapshot??$.nodeId})," wants to connect"]})}),BF(FF,{children:vY(hY,{dimColor:!0,children:["Fingerprint: ",W($.principalFingerprint)]})}),vY(FF,{marginTop:1,gap:2,children:[vY(hY,{inverse:X==="accept",color:X==="accept"?G.colors.success:void 0,children:[" ","Accept"," "]}),vY(hY,{inverse:X==="reject",color:X==="reject"?G.colors.error:void 0,children:[" ","Reject"," "]})]}),BF(FF,{marginTop:1,children:BF(hY,{dimColor:!0,children:"\u2190\u2192 select \u23CE confirm esc reject"})})]})}var m40=_(()=>{E0()});import{execFile as jR0}from"child_process";import{existsSync as Jh,readdirSync as d40}from"fs";import{dirname as TR0,join as vM,resolve as CR0}from"path";import{fileURLToPath as RR0}from"url";function SR0(){let $=wR0;for(let Z=0;Z<10;Z++){let J=vM($,".comms","sounds","wav");if(Jh(J))return J;let X=CR0($,"..");if(X===$)break;$=X}return null}function B8($){if(!xY)return[];try{return d40(xY).filter((Z)=>new RegExp($).test(Z)).map((Z)=>vM(xY,Z))}catch{return[]}}function c40($){if(!xY)return[];let Z=vM(xY,"cloned");try{return d40(Z).filter((J)=>new RegExp($).test(J)).map((J)=>vM(Z,J))}catch{return[]}}function X5($){if($.length===0)return null;return $[Math.floor(Math.random()*$.length)]}function gY($){Xh=$}function l40(){return Xh}function a40(){if(process.platform!=="darwin")return"unsupported on this platform";return Yh()?"afplay (macOS)":"afplay unavailable"}function Yh(){if(u40)return Zh;return u40=!0,Zh=process.platform==="darwin"&&Jh("/usr/bin/afplay"),Zh}function Y5($){if(!Xh||!$||!Jh($)||!Yh())return!1;try{return jR0("afplay",[$],()=>{}),!0}catch{return!1}}function bR0(){let $=Date.now();if($-p40>IR0)DF=1;else DF++;if(p40=$,DF<=1)Y5(X5(Q5.acknowledge()));else if(DF===2)Y5(X5(Q5.annoyed()));else if(DF===3)Y5(X5(Q5.grumpy()));else Y5(X5(Q5.dark()))}function hM(){Y5(X5(Q5.readyToWork()))}function n40(){Y5(X5(Q5.fleetDown()))}function i40(){bR0()}function o40(){Y5(X5(Q5.questDone()))}function s40($){switch($.type){case"error":Y5(X5(Q5.error()));break;case"guardrail_rejected":Y5(X5(Q5.defeat()));break}}function r40(){return xY!==null&&Yh()}function t40(){return xY!==null}function e40(){return Y5(X5(Q5.readyToWork()))}var wR0,xY,Xh=!0,u40=!1,Zh=!1,Q5,p40=0,DF=0,IR0=15000;var Qh=_(()=>{wR0=TR0(RR0(import.meta.url));xY=SR0();Q5={acknowledge:()=>B8("^(peasant|orc|human|dwarf|elf|troll)_acknowledge"),annoyed:()=>B8("^(peasant|orc|goblin_sapper|human|troll|ogre)_selected"),grumpy:()=>B8("^(goblin_sapper|ogre|ogre_mage)_selected"),dark:()=>[...B8("^ogre_mage_selected"),...B8("^ogre_selected"),...B8("^troll_selected")],defeat:()=>c40("^defeat_"),error:()=>c40("^error_"),readyToWork:()=>[...B8("^peasant_selected"),...B8("^orc_selected"),...B8("^human_selected"),...B8("^dwarf_selected")],fleetUp:()=>[...B8("^orc_acknowledge"),...B8("^troll_acknowledge"),...B8("^ogre_acknowledge"),...B8("^human_acknowledge"),...B8("^knight_acknowledge")],fleetDown:()=>[...B8("^ogre_mage_acknowledge"),...B8("^ship_acknowledge"),...B8("^horde_ship_acknowledge")],questDone:()=>[...B8("^jobs_done"),...B8("^orc_work_completed"),...B8("^peasant_selected"),...B8("^orc_selected"),...B8("^human_selected"),...B8("^peasant_acknowledge"),...B8("^orc_acknowledge")]}});import{jsx as x6,jsxs as l1}from"react/jsx-runtime";import{useState as Gh,useCallback as Z60}from"react";import{Box as G5,Text as F6,useInput as kR0}from"ink";function Wh({onClose:$}){let Z=e(),J=Z.colors,[X,Y]=Gh(0),[Q,G]=Gh(l40()),[V,W]=Gh("idle"),H=Z60(()=>{let D=!Q;gY(D);let O=H$();if(O.soundEnabled=D,I$(O),G(D),D)hM()},[Q]),K=Z60(()=>{let D=Q;if(!D)gY(!0);let O=e40();if(!D)gY(!1);W(O?"playing":"unavailable"),setTimeout(()=>W("idle"),1500)},[Q]),z=process.stdin.isTTY??!1;kR0((D,O)=>{if(W$(D,O)){$();return}if(O.upArrow){Y((L)=>Math.max(0,L-1));return}if(O.downArrow){Y((L)=>Math.min(Vh.length-1,L+1));return}if(O.return){let L=Vh[X];if(L?.id==="toggle")H();else if(L?.id==="preview")K();return}},{isActive:z});let U=r40(),B=t40(),F=a40();return l1(G5,{flexDirection:"column",borderStyle:"round",borderColor:J.primary,paddingX:1,children:[l1(G5,{marginBottom:1,children:[x6(F6,{bold:!0,color:J.primary,children:"\uD83D\uDD14 Sound"}),l1(F6,{color:J.textMuted,children:[" ",Z.symbols.arrow," notification preferences"]})]}),l1(G5,{flexDirection:"column",marginBottom:1,children:[l1(G5,{children:[x6(F6,{color:J.textMuted,children:"Status "}),B?x6(F6,{bold:!0,color:Q?J.success:J.textMuted,children:Q?"\u25CF ON":"\u25CB OFF"}):x6(F6,{color:J.warning,children:"\u26A0 Sound files not found"})]}),l1(G5,{children:[x6(F6,{color:J.textMuted,children:"Engine "}),x6(F6,{color:U?J.text:J.warning,children:F})]}),l1(G5,{children:[x6(F6,{color:J.textMuted,children:"Assets "}),x6(F6,{color:B?J.text:J.warning,children:B?"Warcraft II pack found":"missing"})]})]}),x6(G5,{marginBottom:1,children:x6(F6,{color:J.border,children:"\u2500".repeat(40)})}),x6(G5,{flexDirection:"column",children:Vh.map((D,O)=>{let L=O===X,q=D.id==="toggle";return l1(G5,{paddingX:1,children:[l1(F6,{inverse:L,color:L?J.primary:J.text,children:[D.icon," ",q?Q?"Turn off":"Turn on":D.label]}),q&&L&&l1(F6,{color:J.textMuted,children:[" ",Q?"\u2192 disable notifications":"\u2192 enable notifications"]}),D.id==="preview"&&V==="playing"&&x6(F6,{color:J.success,children:" \u266A playing..."}),D.id==="preview"&&V==="unavailable"&&x6(F6,{color:J.warning,children:" \u26A0 preview unavailable"})]},D.id)})}),x6(G5,{marginTop:1,children:l1(F6,{color:J.textMuted,children:["\u2191\u2193"," navigate ","\u23CE"," select ","esc"," close"]})})]})}var Vh;var J60=_(()=>{E0();Qh();T4();Vh=[{id:"toggle",label:"Toggle sounds",description:"Turn sound notifications on or off",icon:"\uD83D\uDD0A"},{id:"preview",label:"Preview sound",description:"Play a sample notification sound",icon:"\u25B6"}]});import{jsx as o8,jsxs as y4,Fragment as fR0}from"react/jsx-runtime";import{useState as yR0}from"react";import{Box as v4,Text as R9,useInput as vR0}from"ink";function xR0({loopStatus:$}){let J=e().colors;if(!$)return null;let Y={running:J.success,idle:J.info,starting:J.warning,stopping:J.warning,stopped:J.textMuted,error:J.error}[$]??J.text;return o8(R9,{color:Y,children:$})}function Hh({onAction:$,onClose:Z,status:J,actionStatus:X}){let Y=e(),Q=Y.colors,G=hR0.filter((z)=>{if(z.showWhenRunning===void 0)return!0;return z.showWhenRunning===J.running}),[V,W]=yR0(0),H=Math.min(V,G.length-1),K=process.stdin.isTTY??!1;return vR0((z,U)=>{if(X)return;if(W$(z,U)){Z();return}if(U.upArrow){W((B)=>Math.max(0,B-1));return}if(U.downArrow){W((B)=>Math.min(G.length-1,B+1));return}if(U.return&&G.length>0){let B=G[H];if(B)$(B.id);return}},{isActive:K}),y4(v4,{flexDirection:"column",borderStyle:"round",borderColor:Q.primary,paddingX:1,children:[y4(v4,{marginBottom:1,children:[o8(R9,{bold:!0,color:Q.primary,children:"\u2699 Daemon"}),y4(R9,{color:Q.textMuted,children:[" ",Y.symbols.arrow," background service control"]})]}),y4(v4,{flexDirection:"column",marginBottom:1,children:[y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Status "}),o8(R9,{bold:!0,color:J.running?Q.success:Q.textMuted,children:J.running?"\u25CF Running":"\u25CB Stopped"})]}),J.running&&y4(fR0,{children:[J.loopStatus&&y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Loop "}),o8(xR0,{loopStatus:J.loopStatus})]}),J.port&&y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Port "}),o8(R9,{color:Q.text,children:J.port})]}),J.nodeId&&y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Node "}),o8(R9,{color:Q.text,children:J.nodeId.length>20?`${J.nodeId.slice(0,20)}\u2026`:J.nodeId})]}),J.runtimeId&&y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Runtime "}),o8(R9,{color:Q.text,children:J.runtimeId.length>20?`${J.runtimeId.slice(0,20)}\u2026`:J.runtimeId})]}),J.clients!==void 0&&y4(v4,{children:[o8(R9,{color:Q.textMuted,children:"Clients "}),y4(R9,{color:J.clients>0?Q.info:Q.textMuted,children:[J.clients," attached"]})]})]})]}),o8(v4,{marginBottom:1,children:o8(R9,{color:Q.border,children:"\u2500".repeat(44)})}),X&&o8(v4,{marginBottom:1,paddingX:1,children:y4(R9,{color:Q.warning,children:["\u27F3 ",X]})}),o8(v4,{flexDirection:"column",children:G.map((z,U)=>{let B=U===H;return y4(v4,{paddingX:1,flexDirection:"column",children:[o8(v4,{children:y4(R9,{inverse:B,color:B?z.id==="stop"?Q.error:Q.primary:Q.text,children:[z.icon," ",z.label]})}),B&&o8(v4,{paddingLeft:3,children:o8(R9,{color:Q.textMuted,children:z.description})})]},z.id)})}),o8(v4,{marginTop:1,children:y4(R9,{color:Q.textMuted,children:["\u2191\u2193"," navigate ","\u23CE"," select ","esc"," close"]})})]})}var hR0;var X60=_(()=>{E0();hR0=[{id:"start",label:"Start daemon",description:"Launch the shared background daemon process",icon:"\u25B6",showWhenRunning:!1},{id:"stop",label:"Stop daemon",description:"Gracefully stop the shared daemon process",icon:"\u25A0",showWhenRunning:!0},{id:"restart",label:"Restart daemon",description:"Restart the shared daemon process cleanly",icon:"\u21BB",showWhenRunning:!0}]});var Y60=_(()=>{E40();M40();C40();R40();S40();I40();k40();y40();h40();x40();g40();m40();J60();X60()});var Kh=_(()=>{zS();DS();Vn();Mn();Dr();qq();nI();oI();_r();Mr();Pr();PV();jr();C90();oS();R90();S90();k90();rS();x90();XF();bY();QJ();Y60()});import{jsxs as VH,jsx as GH}from"react/jsx-runtime";import{useEffect as gR0,useState as mR0,useRef as Q60}from"react";import{Box as xM,Text as mY,useInput as cR0}from"ink";function uR0({status:$}){let Z=e();switch($){case"connected":return VH(mY,{color:Z.colors.success,children:["\u2713"," connected"]});case"expired":return VH(mY,{color:Z.colors.error,children:["\u2717"," expired"]});case"none":return VH(mY,{color:Z.colors.textMuted,children:["\xB7"," not connected"]})}}function G60({providers:$,onSelect:Z,onCancel:J,isActive:X=!0}){let Y=e(),[Q,G]=mR0(0),V=Q60(0),W=Q60(!1);gR0(()=>{W.current=!1,V.current=0,G(0)},[$]);let H=(z)=>{G((U)=>{let B=z(U);return V.current=B,B})},K=process.stdin.isTTY??!1;return cR0((z,U)=>{if(W.current)return;if(U.upArrow)H((B)=>Math.max(0,B-1));else if(U.downArrow)H((B)=>Math.min($.length-1,B+1));else if(U.return)W.current=!0,Z($[V.current]);else if(W$(z,U))W.current=!0,J()},{isActive:X&&K}),VH(xM,{flexDirection:"column",borderStyle:"round",borderColor:Y.colors.secondary,paddingX:1,paddingY:1,width:56,children:[GH(xM,{marginBottom:1,children:GH(mY,{bold:!0,children:"Select a provider:"})}),$.map((z,U)=>{let B=U===Q,F=B?"\u25B8":" ";return VH(xM,{gap:1,children:[GH(mY,{color:B?Y.colors.primary:void 0,children:F}),GH(mY,{color:B?Y.colors.primary:void 0,bold:B,children:z.label.padEnd(28)}),GH(uR0,{status:z.status})]},z.id)}),GH(xM,{marginTop:1,children:VH(mY,{color:Y.colors.textMuted,children:["\u2191\u2193"," Navigate Enter Select Esc Cancel"]})})]})}var V60=_(()=>{E0()});import{jsxs as K2,jsx as h4}from"react/jsx-runtime";import{useEffect as pR0,useRef as zh,useState as gM}from"react";import{Box as a1,Text as n1,useInput as dR0}from"ink";function W60({provider:$,onCancel:Z,isActive:J=!0,onComplete:X,authorizeUrl:Y,expectedState:Q,onCodeSubmit:G}){let V=e(),[W,H]=gM("starting"),[K,z]=gM(""),[U,B]=gM(""),[F,D]=gM(""),O=zh(null),L=zh(!1),q=zh(!1),A=process.stdin.isTTY??!1;dR0((E,M)=>{if(W$(E,M))Z()},{isActive:J&&A}),pR0(()=>{if(L.current)return;L.current=!0,H("waiting");let E=new Promise((T)=>{O.current=T}),M=(T)=>{z(T),H("manual")};if(Y&&G){z(Y),nL($,{authorizeUrl:Y,expectedState:Q,onManualFallback:M,manualCodePromise:E}).then(async(T)=>{if(q.current)return;H("exchanging"),await G(T),q.current=!0,H("success")},(T)=>{if(q.current)return;let k=T instanceof Error?T.message:String(T);B(k),H("error")});return}Tw($,{onManualFallback:M,manualCodePromise:E}).then((T)=>{if(q.current)return;if(T.success)H("success"),q.current=!0,setTimeout(()=>{X?.({success:!0,message:T.message})},1000);else B(T.message),H("error")},(T)=>{if(q.current)return;let k=T instanceof Error?T.message:String(T);B(k),H("error")})},[Q,Y,G,X,$]);let N=(E)=>{let M=E.trim();if(!M)return;if(H("exchanging"),O.current)O.current(M),O.current=null};return K2(a1,{flexDirection:"column",borderStyle:"round",borderColor:V.colors.secondary,paddingX:1,paddingY:1,width:64,children:[h4(a1,{marginBottom:1,children:K2(n1,{bold:!0,children:["Sign in to ",$]})}),(W==="starting"||W==="waiting")&&K2(a1,{gap:1,children:[h4(eV,{}),h4(n1,{children:"Opening browser to sign in..."})]}),W==="manual"&&K2(a1,{flexDirection:"column",children:[h4(n1,{children:"Open this URL in your browser:"}),h4(a1,{marginTop:1,children:h4(n1,{color:V.colors.primary,wrap:"wrap",children:K})}),h4(a1,{marginTop:1,children:h4(n1,{children:"Paste the authorization code below:"})}),K2(a1,{marginTop:1,children:[h4(n1,{color:V.colors.textMuted,children:"> "}),h4(DV,{value:F,onChange:D,onSubmit:N,placeholder:"paste code here",focus:J,showCursor:!0})]})]}),W==="exchanging"&&K2(a1,{gap:1,children:[h4(eV,{}),h4(n1,{children:"Exchanging code for tokens..."})]}),W==="success"&&K2(n1,{color:V.colors.success,children:["\u2713"," Logged in to ",$]}),W==="error"&&K2(a1,{flexDirection:"column",children:[K2(n1,{color:V.colors.error,children:["\u2717"," ",U]}),h4(a1,{marginTop:1,children:h4(n1,{color:V.colors.textMuted,children:"Press Esc to dismiss"})})]}),W!=="success"&&W!=="error"&&h4(a1,{marginTop:1,children:h4(n1,{color:V.colors.textMuted,children:"Esc Cancel"})})]})}var H60=_(()=>{C6();E0();qq();yS()});import{jsxs as HH,jsx as z2}from"react/jsx-runtime";import{useEffect as lR0,useRef as K60,useState as aR0}from"react";import{Box as WH,Text as UJ,useInput as nR0}from"ink";function iR0({status:$}){let Z=e();if($==="connected")return HH(UJ,{color:Z.colors.success,children:["\u2713"," connected"]});if($==="available")return HH(UJ,{color:Z.colors.success,children:["\u2713"," available"]});return z2(UJ,{color:Z.colors.textMuted,children:"\xB7"})}function KH({options:$,onSelect:Z,onCancel:J,title:X="Select login method:",isActive:Y=!0}){let Q=e(),[G,V]=aR0(0),W=K60(0),H=K60(!1),K=process.stdin.isTTY??!1;lR0(()=>{H.current=!1,W.current=0,V(0)},[$]);let z=(U)=>{V((B)=>{let F=U(B);return W.current=F,F})};return nR0((U,B)=>{if(H.current)return;if(B.upArrow)z((F)=>Math.max(0,F-1));else if(B.downArrow)z((F)=>Math.min($.length-1,F+1));else if(B.return)H.current=!0,Z($[W.current]);else if(W$(U,B))H.current=!0,J()},{isActive:Y&&K}),HH(WH,{flexDirection:"column",borderStyle:"round",borderColor:Q.colors.secondary,paddingX:1,paddingY:1,width:64,children:[z2(WH,{marginBottom:1,children:z2(UJ,{bold:!0,children:X})}),$.map((U,B)=>{let F=B===G,D=F?"\u25B8":" ";return HH(WH,{flexDirection:"column",children:[HH(WH,{gap:1,children:[z2(UJ,{color:F?Q.colors.primary:void 0,children:D}),z2(UJ,{color:F?Q.colors.primary:void 0,bold:F,children:U.label}),z2(iR0,{status:U.status})]}),U.description&&z2(WH,{marginLeft:3,children:z2(UJ,{color:Q.colors.textMuted,dimColor:!0,children:U.description})})]},U.id)}),z2(WH,{marginTop:1,children:HH(UJ,{color:Q.colors.textMuted,children:["\u2191\u2193"," Navigate Enter Select Esc Cancel"]})})]})}var Uh=_(()=>{E0()});import{jsx as oR0}from"react/jsx-runtime";function z60({options:$,onSelect:Z,onCancel:J,isActive:X=!0}){return oR0(KH,{options:$,onSelect:Z,onCancel:J,title:"Select Anthropic login method:",isActive:X})}var U60=_(()=>{Uh()});import{jsx as BJ,jsxs as Bh}from"react/jsx-runtime";import{useRef as sR0,useState as rR0}from"react";import{Box as OF,Text as zH,useInput as tR0}from"ink";function UH({title:$,hint:Z,onSubmit:J,onCancel:X,isActive:Y=!0}){let Q=e(),[G,V]=rR0(""),W=sR0(!1),H=process.stdin.isTTY??!1;tR0((z,U)=>{if(W.current)return;if(W$(z,U)){W.current=!0,X();return}if(U.return){if(G.trim().length>0)W.current=!0,J(G.trim());return}if(U.backspace||U.delete){V((B)=>B.slice(0,-1));return}if(U.upArrow||U.downArrow||U.leftArrow||U.rightArrow||U.tab)return;if(z&&!U.ctrl&&!U.meta)V((B)=>B+z)},{isActive:Y&&H});let K=G.length>0?G.slice(0,4)+"\u2022".repeat(Math.max(0,G.length-4)):"";return Bh(OF,{flexDirection:"column",borderStyle:"round",borderColor:Q.colors.secondary,paddingX:1,paddingY:1,width:64,children:[BJ(OF,{marginBottom:1,children:BJ(zH,{bold:!0,children:$})}),Z&&BJ(OF,{marginBottom:1,children:BJ(zH,{color:Q.colors.textMuted,dimColor:!0,children:Z})}),Bh(OF,{children:[Bh(zH,{color:Q.colors.primary,children:["\u25B8"," "]}),BJ(zH,{children:K||" "}),BJ(zH,{color:Q.colors.textMuted,children:"_"})]}),BJ(OF,{marginTop:1,children:BJ(zH,{color:Q.colors.textMuted,children:"Enter Submit Esc Cancel"})})]})}var B60=_(()=>{E0()});function F60($,Z,J={}){let X=J.userName||"User",Y=[],Q=new Map;function G(V,W){for(let H of V.content)switch(H.type){case"text":{if(V.role==="user"){let K=lS(H.text);for(let z of K)if(z.type==="image"&&CA(z.dataUri))Y.push({kind:"user-image",id:`${V.id}-image-${Y.length}`,dataUri:z.dataUri,userName:X,committed:W});else if(z.type==="text"&&z.text.length>0)Y.push({kind:"user-message",id:`${V.id}-text-${Y.length}`,text:z.text,userName:X,committed:W})}else if(V.role==="system"&&H.text.length>0)Y.push({kind:"user-message",id:`${V.id}-text-${Y.length}`,text:H.text,userName:"System",committed:W});else if(V.role==="assistant"&&H.text.trim())Y.push({kind:"assistant-text",id:`${V.id}-text-${Y.length}`,text:H.text,arion:V.arion?{name:V.arion.name,emoji:V.arion.emoji||"\uD83E\uDD8B",color:V.arion.color||"cyan"}:void 0,committed:W});break}case"thinking":{if(H.content?.trim())Y.push({kind:"thinking",id:`${V.id}-thinking-${Y.length}`,content:H.content,durationSec:H.durationMs!=null?H.durationMs/1000:void 0,arion:V.arion?{name:V.arion.name,emoji:V.arion.emoji||"\uD83E\uDD8B",color:V.arion.color||"cyan"}:void 0,committed:W});break}case"tool_use":{let K={kind:"tool-execution",id:`${V.id}-tool-${H.id}`,toolName:H.name,input:H.arguments,output:void 0,status:"pending",durationMs:void 0,usage:void 0,committed:W};Q.set(H.id,K),Y.push(K);break}case"tool_result":{let K=Q.get(H.toolUseId);if(K){if(K.output=H.resultData??H.content,K.status=H.status==="error"?"error":"complete",H.status==="error")K.error=typeof H.content==="string"?H.content:"Tool error";if(H.durationMs!=null)K.durationMs=H.durationMs;if(H.usage)K.usage={inputTokens:H.usage.inputTokens??0,outputTokens:H.usage.outputTokens??0};if(!W)K.committed=!1}break}case"handoff":{Y.push({kind:"handoff",id:`${V.id}-handoff-${Y.length}`,target:H.target,direction:H.direction==="from"?"incoming":"outgoing",committed:W});break}case"error":{Y.push({kind:"error",id:`${V.id}-error-${Y.length}`,message:H.content,suggestion:H.suggestion,committed:W});break}}}for(let V of $)G(V,!0);for(let V of Z)G(V,!1);return Y}var D60=_(()=>{RA()});function N60($,Z){switch(Z.type){case"STREAM_START":return{kind:"composing",verb:Z.verb};case"THINKING_START":if($.kind!=="composing"&&$.kind!=="idle")return $;return{kind:"thinking",verb:Z.verb,startedAt:Z.startedAt};case"THINKING_END":if($.kind!=="thinking")return $;return{kind:"composing",verb:Z.verb,thoughtForSeconds:Z.durationSeconds};case"TOOL_START":{let J=new Map($.kind==="tool_running"?$.tools:[]);return J.set(Z.callId,Z.displayName),{kind:"tool_running",tools:J}}case"TOOL_END":{if($.kind!=="tool_running")return $;let J=new Map($.tools);if(J.delete(Z.callId),J.size===0)return{kind:"composing",verb:Z.verb};return{kind:"tool_running",tools:J}}case"STREAM_END":return{kind:"idle"};default:return $}}var O60;var L60=_(()=>{O60={kind:"idle"}});import{useReducer as eR0,useEffect as Fh,useRef as A60}from"react";function q60($,Z){let[J,X]=eR0(N60,O60),Y=A60(!1);Fh(()=>{if(Z&&!Y.current)X({type:"STREAM_START",verb:j1()});else if(!Z&&Y.current)X({type:"STREAM_END"});Y.current=Z},[Z]);let Q=A60(null);return Fh(()=>{if($!==Q.current){if(Q.current!==null)X({type:"STREAM_END"});Q.current=$}},[$]),Fh(()=>{if(!$)return;let G=()=>X({type:"THINKING_START",verb:j1(),startedAt:Date.now()}),V=(K)=>X({type:"THINKING_END",verb:j1(),durationSeconds:Math.round(K.durationMs/1000)}),W=(K)=>X({type:"TOOL_START",callId:K.id,displayName:Rn(K.name,!0)}),H=(K)=>X({type:"TOOL_END",callId:K.id,verb:j1()});return $.on("thinking_start",G),$.on("thinking_end",V),$.on("tool_start",W),$.on("tool_result",H),()=>{$.off("thinking_start",G),$.off("thinking_end",V),$.off("tool_start",W),$.off("tool_result",H)}},[$]),J}var E60=_(()=>{L60();AV()});function mM($){let Z=typeof $.nodeId==="string"?$.nodeId.trim():"",J=typeof $.transport==="string"?$.transport:"unknown";if(Z)return`node:${Z}`;let X=typeof $.principalFingerprint==="string"?$.principalFingerprint.trim():"";if(X)return`principal:${X}`;return`endpoint:${J}:${$.host}:${$.port}:${$.displayNameSnapshot}`}function _60($,Z){let J=new Map;for(let X of[...$,...Z]){let Y=mM(X);if(!J.has(Y))J.set(Y,X)}return[...J.values()]}import{jsx as G$,jsxs as cY,Fragment as $w0}from"react/jsx-runtime";import{useState as FJ,useCallback as U2,useMemo as DJ,useEffect as AZ}from"react";import{Box as V5,Static as Zw0,Text as B2,useApp as Jw0,useInput as Xw0}from"ink";function Dh({session:$,model:Z,maxContextTokens:J,banner:X,messages:Y=[],previewMessages:Q=[],isStreaming:G=!1,queuedMessage:V,onCancelQueuedMessage:W,responseTime:H,commands:K=[],arions:z=[],models:U=[],memories:B=[],memoryBrowserMode:F="browse",isLoadingMemories:D=!1,userName:O,metrics:L,displayMode:q="standard",displayConfig:A,showThinking:N=!0,showCosts:E=!0,showTraces:M=!1,spans:T=[],pipelineTiming:k,activeArion:R,onSubmit:a,onCommand:o,onSelectArion:u,onSelectModel:w,onSelectTheme:m,onSelectMemory:I,onOpenMemoryBrowser:S,onToggleThinking:j,onToggleCosts:b,onToggleTraces:v,onCycleDisplayMode:c,sessions:C=[],onSelectSession:f,onLoadSessions:g,onSearchSessions:l,onLoadMoreSessions:$0,staticRenderEpoch:Y0,openSessionOverlaySignal:x,openThemeOverlaySignal:r,openSoundOverlaySignal:J0,openDaemonOverlaySignal:X0,daemonStatus:n,daemonActionStatus:K0,onDaemonAction:z0,connectionState:O0="connected",inputHistory:R0=[],onSaveInput:I0,obsCtx:Z0,onCancel:H0,approvalRequest:B0,onApprovalChoice:F0,effortLevel:V0,showAutonomySelector:D0,autonomyLevel:C0,onAutonomySelect:_0,onAutonomyCancel:L0,onCycleAutonomy:P0,onCycleEffort:c0,loginPickerProviders:z$,onLoginProviderSelect:A0,onLoginPickerCancel:u0,copilotSourceOptions:U$,onCopilotSourceSelect:r0,onCopilotSourceCancel:V$,oauthProvider:E$,oauthAuthorizeUrl:r8,oauthExpectedState:p$,onOAuthComplete:c$,onOAuthCodeSubmit:K9,onOAuthCancel:p4,copilotDeviceProvider:N5,copilotDeviceProfileLabel:QK,copilotDeviceVerificationUri:GK,copilotDeviceUserCode:G7,onCopilotDeviceComplete:V7,onCopilotDeviceApprove:VK,onCopilotDeviceCancel:b2,anthropicMethodOptions:WK,onAnthropicMethodSelect:rD,onAnthropicMethodCancel:xJ,anthropicKeyInputVisible:tD,onAnthropicKeySubmit:_Q,onAnthropicKeyCancel:eD,anthropicSetupTokenVisible:MQ,onAnthropicSetupTokenSubmit:$O,onAnthropicSetupTokenCancel:PQ,openaiMethodOptions:HK,onOpenAIMethodSelect:jQ,onOpenAIMethodCancel:ZO,openaiKeyInputVisible:TQ,onOpenAIKeySubmit:JO,onOpenAIKeyCancel:CQ,googleMethodOptions:RQ,onGoogleMethodSelect:wQ,onGoogleMethodCancel:XO,googleKeyInputVisible:SQ,onGoogleKeySubmit:YO,onGoogleKeyCancel:IQ,authInteractionOptions:KK,authInteractionTitle:zK,onAuthInteractionSelect:QO,onAuthInteractionCancel:bQ,authInteractionInput:kQ,onAuthInteractionInputSubmit:fQ,onAuthInteractionInputCancel:GO,nearbyPeers:k2=[],localClients:VO=[],onSelectPeer:UK,onSelectClient:KT,onPeerCancel:WO,onClientsCancel:zT,openPeersOverlaySignal:yQ,openClientsOverlaySignal:HO,inviteShare:W7,onInviteShareClose:UT,openJoinInviteOverlaySignal:vQ,onJoinInviteSubmit:BK,onJoinInviteCancel:gJ,joinInviteError:BT,incomingPairRequest:f2,onAcceptPairRequest:FT,onRejectPairRequest:KO,onCancelPairing:L5,openMessageEditOverlaySignal:FK,editableMessages:y2,onEditMessage:DT,prefillInput:DK,onPrefillConsumed:OT,meshMessageCount:NT=0,runtimeSocket:nc=null,clientId:ic=null,clientAuthToken:oc=null,resolveCredentials:OK}){let{exit:mJ}=Jw0(),{columns:zO,rows:LT}=X9(),[NK,L6]=FJ(""),[m0,J$]=FJ("none"),[hQ,xQ]=FJ(""),[LK,AK]=FJ(""),[i9,v2]=FJ("become"),[UO,H7]=FJ("all"),[BO,gQ]=FJ(!1),cJ=Boolean(KK||WK||HK||RQ),FO=Boolean(kQ||tD||MQ||TQ||SQ),uJ=Boolean(E$||N5||z$||U$);AZ(()=>{if(cJ)J$("login-method");else if(FO)J$("login-input");else if(uJ)J$("login");else if(m0==="login"||m0==="login-method"||m0==="login-input")J$("none")},[cJ,FO,uJ]);let qK=U2(()=>{J$("session"),setTimeout(()=>g?.(),0)},[g]);AZ(()=>{if(x===void 0)return;qK()},[x,qK]),AZ(()=>{if(r===void 0)return;J$("theme")},[r]),AZ(()=>{if(J0===void 0)return;J$("sound")},[J0]),AZ(()=>{if(X0===void 0)return;J$("daemon")},[X0]);let[mQ,cQ]=FJ([]);AZ(()=>{if(yQ===void 0)return;cQ([...k2]),J$("peers")},[yQ]),AZ(()=>{if(HO===void 0)return;J$("clients")},[HO]),AZ(()=>{if(W7)J$("invite-share");else if(m0==="invite-share")J$("none")},[W7,m0]),AZ(()=>{if(vQ===void 0)return;J$("join-invite")},[vQ]),AZ(()=>{if(FK===void 0)return;if(y2&&y2.length>0)J$("message-edit")},[FK]),AZ(()=>{if(DK!==void 0)L6(DK),OT?.()},[DK]),AZ(()=>{if(m0!=="peers")return;cQ((N0)=>{let T0=new Set(N0.map(mM)),X8=k2.filter((q5)=>!T0.has(mM(q5)));return X8.length>0?[...N0,...X8]:N0})},[m0,k2]),AZ(()=>{if(f2&&m0==="none"&&!G)J$("pair-request");else if(!f2&&m0==="pair-request")J$("none")},[f2,m0,G]);let AT=process.stdin.isTTY??!1;Xw0((N0,T0)=>{if(N0==="\x03"||T0.ctrl&&N0==="c"){if(B0)return;if(G&&H0){H0();return}mJ()}if(W$(N0,T0)){if(B0)return;if(m0!=="none"){RZ();return}if(L5){L5();return}if(G&&V&&W)W();else if(G&&H0)H0();else L6("");return}if(T0.upArrow&&G&&V&&W){W();return}if(T0.ctrl&&N0==="\x1C"&&m0==="none"){c?.();return}if(T0.ctrl&&N0==="t"&&m0==="none"){j?.();return}if(T0.ctrl&&N0==="g"&&m0==="none"){b?.();return}if(T0.ctrl&&N0==="s"&&m0==="none"){v?.();return}if(T0.tab&&N0!=="\t"&&m0==="none"){P0?.();return}if(T0.ctrl&&N0==="\x05"&&m0==="none"){c0?.();return}if(T0.ctrl&&N0==="\x1F"&&m0==="none"){gQ((X8)=>!X8);return}},{isActive:AT});let TZ=$.getPrimary(),sc=TZ?.name||"ARIA",qT=TZ?.color||"cyan",ET=TZ?.emoji||"\uD83E\uDD8B",CZ=q60(Z0??null,G??!1),uQ=(m0==="none"&&!B0?4:0)+(!A||A.showStatusBar?1:0),DO=Math.max(LT-uQ,1),pQ=U2((N0,T0)=>{if(N0==="command")J$("command"),xQ(T0);else if(N0==="mention")J$("arion"),AK(T0),v2("mention")},[]),_T=U2((N0)=>{J$("none"),L6("");let T0=N0.requiresArgs===!0||(N0.args?.length??0)>0;if(N0.name==="become")J$("arion"),v2("become"),H7("all");else if(N0.name==="rest")J$("arion"),v2("rest"),H7("active");else if(N0.name==="wake")J$("arion"),v2("wake"),H7("resting");else if(N0.name==="model")J$("model");else if(N0.name==="theme")J$("theme");else if(N0.name==="sound")J$("sound");else if(N0.name==="daemon")o(N0.name);else if(N0.name==="memories")S?.("browse"),J$("memory");else if(N0.name==="forget")S?.("forget"),J$("memory");else if(N0.name==="resume")qK();else if(N0.name==="exit")mJ();else if(T0){L6(`/${N0.name} `);return}else o(N0.name)},[o,S,mJ]),u6=U2((N0)=>{if(J$("none"),i9==="mention"){let T0=NK.replace(/@\w*$/,"");L6(T0+"@"+N0.name+" ")}else u?.(N0.name,i9)},[i9,NK,u]),MT=U2((N0,T0)=>{J$("none"),w?.(N0.value??N0.name,T0)},[w]),PT=U2((N0)=>{J$("none"),m?.(N0)},[m]),jT=U2((N0)=>{J$("none"),I?.(N0)},[I]),RZ=U2(()=>{if(J$("none"),i9!=="mention")L6("");xQ(""),AK("")},[i9]),h2=U2((N0)=>{J$("none"),L6(N0),xQ("")},[]),OO=DJ(()=>F60(Y,Q,{userName:O}),[Y,Q,O]),p6=DJ(()=>pI(OO,q),[OO,q]),dQ=DJ(()=>p6.filter((N0)=>N0.committed),[p6]),lQ=DJ(()=>p6.filter((N0)=>!N0.committed),[p6]),_8=G&&V?V:null,wZ=_8!==null,X1=CZ.kind!=="idle",C$=Math.max(zO-4,20),x2=DJ(()=>{if(!_8)return 0;return Math.max(D9(_8,{width:C$}).split(`
4726
- `).length,1)},[C$,_8]),aQ=(wZ?4+x2:0)+(X1?2:0),SZ=Math.max(DO-aQ,1),A5=DJ(()=>{let N0=new Map,T0="";for(let X8 of p6){let q5=X8.kind==="user-message"||X8.kind==="user-image"?`user:${X8.userName}`:X8.kind==="assistant-text"?`assistant:${X8.arion?.name??"ARIA"}`:X8.kind==="thinking"?`assistant:${X8.arion?.name??"ARIA"}`:X8.kind==="tool-execution"?"tool":X8.kind,nQ=X8.kind==="user-message"||X8.kind==="user-image"||X8.kind==="assistant-text"||X8.kind==="thinking";if(N0.set(X8.id,nQ&&q5!==T0),nQ)T0=q5}return N0},[p6]),TT=DJ(()=>{let N0=new Map;for(let T0=0;T0<p6.length;T0++){let X8=p6[T0],q5=T0>0?p6[T0-1]:void 0,nQ=X8.kind==="tool-execution"&&q5?.kind==="tool-execution";N0.set(X8.id,T0>0&&!nQ)}return N0},[p6]),rc=DJ(()=>{let N0=[];if(X)N0.push({id:"header",_kind:"banner"});for(let T0 of dQ)N0.push({...T0,_kind:"item"});return N0},[X,dQ]);return cY($w0,{children:[G$(Zw0,{items:rc,children:(N0)=>{if(N0._kind==="banner")return G$(V5,{width:"100%",justifyContent:"center",children:X},N0.id);return G$(V5,{flexDirection:"column",marginTop:TT.get(N0.id)?1:0,children:G$(Aq,{item:N0,displayMode:q,showPrefix:A5.get(N0.id)??!1})},N0.id)}},`static-${Y0}`),cY(V5,{flexDirection:"column",width:"100%",children:[cY(V5,{flexDirection:"column",maxHeight:DO,justifyContent:"flex-end",overflowY:"hidden",children:[lQ.length>0&&G$(V5,{flexDirection:"column",maxHeight:SZ,overflowY:"hidden",children:lQ.map((N0)=>G$(V5,{flexDirection:"column",marginTop:TT.get(N0.id)?1:0,children:G$(Aq,{item:N0,displayMode:q,showPrefix:A5.get(N0.id)??!1,previewTailLines:SZ})},N0.id))}),wZ&&cY(V5,{marginTop:1,flexDirection:"column",children:[G$(TA,{param:{type:"text",text:_8??""},userName:O??"User",columns:zO,showPrefix:!0,addMargin:!1}),G$(B2,{dimColor:!0,children:" \u2191 queued \u2014 press esc or \u2191 to cancel and edit"})]}),M&&T.length>0&&G$(Yv,{spans:T}),A?.showPipelineTiming&&k&&k.phases.length>0&&G$(Qv,{report:k}),BO&&cY(V5,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:1,marginY:1,children:[G$(B2,{bold:!0,dimColor:!0,children:"Hotkeys"}),G$(B2,{dimColor:!0,children:" Ctrl+\\ \u2014 cycle display mode"}),G$(B2,{dimColor:!0,children:" Ctrl+t \u2014 toggle thinking blocks"}),G$(B2,{dimColor:!0,children:" Ctrl+g \u2014 toggle cost display"}),G$(B2,{dimColor:!0,children:" Ctrl+e \u2014 cycle effort level"}),G$(B2,{dimColor:!0,children:" Ctrl+s \u2014 toggle trace waterfall"}),G$(B2,{dimColor:!0,children:" Escape \u2014 cancel streaming / close overlay / clear input"}),G$(B2,{dimColor:!0,children:" Ctrl+/ \u2014 toggle this help"})]}),X1&&G$(Vv,{state:CZ.kind==="thinking"?"thinking":"composing",elapsedSeconds:Math.floor(L?.wallTimeSeconds??0),totalTokens:L?.totalTokens??0,thoughtForSeconds:CZ.kind==="composing"?CZ.thoughtForSeconds:void 0,currentVerb:CZ.kind==="tool_running"?[...new Set(CZ.tools.values())].join(" \xB7 "):CZ.verb.present})]}),cY(V5,{flexDirection:"column",flexShrink:0,children:[D0&&_0&&L0&&G$(Jv,{currentLevel:C0??e3.autonomy,onSelect:_0,onCancel:L0}),z$&&A0&&u0&&G$(G60,{providers:z$,onSelect:A0,onCancel:u0}),U$&&r0&&V$&&G$(iI,{options:U$,onSelect:r0,onCancel:V$}),m0==="login-method"&&KK&&QO&&bQ&&G$(KH,{options:KK,onSelect:(N0)=>QO(N0.id),onCancel:bQ,title:zK??"Choose an option:",isActive:m0==="login-method"}),m0==="login-method"&&WK&&rD&&xJ&&G$(z60,{options:WK,onSelect:rD,onCancel:xJ,isActive:m0==="login-method"}),m0==="login-input"&&kQ&&fQ&&GO&&G$(UH,{title:kQ.title,hint:kQ.hint,onSubmit:fQ,onCancel:GO,isActive:m0==="login-input"}),m0==="login-input"&&tD&&_Q&&eD&&G$(UH,{title:"Enter Anthropic API key",hint:"Paste your sk-ant-api03-* key",onSubmit:_Q,onCancel:eD,isActive:m0==="login-input"}),m0==="login-input"&&MQ&&$O&&PQ&&G$(UH,{title:"Enter setup token",hint:"From `claude setup-token` or admin provisioning",onSubmit:$O,onCancel:PQ,isActive:m0==="login-input"}),m0==="login-method"&&HK&&jQ&&ZO&&G$(KH,{options:HK,onSelect:jQ,onCancel:ZO,title:"Select OpenAI login method:",isActive:m0==="login-method"}),m0==="login-input"&&TQ&&JO&&CQ&&G$(UH,{title:"Enter OpenAI API key",hint:"Paste your sk-* key",onSubmit:JO,onCancel:CQ,isActive:m0==="login-input"}),m0==="login-method"&&RQ&&wQ&&XO&&G$(KH,{options:RQ,onSelect:wQ,onCancel:XO,title:"Select Google login method:",isActive:m0==="login-method"}),m0==="login-input"&&SQ&&YO&&IQ&&G$(UH,{title:"Enter Google API key",hint:"Paste your AIza* key",onSubmit:YO,onCancel:IQ,isActive:m0==="login-input"}),m0==="login"&&E$&&c$&&p4&&G$(W60,{provider:E$,onCancel:p4,...r8&&K9?{authorizeUrl:r8,expectedState:p$??void 0,onCodeSubmit:K9}:{onComplete:c$},isActive:m0==="login"}),m0==="login"&&N5&&V7&&b2&&G$(aI,{provider:N5,profileLabel:QK??void 0,...GK&&G7&&VK?{verificationUri:GK,userCode:G7,onApprove:VK}:{onComplete:V7},onCancel:b2}),cY(V5,{flexDirection:"column",children:[m0==="command"&&G$(kv,{commands:K,initialFilter:hQ,onSelect:_T,onHandOffInput:h2,onCancel:RZ}),m0==="arion"&&G$(fv,{arions:z,initialFilter:LK,statusFilter:UO,onSelect:u6,onCancel:RZ}),m0==="model"&&G$(vv,{models:U,effortLevel:V0,onSelect:MT,onCancel:RZ}),m0==="theme"&&G$(dv,{onSelect:PT,onCancel:RZ}),m0==="sound"&&G$(Wh,{onClose:()=>J$("none")}),m0==="daemon"&&G$(Hh,{status:n??{running:!1},actionStatus:K0,onAction:(N0)=>z0?.(N0),onClose:()=>J$("none")}),m0==="invite-share"&&W7&&G$(tv,{inviteToken:W7.inviteToken,inviteLabel:W7.inviteLabel,expiresAt:W7.expiresAt,onClose:()=>{J$("none"),UT?.()}}),m0==="join-invite"&&G$(ev,{error:BT,onSubmit:(N0)=>{J$("none"),BK?.(N0)},onCancel:()=>{J$("none"),gJ?.()}}),m0==="memory"&&G$(xv,{memories:B,mode:F,isLoading:D,onSelect:jT,onCancel:RZ}),m0==="peers"&&G$(nv,{peers:mQ.length>0?mQ:k2,sameHomeClientsAvailable:VO.length>0,onSelect:(N0)=>{J$("none"),UK?.(N0)},onCancel:RZ}),m0==="clients"&&G$(rv,{clients:VO,onSelect:(N0)=>{J$("none"),L6(`/send ${N0.clientId} `),KT?.(N0)},onCancel:()=>{J$("none"),zT?.()}}),m0==="pair-request"&&f2&&G$($h,{request:f2,onAccept:()=>{J$("none"),FT?.()},onReject:()=>{J$("none"),KO?.()}}),m0==="session"&&G$(mv,{sessions:C,onSelect:(N0)=>{J$("none"),f?.(N0)},onCancel:RZ,onSearch:(N0)=>l?.(N0),onPageChange:(N0)=>$0?.(N0)}),m0==="message-edit"&&y2&&G$(uv,{messages:y2,onSelect:(N0,T0)=>{J$("none"),DT?.(N0,T0)},onCancel:RZ}),m0==="none"&&!B0&&G$(cS,{userName:O,value:NK,onChange:L6,onSubmit:a,onTrigger:pQ,onExit:()=>mJ(),history:R0,onSaveInput:I0,focus:m0==="none",isStreaming:G,onDoubleEscape:()=>{if(y2&&y2.length>0)return J$("message-edit"),!0;return!1}})]}),(!A||A.showStatusBar)&&G$(KS,{arion:{name:sc,emoji:ET,color:qT,traits:TZ?.personality?.traits?.slice(0,2)},model:Z,maxContextTokens:J,responseTime:H,metrics:L,displayMode:q,showCosts:E,activeArion:R,effortLevel:V0,autonomyLevel:C0,meshMessageCount:NT,connectionState:O0})]})]})]})}var M60=_(()=>{Kh();V60();oI();H60();nI();U60();Uh();B60();uI();dS();P1();D60();M1();V8();E60()});function P60($){let Z=!1,J=(X)=>{if(Z)return;Z=!0,$(X)};return{onAbort(){J(!1)},onAllow(X){J(!0)},onReject(){J(!1)},onDone(){queueMicrotask(()=>{if(!Z)J(!1)})}}}import{jsx as Oh,jsxs as Yw0}from"react/jsx-runtime";import{useMemo as j60,useState as Qw0}from"react";import{Box as Gw0,useStdout as Vw0}from"ink";function Ww0($){let Z=RU[$.toLowerCase()];return{name:$,userFacingName(J){if(Z)return Z.displayName(J);return $},renderToolUseMessage(J,X){if(Z)return Z.renderInput(J,X);return JSON.stringify(J)},isReadOnly(){return!1},inputSchema:{parse(J){return J??{}}}}}function Kw0($){switch($){case"low":return 0.2;case"moderate":return 0.5;case"high":return 0.9}}function T60($){let{stdout:Z}=Vw0(),J=Z?.columns??80,[X]=Qw0(!1),Y=j60(()=>{if(!$.approvalRequest)return null;return P60($.onApprovalChoice)},[$.approvalRequest,$.onApprovalChoice]),Q=j60(()=>{if(!$.approvalRequest||!Y)return null;let{toolName:G,input:V,riskLevel:W}=$.approvalRequest;return{assistantMessage:Hw0,tool:Ww0(G),description:`${G} requires approval`,input:V??{},commandPrefix:null,riskScore:Kw0(W),onAbort:Y.onAbort,onAllow:Y.onAllow,onReject:Y.onReject}},[Y,$.approvalRequest]);if(Q&&Y)return Yw0(Gw0,{flexDirection:"column",width:"100%",children:[Oh(Dh,{...$}),Oh(Iv,{toolUseConfirm:Q,onDone:Y.onDone,verbose:X})]});return Oh(Dh,{...$})}var Hw0;var C60=_(()=>{M60();XF();Lq();Lq();Hw0={message:{id:"aria-approval"}}});var Nh;var R60=_(()=>{Nh=[{name:"become",description:"Switch to another arion",usage:"/become <name>",args:["<name>"],requiresArgs:!0},{name:"arions",description:"List all arions",args:[]},{name:"hatch",description:"Create a new arion",usage:"/hatch <name> [description]",args:["<name>","[description]"],requiresArgs:!0},{name:"rest",description:"Put an arion to rest",usage:"/rest <name>",args:["<name>"],requiresArgs:!0},{name:"wake",description:"Wake a resting arion",usage:"/wake <name>",args:["<name>"],requiresArgs:!0},{name:"model",description:"Change or view current AI model",usage:"/model [name|list|refresh] [--provider <name>] [--use-env]",args:["[name|list|refresh]","[--provider <name>]","[--use-env]"]},{name:"autonomy",description:"Change permission approval policy",usage:"/autonomy [level]",args:["[level]"]},{name:"sound",description:"Open sound preferences or toggle notifications",usage:"/sound [on|off]",args:["[on|off]"]},{name:"remember",description:"Store a memory",usage:"/remember <text>",args:["<text>"],requiresArgs:!0},{name:"recall",description:"Search memories",usage:"/recall <query>",args:["<query>"],requiresArgs:!0},{name:"recall_knowledge",description:"Search learned tools (skills, procedures, techniques)",usage:"/recall_knowledge <topic>",args:["<topic>"],requiresArgs:!0},{name:"send",description:"Send a peer or same-home client message through the runtime transport",usage:"/send <peer-name|node-id|client-id> <message>",args:["<peer-name|node-id|client-id>","<message>"],requiresArgs:!0},{name:"forget",description:"Delete a memory",usage:"/forget <id>",args:["<id>"],requiresArgs:!0},{name:"memories",description:"Browse all memories",args:[]},{name:"resume",description:"Resume a previous session",args:["[session-id]"]},{name:"fork",description:"Fork the current session into a new branch",usage:"/fork [session-id] [message-count] [--stay]",args:["[session-id]","[message-count]","[--stay]"]},{name:"clear",description:"Clear the screen",args:[]},{name:"login",description:"Authenticate with provider (bedrock, anthropic, openai, google, copilot)",usage:"/login [provider] [api-key|--profile <label>|--source <gh|device>]",args:["[provider]","[api-key|flags]"]},{name:"logout",description:"Disconnect a provider or clear all credentials",usage:"/logout [provider|all]",args:["[provider|all]"]},{name:"auth",description:"Auth utilities such as importing env credentials into session scope",usage:"/auth import-env [provider ...] | /auth clear-session | /auth status-session",args:["import-env|clear-session|status-session","[provider ...]"]},{name:"help",description:"Show available commands",args:[]},{name:"daemon",description:"Open daemon control panel or run start/stop/restart",usage:"/daemon [start|stop|restart]",args:["[start|stop|restart]"]},{name:"terminal-setup",description:"Install Shift+Enter newline key binding for supported terminals",usage:"/terminal-setup",args:[]},{name:"theme",description:"View or change the color theme",usage:"/theme [name]",args:["[name]"]},{name:"invite",description:"Create an internet invite token",usage:"/invite [label]",args:["[label]"]},{name:"join",description:"Accept an internet invite token",usage:"/join [token]",args:["[token]"]},{name:"peers",description:"Show nearby peers and connect",args:[]},{name:"clients",description:"Show same-home attached clients",args:[]},{name:"exit",description:"Exit ARIA",args:[]}]});function zw0(){return"1.0.50"}var __filename="/Users/hole/aria/.bundle-stage/cli/dist/release-notes.js",cM,w60;var Lh=_(()=>{cM=zw0(),w60=["\u26A1 Search millions of lines instantly with native Rust-powered code search","\uD83E\uDDE0 Jump to definitions & find references with real LSP intelligence","\u270F\uFE0F Press Esc\xD72 to edit and fork any previous message in-place","\uD83D\uDD0A Get audio cues when tasks finish \u2014 try /sound to configure","\uD83C\uDFA8 All 87 tools now render rich, beautiful output in the terminal"]});function S60($){let Z=Ah.indexOf($);return Ah[(Z+1)%Ah.length]}function I60($,Z){let J=NF[$],X={};if(Z.showThinking!==J.showThinking)X.showThinking=Z.showThinking;if(Z.showCosts!==J.showCosts)X.showCosts=Z.showCosts;if(Z.showToolArgs!==J.showToolArgs)X.showToolArgs=Z.showToolArgs;if(Z.toolOutput!==J.toolOutput)X.toolOutput=Z.toolOutput;if(Z.showTraces!==J.showTraces)X.showTraces=Z.showTraces;if(Z.showPipelineTiming!==J.showPipelineTiming)X.showPipelineTiming=Z.showPipelineTiming;if(Z.showStatusBar!==J.showStatusBar)X.showStatusBar=Z.showStatusBar;return X}function b60($,Z){return{...NF[$],...Z??{}}}var NF,Ah;var qh=_(()=>{NF={minimal:{showThinking:!1,showCosts:!1,showToolArgs:!1,toolOutput:"hidden",showTraces:!1,showPipelineTiming:!1,showStatusBar:!1},standard:{showThinking:!0,showCosts:!0,showToolArgs:!0,toolOutput:"standard",showTraces:!1,showPipelineTiming:!1,showStatusBar:!0},debug:{showThinking:!0,showCosts:!0,showToolArgs:!0,toolOutput:"expanded",showTraces:!0,showPipelineTiming:!0,showStatusBar:!0}},Ah=["minimal","standard","debug"]});function Uw0($){if(!($ instanceof Error))return!1;let Z=$.message;return Z.includes("has been released")||Z.includes("aborted")}function Eh($,Z,J){if(!Z){J?.();return}Z.catch((X)=>{if(!Uw0(X))P.warn(`[SessionHistoryClient] ${$} IPC failed:`,X?.message??X);if(J)try{J()}catch(Y){P.warn(`[SessionHistoryClient] ${$} local fallback also failed:`,Y?.message??Y)}})}class BH{readDb;ipc;constructor($,Z){this.readDb=$,this.ipc=Z,$.enableLowContentionMode()}withPhase($,Z){O9($);try{return Z()}finally{N9()}}listSessions(...$){return this.withPhase("session-history:listSessions",()=>this.readDb.listSessions(...$))}loadSessionMessages(...$){return this.withPhase("session-history:loadSessionMessages",()=>this.readDb.loadSessionMessages(...$))}loadSession(...$){return this.withPhase("session-history:loadSession",()=>this.readDb.loadSession(...$))}searchSessionsFts(...$){return this.withPhase("session-history:searchSessionsFts",()=>this.readDb.searchSessionsFts(...$))}searchSessionSummaries(...$){return this.withPhase("session-history:searchSessionSummaries",()=>this.readDb.searchSessionSummaries(...$))}findSessionByPrefix(...$){return this.readDb.findSessionByPrefix(...$)}getSessionRuntimeState(...$){return this.readDb.getSessionRuntimeState(...$)}getInteraction(...$){return this.readDb.getInteraction(...$)}getIncompleteSessions(...$){return this.readDb.getIncompleteSessions(...$)}getInputHistory(...$){return this.withPhase("session-history:getInputHistory",()=>this.readDb.getInputHistory(...$))}addInputHistory(...$){return this.withPhase("session-history:addInputHistory",()=>this.readDb.addInputHistory(...$))}getSessionCount(...$){return this.readDb.getSessionCount(...$)}markStaleSessionsCompleted(...$){return this.withPhase("session-history:markStaleSessionsCompleted",()=>this.readDb.markStaleSessionsCompleted(...$))}getSession(...$){return this.readDb.getSession(...$)}createSession(...$){return this.readDb.createSession(...$)}persistMessagesNonBlocking($,Z){if(Z.length===0)return;this.readDb.markSessionIncremental($),Eh("appendSessionMessages",this.ipc.appendSessionMessages?.($,Z),()=>this.readDb.addConversationMessages($,Z))}addConversationMessages($,Z){this.persistMessagesNonBlocking($,Z)}addConversationMessage($,Z){this.persistMessagesNonBlocking($,[Z])}markCompleted($){Eh("markSessionCompleted",this.ipc.markSessionCompleted?.($),()=>this.readDb.markCompleted($))}replaceConversationMessages($,Z){Eh("replaceSessionMessages",this.ipc.replaceSessionMessages?.($,Z),()=>this.readDb.replaceConversationMessages($,Z))}completeRun(...$){return this.readDb.completeRun(...$)}claimSessionForMutation(...$){return this.readDb.claimSessionForMutation(...$)}releaseSessionClaim(...$){return this.readDb.releaseSessionClaim(...$)}recordPausedRun(...$){return this.readDb.recordPausedRun(...$)}deleteSession(...$){return this.readDb.deleteSession(...$)}forkSession(...$){return this.readDb.forkSession(...$)}cancelInteraction(...$){return this.readDb.cancelInteraction(...$)}setSessionTitle(...$){return this.readDb.setSessionTitle(...$)}recordInteractionResponse(...$){return this.readDb.recordInteractionResponse(...$)}close(){this.readDb.close()}}var _h=_(()=>{S0();NV()});function Bw0($){return typeof $!=="string"||$.trim().length>0}function Fw0($){let{toolCalls:Z,...J}=$;return J}function Dw0($,Z,J){for(let X=Z;X<$.length;X++){let Y=$[X];if(Y.role==="tool"&&Y.toolCallId===J)return!0}return!1}function uY($){let Z=[];for(let J=0;J<$.length;J++){let X=$[J];if(X.role==="assistant"&&X.toolCalls?.length){let Y=new Set(X.toolCalls.map((K)=>K.id)),Q=new Set,G=[],V=J+1;while(V<$.length&&$[V].role==="tool"){let K=$[V];if(K.toolCallId&&Y.has(K.toolCallId)&&!Q.has(K.toolCallId))Q.add(K.toolCallId),G.push(K);V++}let W=X.toolCalls.filter((K)=>{if(Q.has(K.id))return!0;return!Dw0($,V,K.id)}),H=W.filter((K)=>!Q.has(K.id));if(W.length===X.toolCalls.length)Z.push(X);else if(W.length>0)Z.push({...X,toolCalls:W});else if(Bw0(X.content))Z.push(Fw0(X));Z.push(...G);for(let K of H)Z.push({role:"tool",content:`[Tool execution interrupted \u2014 no result for ${K.name}]`,toolCallId:K.id});J=V-1;continue}if(X.role==="tool")continue;Z.push(X)}return Z}function k60($){let Z=[];for(let J of $)for(let X of J.content)switch(X.type){case"thinking":Z.push({id:`thinking-${crypto.randomUUID()}`,role:"thinking_history",content:X.content,wordCount:X.wordCount,durationSeconds:X.durationMs!=null?X.durationMs/1000:void 0,verb:X.verb,arionName:J.arion?.name,arionEmoji:J.arion?.emoji,arionColor:J.arion?.color});break;case"tool_use":Z.push({id:`tool-${crypto.randomUUID()}`,role:"tool_history",tool:{id:X.id,name:X.name,args:X.arguments,status:"pending",startTime:void 0,endTime:void 0}});break;case"tool_result":{let Y;for(let Q=Z.length-1;Q>=0;Q--){let G=Z[Q];if(G.role==="tool_history"&&G.tool.id===X.toolUseId){Y=G;break}}if(Y){if(Y.tool.status=X.status==="error"?"error":"complete",X.status==="error")Y.tool.error=X.content;else Y.tool.result=X.content;if(X.resultData!==void 0)Y.tool.resultData=X.resultData;if(X.durationMs!==void 0)Y.tool.durationMs=X.durationMs;if(X.usage!==void 0)Y.tool.usage=X.usage}break}case"handoff":Z.push({id:`handoff-${crypto.randomUUID()}`,role:"handoff_history",target:X.target,direction:X.direction});break;case"error":Z.push({id:`error-${crypto.randomUUID()}`,role:"error",content:X.content,suggestion:X.suggestion});break;case"text":Z.push({id:`msg-${crypto.randomUUID()}`,role:J.role,content:X.text,arion:J.arion?{name:J.arion.name,emoji:J.arion.emoji,color:J.arion.color}:void 0});break}return Z}var uM=_(()=>{ER()});class OJ{textParts=[];thinkingBlocks=[];toolUseBlocks=[];handoffBlocks=[];toolResultMessages=[];seenToolIds=new Set;toolArgsAccumulator=new Map;thinkingInProgress=!1;pendingThinkingContent="";arion;verb;tokenUsage;snapshotMessages;previewAssistantId=`preview-${Date.now()}`;ingest($){switch($.type){case"text_delta":return this.textParts.push($.content),"continue";case"thinking_start":return this.thinkingInProgress=!0,this.pendingThinkingContent="","continue";case"thinking_delta":return this.pendingThinkingContent+=$.content,"continue";case"thinking_end":{this.thinkingInProgress=!1;let Z=Array.isArray($.blocks)&&$.blocks.length>0?$.blocks[0]:void 0,J=typeof Z?.thinking==="string"?Z.thinking:this.pendingThinkingContent,X=J.split(/\s+/).filter(Boolean).length,Y={type:"thinking",content:J,wordCount:X,durationMs:$.durationMs,verb:this.verb};return this.thinkingBlocks.push(Y),this.pendingThinkingContent="","continue"}case"tool_start":{if(this.seenToolIds.has($.id))return"continue";this.seenToolIds.add($.id);let Z={type:"tool_use",id:$.id,name:$.name,arguments:$.input??{}};return this.toolUseBlocks.push(Z),"continue"}case"tool_args_delta":{let J=(this.toolArgsAccumulator.get($.id)??"")+$.args;this.toolArgsAccumulator.set($.id,J);try{let X=JSON.parse(J),Y=this.toolUseBlocks.find((Q)=>Q.type==="tool_use"&&Q.id===$.id);if(Y)Y.arguments=X}catch{}return"continue"}case"tool_result":{if($.input){let Q=this.toolUseBlocks.find((G)=>G.type==="tool_use"&&G.id===$.id);if(Q){let G=typeof $.input==="object"&&!Array.isArray($.input)?$.input:{};if(Object.keys(Q.arguments).length===0)Q.arguments=G}}let Z=$.result,J="usage"in $&&$.usage&&typeof $.usage==="object"&&typeof $.usage.inputTokens==="number"&&typeof $.usage.outputTokens==="number"&&typeof $.usage.totalTokens==="number"&&typeof $.usage.estimatedCost==="number"?$.usage:void 0,X={type:"tool_result",toolUseId:$.id,content:typeof Z.message==="string"?Z.message:"",status:Z.success===!0?"success":"error",durationMs:$.durationMs,resultData:Z.data,usage:J},Y={id:crypto.randomUUID(),role:"tool",content:[X],arion:this.arion,createdAt:new Date().toISOString()};return this.toolResultMessages.push(Y),"continue"}case"handoff_start":{let Z={type:"handoff",target:$.target,direction:"to"};return this.handoffBlocks.push(Z),"continue"}case"handoff_result":{let Z={type:"handoff",target:$.target,direction:"from"};return this.handoffBlocks.push(Z),"continue"}case"turn_complete":return"flush";case"messages_snapshot":return this.snapshotMessages=$.messages,"continue";default:return"continue"}}flush(){let $=[];if(this.thinkingInProgress&&this.pendingThinkingContent){let X=this.pendingThinkingContent.trim(),Y=X.length===0?0:X.split(/\s+/).length,Q={type:"thinking",content:this.pendingThinkingContent,wordCount:Y,verb:this.verb};this.thinkingBlocks.push(Q)}let Z=[];Z.push(...this.thinkingBlocks);let J=this.textParts.join("");if(J)Z.push({type:"text",text:J});if(Z.push(...this.toolUseBlocks),Z.push(...this.handoffBlocks),Z.length>0){let X={id:crypto.randomUUID(),role:"assistant",content:Z,arion:this.arion,tokenUsage:this.tokenUsage,createdAt:new Date().toISOString()};$.push(X)}if($.push(...this.toolResultMessages),this.toolResultMessages.length>0&&this.toolUseBlocks.length>0){let X=new Set(this.toolResultMessages.flatMap((Y)=>Y.content.filter((Q)=>Q.type==="tool_result").map((Q)=>Q.toolUseId)));for(let Y of this.toolUseBlocks){let Q=Y.id;if(Q&&!X.has(Q)){let G={id:crypto.randomUUID(),role:"tool",content:[{type:"tool_result",toolUseId:Q,content:"Tool execution cancelled by user.",status:"error"}],arion:this.arion,createdAt:new Date().toISOString()};$.push(G)}}}return this.textParts=[],this.thinkingBlocks=[],this.toolUseBlocks=[],this.handoffBlocks=[],this.toolResultMessages=[],this.seenToolIds=new Set,this.toolArgsAccumulator=new Map,this.thinkingInProgress=!1,this.pendingThinkingContent="",this.tokenUsage=void 0,this.verb=void 0,this.previewAssistantId=`preview-${Date.now()}`,$}snapshot(){let $=[];if($.push(...this.thinkingBlocks.map((X)=>({...X}))),this.thinkingInProgress&&this.pendingThinkingContent){let X=this.pendingThinkingContent,Y={type:"thinking",content:X,wordCount:X.split(/\s+/).filter(Boolean).length,verb:this.verb};$.push(Y)}let Z=this.textParts.join("");if(Z){let X=Z.lastIndexOf(`
4726
+ `).length,1)},[C$,_8]),aQ=(wZ?4+x2:0)+(X1?2:0),SZ=Math.max(DO-aQ,1),A5=DJ(()=>{let N0=new Map,T0="";for(let X8 of p6){let q5=X8.kind==="user-message"||X8.kind==="user-image"?`user:${X8.userName}`:X8.kind==="assistant-text"?`assistant:${X8.arion?.name??"ARIA"}`:X8.kind==="thinking"?`assistant:${X8.arion?.name??"ARIA"}`:X8.kind==="tool-execution"?"tool":X8.kind,nQ=X8.kind==="user-message"||X8.kind==="user-image"||X8.kind==="assistant-text"||X8.kind==="thinking";if(N0.set(X8.id,nQ&&q5!==T0),nQ)T0=q5}return N0},[p6]),TT=DJ(()=>{let N0=new Map;for(let T0=0;T0<p6.length;T0++){let X8=p6[T0],q5=T0>0?p6[T0-1]:void 0,nQ=X8.kind==="tool-execution"&&q5?.kind==="tool-execution";N0.set(X8.id,T0>0&&!nQ)}return N0},[p6]),rc=DJ(()=>{let N0=[];if(X)N0.push({id:"header",_kind:"banner"});for(let T0 of dQ)N0.push({...T0,_kind:"item"});return N0},[X,dQ]);return cY($w0,{children:[G$(Zw0,{items:rc,children:(N0)=>{if(N0._kind==="banner")return G$(V5,{width:"100%",justifyContent:"center",children:X},N0.id);return G$(V5,{flexDirection:"column",marginTop:TT.get(N0.id)?1:0,children:G$(Aq,{item:N0,displayMode:q,showPrefix:A5.get(N0.id)??!1})},N0.id)}},`static-${Y0}`),cY(V5,{flexDirection:"column",width:"100%",children:[cY(V5,{flexDirection:"column",maxHeight:DO,justifyContent:"flex-end",overflowY:"hidden",children:[lQ.length>0&&G$(V5,{flexDirection:"column",maxHeight:SZ,overflowY:"hidden",children:lQ.map((N0)=>G$(V5,{flexDirection:"column",marginTop:TT.get(N0.id)?1:0,children:G$(Aq,{item:N0,displayMode:q,showPrefix:A5.get(N0.id)??!1,previewTailLines:SZ})},N0.id))}),wZ&&cY(V5,{marginTop:1,flexDirection:"column",children:[G$(TA,{param:{type:"text",text:_8??""},userName:O??"User",columns:zO,showPrefix:!0,addMargin:!1}),G$(B2,{dimColor:!0,children:" \u2191 queued \u2014 press esc or \u2191 to cancel and edit"})]}),M&&T.length>0&&G$(Yv,{spans:T}),A?.showPipelineTiming&&k&&k.phases.length>0&&G$(Qv,{report:k}),BO&&cY(V5,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:1,marginY:1,children:[G$(B2,{bold:!0,dimColor:!0,children:"Hotkeys"}),G$(B2,{dimColor:!0,children:" Ctrl+\\ \u2014 cycle display mode"}),G$(B2,{dimColor:!0,children:" Ctrl+t \u2014 toggle thinking blocks"}),G$(B2,{dimColor:!0,children:" Ctrl+g \u2014 toggle cost display"}),G$(B2,{dimColor:!0,children:" Ctrl+e \u2014 cycle effort level"}),G$(B2,{dimColor:!0,children:" Ctrl+s \u2014 toggle trace waterfall"}),G$(B2,{dimColor:!0,children:" Escape \u2014 cancel streaming / close overlay / clear input"}),G$(B2,{dimColor:!0,children:" Ctrl+/ \u2014 toggle this help"})]}),X1&&G$(Vv,{state:CZ.kind==="thinking"?"thinking":"composing",elapsedSeconds:Math.floor(L?.wallTimeSeconds??0),totalTokens:L?.totalTokens??0,thoughtForSeconds:CZ.kind==="composing"?CZ.thoughtForSeconds:void 0,currentVerb:CZ.kind==="tool_running"?[...new Set(CZ.tools.values())].join(" \xB7 "):CZ.verb.present})]}),cY(V5,{flexDirection:"column",flexShrink:0,children:[D0&&_0&&L0&&G$(Jv,{currentLevel:C0??e3.autonomy,onSelect:_0,onCancel:L0}),z$&&A0&&u0&&G$(G60,{providers:z$,onSelect:A0,onCancel:u0}),U$&&r0&&V$&&G$(iI,{options:U$,onSelect:r0,onCancel:V$}),m0==="login-method"&&KK&&QO&&bQ&&G$(KH,{options:KK,onSelect:(N0)=>QO(N0.id),onCancel:bQ,title:zK??"Choose an option:",isActive:m0==="login-method"}),m0==="login-method"&&WK&&rD&&xJ&&G$(z60,{options:WK,onSelect:rD,onCancel:xJ,isActive:m0==="login-method"}),m0==="login-input"&&kQ&&fQ&&GO&&G$(UH,{title:kQ.title,hint:kQ.hint,onSubmit:fQ,onCancel:GO,isActive:m0==="login-input"}),m0==="login-input"&&tD&&_Q&&eD&&G$(UH,{title:"Enter Anthropic API key",hint:"Paste your sk-ant-api03-* key",onSubmit:_Q,onCancel:eD,isActive:m0==="login-input"}),m0==="login-input"&&MQ&&$O&&PQ&&G$(UH,{title:"Enter setup token",hint:"From `claude setup-token` or admin provisioning",onSubmit:$O,onCancel:PQ,isActive:m0==="login-input"}),m0==="login-method"&&HK&&jQ&&ZO&&G$(KH,{options:HK,onSelect:jQ,onCancel:ZO,title:"Select OpenAI login method:",isActive:m0==="login-method"}),m0==="login-input"&&TQ&&JO&&CQ&&G$(UH,{title:"Enter OpenAI API key",hint:"Paste your sk-* key",onSubmit:JO,onCancel:CQ,isActive:m0==="login-input"}),m0==="login-method"&&RQ&&wQ&&XO&&G$(KH,{options:RQ,onSelect:wQ,onCancel:XO,title:"Select Google login method:",isActive:m0==="login-method"}),m0==="login-input"&&SQ&&YO&&IQ&&G$(UH,{title:"Enter Google API key",hint:"Paste your AIza* key",onSubmit:YO,onCancel:IQ,isActive:m0==="login-input"}),m0==="login"&&E$&&c$&&p4&&G$(W60,{provider:E$,onCancel:p4,...r8&&K9?{authorizeUrl:r8,expectedState:p$??void 0,onCodeSubmit:K9}:{onComplete:c$},isActive:m0==="login"}),m0==="login"&&N5&&V7&&b2&&G$(aI,{provider:N5,profileLabel:QK??void 0,...GK&&G7&&VK?{verificationUri:GK,userCode:G7,onApprove:VK}:{onComplete:V7},onCancel:b2}),cY(V5,{flexDirection:"column",children:[m0==="command"&&G$(kv,{commands:K,initialFilter:hQ,onSelect:_T,onHandOffInput:h2,onCancel:RZ}),m0==="arion"&&G$(fv,{arions:z,initialFilter:LK,statusFilter:UO,onSelect:u6,onCancel:RZ}),m0==="model"&&G$(vv,{models:U,effortLevel:V0,onSelect:MT,onCancel:RZ}),m0==="theme"&&G$(dv,{onSelect:PT,onCancel:RZ}),m0==="sound"&&G$(Wh,{onClose:()=>J$("none")}),m0==="daemon"&&G$(Hh,{status:n??{running:!1},actionStatus:K0,onAction:(N0)=>z0?.(N0),onClose:()=>J$("none")}),m0==="invite-share"&&W7&&G$(tv,{inviteToken:W7.inviteToken,inviteLabel:W7.inviteLabel,expiresAt:W7.expiresAt,onClose:()=>{J$("none"),UT?.()}}),m0==="join-invite"&&G$(ev,{error:BT,onSubmit:(N0)=>{J$("none"),BK?.(N0)},onCancel:()=>{J$("none"),gJ?.()}}),m0==="memory"&&G$(xv,{memories:B,mode:F,isLoading:D,onSelect:jT,onCancel:RZ}),m0==="peers"&&G$(nv,{peers:mQ.length>0?mQ:k2,sameHomeClientsAvailable:VO.length>0,onSelect:(N0)=>{J$("none"),UK?.(N0)},onCancel:RZ}),m0==="clients"&&G$(rv,{clients:VO,onSelect:(N0)=>{J$("none"),L6(`/send ${N0.clientId} `),KT?.(N0)},onCancel:()=>{J$("none"),zT?.()}}),m0==="pair-request"&&f2&&G$($h,{request:f2,onAccept:()=>{J$("none"),FT?.()},onReject:()=>{J$("none"),KO?.()}}),m0==="session"&&G$(mv,{sessions:C,onSelect:(N0)=>{J$("none"),f?.(N0)},onCancel:RZ,onSearch:(N0)=>l?.(N0),onPageChange:(N0)=>$0?.(N0)}),m0==="message-edit"&&y2&&G$(uv,{messages:y2,onSelect:(N0,T0)=>{J$("none"),DT?.(N0,T0)},onCancel:RZ}),m0==="none"&&!B0&&G$(cS,{userName:O,value:NK,onChange:L6,onSubmit:a,onTrigger:pQ,onExit:()=>mJ(),history:R0,onSaveInput:I0,focus:m0==="none",isStreaming:G,onDoubleEscape:()=>{if(y2&&y2.length>0)return J$("message-edit"),!0;return!1}})]}),(!A||A.showStatusBar)&&G$(KS,{arion:{name:sc,emoji:ET,color:qT,traits:TZ?.personality?.traits?.slice(0,2)},model:Z,maxContextTokens:J,responseTime:H,metrics:L,displayMode:q,showCosts:E,activeArion:R,effortLevel:V0,autonomyLevel:C0,meshMessageCount:NT,connectionState:O0})]})]})]})}var M60=_(()=>{Kh();V60();oI();H60();nI();U60();Uh();B60();uI();dS();P1();D60();M1();V8();E60()});function P60($){let Z=!1,J=(X)=>{if(Z)return;Z=!0,$(X)};return{onAbort(){J(!1)},onAllow(X){J(!0)},onReject(){J(!1)},onDone(){queueMicrotask(()=>{if(!Z)J(!1)})}}}import{jsx as Oh,jsxs as Yw0}from"react/jsx-runtime";import{useMemo as j60,useState as Qw0}from"react";import{Box as Gw0,useStdout as Vw0}from"ink";function Ww0($){let Z=RU[$.toLowerCase()];return{name:$,userFacingName(J){if(Z)return Z.displayName(J);return $},renderToolUseMessage(J,X){if(Z)return Z.renderInput(J,X);return JSON.stringify(J)},isReadOnly(){return!1},inputSchema:{parse(J){return J??{}}}}}function Kw0($){switch($){case"low":return 0.2;case"moderate":return 0.5;case"high":return 0.9}}function T60($){let{stdout:Z}=Vw0(),J=Z?.columns??80,[X]=Qw0(!1),Y=j60(()=>{if(!$.approvalRequest)return null;return P60($.onApprovalChoice)},[$.approvalRequest,$.onApprovalChoice]),Q=j60(()=>{if(!$.approvalRequest||!Y)return null;let{toolName:G,input:V,riskLevel:W}=$.approvalRequest;return{assistantMessage:Hw0,tool:Ww0(G),description:`${G} requires approval`,input:V??{},commandPrefix:null,riskScore:Kw0(W),onAbort:Y.onAbort,onAllow:Y.onAllow,onReject:Y.onReject}},[Y,$.approvalRequest]);if(Q&&Y)return Yw0(Gw0,{flexDirection:"column",width:"100%",children:[Oh(Dh,{...$}),Oh(Iv,{toolUseConfirm:Q,onDone:Y.onDone,verbose:X})]});return Oh(Dh,{...$})}var Hw0;var C60=_(()=>{M60();XF();Lq();Lq();Hw0={message:{id:"aria-approval"}}});var Nh;var R60=_(()=>{Nh=[{name:"become",description:"Switch to another arion",usage:"/become <name>",args:["<name>"],requiresArgs:!0},{name:"arions",description:"List all arions",args:[]},{name:"hatch",description:"Create a new arion",usage:"/hatch <name> [description]",args:["<name>","[description]"],requiresArgs:!0},{name:"rest",description:"Put an arion to rest",usage:"/rest <name>",args:["<name>"],requiresArgs:!0},{name:"wake",description:"Wake a resting arion",usage:"/wake <name>",args:["<name>"],requiresArgs:!0},{name:"model",description:"Change or view current AI model",usage:"/model [name|list|refresh] [--provider <name>] [--use-env]",args:["[name|list|refresh]","[--provider <name>]","[--use-env]"]},{name:"autonomy",description:"Change permission approval policy",usage:"/autonomy [level]",args:["[level]"]},{name:"sound",description:"Open sound preferences or toggle notifications",usage:"/sound [on|off]",args:["[on|off]"]},{name:"remember",description:"Store a memory",usage:"/remember <text>",args:["<text>"],requiresArgs:!0},{name:"recall",description:"Search memories",usage:"/recall <query>",args:["<query>"],requiresArgs:!0},{name:"recall_knowledge",description:"Search learned tools (skills, procedures, techniques)",usage:"/recall_knowledge <topic>",args:["<topic>"],requiresArgs:!0},{name:"send",description:"Send a peer or same-home client message through the runtime transport",usage:"/send <peer-name|node-id|client-id> <message>",args:["<peer-name|node-id|client-id>","<message>"],requiresArgs:!0},{name:"forget",description:"Delete a memory",usage:"/forget <id>",args:["<id>"],requiresArgs:!0},{name:"memories",description:"Browse all memories",args:[]},{name:"resume",description:"Resume a previous session",args:["[session-id]"]},{name:"fork",description:"Fork the current session into a new branch",usage:"/fork [session-id] [message-count] [--stay]",args:["[session-id]","[message-count]","[--stay]"]},{name:"clear",description:"Clear the screen",args:[]},{name:"login",description:"Authenticate with provider (bedrock, anthropic, openai, google, copilot)",usage:"/login [provider] [api-key|--profile <label>|--source <gh|device>]",args:["[provider]","[api-key|flags]"]},{name:"logout",description:"Disconnect a provider or clear all credentials",usage:"/logout [provider|all]",args:["[provider|all]"]},{name:"auth",description:"Auth utilities such as importing env credentials into session scope",usage:"/auth import-env [provider ...] | /auth clear-session | /auth status-session",args:["import-env|clear-session|status-session","[provider ...]"]},{name:"help",description:"Show available commands",args:[]},{name:"daemon",description:"Open daemon control panel or run start/stop/restart",usage:"/daemon [start|stop|restart]",args:["[start|stop|restart]"]},{name:"terminal-setup",description:"Install Shift+Enter newline key binding for supported terminals",usage:"/terminal-setup",args:[]},{name:"theme",description:"View or change the color theme",usage:"/theme [name]",args:["[name]"]},{name:"invite",description:"Create an internet invite token",usage:"/invite [label]",args:["[label]"]},{name:"join",description:"Accept an internet invite token",usage:"/join [token]",args:["[token]"]},{name:"peers",description:"Show nearby peers and connect",args:[]},{name:"clients",description:"Show same-home attached clients",args:[]},{name:"exit",description:"Exit ARIA",args:[]}]});function zw0(){return"1.0.51"}var __filename="/Users/hole/aria/.bundle-stage/cli/dist/release-notes.js",cM,w60;var Lh=_(()=>{cM=zw0(),w60=["\u26A1 Search millions of lines instantly with native Rust-powered code search","\uD83E\uDDE0 Jump to definitions & find references with real LSP intelligence","\u270F\uFE0F Press Esc\xD72 to edit and fork any previous message in-place","\uD83D\uDD0A Get audio cues when tasks finish \u2014 try /sound to configure","\uD83C\uDFA8 All 87 tools now render rich, beautiful output in the terminal"]});function S60($){let Z=Ah.indexOf($);return Ah[(Z+1)%Ah.length]}function I60($,Z){let J=NF[$],X={};if(Z.showThinking!==J.showThinking)X.showThinking=Z.showThinking;if(Z.showCosts!==J.showCosts)X.showCosts=Z.showCosts;if(Z.showToolArgs!==J.showToolArgs)X.showToolArgs=Z.showToolArgs;if(Z.toolOutput!==J.toolOutput)X.toolOutput=Z.toolOutput;if(Z.showTraces!==J.showTraces)X.showTraces=Z.showTraces;if(Z.showPipelineTiming!==J.showPipelineTiming)X.showPipelineTiming=Z.showPipelineTiming;if(Z.showStatusBar!==J.showStatusBar)X.showStatusBar=Z.showStatusBar;return X}function b60($,Z){return{...NF[$],...Z??{}}}var NF,Ah;var qh=_(()=>{NF={minimal:{showThinking:!1,showCosts:!1,showToolArgs:!1,toolOutput:"hidden",showTraces:!1,showPipelineTiming:!1,showStatusBar:!1},standard:{showThinking:!0,showCosts:!0,showToolArgs:!0,toolOutput:"standard",showTraces:!1,showPipelineTiming:!1,showStatusBar:!0},debug:{showThinking:!0,showCosts:!0,showToolArgs:!0,toolOutput:"expanded",showTraces:!0,showPipelineTiming:!0,showStatusBar:!0}},Ah=["minimal","standard","debug"]});function Uw0($){if(!($ instanceof Error))return!1;let Z=$.message;return Z.includes("has been released")||Z.includes("aborted")}function Eh($,Z,J){if(!Z){J?.();return}Z.catch((X)=>{if(!Uw0(X))P.warn(`[SessionHistoryClient] ${$} IPC failed:`,X?.message??X);if(J)try{J()}catch(Y){P.warn(`[SessionHistoryClient] ${$} local fallback also failed:`,Y?.message??Y)}})}class BH{readDb;ipc;constructor($,Z){this.readDb=$,this.ipc=Z,$.enableLowContentionMode()}withPhase($,Z){O9($);try{return Z()}finally{N9()}}listSessions(...$){return this.withPhase("session-history:listSessions",()=>this.readDb.listSessions(...$))}loadSessionMessages(...$){return this.withPhase("session-history:loadSessionMessages",()=>this.readDb.loadSessionMessages(...$))}loadSession(...$){return this.withPhase("session-history:loadSession",()=>this.readDb.loadSession(...$))}searchSessionsFts(...$){return this.withPhase("session-history:searchSessionsFts",()=>this.readDb.searchSessionsFts(...$))}searchSessionSummaries(...$){return this.withPhase("session-history:searchSessionSummaries",()=>this.readDb.searchSessionSummaries(...$))}findSessionByPrefix(...$){return this.readDb.findSessionByPrefix(...$)}getSessionRuntimeState(...$){return this.readDb.getSessionRuntimeState(...$)}getInteraction(...$){return this.readDb.getInteraction(...$)}getIncompleteSessions(...$){return this.readDb.getIncompleteSessions(...$)}getInputHistory(...$){return this.withPhase("session-history:getInputHistory",()=>this.readDb.getInputHistory(...$))}addInputHistory(...$){return this.withPhase("session-history:addInputHistory",()=>this.readDb.addInputHistory(...$))}getSessionCount(...$){return this.readDb.getSessionCount(...$)}markStaleSessionsCompleted(...$){return this.withPhase("session-history:markStaleSessionsCompleted",()=>this.readDb.markStaleSessionsCompleted(...$))}getSession(...$){return this.readDb.getSession(...$)}createSession(...$){return this.readDb.createSession(...$)}persistMessagesNonBlocking($,Z){if(Z.length===0)return;this.readDb.markSessionIncremental($),Eh("appendSessionMessages",this.ipc.appendSessionMessages?.($,Z),()=>this.readDb.addConversationMessages($,Z))}addConversationMessages($,Z){this.persistMessagesNonBlocking($,Z)}addConversationMessage($,Z){this.persistMessagesNonBlocking($,[Z])}markCompleted($){Eh("markSessionCompleted",this.ipc.markSessionCompleted?.($),()=>this.readDb.markCompleted($))}replaceConversationMessages($,Z){Eh("replaceSessionMessages",this.ipc.replaceSessionMessages?.($,Z),()=>this.readDb.replaceConversationMessages($,Z))}completeRun(...$){return this.readDb.completeRun(...$)}claimSessionForMutation(...$){return this.readDb.claimSessionForMutation(...$)}releaseSessionClaim(...$){return this.readDb.releaseSessionClaim(...$)}recordPausedRun(...$){return this.readDb.recordPausedRun(...$)}deleteSession(...$){return this.readDb.deleteSession(...$)}forkSession(...$){return this.readDb.forkSession(...$)}cancelInteraction(...$){return this.readDb.cancelInteraction(...$)}setSessionTitle(...$){return this.readDb.setSessionTitle(...$)}recordInteractionResponse(...$){return this.readDb.recordInteractionResponse(...$)}close(){this.readDb.close()}}var _h=_(()=>{S0();NV()});function Bw0($){return typeof $!=="string"||$.trim().length>0}function Fw0($){let{toolCalls:Z,...J}=$;return J}function Dw0($,Z,J){for(let X=Z;X<$.length;X++){let Y=$[X];if(Y.role==="tool"&&Y.toolCallId===J)return!0}return!1}function uY($){let Z=[];for(let J=0;J<$.length;J++){let X=$[J];if(X.role==="assistant"&&X.toolCalls?.length){let Y=new Set(X.toolCalls.map((K)=>K.id)),Q=new Set,G=[],V=J+1;while(V<$.length&&$[V].role==="tool"){let K=$[V];if(K.toolCallId&&Y.has(K.toolCallId)&&!Q.has(K.toolCallId))Q.add(K.toolCallId),G.push(K);V++}let W=X.toolCalls.filter((K)=>{if(Q.has(K.id))return!0;return!Dw0($,V,K.id)}),H=W.filter((K)=>!Q.has(K.id));if(W.length===X.toolCalls.length)Z.push(X);else if(W.length>0)Z.push({...X,toolCalls:W});else if(Bw0(X.content))Z.push(Fw0(X));Z.push(...G);for(let K of H)Z.push({role:"tool",content:`[Tool execution interrupted \u2014 no result for ${K.name}]`,toolCallId:K.id});J=V-1;continue}if(X.role==="tool")continue;Z.push(X)}return Z}function k60($){let Z=[];for(let J of $)for(let X of J.content)switch(X.type){case"thinking":Z.push({id:`thinking-${crypto.randomUUID()}`,role:"thinking_history",content:X.content,wordCount:X.wordCount,durationSeconds:X.durationMs!=null?X.durationMs/1000:void 0,verb:X.verb,arionName:J.arion?.name,arionEmoji:J.arion?.emoji,arionColor:J.arion?.color});break;case"tool_use":Z.push({id:`tool-${crypto.randomUUID()}`,role:"tool_history",tool:{id:X.id,name:X.name,args:X.arguments,status:"pending",startTime:void 0,endTime:void 0}});break;case"tool_result":{let Y;for(let Q=Z.length-1;Q>=0;Q--){let G=Z[Q];if(G.role==="tool_history"&&G.tool.id===X.toolUseId){Y=G;break}}if(Y){if(Y.tool.status=X.status==="error"?"error":"complete",X.status==="error")Y.tool.error=X.content;else Y.tool.result=X.content;if(X.resultData!==void 0)Y.tool.resultData=X.resultData;if(X.durationMs!==void 0)Y.tool.durationMs=X.durationMs;if(X.usage!==void 0)Y.tool.usage=X.usage}break}case"handoff":Z.push({id:`handoff-${crypto.randomUUID()}`,role:"handoff_history",target:X.target,direction:X.direction});break;case"error":Z.push({id:`error-${crypto.randomUUID()}`,role:"error",content:X.content,suggestion:X.suggestion});break;case"text":Z.push({id:`msg-${crypto.randomUUID()}`,role:J.role,content:X.text,arion:J.arion?{name:J.arion.name,emoji:J.arion.emoji,color:J.arion.color}:void 0});break}return Z}var uM=_(()=>{ER()});class OJ{textParts=[];thinkingBlocks=[];toolUseBlocks=[];handoffBlocks=[];toolResultMessages=[];seenToolIds=new Set;toolArgsAccumulator=new Map;thinkingInProgress=!1;pendingThinkingContent="";arion;verb;tokenUsage;snapshotMessages;previewAssistantId=`preview-${Date.now()}`;ingest($){switch($.type){case"text_delta":return this.textParts.push($.content),"continue";case"thinking_start":return this.thinkingInProgress=!0,this.pendingThinkingContent="","continue";case"thinking_delta":return this.pendingThinkingContent+=$.content,"continue";case"thinking_end":{this.thinkingInProgress=!1;let Z=Array.isArray($.blocks)&&$.blocks.length>0?$.blocks[0]:void 0,J=typeof Z?.thinking==="string"?Z.thinking:this.pendingThinkingContent,X=J.split(/\s+/).filter(Boolean).length,Y={type:"thinking",content:J,wordCount:X,durationMs:$.durationMs,verb:this.verb};return this.thinkingBlocks.push(Y),this.pendingThinkingContent="","continue"}case"tool_start":{if(this.seenToolIds.has($.id))return"continue";this.seenToolIds.add($.id);let Z={type:"tool_use",id:$.id,name:$.name,arguments:$.input??{}};return this.toolUseBlocks.push(Z),"continue"}case"tool_args_delta":{let J=(this.toolArgsAccumulator.get($.id)??"")+$.args;this.toolArgsAccumulator.set($.id,J);try{let X=JSON.parse(J),Y=this.toolUseBlocks.find((Q)=>Q.type==="tool_use"&&Q.id===$.id);if(Y)Y.arguments=X}catch{}return"continue"}case"tool_result":{if($.input){let Q=this.toolUseBlocks.find((G)=>G.type==="tool_use"&&G.id===$.id);if(Q){let G=typeof $.input==="object"&&!Array.isArray($.input)?$.input:{};if(Object.keys(Q.arguments).length===0)Q.arguments=G}}let Z=$.result,J="usage"in $&&$.usage&&typeof $.usage==="object"&&typeof $.usage.inputTokens==="number"&&typeof $.usage.outputTokens==="number"&&typeof $.usage.totalTokens==="number"&&typeof $.usage.estimatedCost==="number"?$.usage:void 0,X={type:"tool_result",toolUseId:$.id,content:typeof Z.message==="string"?Z.message:"",status:Z.success===!0?"success":"error",durationMs:$.durationMs,resultData:Z.data,usage:J},Y={id:crypto.randomUUID(),role:"tool",content:[X],arion:this.arion,createdAt:new Date().toISOString()};return this.toolResultMessages.push(Y),"continue"}case"handoff_start":{let Z={type:"handoff",target:$.target,direction:"to"};return this.handoffBlocks.push(Z),"continue"}case"handoff_result":{let Z={type:"handoff",target:$.target,direction:"from"};return this.handoffBlocks.push(Z),"continue"}case"turn_complete":return"flush";case"messages_snapshot":return this.snapshotMessages=$.messages,"continue";default:return"continue"}}flush(){let $=[];if(this.thinkingInProgress&&this.pendingThinkingContent){let X=this.pendingThinkingContent.trim(),Y=X.length===0?0:X.split(/\s+/).length,Q={type:"thinking",content:this.pendingThinkingContent,wordCount:Y,verb:this.verb};this.thinkingBlocks.push(Q)}let Z=[];Z.push(...this.thinkingBlocks);let J=this.textParts.join("");if(J)Z.push({type:"text",text:J});if(Z.push(...this.toolUseBlocks),Z.push(...this.handoffBlocks),Z.length>0){let X={id:crypto.randomUUID(),role:"assistant",content:Z,arion:this.arion,tokenUsage:this.tokenUsage,createdAt:new Date().toISOString()};$.push(X)}if($.push(...this.toolResultMessages),this.toolResultMessages.length>0&&this.toolUseBlocks.length>0){let X=new Set(this.toolResultMessages.flatMap((Y)=>Y.content.filter((Q)=>Q.type==="tool_result").map((Q)=>Q.toolUseId)));for(let Y of this.toolUseBlocks){let Q=Y.id;if(Q&&!X.has(Q)){let G={id:crypto.randomUUID(),role:"tool",content:[{type:"tool_result",toolUseId:Q,content:"Tool execution cancelled by user.",status:"error"}],arion:this.arion,createdAt:new Date().toISOString()};$.push(G)}}}return this.textParts=[],this.thinkingBlocks=[],this.toolUseBlocks=[],this.handoffBlocks=[],this.toolResultMessages=[],this.seenToolIds=new Set,this.toolArgsAccumulator=new Map,this.thinkingInProgress=!1,this.pendingThinkingContent="",this.tokenUsage=void 0,this.verb=void 0,this.previewAssistantId=`preview-${Date.now()}`,$}snapshot(){let $=[];if($.push(...this.thinkingBlocks.map((X)=>({...X}))),this.thinkingInProgress&&this.pendingThinkingContent){let X=this.pendingThinkingContent,Y={type:"thinking",content:X,wordCount:X.split(/\s+/).filter(Boolean).length,verb:this.verb};$.push(Y)}let Z=this.textParts.join("");if(Z){let X=Z.lastIndexOf(`
4727
4727
  `);if(X>=0)$.push({type:"text",text:Z.slice(0,X+1)})}for(let X of this.toolUseBlocks){let Y={...X};if(Y.type==="tool_use"&&Object.keys(Y.arguments).length===0){let Q=this.toolArgsAccumulator.get(Y.id);if(Q){let G=OJ.tryParsePartialArgs(Q);if(G)Y.arguments=G}}$.push(Y)}$.push(...this.handoffBlocks.map((X)=>({...X})));let J=[];if($.length>0)J.push({id:this.previewAssistantId,role:"assistant",content:$,arion:this.arion,createdAt:new Date().toISOString()});return J.push(...this.toolResultMessages.map((X)=>({...X,content:[...X.content]}))),J}getSnapshotMessages(){return this.snapshotMessages}hasPendingContent(){return this.textParts.length>0||this.thinkingBlocks.length>0||this.toolUseBlocks.length>0||this.handoffBlocks.length>0||this.toolResultMessages.length>0||this.thinkingInProgress}setArion($){this.arion=$}setVerb($){this.verb=$}setTokenUsage($){if(this.tokenUsage)this.tokenUsage={input:this.tokenUsage.input+$.input,output:this.tokenUsage.output+$.output};else this.tokenUsage={...$}}static tryParsePartialArgs($){let Z=$.trim();if(!Z.startsWith("{")||Z.length<4)return;try{return JSON.parse(Z)}catch{}try{let J=JSON.parse(Z+"}");if(Object.keys(J).length>0)return J}catch{}try{let J=JSON.parse(Z+'"}');if(Object.keys(J).length>0)return J}catch{}for(let J=Z.length-1;J>0;J--)if(Z[J]===",")try{let X=JSON.parse(Z.slice(0,J)+"}");if(Object.keys(X).length>0)return X}catch{}return}}import{readFileSync as Ow0,existsSync as Mh}from"fs";function Ph($){if(!Mh($))return[];let J=Ow0($,"utf-8").split(`
4728
4728
  `).filter((Q)=>Q.trim().length>0),X=new OJ,Y=[];for(let Q of J){let G;try{G=JSON.parse(Q)}catch{continue}if(!G.event||typeof G.event.type!=="string")continue;if(G.event.type==="user_message"){if(X.hasPendingContent())Y.push(...X.flush());let W=G.event.content??"",H=G.event.id,K=xG(W);if(H)K.id=H;Y.push(K);continue}if(X.ingest(G.event)==="flush"){let W=X.flush();Y.push(...W)}}if(X.hasPendingContent()){let Q=X.flush();Y.push(...Q)}return Y}function f60($){for(let J of $.content){if(J.type==="tool_use"&&J.id)return`tool_use:${J.id}`;if(J.type==="tool_result"&&J.toolUseId)return`tool_result:${J.toolUseId}`}let Z=$.content.filter((J)=>J.type==="text").map((J)=>J.text).join("");return`${$.role}:${Z}`}function pM($,Z){if(!Z)return{messages:$,backfillMessages:[]};let J;try{J=Ph(Z)}catch{return{messages:$,backfillMessages:[]}}if(J.length===0)return{messages:$,backfillMessages:[]};if($.length>=J.length)return{messages:$,backfillMessages:[]};let X=new Set($.map(f60)),Y=[];for(let G of J){let V=f60(G);if(!X.has(V))Y.push(G)}return{messages:[...$,...Y],backfillMessages:Y}}function dM($,Z,J){let X=`${$}/arions/${Z}/logs/${J}.jsonl`;if(Mh(X))return X;let Y=`${$}/logs/${J}.jsonl`;if(Mh(Y))return Y;return null}var y60=_(()=>{uM()});var jh={};M$(jh,{toModelMessages:()=>UL,replaySessionFromJsonl:()=>Ph,repairToolCallPairing:()=>uY,mergeWithJsonlRecovery:()=>pM,fromV1Columns:()=>mG,fromModelMessages:()=>gG,findJsonlForSession:()=>dM,extractToolCalls:()=>uG,extractToolCallId:()=>dG,extractThinking:()=>pG,extractTextContent:()=>cG,createUserMessage:()=>xG,createSystemMessage:()=>l0,createIncomingMessagePair:()=>zL,createErrorMessage:()=>Y$,conversationMessageToHistoryMessages:()=>k60,TurnAccumulator:()=>OJ,SessionHistoryClient:()=>BH,SessionHistory:()=>Z6,ConversationMessageSchema:()=>KL,ContentBlockSchema:()=>Wd,ArionRefSchema:()=>Kd});var pY=_(()=>{jR();_h();uM();y60()});import{existsSync as Nw0}from"fs";import{fileURLToPath as v60}from"url";function Lw0(){return[v60(new URL("../main.ts",import.meta.url)),v60(new URL("../main.js",import.meta.url))]}function h60(){let $=process.env.ARIA_RUNTIME_KIND?.trim();if($==="source-bun"||$==="compiled-bun"||$==="bundled-bun")return $;let Z=process.argv[1]??"";if(!Z.endsWith(".ts")&&!Z.endsWith(".js")&&!Z.endsWith(".mjs"))return"compiled-bun";if(Lw0().some((J)=>Nw0(J)))return"source-bun";return"bundled-bun"}var x60=()=>{};import{existsSync as Th}from"fs";import{fileURLToPath as lM}from"url";function g60(){return process.platform==="win32"?"bun.exe":"bun"}function Aw0(){let $=[lM(new URL("../main.ts",import.meta.url)),lM(new URL("../main.js",import.meta.url))];for(let Z of $)if(Th(Z))return Z;throw Error("[aria] Could not resolve Bun source entrypoint for internal relaunch")}function qw0(){let $=process.argv[1]??"";if(Th($))return $;let Z=[lM(new URL("../../bin/aria.mjs",import.meta.url)),lM(new URL("../bin/aria.mjs",import.meta.url))];for(let J of Z)if(Th(J))return J;throw Error("[aria] Could not resolve bundled entrypoint for internal relaunch")}function aM($){let Z=h60(),J=$.args??[],X={...process.env,...$.env??{}},Y=$.cwd??process.cwd();switch(Z){case"source-bun":return{command:g60(),args:[Aw0(),"__internal",$.mode,...J],env:X,cwd:Y};case"bundled-bun":return{command:g60(),args:[qw0(),"__internal",$.mode,...J],env:X,cwd:Y};case"compiled-bun":return{command:process.execPath,args:["__internal",$.mode,...J],env:X,cwd:Y}}}var Ch=_(()=>{x60()});function nM($,Z={}){let J={},X={cwd:$.cwd,env:$.env,stdio:Z.stdio??["inherit","inherit","inherit"]};if(Z.ipc)X.ipc=(Q)=>{for(let G of J.message??[])G(Q)};let Y=Bun.spawn([$.command,...$.args],X);return Y.exited.then((Q)=>{for(let G of J.close??[])G(Q)}).catch((Q)=>{let G=Q instanceof Error?Q:Error(String(Q));for(let V of J.error??[])V(G)}),{send(Q){Y.send(Q)},on(Q,G){(J[Q]??=[]).push(G)},unref(){Y.unref()}}}import{existsSync as AF,mkdirSync as Ew0,readFileSync as u60,writeFileSync as _w0,unlinkSync as Rh,readdirSync as Mw0}from"fs";import{dirname as cj$,join as Sh,resolve as uj$}from"path";function p60($){uN($)}function Pw0($){return Fp($)}function iM($){Dp($)}function jw0($){if(!$||typeof $!=="object")return!1;let Z=$;return Z.code==="EPIPE"||Z.code==="EIO"||Z.code==="ERR_STREAM_DESTROYED"}function i1($){try{process.stderr.write($)}catch(Z){if(jw0(Z))return;throw Z}}function Tw0($){if(!$||typeof $!=="object")return $ instanceof Error&&/^exit:\d+$/.test($.message);if($.__ariaProcessExit===!0)return!0;return $ instanceof Error&&/^exit:\d+$/.test($.message)}function NJ($){let Z=$?.trim()||null;if(g8=Z,Z)process.env[$6]=Z;else delete process.env[$6]}function Ih(){return g8}function FH($){o1=$||"ARIA",process.env[BX]=o1}function d60(){return process.env[cN]==="true"}function l60(...$){return Sh(x9(),...$)}function a60(){return l60("crash-markers")}function bh($){return Sh(a60(),`${$}.json`)}function Rw0($){let Z=bh($);if(!AF(Z))return null;try{return JSON.parse(u60(Z,"utf-8"))}catch{return null}}function ww0($){try{let Z=a60();Ew0(Z,{recursive:!0}),_w0(bh($.sessionId),JSON.stringify($),"utf-8")}catch{}}function wh($){try{let Z=bh($);if(AF(Z))Rh(Z)}catch{}}function Sw0(){return l60("crash-reports","latest.json")}function m60($,Z){i1(`[aria] Session ${$} exceeded crash limit (${Z}/${LF}). Starting fresh instead of resuming.
4729
4729
  `),wh($),g8=null,NJ(null)}function Iw0(){let $=Sw0();if(!AF($))return null;try{let Z=JSON.parse(u60($,"utf-8"));try{Rh($)}catch{}return{message:Z?.error?.message??"unknown",stack:Z?.error?.stack??void 0,heapMb:Z?.process?.heapUsedMb,rssMb:Z?.process?.rssMb}}catch{try{Rh($)}catch{}return null}}async function c60($){let Z=Pw0(process.pid);if(Z){if(Date.now()-new Date(Z.timestamp).getTime()<Cw0)return iM(process.pid),{sessionId:Z.sessionId,arionName:Z.arionName||$,source:"marker"};iM(process.pid)}try{let{SessionHistory:J}=await Promise.resolve().then(() => (pY(),jh)),{getAriaDir:X}=await Promise.resolve().then(() => (T4(),gS)),Y=X(),Q=new Set([$]),G=Sh(Y,"arions");if(AF(G)){for(let W of Mw0(G,{withFileTypes:!0}))if(W.isDirectory()&&W.name.trim())Q.add(W.name.trim())}let V=null;for(let W of Q){let H=J.resolvePerArionPath(Y,W);if(!AF(H))continue;let K=new J(H);try{let z=K.getIncompleteSessions(1);if(z.length===0)continue;let U=z[0],B=U.updatedAt.getTime();if(!V||B>V.updatedAtMs||B===V.updatedAtMs&&W===$)V={sessionId:U.id,arionName:W,updatedAtMs:B}}finally{K.close()}}if(V)return{sessionId:V.sessionId,arionName:V.arionName,source:V.arionName===$?"history":"history-scan"}}catch(J){i1(`[aria] SessionHistory fallback failed: ${J instanceof Error?J.message:String(J)}