turboflux 1.0.0

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 (490) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +177 -0
  3. package/bin/turboflux.mjs +28 -0
  4. package/dist/cli/brand.d.ts +7 -0
  5. package/dist/cli/brand.js +33 -0
  6. package/dist/cli/brand.js.map +1 -0
  7. package/dist/cli/commands/index.d.ts +4 -0
  8. package/dist/cli/commands/index.js +671 -0
  9. package/dist/cli/commands/index.js.map +1 -0
  10. package/dist/cli/commands/registry.d.ts +24 -0
  11. package/dist/cli/commands/registry.js +124 -0
  12. package/dist/cli/commands/registry.js.map +1 -0
  13. package/dist/cli/commands/types.d.ts +69 -0
  14. package/dist/cli/commands/types.js +2 -0
  15. package/dist/cli/commands/types.js.map +1 -0
  16. package/dist/cli/components/App.d.ts +15 -0
  17. package/dist/cli/components/App.js +1738 -0
  18. package/dist/cli/components/App.js.map +1 -0
  19. package/dist/cli/components/ConversationHistory.d.ts +15 -0
  20. package/dist/cli/components/ConversationHistory.js +92 -0
  21. package/dist/cli/components/ConversationHistory.js.map +1 -0
  22. package/dist/cli/components/TranscriptViewport.d.ts +25 -0
  23. package/dist/cli/components/TranscriptViewport.js +77 -0
  24. package/dist/cli/components/TranscriptViewport.js.map +1 -0
  25. package/dist/cli/components/agentActivityModel.d.ts +24 -0
  26. package/dist/cli/components/agentActivityModel.js +45 -0
  27. package/dist/cli/components/agentActivityModel.js.map +1 -0
  28. package/dist/cli/components/appHelpers.d.ts +34 -0
  29. package/dist/cli/components/appHelpers.js +209 -0
  30. package/dist/cli/components/appHelpers.js.map +1 -0
  31. package/dist/cli/components/design-system/StatusIcon.d.ts +5 -0
  32. package/dist/cli/components/design-system/StatusIcon.js +25 -0
  33. package/dist/cli/components/design-system/StatusIcon.js.map +1 -0
  34. package/dist/cli/components/developerFlowModel.d.ts +36 -0
  35. package/dist/cli/components/developerFlowModel.js +88 -0
  36. package/dist/cli/components/developerFlowModel.js.map +1 -0
  37. package/dist/cli/components/diff/DiffCard.d.ts +16 -0
  38. package/dist/cli/components/diff/DiffCard.js +30 -0
  39. package/dist/cli/components/diff/DiffCard.js.map +1 -0
  40. package/dist/cli/components/diff/DiffHunks.d.ts +11 -0
  41. package/dist/cli/components/diff/DiffHunks.js +58 -0
  42. package/dist/cli/components/diff/DiffHunks.js.map +1 -0
  43. package/dist/cli/components/header/Header.d.ts +13 -0
  44. package/dist/cli/components/header/Header.js +25 -0
  45. package/dist/cli/components/header/Header.js.map +1 -0
  46. package/dist/cli/components/header/Mascot.d.ts +4 -0
  47. package/dist/cli/components/header/Mascot.js +53 -0
  48. package/dist/cli/components/header/Mascot.js.map +1 -0
  49. package/dist/cli/components/header/StatusLine.d.ts +21 -0
  50. package/dist/cli/components/header/StatusLine.js +110 -0
  51. package/dist/cli/components/header/StatusLine.js.map +1 -0
  52. package/dist/cli/components/input/EffortPicker.d.ts +30 -0
  53. package/dist/cli/components/input/EffortPicker.js +126 -0
  54. package/dist/cli/components/input/EffortPicker.js.map +1 -0
  55. package/dist/cli/components/input/ModelPicker.d.ts +15 -0
  56. package/dist/cli/components/input/ModelPicker.js +95 -0
  57. package/dist/cli/components/input/ModelPicker.js.map +1 -0
  58. package/dist/cli/components/input/PromptInput.d.ts +79 -0
  59. package/dist/cli/components/input/PromptInput.js +496 -0
  60. package/dist/cli/components/input/PromptInput.js.map +1 -0
  61. package/dist/cli/components/input/RewindSelector.d.ts +8 -0
  62. package/dist/cli/components/input/RewindSelector.js +45 -0
  63. package/dist/cli/components/input/RewindSelector.js.map +1 -0
  64. package/dist/cli/components/input/pasteState.d.ts +6 -0
  65. package/dist/cli/components/input/pasteState.js +42 -0
  66. package/dist/cli/components/input/pasteState.js.map +1 -0
  67. package/dist/cli/components/input/terminalInputStateMachine.d.ts +29 -0
  68. package/dist/cli/components/input/terminalInputStateMachine.js +67 -0
  69. package/dist/cli/components/input/terminalInputStateMachine.js.map +1 -0
  70. package/dist/cli/components/layout/CockpitRails.d.ts +6 -0
  71. package/dist/cli/components/layout/CockpitRails.js +13 -0
  72. package/dist/cli/components/layout/CockpitRails.js.map +1 -0
  73. package/dist/cli/components/layout/LandingView.d.ts +15 -0
  74. package/dist/cli/components/layout/LandingView.js +12 -0
  75. package/dist/cli/components/layout/LandingView.js.map +1 -0
  76. package/dist/cli/components/layout/SessionSidebar.d.ts +18 -0
  77. package/dist/cli/components/layout/SessionSidebar.js +70 -0
  78. package/dist/cli/components/layout/SessionSidebar.js.map +1 -0
  79. package/dist/cli/components/layout/StartupAnimation.d.ts +14 -0
  80. package/dist/cli/components/layout/StartupAnimation.js +30 -0
  81. package/dist/cli/components/layout/StartupAnimation.js.map +1 -0
  82. package/dist/cli/components/markdown/highlighter.d.ts +1 -0
  83. package/dist/cli/components/markdown/highlighter.js +110 -0
  84. package/dist/cli/components/markdown/highlighter.js.map +1 -0
  85. package/dist/cli/components/markdown/index.d.ts +11 -0
  86. package/dist/cli/components/markdown/index.js +86 -0
  87. package/dist/cli/components/markdown/index.js.map +1 -0
  88. package/dist/cli/components/messages/MessageList.d.ts +16 -0
  89. package/dist/cli/components/messages/MessageList.js +56 -0
  90. package/dist/cli/components/messages/MessageList.js.map +1 -0
  91. package/dist/cli/components/messages/Messages.d.ts +26 -0
  92. package/dist/cli/components/messages/Messages.js +32 -0
  93. package/dist/cli/components/messages/Messages.js.map +1 -0
  94. package/dist/cli/components/messages/ThinkingBlock.d.ts +9 -0
  95. package/dist/cli/components/messages/ThinkingBlock.js +51 -0
  96. package/dist/cli/components/messages/ThinkingBlock.js.map +1 -0
  97. package/dist/cli/components/messages/WindowedMessageList.d.ts +21 -0
  98. package/dist/cli/components/messages/WindowedMessageList.js +44 -0
  99. package/dist/cli/components/messages/WindowedMessageList.js.map +1 -0
  100. package/dist/cli/components/permissions/PermissionDialog.d.ts +23 -0
  101. package/dist/cli/components/permissions/PermissionDialog.js +83 -0
  102. package/dist/cli/components/permissions/PermissionDialog.js.map +1 -0
  103. package/dist/cli/components/spinner/SpinnerGlyph.d.ts +6 -0
  104. package/dist/cli/components/spinner/SpinnerGlyph.js +55 -0
  105. package/dist/cli/components/spinner/SpinnerGlyph.js.map +1 -0
  106. package/dist/cli/components/spinner/constants.d.ts +4 -0
  107. package/dist/cli/components/spinner/constants.js +5 -0
  108. package/dist/cli/components/spinner/constants.js.map +1 -0
  109. package/dist/cli/components/tools/ActiveWorkPanel.d.ts +22 -0
  110. package/dist/cli/components/tools/ActiveWorkPanel.js +70 -0
  111. package/dist/cli/components/tools/ActiveWorkPanel.js.map +1 -0
  112. package/dist/cli/components/tools/AgentActivityLine.d.ts +13 -0
  113. package/dist/cli/components/tools/AgentActivityLine.js +88 -0
  114. package/dist/cli/components/tools/AgentActivityLine.js.map +1 -0
  115. package/dist/cli/components/tools/QueuedPromptList.d.ts +10 -0
  116. package/dist/cli/components/tools/QueuedPromptList.js +26 -0
  117. package/dist/cli/components/tools/QueuedPromptList.js.map +1 -0
  118. package/dist/cli/components/tools/TaskFlowHud.d.ts +15 -0
  119. package/dist/cli/components/tools/TaskFlowHud.js +55 -0
  120. package/dist/cli/components/tools/TaskFlowHud.js.map +1 -0
  121. package/dist/cli/components/tools/TerminalSessionsFooter.d.ts +6 -0
  122. package/dist/cli/components/tools/TerminalSessionsFooter.js +36 -0
  123. package/dist/cli/components/tools/TerminalSessionsFooter.js.map +1 -0
  124. package/dist/cli/components/tools/ToolActivityList.d.ts +11 -0
  125. package/dist/cli/components/tools/ToolActivityList.js +73 -0
  126. package/dist/cli/components/tools/ToolActivityList.js.map +1 -0
  127. package/dist/cli/components/tools/ToolCallTree.d.ts +11 -0
  128. package/dist/cli/components/tools/ToolCallTree.js +14 -0
  129. package/dist/cli/components/tools/ToolCallTree.js.map +1 -0
  130. package/dist/cli/components/tools/toolLifecycleModel.d.ts +16 -0
  131. package/dist/cli/components/tools/toolLifecycleModel.js +30 -0
  132. package/dist/cli/components/tools/toolLifecycleModel.js.map +1 -0
  133. package/dist/cli/components/tools/toolPresentation.d.ts +9 -0
  134. package/dist/cli/components/tools/toolPresentation.js +171 -0
  135. package/dist/cli/components/tools/toolPresentation.js.map +1 -0
  136. package/dist/cli/components/tools/toolTypes.d.ts +16 -0
  137. package/dist/cli/components/tools/toolTypes.js +2 -0
  138. package/dist/cli/components/tools/toolTypes.js.map +1 -0
  139. package/dist/cli/components/transcriptWindowing.d.ts +19 -0
  140. package/dist/cli/components/transcriptWindowing.js +81 -0
  141. package/dist/cli/components/transcriptWindowing.js.map +1 -0
  142. package/dist/cli/config.d.ts +1 -0
  143. package/dist/cli/config.js +2 -0
  144. package/dist/cli/config.js.map +1 -0
  145. package/dist/cli/conversations/journalWriter.d.ts +50 -0
  146. package/dist/cli/conversations/journalWriter.js +191 -0
  147. package/dist/cli/conversations/journalWriter.js.map +1 -0
  148. package/dist/cli/conversations/manager.d.ts +65 -0
  149. package/dist/cli/conversations/manager.js +435 -0
  150. package/dist/cli/conversations/manager.js.map +1 -0
  151. package/dist/cli/conversations/recoveryExport.d.ts +18 -0
  152. package/dist/cli/conversations/recoveryExport.js +39 -0
  153. package/dist/cli/conversations/recoveryExport.js.map +1 -0
  154. package/dist/cli/conversations/recoveryMessages.d.ts +2 -0
  155. package/dist/cli/conversations/recoveryMessages.js +3 -0
  156. package/dist/cli/conversations/recoveryMessages.js.map +1 -0
  157. package/dist/cli/conversations/store.d.ts +14 -0
  158. package/dist/cli/conversations/store.js +603 -0
  159. package/dist/cli/conversations/store.js.map +1 -0
  160. package/dist/cli/conversations/types.d.ts +142 -0
  161. package/dist/cli/conversations/types.js +2 -0
  162. package/dist/cli/conversations/types.js.map +1 -0
  163. package/dist/cli/globalConfiguration.d.ts +13 -0
  164. package/dist/cli/globalConfiguration.js +61 -0
  165. package/dist/cli/globalConfiguration.js.map +1 -0
  166. package/dist/cli/hooks/useMessageCursor.d.ts +16 -0
  167. package/dist/cli/hooks/useMessageCursor.js +75 -0
  168. package/dist/cli/hooks/useMessageCursor.js.map +1 -0
  169. package/dist/cli/hooks/useOverlayStack.d.ts +9 -0
  170. package/dist/cli/hooks/useOverlayStack.js +26 -0
  171. package/dist/cli/hooks/useOverlayStack.js.map +1 -0
  172. package/dist/cli/hooks/useTerminalSize.d.ts +16 -0
  173. package/dist/cli/hooks/useTerminalSize.js +37 -0
  174. package/dist/cli/hooks/useTerminalSize.js.map +1 -0
  175. package/dist/cli/i18n/index.d.ts +15 -0
  176. package/dist/cli/i18n/index.js +32 -0
  177. package/dist/cli/i18n/index.js.map +1 -0
  178. package/dist/cli/i18n/messages.d.ts +1305 -0
  179. package/dist/cli/i18n/messages.js +1305 -0
  180. package/dist/cli/i18n/messages.js.map +1 -0
  181. package/dist/cli/imageAttachments.d.ts +22 -0
  182. package/dist/cli/imageAttachments.js +329 -0
  183. package/dist/cli/imageAttachments.js.map +1 -0
  184. package/dist/cli/index.d.ts +2 -0
  185. package/dist/cli/index.js +146 -0
  186. package/dist/cli/index.js.map +1 -0
  187. package/dist/cli/platform/terminalAttention.d.ts +46 -0
  188. package/dist/cli/platform/terminalAttention.js +152 -0
  189. package/dist/cli/platform/terminalAttention.js.map +1 -0
  190. package/dist/cli/platform/terminalTransparency.d.ts +11 -0
  191. package/dist/cli/platform/terminalTransparency.js +193 -0
  192. package/dist/cli/platform/terminalTransparency.js.map +1 -0
  193. package/dist/cli/repl.d.ts +15 -0
  194. package/dist/cli/repl.js +38 -0
  195. package/dist/cli/repl.js.map +1 -0
  196. package/dist/cli/setup.d.ts +17 -0
  197. package/dist/cli/setup.js +991 -0
  198. package/dist/cli/setup.js.map +1 -0
  199. package/dist/cli/singleShot.d.ts +30 -0
  200. package/dist/cli/singleShot.js +167 -0
  201. package/dist/cli/singleShot.js.map +1 -0
  202. package/dist/cli/state/adaptiveStreamScheduler.d.ts +53 -0
  203. package/dist/cli/state/adaptiveStreamScheduler.js +136 -0
  204. package/dist/cli/state/adaptiveStreamScheduler.js.map +1 -0
  205. package/dist/cli/state/agentFlowController.d.ts +37 -0
  206. package/dist/cli/state/agentFlowController.js +402 -0
  207. package/dist/cli/state/agentFlowController.js.map +1 -0
  208. package/dist/cli/state/approvalPresentationScheduler.d.ts +28 -0
  209. package/dist/cli/state/approvalPresentationScheduler.js +72 -0
  210. package/dist/cli/state/approvalPresentationScheduler.js.map +1 -0
  211. package/dist/cli/state/flowFeatureFlags.d.ts +18 -0
  212. package/dist/cli/state/flowFeatureFlags.js +45 -0
  213. package/dist/cli/state/flowFeatureFlags.js.map +1 -0
  214. package/dist/cli/state/flowReducer.d.ts +120 -0
  215. package/dist/cli/state/flowReducer.js +535 -0
  216. package/dist/cli/state/flowReducer.js.map +1 -0
  217. package/dist/cli/state/flowSelectors.d.ts +45 -0
  218. package/dist/cli/state/flowSelectors.js +144 -0
  219. package/dist/cli/state/flowSelectors.js.map +1 -0
  220. package/dist/cli/state/flowStore.d.ts +19 -0
  221. package/dist/cli/state/flowStore.js +51 -0
  222. package/dist/cli/state/flowStore.js.map +1 -0
  223. package/dist/cli/state/globalCommandActivity.d.ts +25 -0
  224. package/dist/cli/state/globalCommandActivity.js +57 -0
  225. package/dist/cli/state/globalCommandActivity.js.map +1 -0
  226. package/dist/cli/state/goldenTraces.d.ts +2 -0
  227. package/dist/cli/state/goldenTraces.js +15 -0
  228. package/dist/cli/state/goldenTraces.js.map +1 -0
  229. package/dist/cli/state/notificationCoordinator.d.ts +38 -0
  230. package/dist/cli/state/notificationCoordinator.js +101 -0
  231. package/dist/cli/state/notificationCoordinator.js.map +1 -0
  232. package/dist/cli/stateProvider.d.ts +5 -0
  233. package/dist/cli/stateProvider.js +7 -0
  234. package/dist/cli/stateProvider.js.map +1 -0
  235. package/dist/cli/telemetry/localFlowTelemetry.d.ts +42 -0
  236. package/dist/cli/telemetry/localFlowTelemetry.js +131 -0
  237. package/dist/cli/telemetry/localFlowTelemetry.js.map +1 -0
  238. package/dist/cli/telemetry/terminalBaseline.d.ts +93 -0
  239. package/dist/cli/telemetry/terminalBaseline.js +199 -0
  240. package/dist/cli/telemetry/terminalBaseline.js.map +1 -0
  241. package/dist/cli/telemetry/terminalLatencyTracker.d.ts +24 -0
  242. package/dist/cli/telemetry/terminalLatencyTracker.js +59 -0
  243. package/dist/cli/telemetry/terminalLatencyTracker.js.map +1 -0
  244. package/dist/cli/terminalLayout.d.ts +2 -0
  245. package/dist/cli/terminalLayout.js +16 -0
  246. package/dist/cli/terminalLayout.js.map +1 -0
  247. package/dist/cli/terminalMouse.d.ts +10 -0
  248. package/dist/cli/terminalMouse.js +29 -0
  249. package/dist/cli/terminalMouse.js.map +1 -0
  250. package/dist/cli/theme/ThemeProvider.d.ts +9 -0
  251. package/dist/cli/theme/ThemeProvider.js +26 -0
  252. package/dist/cli/theme/ThemeProvider.js.map +1 -0
  253. package/dist/cli/theme/dark.d.ts +2 -0
  254. package/dist/cli/theme/dark.js +27 -0
  255. package/dist/cli/theme/dark.js.map +1 -0
  256. package/dist/cli/theme/index.d.ts +5 -0
  257. package/dist/cli/theme/index.js +5 -0
  258. package/dist/cli/theme/index.js.map +1 -0
  259. package/dist/cli/theme/light.d.ts +2 -0
  260. package/dist/cli/theme/light.js +26 -0
  261. package/dist/cli/theme/light.js.map +1 -0
  262. package/dist/cli/theme/palette.d.ts +7 -0
  263. package/dist/cli/theme/palette.js +8 -0
  264. package/dist/cli/theme/palette.js.map +1 -0
  265. package/dist/cli/theme/resolveColor.d.ts +4 -0
  266. package/dist/cli/theme/resolveColor.js +43 -0
  267. package/dist/cli/theme/resolveColor.js.map +1 -0
  268. package/dist/cli/theme/types.d.ts +27 -0
  269. package/dist/cli/theme/types.js +2 -0
  270. package/dist/cli/theme/types.js.map +1 -0
  271. package/dist/cli/toolExecutor.d.ts +1 -0
  272. package/dist/cli/toolExecutor.js +2 -0
  273. package/dist/cli/toolExecutor.js.map +1 -0
  274. package/dist/core/agentEngine.d.ts +425 -0
  275. package/dist/core/agentEngine.js +5170 -0
  276. package/dist/core/agentEngine.js.map +1 -0
  277. package/dist/core/agents/loader.d.ts +9 -0
  278. package/dist/core/agents/loader.js +144 -0
  279. package/dist/core/agents/loader.js.map +1 -0
  280. package/dist/core/applyPatch.d.ts +24 -0
  281. package/dist/core/applyPatch.js +158 -0
  282. package/dist/core/applyPatch.js.map +1 -0
  283. package/dist/core/cacheMonitor.d.ts +24 -0
  284. package/dist/core/cacheMonitor.js +211 -0
  285. package/dist/core/cacheMonitor.js.map +1 -0
  286. package/dist/core/clientIdentity.d.ts +6 -0
  287. package/dist/core/clientIdentity.js +44 -0
  288. package/dist/core/clientIdentity.js.map +1 -0
  289. package/dist/core/config.d.ts +99 -0
  290. package/dist/core/config.js +715 -0
  291. package/dist/core/config.js.map +1 -0
  292. package/dist/core/contextCompaction.d.ts +20 -0
  293. package/dist/core/contextCompaction.js +158 -0
  294. package/dist/core/contextCompaction.js.map +1 -0
  295. package/dist/core/contextManager.d.ts +44 -0
  296. package/dist/core/contextManager.js +590 -0
  297. package/dist/core/contextManager.js.map +1 -0
  298. package/dist/core/contextPolicy.d.ts +18 -0
  299. package/dist/core/contextPolicy.js +39 -0
  300. package/dist/core/contextPolicy.js.map +1 -0
  301. package/dist/core/credentialStore.d.ts +8 -0
  302. package/dist/core/credentialStore.js +37 -0
  303. package/dist/core/credentialStore.js.map +1 -0
  304. package/dist/core/diffCompute.d.ts +31 -0
  305. package/dist/core/diffCompute.js +116 -0
  306. package/dist/core/diffCompute.js.map +1 -0
  307. package/dist/core/editHelpers.d.ts +8 -0
  308. package/dist/core/editHelpers.js +35 -0
  309. package/dist/core/editHelpers.js.map +1 -0
  310. package/dist/core/fileIO.d.ts +12 -0
  311. package/dist/core/fileIO.js +199 -0
  312. package/dist/core/fileIO.js.map +1 -0
  313. package/dist/core/gitService.d.ts +83 -0
  314. package/dist/core/gitService.js +522 -0
  315. package/dist/core/gitService.js.map +1 -0
  316. package/dist/core/index.d.ts +30 -0
  317. package/dist/core/index.js +19 -0
  318. package/dist/core/index.js.map +1 -0
  319. package/dist/core/mcp/client.d.ts +32 -0
  320. package/dist/core/mcp/client.js +186 -0
  321. package/dist/core/mcp/client.js.map +1 -0
  322. package/dist/core/mcp/settings.d.ts +2 -0
  323. package/dist/core/mcp/settings.js +26 -0
  324. package/dist/core/mcp/settings.js.map +1 -0
  325. package/dist/core/mcp/toolBridge.d.ts +20 -0
  326. package/dist/core/mcp/toolBridge.js +74 -0
  327. package/dist/core/mcp/toolBridge.js.map +1 -0
  328. package/dist/core/mcp/types.d.ts +29 -0
  329. package/dist/core/mcp/types.js +2 -0
  330. package/dist/core/mcp/types.js.map +1 -0
  331. package/dist/core/modelDiscovery.d.ts +14 -0
  332. package/dist/core/modelDiscovery.js +566 -0
  333. package/dist/core/modelDiscovery.js.map +1 -0
  334. package/dist/core/modelProtocol.d.ts +43 -0
  335. package/dist/core/modelProtocol.js +238 -0
  336. package/dist/core/modelProtocol.js.map +1 -0
  337. package/dist/core/modelRegistry.d.ts +56 -0
  338. package/dist/core/modelRegistry.js +308 -0
  339. package/dist/core/modelRegistry.js.map +1 -0
  340. package/dist/core/networkProxy.d.ts +20 -0
  341. package/dist/core/networkProxy.js +145 -0
  342. package/dist/core/networkProxy.js.map +1 -0
  343. package/dist/core/normalizeBaseUrl.d.ts +1 -0
  344. package/dist/core/normalizeBaseUrl.js +9 -0
  345. package/dist/core/normalizeBaseUrl.js.map +1 -0
  346. package/dist/core/pathUtils.d.ts +3 -0
  347. package/dist/core/pathUtils.js +46 -0
  348. package/dist/core/pathUtils.js.map +1 -0
  349. package/dist/core/permissions.d.ts +29 -0
  350. package/dist/core/permissions.js +245 -0
  351. package/dist/core/permissions.js.map +1 -0
  352. package/dist/core/persona/voiceProfile.d.ts +7 -0
  353. package/dist/core/persona/voiceProfile.js +14 -0
  354. package/dist/core/persona/voiceProfile.js.map +1 -0
  355. package/dist/core/profile.d.ts +35 -0
  356. package/dist/core/profile.js +373 -0
  357. package/dist/core/profile.js.map +1 -0
  358. package/dist/core/requestCompatibility.d.ts +13 -0
  359. package/dist/core/requestCompatibility.js +181 -0
  360. package/dist/core/requestCompatibility.js.map +1 -0
  361. package/dist/core/runtime/agentRuntime.d.ts +43 -0
  362. package/dist/core/runtime/agentRuntime.js +137 -0
  363. package/dist/core/runtime/agentRuntime.js.map +1 -0
  364. package/dist/core/runtime/approvalCoordinator.d.ts +36 -0
  365. package/dist/core/runtime/approvalCoordinator.js +113 -0
  366. package/dist/core/runtime/approvalCoordinator.js.map +1 -0
  367. package/dist/core/runtime/capabilityBoundary.d.ts +18 -0
  368. package/dist/core/runtime/capabilityBoundary.js +89 -0
  369. package/dist/core/runtime/capabilityBoundary.js.map +1 -0
  370. package/dist/core/runtime/nodeToolExecutor.d.ts +200 -0
  371. package/dist/core/runtime/nodeToolExecutor.js +2446 -0
  372. package/dist/core/runtime/nodeToolExecutor.js.map +1 -0
  373. package/dist/core/runtime/runtimeLogWriter.d.ts +32 -0
  374. package/dist/core/runtime/runtimeLogWriter.js +129 -0
  375. package/dist/core/runtime/runtimeLogWriter.js.map +1 -0
  376. package/dist/core/runtime/runtimeTaskManager.d.ts +78 -0
  377. package/dist/core/runtime/runtimeTaskManager.js +374 -0
  378. package/dist/core/runtime/runtimeTaskManager.js.map +1 -0
  379. package/dist/core/runtime/sessionRegistry.d.ts +19 -0
  380. package/dist/core/runtime/sessionRegistry.js +41 -0
  381. package/dist/core/runtime/sessionRegistry.js.map +1 -0
  382. package/dist/core/runtime/stateProvider.d.ts +69 -0
  383. package/dist/core/runtime/stateProvider.js +131 -0
  384. package/dist/core/runtime/stateProvider.js.map +1 -0
  385. package/dist/core/runtime/subAgentTaskManager.d.ts +111 -0
  386. package/dist/core/runtime/subAgentTaskManager.js +386 -0
  387. package/dist/core/runtime/subAgentTaskManager.js.map +1 -0
  388. package/dist/core/schemaValidation.d.ts +5 -0
  389. package/dist/core/schemaValidation.js +153 -0
  390. package/dist/core/schemaValidation.js.map +1 -0
  391. package/dist/core/skills/loader.d.ts +7 -0
  392. package/dist/core/skills/loader.js +91 -0
  393. package/dist/core/skills/loader.js.map +1 -0
  394. package/dist/core/skills/runtime.d.ts +19 -0
  395. package/dist/core/skills/runtime.js +61 -0
  396. package/dist/core/skills/runtime.js.map +1 -0
  397. package/dist/core/subAgent.d.ts +50 -0
  398. package/dist/core/subAgent.js +1258 -0
  399. package/dist/core/subAgent.js.map +1 -0
  400. package/dist/core/systemPrompt.d.ts +27 -0
  401. package/dist/core/systemPrompt.js +219 -0
  402. package/dist/core/systemPrompt.js.map +1 -0
  403. package/dist/core/taskManager.d.ts +105 -0
  404. package/dist/core/taskManager.js +617 -0
  405. package/dist/core/taskManager.js.map +1 -0
  406. package/dist/core/tokenCompressor.d.ts +14 -0
  407. package/dist/core/tokenCompressor.js +161 -0
  408. package/dist/core/tokenCompressor.js.map +1 -0
  409. package/dist/core/tokenCounter.d.ts +28 -0
  410. package/dist/core/tokenCounter.js +101 -0
  411. package/dist/core/tokenCounter.js.map +1 -0
  412. package/dist/core/toolDispatcher.d.ts +11 -0
  413. package/dist/core/toolDispatcher.js +38 -0
  414. package/dist/core/toolDispatcher.js.map +1 -0
  415. package/dist/core/toolExecutionLedger.d.ts +9 -0
  416. package/dist/core/toolExecutionLedger.js +84 -0
  417. package/dist/core/toolExecutionLedger.js.map +1 -0
  418. package/dist/core/toolRegistry.d.ts +19 -0
  419. package/dist/core/toolRegistry.js +820 -0
  420. package/dist/core/toolRegistry.js.map +1 -0
  421. package/dist/core/turnStrategy.d.ts +20 -0
  422. package/dist/core/turnStrategy.js +103 -0
  423. package/dist/core/turnStrategy.js.map +1 -0
  424. package/dist/platform/process.d.ts +14 -0
  425. package/dist/platform/process.js +28 -0
  426. package/dist/platform/process.js.map +1 -0
  427. package/dist/platform/runtime.d.ts +8 -0
  428. package/dist/platform/runtime.js +21 -0
  429. package/dist/platform/runtime.js.map +1 -0
  430. package/dist/server/adminPage.d.ts +1 -0
  431. package/dist/server/adminPage.js +755 -0
  432. package/dist/server/adminPage.js.map +1 -0
  433. package/dist/server/index.d.ts +22 -0
  434. package/dist/server/index.js +566 -0
  435. package/dist/server/index.js.map +1 -0
  436. package/dist/shared/agentTypes.d.ts +227 -0
  437. package/dist/shared/agentTypes.js +79 -0
  438. package/dist/shared/agentTypes.js.map +1 -0
  439. package/dist/shared/codeIndexTypes.d.ts +32 -0
  440. package/dist/shared/codeIndexTypes.js +2 -0
  441. package/dist/shared/codeIndexTypes.js.map +1 -0
  442. package/dist/shared/flowEvents.d.ts +192 -0
  443. package/dist/shared/flowEvents.js +37 -0
  444. package/dist/shared/flowEvents.js.map +1 -0
  445. package/dist/shared/memoryTypes.d.ts +100 -0
  446. package/dist/shared/memoryTypes.js +2 -0
  447. package/dist/shared/memoryTypes.js.map +1 -0
  448. package/dist/shared/pluginTypes.d.ts +345 -0
  449. package/dist/shared/pluginTypes.js +2 -0
  450. package/dist/shared/pluginTypes.js.map +1 -0
  451. package/dist/shared/runtimeTaskTypes.d.ts +43 -0
  452. package/dist/shared/runtimeTaskTypes.js +2 -0
  453. package/dist/shared/runtimeTaskTypes.js.map +1 -0
  454. package/dist/shared/skillTypes.d.ts +1 -0
  455. package/dist/shared/skillTypes.js +2 -0
  456. package/dist/shared/skillTypes.js.map +1 -0
  457. package/dist/shared/subAgentTypes.d.ts +99 -0
  458. package/dist/shared/subAgentTypes.js +2 -0
  459. package/dist/shared/subAgentTypes.js.map +1 -0
  460. package/dist/shared/terminalTypes.d.ts +102 -0
  461. package/dist/shared/terminalTypes.js +2 -0
  462. package/dist/shared/terminalTypes.js.map +1 -0
  463. package/dist/shared/toolCallMarkup.d.ts +10 -0
  464. package/dist/shared/toolCallMarkup.js +107 -0
  465. package/dist/shared/toolCallMarkup.js.map +1 -0
  466. package/dist/shared/toolTypes.d.ts +24 -0
  467. package/dist/shared/toolTypes.js +2 -0
  468. package/dist/shared/toolTypes.js.map +1 -0
  469. package/dist/shared/types.d.ts +81 -0
  470. package/dist/shared/types.js +2 -0
  471. package/dist/shared/types.js.map +1 -0
  472. package/dist/state/types.d.ts +69 -0
  473. package/dist/state/types.js +2 -0
  474. package/dist/state/types.js.map +1 -0
  475. package/dist/tools/executor.d.ts +133 -0
  476. package/dist/tools/executor.js +2 -0
  477. package/dist/tools/executor.js.map +1 -0
  478. package/dist/tools/memory/loaders.d.ts +6 -0
  479. package/dist/tools/memory/loaders.js +292 -0
  480. package/dist/tools/memory/loaders.js.map +1 -0
  481. package/dist/tools/memory/sanitizer.d.ts +6 -0
  482. package/dist/tools/memory/sanitizer.js +48 -0
  483. package/dist/tools/memory/sanitizer.js.map +1 -0
  484. package/dist/tools/memory/service.d.ts +24 -0
  485. package/dist/tools/memory/service.js +273 -0
  486. package/dist/tools/memory/service.js.map +1 -0
  487. package/dist/tools/memory/writer.d.ts +17 -0
  488. package/dist/tools/memory/writer.js +192 -0
  489. package/dist/tools/memory/writer.js.map +1 -0
  490. package/package.json +68 -0
@@ -0,0 +1,1305 @@
1
+ export declare const EN_MESSAGES: {
2
+ readonly 'common.notSet': "not set";
3
+ readonly 'common.providerDefault': "provider default";
4
+ readonly 'common.cancelled': "Cancelled.";
5
+ readonly 'common.error': "Error: {message}";
6
+ readonly 'common.interrupted': "Interrupted";
7
+ readonly 'common.ready': "ready";
8
+ readonly 'common.working': "working";
9
+ readonly 'common.online': "{count} online";
10
+ readonly 'common.active': "{count} active";
11
+ readonly 'common.moreAbove': "↑ {count} more above";
12
+ readonly 'common.moreBelow': "↓ {count} more below";
13
+ readonly 'common.empty': "empty";
14
+ readonly 'common.done': "done";
15
+ readonly 'common.complete': "complete";
16
+ readonly 'common.failed': "failed";
17
+ readonly 'common.queued': "queued";
18
+ readonly 'common.tokens': "{count} tokens";
19
+ readonly 'setup.banner.title': "Terminal workbench setup";
20
+ readonly 'setup.banner.subtitle': "Configure providers, API profiles, language, persona, approval policy, and global instructions.";
21
+ readonly 'setup.current.title': "Current configuration";
22
+ readonly 'setup.current.noApiProfiles': "No API configuration profiles yet.";
23
+ readonly 'setup.current.activeApiConfig': "activeApiConfig";
24
+ readonly 'setup.current.apiConfigCount': "apiConfigCount";
25
+ readonly 'setup.current.customInstructionsSet': "set";
26
+ readonly 'setup.current.provider': "Provider";
27
+ readonly 'setup.current.baseUrl': "Base URL";
28
+ readonly 'setup.current.model': "Model";
29
+ readonly 'setup.current.apiKey': "API Key";
30
+ readonly 'setup.current.contextWindow': "Context window";
31
+ readonly 'setup.current.maxTokens': "Max tokens";
32
+ readonly 'setup.current.reasoning': "Reasoning";
33
+ readonly 'setup.current.approvalPolicy': "Approval policy";
34
+ readonly 'setup.current.interfaceLanguage': "Interface language";
35
+ readonly 'setup.current.aiOutputLanguage': "AI output language";
36
+ readonly 'setup.current.persona': "Persona";
37
+ readonly 'setup.current.customInstructions': "Custom instructions";
38
+ readonly 'setup.current.profileFile': "Profile file";
39
+ readonly 'setup.returnToMenu': "Return to main menu?";
40
+ readonly 'setup.prompt.required': "This value is required.";
41
+ readonly 'setup.prompt.chooseFrom': "Enter one of: {values}";
42
+ readonly 'setup.url.required': "URL cannot be empty.";
43
+ readonly 'setup.url.invalid': "Enter a complete URL, for example https://api.example.com/v1";
44
+ readonly 'setup.api.noSelectableProfiles': "There are no selectable API profiles yet.";
45
+ readonly 'setup.api.selectProvider': "Select provider";
46
+ readonly 'setup.api.unknownProvider': "Unknown provider \"{provider}\".";
47
+ readonly 'setup.api.baseUrlRequired': "Base URL is required.";
48
+ readonly 'setup.api.keepKey': "API Key (leave empty to keep the current value)";
49
+ readonly 'setup.api.newKey': "API Key (optional; it can be added later)";
50
+ readonly 'setup.api.profileName': "Configuration name";
51
+ readonly 'setup.api.saved': "API configuration saved.";
52
+ readonly 'setup.api.modelLater': "discover after startup, or use /model add <model-id>";
53
+ readonly 'setup.api.makeActive': "Use this as the active API configuration?";
54
+ readonly 'setup.api.added': "Configuration added: {name}";
55
+ readonly 'setup.api.switched': "Switched to: {name}";
56
+ readonly 'setup.api.updated': "Configuration updated: {name}";
57
+ readonly 'setup.api.copied': "Configuration copied: {name}";
58
+ readonly 'setup.api.confirmDelete': "Delete \"{name}\"?";
59
+ readonly 'setup.api.deleted': "Configuration deleted: {name}";
60
+ readonly 'setup.api.profilesTitle': "API configuration profiles";
61
+ readonly 'setup.api.chooseAction': "Choose an API configuration action";
62
+ readonly 'setup.api.selectSwitch': "Which configuration should become active?";
63
+ readonly 'setup.api.selectEdit': "Which configuration should be edited?";
64
+ readonly 'setup.api.selectCopy': "Which configuration should be copied?";
65
+ readonly 'setup.api.selectDelete': "Which configuration should be deleted?";
66
+ readonly 'setup.api.actionAdd': "Create configuration - add an API profile";
67
+ readonly 'setup.api.actionSwitch': "Switch active configuration - choose the profile used by the main agent";
68
+ readonly 'setup.api.actionEdit': "Edit configuration - change provider, Base URL, and key";
69
+ readonly 'setup.api.actionCopy': "Copy configuration - create a profile from an existing one";
70
+ readonly 'setup.api.actionDelete': "Delete configuration - remove an API profile";
71
+ readonly 'setup.api.noSwitch': "There are no configurations to switch to";
72
+ readonly 'setup.api.noEdit': "There are no configurations to edit";
73
+ readonly 'setup.api.noCopy': "There are no configurations to copy";
74
+ readonly 'setup.api.noDelete': "There are no configurations to delete";
75
+ readonly 'setup.api.back': "Return to main menu";
76
+ readonly 'setup.language.invalidInterface': "Invalid setup language \"{language}\". Use zh-CN or en.";
77
+ readonly 'setup.language.invalidShared': "Invalid shared language \"{language}\". Use zh-CN or en.";
78
+ readonly 'setup.language.customRequired': "Custom AI output language requires descriptive text instead of the literal value \"custom\".";
79
+ readonly 'setup.language.saved': "Language configuration saved.";
80
+ readonly 'setup.language.title': "Language configuration";
81
+ readonly 'setup.language.interface': "Setup and TUI interface language";
82
+ readonly 'setup.language.aiOutput': "Default AI output language";
83
+ readonly 'setup.language.followUser': "Follow user language";
84
+ readonly 'setup.language.simplifiedChinese': "Simplified Chinese";
85
+ readonly 'setup.language.custom': "Custom language or tone";
86
+ readonly 'setup.language.customPrompt': "Describe the custom output language or tone";
87
+ readonly 'setup.language.english': "English";
88
+ readonly 'setup.language.japanese': "Japanese";
89
+ readonly 'setup.language.korean': "Korean";
90
+ readonly 'setup.language.customLabel': "Custom language";
91
+ readonly 'setup.persona.customFallback': "Custom Persona";
92
+ readonly 'setup.persona.defaultCustomName': "My TurboFlux";
93
+ readonly 'setup.persona.defaultPrompt': "Use a precise, product-grade engineering style.\nBalance execution speed with careful verification.";
94
+ readonly 'setup.api.customName': "Custom API";
95
+ readonly 'setup.persona.skipped': "Persona configuration skipped.";
96
+ readonly 'setup.persona.unknown': "Unknown persona: {personas}.";
97
+ readonly 'setup.persona.oneRequired': "At least one persona must be enabled.";
98
+ readonly 'setup.persona.unknownDefault': "Unknown persona \"{persona}\".";
99
+ readonly 'setup.persona.customPromptRequired': "The custom persona cannot be the default until a custom persona prompt is configured interactively.";
100
+ readonly 'setup.persona.saved': "Persona configuration saved.";
101
+ readonly 'setup.persona.title': "Available personas and output styles";
102
+ readonly 'setup.persona.selectEnabled': "Select enabled personas (Space toggles, Enter confirms)";
103
+ readonly 'setup.persona.default': "Default persona";
104
+ readonly 'setup.persona.custom': "Custom persona";
105
+ readonly 'setup.persona.customName': "Custom persona name";
106
+ readonly 'setup.persona.customPrompt': "Edit custom persona prompt";
107
+ readonly 'setup.persona.customPromptEmpty': "Custom persona prompt cannot be empty.";
108
+ readonly 'setup.instructions.saved': "Global instructions saved.";
109
+ readonly 'setup.instructions.edit': "Edit global custom instructions (optional)";
110
+ readonly 'setup.approval.invalid': "Approval policy must be ask, agent, or full.";
111
+ readonly 'setup.approval.title': "Approval policy";
112
+ readonly 'setup.approval.ask': "Request approval - ask before changes, commands, and external actions";
113
+ readonly 'setup.approval.agent': "Approve low risk - continue routine workspace actions and ask on risk";
114
+ readonly 'setup.approval.full': "Full access - no approval prompts or workspace restrictions";
115
+ readonly 'setup.approval.saved': "Approval policy: {policy}";
116
+ readonly 'setup.init.editInstructions': "Edit global custom instructions now?";
117
+ readonly 'setup.init.done': "Done. You can now run: turboflux <workspace>";
118
+ readonly 'setup.reset.confirm': "Reset global TurboFlux configuration? API keys, model profiles, personas, and language will return to defaults. Conversations and workspace .turboflux data will be retained.";
119
+ readonly 'setup.reset.done': "Global configuration reset. Conversations and workspace data were retained.";
120
+ readonly 'setup.menu.title': "Select action";
121
+ readonly 'setup.menu.init': "1. Full initialization - language + API + persona + custom instructions";
122
+ readonly 'setup.menu.api': "2. API configuration profiles";
123
+ readonly 'setup.menu.language': "3. Language configuration";
124
+ readonly 'setup.menu.persona': "4. Persona / output style";
125
+ readonly 'setup.menu.instructions': "5. Global custom instructions";
126
+ readonly 'setup.menu.approval': "6. Approval policy";
127
+ readonly 'setup.menu.show': "7. Show current configuration";
128
+ readonly 'setup.menu.reset': "8. Reset local configuration";
129
+ readonly 'setup.menu.exit': "Q. Exit";
130
+ readonly 'setup.menu.input': "Enter option";
131
+ readonly 'ui.app.globalReloaded': "Global setup reloaded: {provider} / {model} · persona {persona}";
132
+ readonly 'ui.app.globalPending': "Global setup changed · applies after current run";
133
+ readonly 'ui.app.globalReloadFailed': "Global setup reload failed: {message}";
134
+ readonly 'ui.app.commandActivity': "{detail}…";
135
+ readonly 'ui.app.executingCommand': "Executing global command";
136
+ readonly 'ui.app.loadingConversations': "Loading conversations";
137
+ readonly 'ui.app.restoringConversation': "Restoring conversation";
138
+ readonly 'ui.app.deletingConversation': "Deleting conversation";
139
+ readonly 'ui.app.refreshingModels': "Refreshing models";
140
+ readonly 'ui.app.commandFailed': "{command} failed: {message}";
141
+ readonly 'ui.app.conversationUnavailable': "The saved conversation is no longer available.";
142
+ readonly 'ui.app.backgroundFinished': "Background terminal {session} {status} after {duration}{exit}.\n{command}{log}";
143
+ readonly 'ui.app.protocolFallback': "Protocol fallback: {message} → {url}";
144
+ readonly 'ui.app.protocolMismatch': "request format mismatch";
145
+ readonly 'ui.app.noProvider': "No model provider is configured yet. Exit and run `turboflux setup`, or set `/config apiKey <key>` manually.";
146
+ readonly 'ui.app.confirmationNeeded': "Confirmation needed";
147
+ readonly 'ui.app.modelMounted': "Mounted {model}";
148
+ readonly 'ui.app.modelSwitched': "Model switched to {model}";
149
+ readonly 'ui.app.reasoningSet': "Reasoning effort set to {value}";
150
+ readonly 'ui.app.cursorHint': "Message cursor: Up/Down navigate - Enter/Esc exit";
151
+ readonly 'ui.app.selectedMessage': "Selected message {current}/{total}";
152
+ readonly 'ui.app.modelDiscoveryRunning': "Model discovery is still running. Try again shortly, or use `/model add <model-id>`.";
153
+ readonly 'ui.app.noModelMounted': "No model is mounted. Use `/model` or `/model add <model-id>`.";
154
+ readonly 'ui.app.clipboardImageMissing': "No image was found in the clipboard. Copy an image or paste an image file path.";
155
+ readonly 'ui.app.runInterrupted': "Interrupted current agent run.";
156
+ readonly 'ui.app.exitHint': "Press Ctrl+C again to exit.";
157
+ readonly 'ui.app.shellSession': "(shell session)";
158
+ readonly 'ui.app.exitCode': " (exit {code})";
159
+ readonly 'ui.app.logPath': "\nLog: {path}";
160
+ readonly 'ui.app.persistenceUnavailable': "Conversation history is unavailable: {message}";
161
+ readonly 'ui.app.persistenceBlocked': "Conversation persistence is degraded. Input is preserved; run /flow retry or /flow export [path].";
162
+ readonly 'ui.app.guidanceRestored': "Guidance restored to the editor";
163
+ readonly 'ui.app.reviewRequired': "Review required";
164
+ readonly 'ui.app.inputRequired': "Input required";
165
+ readonly 'ui.app.agentTurnComplete': "Agent turn complete";
166
+ readonly 'ui.app.subagentResultReady': "{agent} result ready";
167
+ readonly 'ui.app.subagentFailed': "{agent} failed";
168
+ readonly 'ui.app.backgroundTerminalStatus': "Background terminal {status}";
169
+ readonly 'ui.app.runFailed': "Run failed";
170
+ readonly 'ui.app.recoveredApprovals': "{count} interrupted approval request(s) were recovered as history and were not executed.";
171
+ readonly 'ui.app.actionReviewDelayed': "Action required - review opens after typing pauses";
172
+ readonly 'ui.app.actionInputDelayed': "Action required - input prompt opens after typing pauses";
173
+ readonly 'ui.landing.prompt': "What should we build?";
174
+ readonly 'ui.sidebar.status': "STATUS";
175
+ readonly 'ui.sidebar.session': "SESSION";
176
+ readonly 'ui.sidebar.context': "CONTEXT";
177
+ readonly 'ui.sidebar.repo': "REPO";
178
+ readonly 'ui.sidebar.runtime': "RUNTIME";
179
+ readonly 'ui.sidebar.model': "Model";
180
+ readonly 'ui.sidebar.profile': "Profile";
181
+ readonly 'ui.sidebar.used': "Used";
182
+ readonly 'ui.sidebar.io': "I/O";
183
+ readonly 'ui.sidebar.state': "State";
184
+ readonly 'ui.sidebar.branch': "Branch";
185
+ readonly 'ui.sidebar.changes': "Changes";
186
+ readonly 'ui.sidebar.tracking': "Tracking";
187
+ readonly 'ui.sidebar.operation': "Operation";
188
+ readonly 'ui.sidebar.terminal': "Terminal";
189
+ readonly 'ui.sidebar.running': "Running";
190
+ readonly 'ui.sidebar.queued': "Queued";
191
+ readonly 'ui.sidebar.notMounted': "not mounted";
192
+ readonly 'ui.sidebar.provider': "provider";
193
+ readonly 'ui.sidebar.waiting': "waiting";
194
+ readonly 'ui.sidebar.cacheOut': "{cache} cache / {output} out";
195
+ readonly 'ui.models.title': "Models";
196
+ readonly 'ui.models.search': "Search";
197
+ readonly 'ui.models.filter': "type to filter";
198
+ readonly 'ui.models.none': "No matching chat models.";
199
+ readonly 'ui.models.keys': "Up/Down select Enter apply Esc close";
200
+ readonly 'ui.models.refresh': "Ctrl+R refresh";
201
+ readonly 'ui.effort.title': "Reasoning effort";
202
+ readonly 'ui.effort.none': "Disable reasoning for the fastest response.";
203
+ readonly 'ui.effort.minimal': "Use only lightweight reasoning.";
204
+ readonly 'ui.effort.low': "Prioritize latency and cost.";
205
+ readonly 'ui.effort.medium': "Balanced reasoning for everyday work.";
206
+ readonly 'ui.effort.high': "Spend more reasoning on difficult tasks.";
207
+ readonly 'ui.effort.xhigh': "Extended reasoning for complex engineering work.";
208
+ readonly 'ui.effort.max': "Use the model maximum reasoning effort.";
209
+ readonly 'ui.effort.disableThinking': "Disable extended thinking.";
210
+ readonly 'ui.effort.disableReasoning': "Disable model reasoning.";
211
+ readonly 'ui.effort.enableReasoning': "Enable model reasoning.";
212
+ readonly 'ui.effort.budget': "Allow up to {tokens} thinking tokens.";
213
+ readonly 'ui.effort.off': "Off";
214
+ readonly 'ui.effort.on': "On";
215
+ readonly 'ui.effort.keys': "Up/Down select Enter apply Esc close";
216
+ readonly 'ui.permission.title': "Permission request";
217
+ readonly 'ui.permission.review': "REVIEW";
218
+ readonly 'ui.permission.tool': "Tool";
219
+ readonly 'ui.permission.target': "Target";
220
+ readonly 'ui.permission.reason': "Reason";
221
+ readonly 'ui.permission.allowOnce': "Allow once";
222
+ readonly 'ui.permission.allowOnceDescription': "Approve only this request";
223
+ readonly 'ui.permission.allowRun': "Allow for this run";
224
+ readonly 'ui.permission.allowRunDescription': "Approve matching actions until this task ends";
225
+ readonly 'ui.permission.allowSession': "Allow for this session";
226
+ readonly 'ui.permission.allowSessionDescription': "Remember matching requests until exit";
227
+ readonly 'ui.permission.deny': "Deny";
228
+ readonly 'ui.permission.denyDescription': "Block this request and return to the agent";
229
+ readonly 'ui.permission.keys': "1/2/3/4 choose - arrows + Enter confirm";
230
+ readonly 'ui.rewind.title': "Rewind conversation";
231
+ readonly 'ui.rewind.subtitle': "Restore to before a message:";
232
+ readonly 'ui.rewind.keys': "Up/Down navigate - Enter rewind - Esc cancel";
233
+ readonly 'ui.conversations.title': "Conversations";
234
+ readonly 'ui.conversations.none': "No saved conversations. Press ESC to go back.";
235
+ readonly 'ui.conversations.selectKeys': " - Up/Down select, Enter confirm, Esc back";
236
+ readonly 'ui.conversations.openKeys': " - Up/Down select, Enter open, Esc back";
237
+ readonly 'ui.conversations.enter': "Enter conversation";
238
+ readonly 'ui.conversations.delete': "Delete conversation";
239
+ readonly 'ui.conversations.justNow': "just now";
240
+ readonly 'ui.conversations.minutesAgo': "{count}m ago";
241
+ readonly 'ui.conversations.hoursAgo': "{count}h ago";
242
+ readonly 'ui.conversations.daysAgo': "{count}d ago";
243
+ readonly 'ui.message.changes': "Changes";
244
+ readonly 'ui.message.answer': "Answer";
245
+ readonly 'ui.message.systemCount': "> {count} system messages";
246
+ readonly 'ui.recovery.toolResult': "Interrupted: tool result was not recorded before restart.";
247
+ readonly 'ui.recovery.assistant': "Interrupted: assistant response was not recorded before restart.";
248
+ readonly 'ui.diff.unavailableRead': "diff unavailable: the updated file could not be read after the tool completed";
249
+ readonly 'ui.diff.tooLarge': "diff omitted: file snapshot is too large";
250
+ readonly 'ui.diff.noSnapshot': "diff unavailable: no file snapshot captured";
251
+ readonly 'ui.diff.created': "created";
252
+ readonly 'ui.diff.deleted': "deleted";
253
+ readonly 'ui.diff.modified': "modified";
254
+ readonly 'ui.diff.lines': "{count} lines";
255
+ readonly 'ui.diff.limit': "diff unavailable: snapshots {before} -> {after} exceed the {limit} inline safety limit";
256
+ readonly 'ui.diff.unknownSize': "unknown";
257
+ readonly 'ui.work.label': "Work";
258
+ readonly 'ui.work.mainAgent': "MAIN AGENT";
259
+ readonly 'ui.activity.title': "Activity";
260
+ readonly 'ui.activity.summaryWorking': "active calls: {count}";
261
+ readonly 'ui.activity.summaryComplete': "completed calls: {count}";
262
+ readonly 'ui.activity.summaryFailed': "incomplete calls: {count}";
263
+ readonly 'ui.activity.outputTokens': " / +{count} tokens";
264
+ readonly 'ui.activity.phase.ready': "Ready";
265
+ readonly 'ui.activity.phase.thinking': "Thinking...";
266
+ readonly 'ui.activity.phase.working': "Working...";
267
+ readonly 'ui.activity.phase.awaitingApproval': "Waiting for approval...";
268
+ readonly 'ui.activity.phase.awaitingInput': "Waiting for input...";
269
+ readonly 'ui.activity.phase.paused': "Paused";
270
+ readonly 'ui.activity.phase.stopping': "Stopping...";
271
+ readonly 'ui.activity.phase.recovering': "Recovering...";
272
+ readonly 'ui.activity.phase.done': "Done";
273
+ readonly 'ui.runState.ready': "READY";
274
+ readonly 'ui.runState.planning': "PLANNING";
275
+ readonly 'ui.runState.executing': "EXECUTING";
276
+ readonly 'ui.runState.reviewRequired': "REVIEW REQUIRED";
277
+ readonly 'ui.runState.inputRequired': "INPUT REQUIRED";
278
+ readonly 'ui.runState.paused': "PAUSED";
279
+ readonly 'ui.runState.stopping': "STOPPING";
280
+ readonly 'ui.runState.recovering': "RECOVERING";
281
+ readonly 'ui.runState.done': "DONE";
282
+ readonly 'ui.runState.queued': "{count} queued";
283
+ readonly 'ui.flow.responding': "RESPONDING";
284
+ readonly 'ui.flow.editing': "EDITING";
285
+ readonly 'ui.flow.running': "RUNNING";
286
+ readonly 'ui.flow.exploring': "EXPLORING";
287
+ readonly 'ui.flow.delegating': "DELEGATING";
288
+ readonly 'ui.flow.working': "WORKING";
289
+ readonly 'ui.flow.background': "BACKGROUND";
290
+ readonly 'ui.flow.reviewPending': "Review the pending action";
291
+ readonly 'ui.flow.awaitingAnswer': "The agent is waiting for your answer";
292
+ readonly 'ui.flow.workPaused': "Work is paused";
293
+ readonly 'ui.flow.stoppingWork': "Stopping active work";
294
+ readonly 'ui.flow.retryStep': "The last step can be retried";
295
+ readonly 'ui.flow.writingResult': "Writing the result";
296
+ readonly 'ui.flow.planningNext': "Planning the next step";
297
+ readonly 'ui.flow.continuingTask': "Continuing the current task";
298
+ readonly 'ui.flow.agentWorking': "{agent} is working";
299
+ readonly 'ui.flow.readyNext': "Ready for the next task";
300
+ readonly 'ui.flow.agentResultReady': "{agent} result ready";
301
+ readonly 'ui.flow.agentFailed': "{agent} failed";
302
+ readonly 'ui.flow.terminalsActive': "{count} terminal active";
303
+ readonly 'ui.flow.terminalsActivePlural': "{count} terminals active";
304
+ readonly 'ui.flow.queued': "{count} queued";
305
+ readonly 'ui.subagent.starting': "starting";
306
+ readonly 'ui.subagent.turn': "turn {turn}/{maxTurns}";
307
+ readonly 'ui.subagent.waitingModel': "waiting for model · {seconds}s";
308
+ readonly 'ui.subagent.retry': "retry {attempt} · {reason}";
309
+ readonly 'ui.subagent.finalizing': "finalizing result";
310
+ readonly 'ui.subagent.turnComplete': "turn {turn} complete";
311
+ readonly 'ui.subagent.resultReady': "result ready";
312
+ readonly 'ui.task.label': "Task";
313
+ readonly 'ui.task.planning': "planning";
314
+ readonly 'ui.task.tools': "tools {completed}/{total}";
315
+ readonly 'ui.task.running': "{count} running";
316
+ readonly 'ui.task.failed': "{count} failed";
317
+ readonly 'ui.task.finishing': "finishing";
318
+ readonly 'ui.task.tool.read': "read";
319
+ readonly 'ui.task.tool.readFull': "read full";
320
+ readonly 'ui.task.tool.search': "search";
321
+ readonly 'ui.task.tool.findFiles': "find files";
322
+ readonly 'ui.task.tool.symbols': "symbols";
323
+ readonly 'ui.task.tool.codemap': "codemap";
324
+ readonly 'ui.task.tool.write': "write";
325
+ readonly 'ui.task.tool.replace': "replace";
326
+ readonly 'ui.task.tool.edit': "edit";
327
+ readonly 'ui.task.tool.multiEdit': "multi-edit";
328
+ readonly 'ui.task.tool.shell': "shell";
329
+ readonly 'ui.task.tool.readTerminal': "read terminal";
330
+ readonly 'ui.task.tool.writeTerminal': "write terminal";
331
+ readonly 'ui.task.tool.listTerminals': "list terminals";
332
+ readonly 'ui.task.tool.stopTerminal': "stop terminal";
333
+ readonly 'ui.tool.read': "Read {target}";
334
+ readonly 'ui.tool.readFull': "Read full {target}";
335
+ readonly 'ui.tool.list': "List {target}";
336
+ readonly 'ui.tool.write': "Write {target}";
337
+ readonly 'ui.tool.replace': "Replace {target}";
338
+ readonly 'ui.tool.edit': "Edit {target}";
339
+ readonly 'ui.tool.delete': "Delete {target}";
340
+ readonly 'ui.tool.search': "Search \"{target}\"";
341
+ readonly 'ui.tool.find': "Find {target}";
342
+ readonly 'ui.tool.symbol': "Symbol {target}";
343
+ readonly 'ui.tool.semantic': "Semantic {target}";
344
+ readonly 'ui.tool.codemap': "CodeMap{target}";
345
+ readonly 'ui.tool.web': "Web \"{target}\"";
346
+ readonly 'ui.tool.run': "Run {target}";
347
+ readonly 'ui.tool.gitStatus': "Git status";
348
+ readonly 'ui.tool.gitDiff': "Git diff{target}";
349
+ readonly 'ui.tool.gitLog': "Git log{target}";
350
+ readonly 'ui.tool.gitShow': "Git show {target}";
351
+ readonly 'ui.tool.gitStage': "Git stage paths";
352
+ readonly 'ui.tool.gitCommit': "Git commit: {target}";
353
+ readonly 'ui.tool.gitRestore': "Git restore {target}";
354
+ readonly 'ui.tool.gitRevert': "Git revert {target}";
355
+ readonly 'ui.tool.gitBranch': "Git branch +{target}";
356
+ readonly 'ui.tool.gitSwitch': "Git switch {target}";
357
+ readonly 'ui.tool.gitStash': "Git stash {target}";
358
+ readonly 'ui.tool.gitPush': "Git push {target}";
359
+ readonly 'ui.tool.task': "Task: {target}";
360
+ readonly 'ui.tool.createTasks': "Create tasks";
361
+ readonly 'ui.tool.updateTask': "Update task";
362
+ readonly 'ui.tool.listTasks': "List tasks";
363
+ readonly 'ui.tool.ask': "Ask: {target}";
364
+ readonly 'ui.tool.notify': "Notify: {target}";
365
+ readonly 'ui.tool.subagent': "Subagent: {target}";
366
+ readonly 'ui.tool.running.read': "Reading {target}";
367
+ readonly 'ui.tool.running.readFull': "Reading full {target}";
368
+ readonly 'ui.tool.running.list': "Listing {target}";
369
+ readonly 'ui.tool.running.write': "Writing {target}";
370
+ readonly 'ui.tool.running.replace': "Replacing {target}";
371
+ readonly 'ui.tool.running.edit': "Editing {target}";
372
+ readonly 'ui.tool.running.delete': "Deleting {target}";
373
+ readonly 'ui.tool.running.search': "Searching {target}";
374
+ readonly 'ui.tool.running.find': "Finding {target}";
375
+ readonly 'ui.tool.running.symbol': "Indexing symbols {target}";
376
+ readonly 'ui.tool.running.semantic': "Searching semantically {target}";
377
+ readonly 'ui.tool.running.codemap': "Mapping code{target}";
378
+ readonly 'ui.tool.running.web': "Searching web {target}";
379
+ readonly 'ui.tool.running.run': "Running {target}";
380
+ readonly 'ui.tool.running.default': "Running {target}";
381
+ readonly 'ui.tool.preparing': "Preparing {tool}";
382
+ readonly 'ui.tool.preparingPath': "Preparing {tool}: {path}";
383
+ readonly 'ui.tool.name.readFile': "Read file";
384
+ readonly 'ui.tool.name.readFull': "Read full file";
385
+ readonly 'ui.tool.name.listDirectory': "List directory";
386
+ readonly 'ui.tool.name.writeFile': "Write file";
387
+ readonly 'ui.tool.name.replaceFile': "Replace file";
388
+ readonly 'ui.tool.name.editFile': "Edit file";
389
+ readonly 'ui.tool.name.multiEdit': "Edit files";
390
+ readonly 'ui.tool.name.deleteFile': "Delete file";
391
+ readonly 'ui.tool.name.searchContent': "Search content";
392
+ readonly 'ui.tool.name.searchFiles': "Find files";
393
+ readonly 'ui.tool.name.searchSymbols': "Search symbols";
394
+ readonly 'ui.tool.name.searchSemantic': "Semantic search";
395
+ readonly 'ui.tool.name.codemap': "CodeMap";
396
+ readonly 'ui.tool.name.webSearch': "Web search";
397
+ readonly 'ui.tool.name.runCommand': "Run command";
398
+ readonly 'ui.thinking.reasoning': "Reasoning";
399
+ readonly 'ui.thinking.thought': "Thought";
400
+ readonly 'ui.thinking.interrupted': "interrupted";
401
+ readonly 'ui.terminal.background': "{count} background running · {duration} · {title} · /ps view · /stop close";
402
+ readonly 'ui.queue.item': "> queued {index} ";
403
+ readonly 'ui.queue.steeringItem': "> steering {index} ";
404
+ readonly 'ui.queue.images': " +{count} images";
405
+ readonly 'ui.queue.image': " +1 image";
406
+ readonly 'ui.header.workspace': "workspace {path}";
407
+ readonly 'ui.header.setupRequired': "setup required";
408
+ readonly 'ui.prompt.plan': "Describe what to plan...";
409
+ readonly 'ui.prompt.default': "What are we building today?";
410
+ readonly 'ui.status.noModel': "no model connection";
411
+ readonly 'ui.status.gitOff': "git:off";
412
+ readonly 'ui.status.gitDetecting': "git:detecting";
413
+ readonly 'ui.status.gitUnavailable': "git:unavailable";
414
+ readonly 'ui.status.gitError': "git:error";
415
+ readonly 'ui.status.gitClean': "clean";
416
+ readonly 'ui.status.gitChanged': "{count} changed";
417
+ readonly 'ui.status.history': "history";
418
+ readonly 'ui.status.unknown': "unknown";
419
+ readonly 'ui.status.action': "ACTION";
420
+ readonly 'ui.status.alert': "ALERT";
421
+ readonly 'ui.status.stop': "STOP";
422
+ readonly 'ui.status.reply': "REPLY";
423
+ readonly 'ui.status.work': "WORK";
424
+ readonly 'ui.status.inbox': "inbox:{count}";
425
+ readonly 'ui.status.queue': "queue:{count}";
426
+ readonly 'ui.status.background': "bg:{count}";
427
+ readonly 'ui.status.activity.ready': "Ready";
428
+ readonly 'ui.status.activity.thinking': "Thinking";
429
+ readonly 'ui.status.activity.working': "Working";
430
+ readonly 'ui.status.activity.responding': "Responding";
431
+ readonly 'ui.status.activity.reviewRequired': "Review required";
432
+ readonly 'ui.status.activity.inputRequired': "Input required";
433
+ readonly 'ui.status.activity.stopping': "Stopping";
434
+ readonly 'ui.status.activity.interrupted': "Interrupted";
435
+ readonly 'ui.status.activity.needsAttention': "Needs attention";
436
+ readonly 'ui.status.activity.historyUnavailable': "History unavailable";
437
+ readonly 'ui.status.activity.detail': "{activity}: {detail}";
438
+ readonly 'ui.flow.input.pending': "Pending · waiting for agent acknowledgement";
439
+ readonly 'ui.flow.input.steeringPending': "Steering pending · waiting for acknowledgement";
440
+ readonly 'ui.flow.input.steering': "Steering · updating the current run";
441
+ readonly 'ui.flow.input.queued': "{count} queued · runs after the current turn";
442
+ readonly 'ui.flow.input.committed': "Sent · agent acknowledged";
443
+ readonly 'ui.flow.input.steered': "Steered · current run updated";
444
+ readonly 'ui.flow.input.restored': "Restored · input returned to the editor";
445
+ readonly 'ui.flow.resultsReady': "{count} background result(s) ready · /inbox view · /inbox clear acknowledge";
446
+ readonly 'ui.flow.controls.running': "Enter guides current run · Ctrl/⌘+Enter queues next · {count} queued";
447
+ readonly 'ui.flow.controls.queued': "{count} queued · runs after the current turn";
448
+ readonly 'ui.diff.moreHidden': " ... {count} more diff lines hidden";
449
+ readonly 'command.unknown': "Unknown command: /{command}. Type /help for available commands.";
450
+ readonly 'command.available': "Available commands:";
451
+ readonly 'command.exit.description': "Exit TurboFlux";
452
+ readonly 'command.clear.description': "Clear conversation history";
453
+ readonly 'command.help.description': "Show available commands";
454
+ readonly 'command.config.description': "View or set configuration";
455
+ readonly 'command.setup.description': "Show setup command for provider, language, and persona configuration";
456
+ readonly 'command.model.description': "Discover and switch models available to the active API";
457
+ readonly 'command.plan.description': "Switch to plan mode (read-only -> plan -> approve -> execute)";
458
+ readonly 'command.vibe.description': "Switch to vibe mode (full autonomous execution)";
459
+ readonly 'command.git.description': "Show, enable, disable, or refresh structured Git integration.";
460
+ readonly 'command.ps.description': "Show background terminal sessions and recent results";
461
+ readonly 'command.inbox.description': "Show or clear completed background results";
462
+ readonly 'command.flow.description': "Inspect or recover the developer flow safety state";
463
+ readonly 'command.stop.description': "Stop background terminals";
464
+ readonly 'command.compact.description': "Compress conversation context to free up token budget";
465
+ readonly 'command.context.description': "Show context window usage";
466
+ readonly 'command.theme.description': "Switch color theme";
467
+ readonly 'command.effort.description': "Adjust the active model native reasoning effort";
468
+ readonly 'command.approval.description': "Set approval policy";
469
+ readonly 'command.capability.description': "Set runtime capability boundary";
470
+ readonly 'command.mcp.description': "Show MCP server status and tools";
471
+ readonly 'command.skills.description': "List available skills";
472
+ readonly 'command.new.description': "Start a new conversation";
473
+ readonly 'command.list.description': "List saved conversations";
474
+ readonly 'command.resume.description': "Open saved conversations and resume one";
475
+ readonly 'command.init.description': "Show TURBOFLUX.md project instruction status";
476
+ readonly 'command.clear.done': "Conversation cleared.";
477
+ readonly 'command.config.current': "Current config:";
478
+ readonly 'command.config.set': "Set {key} = {value}";
479
+ readonly 'command.config.error': "Config error: {message}";
480
+ readonly 'command.setup.instructions': "Run this outside the TurboFlux session:\n\n turboflux setup\n turboflux setup init\n turboflux setup api\n turboflux setup language\n turboflux setup persona\n turboflux setup show\n\nExamples:\n turboflux setup init --provider openai --api-key <key> --yes\n turboflux setup api --provider deepseek --api-key <key>\n turboflux setup language --all-lang zh-CN --yes\n turboflux setup persona --output-style all --default-output-style engineer-professional --yes";
481
+ readonly 'command.model.current': "Current: {model}";
482
+ readonly 'command.model.available': "Available models:";
483
+ readonly 'command.model.none': "(none)";
484
+ readonly 'command.model.usage': "Usage: /model add <model-id>";
485
+ readonly 'command.model.mounted': "Mounted model: {model}";
486
+ readonly 'command.model.switchedPreset': "Switched to {name} ({model})";
487
+ readonly 'command.model.switched': "Model switched to: {model}";
488
+ readonly 'command.plan.done': "Switched to plan mode.";
489
+ readonly 'command.vibe.done': "Switched to vibe mode.";
490
+ readonly 'command.git.disabled': "Git integration disabled.";
491
+ readonly 'command.git.enabled': "Git integration enabled. Detecting repository state.";
492
+ readonly 'command.git.refreshing': "Refreshing Git repository state.";
493
+ readonly 'command.git.usage': "Usage: /git [on|off|refresh]";
494
+ readonly 'command.git.phase': "Git: {phase}";
495
+ readonly 'command.git.branch': "Branch: {branch}";
496
+ readonly 'command.git.changes': "Changes: {staged} staged, {unstaged} unstaged, {untracked} untracked, {conflicted} conflicted";
497
+ readonly 'command.git.tracking': "Tracking: +{ahead} / -{behind}";
498
+ readonly 'command.git.operation': "Last operation: {name} ({status}){hash}";
499
+ readonly 'command.ps.none': "No background terminal sessions.";
500
+ readonly 'command.ps.title': "Background terminals ({count}):";
501
+ readonly 'command.ps.exit': " · exit {code}";
502
+ readonly 'command.ps.pid': " · pid {pid}";
503
+ readonly 'command.ps.recovered': " · recovered/read-only";
504
+ readonly 'command.inbox.unavailable': "Result inbox is unavailable.";
505
+ readonly 'command.inbox.cleared': "Acknowledged {count} background result(s).";
506
+ readonly 'command.inbox.alreadyClear': "Result inbox is already clear.";
507
+ readonly 'command.inbox.usage': "Usage: /inbox [clear]";
508
+ readonly 'command.inbox.none': "No background results are waiting.";
509
+ readonly 'command.inbox.title': "Background results ({count}):";
510
+ readonly 'command.inbox.reviewHint': "Run /inbox clear after reviewing them.";
511
+ readonly 'command.flow.unavailable': "Flow recovery control is unavailable.";
512
+ readonly 'command.flow.usage': "Usage: /flow [status|retry|export [path]]";
513
+ readonly 'command.flow.status': "Persistence: {status}";
514
+ readonly 'command.flow.healthy': "healthy";
515
+ readonly 'command.flow.degraded': "degraded (new agent side effects are blocked)";
516
+ readonly 'command.flow.pending': "Pending recovery entries: {recovery}; buffered streaming entries: {streaming}";
517
+ readonly 'command.flow.features': "Flow blocks: {features}";
518
+ readonly 'command.flow.featuresUnknown': "unknown";
519
+ readonly 'command.flow.error': "Last persistence error: {message}";
520
+ readonly 'command.flow.retrySucceeded': "Conversation persistence recovered. New agent runs are enabled again.";
521
+ readonly 'command.flow.retryFailed': "Persistence retry failed: {message}";
522
+ readonly 'command.flow.unknownError': "unknown error";
523
+ readonly 'command.flow.exported': "Read-only recovery bundle exported to {path}";
524
+ readonly 'command.flow.exportFailed': "Recovery export failed: {message}";
525
+ readonly 'command.stop.unavailable': "Runtime task manager is unavailable.";
526
+ readonly 'command.stop.noMatch': "No running terminal matches {session}.";
527
+ readonly 'command.stop.none': "No background terminals are running.";
528
+ readonly 'command.stop.readOnly': "{count} recovered terminal sessions are observable but cannot be stopped from this runtime. Stop the listed PID through the operating system.";
529
+ readonly 'command.stop.reason': "Stopped with /stop";
530
+ readonly 'command.stop.stopping': "Stopping {count} background terminals...";
531
+ readonly 'command.stop.stoppingOne': "Stopping 1 background terminal...";
532
+ readonly 'command.compact.triggered': "Context compaction triggered.";
533
+ readonly 'command.context.unknown': "Context usage: unknown / {window} tokens";
534
+ readonly 'command.context.waiting': " Waiting for provider-reported usage from the next model response.";
535
+ readonly 'command.context.noEstimate': " Local character/token estimates are intentionally not used for this number.";
536
+ readonly 'command.context.usage': "Context usage: {used} / {window} tokens ({percent}%)";
537
+ readonly 'command.context.input': " Last provider prompt_tokens: {tokens}";
538
+ readonly 'command.context.output': " Last provider completion_tokens: {tokens}";
539
+ readonly 'command.theme.usage': "Usage: /theme <dark|light>";
540
+ readonly 'command.theme.switched': "Theme switched to: {theme} (will apply on next render)";
541
+ readonly 'command.effort.unsupported': "{model} does not expose adjustable reasoning.";
542
+ readonly 'command.effort.thisModel': "This model";
543
+ readonly 'command.effort.summary': "Effort: {current}\nAvailable: {available}";
544
+ readonly 'command.effort.fixed': "fixed by model";
545
+ readonly 'command.effort.budget': "<token budget>";
546
+ readonly 'command.effort.noToggle': "This model keeps reasoning enabled and does not expose a toggle.";
547
+ readonly 'command.effort.budgetOptions': "on, off, or a token budget such as 8192";
548
+ readonly 'command.effort.available': "Available: {available}";
549
+ readonly 'command.effort.set': "Effort set to {effort}.";
550
+ readonly 'command.approval.current': "Approval policy: {label} ({policy})";
551
+ readonly 'command.approval.usage': "Usage: /approval <ask|agent|full>";
552
+ readonly 'command.approval.ask': "Request approval";
553
+ readonly 'command.approval.agent': "Approve low risk";
554
+ readonly 'command.approval.full': "Full access";
555
+ readonly 'command.capability.current': "Capability profile: {label} ({profile})";
556
+ readonly 'command.capability.usage': "Usage: /capability <read-only|workspace-write|danger-full-access>";
557
+ readonly 'command.capability.set': "Capability profile set to {label} ({profile}).";
558
+ readonly 'command.mcp.uninitialized': "MCP not initialized. Configure servers in .turboflux/settings.json";
559
+ readonly 'command.mcp.none': "No MCP servers configured.";
560
+ readonly 'command.mcp.noTools': "No MCP tools available.";
561
+ readonly 'command.mcp.tools': "MCP tools ({count}):";
562
+ readonly 'command.mcp.servers': "MCP servers ({count}):";
563
+ readonly 'command.mcp.toolCount': "{count} tools";
564
+ readonly 'command.mcp.hint': "Use /mcp tools to list all available tools.";
565
+ readonly 'command.skills.unavailable': "Skill runtime not available.";
566
+ readonly 'command.skills.none': "No skills found.\nPlace SKILL.md files in .turboflux/skills/<name>/ or ~/.turboflux/skills/<name>/";
567
+ readonly 'command.skills.active': " * active";
568
+ readonly 'command.skills.available': "Available skills ({count}):";
569
+ readonly 'command.conversation.unavailable': "Conversation manager not available.";
570
+ readonly 'command.conversation.persistenceBlocked': "Conversation persistence is degraded. Run /flow retry or /flow export before changing sessions.";
571
+ readonly 'command.conversation.started': "Started new conversation.";
572
+ readonly 'command.conversation.none': "No saved conversations.";
573
+ readonly 'command.conversation.turns': "{count} turns";
574
+ readonly 'command.conversation.id': "ID: {id}";
575
+ readonly 'command.conversation.total': "Conversations ({count} total):";
576
+ readonly 'command.init.active': "TURBOFLUX.md is already active at {path}. TurboFlux loads it automatically.";
577
+ readonly 'command.init.created': "Created TURBOFLUX.md at {path}. TurboFlux will load it automatically.";
578
+ readonly 'command.init.template': "# {projectName}\n\n## Project Overview\n\n<!-- Describe what this project does -->\n\n## Tech Stack\n\n{techStack}\n\n## Directory Structure\n\n{structure}\n\n## Coding Rules\n\n- <!-- Add coding conventions here -->\n\n## Architecture Decisions\n\n- <!-- Document key design decisions -->\n\n## Known Pitfalls\n\n- <!-- Things to watch out for -->\n";
579
+ readonly 'command.init.unknownStack': "- <!-- Detected: unknown -->";
580
+ readonly 'command.init.empty': "- <!-- empty -->";
581
+ readonly 'command.init.scanFailed': "- <!-- could not scan -->";
582
+ readonly 'cli.description': "TurboFlux - workspace assistant CLI";
583
+ readonly 'cli.workspace': "workspace directory";
584
+ readonly 'cli.modelOverride': "temporarily override model for this session";
585
+ readonly 'cli.providerOverride': "temporarily override API provider for this session";
586
+ readonly 'cli.command': "single-shot mode: run prompt and exit";
587
+ readonly 'cli.verbose': "show tool call details";
588
+ readonly 'cli.noFlicker': "keep the fixed alternate-screen viewport";
589
+ readonly 'cli.scrollback': "use classic terminal scrollback instead of the fixed cockpit";
590
+ readonly 'cli.noAnimation': "skip the startup reveal animation";
591
+ readonly 'cli.noColor': "disable color output";
592
+ readonly 'cli.transparent': "do not paint terminal background; let emulator transparency show through";
593
+ readonly 'cli.opaque': "force solid theme backgrounds, overriding TURBOFLUX_TRANSPARENT";
594
+ readonly 'cli.approvalPolicy': "tool approval policy: ask, agent, or full";
595
+ readonly 'cli.capabilityProfile': "runtime capability: read-only, workspace-write, or danger-full-access";
596
+ readonly 'cli.mcp': "explicitly start configured MCP servers (comma-separated names or all)";
597
+ readonly 'cli.invalidApproval': "Invalid approval policy: {policy}";
598
+ readonly 'cli.invalidCapability': "Invalid capability profile: {profile}";
599
+ readonly 'cli.config.description': "Manage configuration";
600
+ readonly 'cli.config.action': "set or show";
601
+ readonly 'cli.config.key': "config key";
602
+ readonly 'cli.config.value': "config value";
603
+ readonly 'cli.config.usage': "Usage: turboflux config set <key> <value>\n turboflux config show";
604
+ readonly 'cli.setup.description': "Configure TurboFlux provider, language, persona, and custom behavior";
605
+ readonly 'cli.setup.provider': "provider preset (openai, anthropic, deepseek, kimi, glm, openrouter, custom)";
606
+ readonly 'cli.setup.apiKey': "provider API key";
607
+ readonly 'cli.setup.baseUrl': "custom base URL";
608
+ readonly 'cli.setup.model': "model name";
609
+ readonly 'cli.setup.sharedLanguage': "set both setup UI and AI output language when possible";
610
+ readonly 'cli.setup.interfaceLanguage': "setup UI/config language (zh-CN, en)";
611
+ readonly 'cli.setup.aiLanguage': "AI output language (follow-user, zh-CN, en, ja, ko, or custom text)";
612
+ readonly 'cli.setup.personas': "comma-separated available personas, \"all\", or \"skip\"";
613
+ readonly 'cli.setup.defaultPersona': "default persona/output style";
614
+ readonly 'cli.setup.instructions': "global custom instructions injected into TurboFlux";
615
+ readonly 'cli.setup.approval': "approval policy (ask, agent, or full)";
616
+ readonly 'cli.setup.yes': "accept defaults for missing options";
617
+ readonly 'cli.setup.error': "Setup error: {message}";
618
+ readonly 'repl.commandFailed': "TurboFlux command failed: {message}";
619
+ readonly 'repl.noApiKey': "\n No API key configured. Run \"turboflux setup\" to connect a model provider.\n";
620
+ readonly 'repl.transparent': " Transparent terminal background enabled. Use \"turboflux --opaque\" to force solid backgrounds.\n";
621
+ readonly 'repl.mcpEnabled': "\n MCP explicitly enabled:\n {commands}\n";
622
+ readonly 'single.noApiKey': "No API key configured. Run \"turboflux setup\" first.";
623
+ readonly 'single.noModel': "No model is mounted. Configure a model or run TurboFlux interactively and use /model.";
624
+ readonly 'single.thinking': "thinking";
625
+ readonly 'single.protocolFallback': "protocol fallback";
626
+ readonly 'single.agent': "agent";
627
+ readonly 'single.agentStarted': "{agent} started";
628
+ readonly 'single.agentFinished': "{agent} {status} · {elapsed}";
629
+ readonly 'single.completed': "completed";
630
+ readonly 'single.failed': "failed";
631
+ readonly 'single.inputRequired': "input required";
632
+ readonly 'single.error': "error";
633
+ readonly 'single.warning': "warning";
634
+ readonly 'single.historyUnavailable': "Conversation history unavailable: {message}";
635
+ readonly 'single.phase.idle': "idle";
636
+ readonly 'single.phase.thinking': "thinking";
637
+ readonly 'single.phase.toolRunning': "tool_running";
638
+ readonly 'single.phase.awaitingApproval': "awaiting_approval";
639
+ readonly 'single.phase.awaitingInput': "awaiting_input";
640
+ readonly 'single.phase.paused': "paused";
641
+ readonly 'single.phase.aborting': "aborting";
642
+ readonly 'single.phase.recoverableError': "recoverable_error";
643
+ readonly 'single.phase.completed': "completed";
644
+ readonly 'image.onlyOneClipboard': "Only one image can be read from the clipboard at submit time. Paste image files or use Ctrl+V for each image while composing.";
645
+ readonly 'image.missingPlaceholders': "{count} image placeholder(s) do not have an attached image.";
646
+ readonly 'image.notFound': "Image not found: {path}";
647
+ readonly 'image.notFile': "Image path is not a file: {path}";
648
+ readonly 'image.tooLarge': "Image is larger than {limit} and was not attached: {path}";
649
+ readonly 'image.clipboardUnsupported': "Clipboard image paste is currently only available on Windows.";
650
+ readonly 'image.clipboardMissing': "No image was found in the Windows clipboard. Paste an image path or copy an image first.";
651
+ readonly 'image.clipboardTooLarge': "Clipboard image is larger than {limit} and was not attached.";
652
+ };
653
+ export type MessageKey = keyof typeof EN_MESSAGES;
654
+ export declare const ZH_CN_MESSAGES: {
655
+ 'common.notSet': string;
656
+ 'common.providerDefault': string;
657
+ 'common.cancelled': string;
658
+ 'common.error': string;
659
+ 'common.interrupted': string;
660
+ 'common.ready': string;
661
+ 'common.working': string;
662
+ 'common.online': string;
663
+ 'common.active': string;
664
+ 'common.moreAbove': string;
665
+ 'common.moreBelow': string;
666
+ 'common.empty': string;
667
+ 'common.done': string;
668
+ 'common.complete': string;
669
+ 'common.failed': string;
670
+ 'common.queued': string;
671
+ 'common.tokens': string;
672
+ 'setup.banner.title': string;
673
+ 'setup.banner.subtitle': string;
674
+ 'setup.current.title': string;
675
+ 'setup.current.noApiProfiles': string;
676
+ 'setup.current.activeApiConfig': string;
677
+ 'setup.current.apiConfigCount': string;
678
+ 'setup.current.customInstructionsSet': string;
679
+ 'setup.current.provider': string;
680
+ 'setup.current.baseUrl': string;
681
+ 'setup.current.model': string;
682
+ 'setup.current.apiKey': string;
683
+ 'setup.current.contextWindow': string;
684
+ 'setup.current.maxTokens': string;
685
+ 'setup.current.reasoning': string;
686
+ 'setup.current.approvalPolicy': string;
687
+ 'setup.current.interfaceLanguage': string;
688
+ 'setup.current.aiOutputLanguage': string;
689
+ 'setup.current.persona': string;
690
+ 'setup.current.customInstructions': string;
691
+ 'setup.current.profileFile': string;
692
+ 'setup.returnToMenu': string;
693
+ 'setup.prompt.required': string;
694
+ 'setup.prompt.chooseFrom': string;
695
+ 'setup.url.required': string;
696
+ 'setup.url.invalid': string;
697
+ 'setup.api.noSelectableProfiles': string;
698
+ 'setup.api.selectProvider': string;
699
+ 'setup.api.unknownProvider': string;
700
+ 'setup.api.baseUrlRequired': string;
701
+ 'setup.api.keepKey': string;
702
+ 'setup.api.newKey': string;
703
+ 'setup.api.profileName': string;
704
+ 'setup.api.saved': string;
705
+ 'setup.api.modelLater': string;
706
+ 'setup.api.makeActive': string;
707
+ 'setup.api.added': string;
708
+ 'setup.api.switched': string;
709
+ 'setup.api.updated': string;
710
+ 'setup.api.copied': string;
711
+ 'setup.api.confirmDelete': string;
712
+ 'setup.api.deleted': string;
713
+ 'setup.api.profilesTitle': string;
714
+ 'setup.api.chooseAction': string;
715
+ 'setup.api.selectSwitch': string;
716
+ 'setup.api.selectEdit': string;
717
+ 'setup.api.selectCopy': string;
718
+ 'setup.api.selectDelete': string;
719
+ 'setup.api.actionAdd': string;
720
+ 'setup.api.actionSwitch': string;
721
+ 'setup.api.actionEdit': string;
722
+ 'setup.api.actionCopy': string;
723
+ 'setup.api.actionDelete': string;
724
+ 'setup.api.noSwitch': string;
725
+ 'setup.api.noEdit': string;
726
+ 'setup.api.noCopy': string;
727
+ 'setup.api.noDelete': string;
728
+ 'setup.api.back': string;
729
+ 'setup.language.invalidInterface': string;
730
+ 'setup.language.invalidShared': string;
731
+ 'setup.language.customRequired': string;
732
+ 'setup.language.saved': string;
733
+ 'setup.language.title': string;
734
+ 'setup.language.interface': string;
735
+ 'setup.language.aiOutput': string;
736
+ 'setup.language.followUser': string;
737
+ 'setup.language.simplifiedChinese': string;
738
+ 'setup.language.custom': string;
739
+ 'setup.language.customPrompt': string;
740
+ 'setup.language.english': string;
741
+ 'setup.language.japanese': string;
742
+ 'setup.language.korean': string;
743
+ 'setup.language.customLabel': string;
744
+ 'setup.persona.customFallback': string;
745
+ 'setup.persona.defaultCustomName': string;
746
+ 'setup.persona.defaultPrompt': string;
747
+ 'setup.api.customName': string;
748
+ 'setup.persona.skipped': string;
749
+ 'setup.persona.unknown': string;
750
+ 'setup.persona.oneRequired': string;
751
+ 'setup.persona.unknownDefault': string;
752
+ 'setup.persona.customPromptRequired': string;
753
+ 'setup.persona.saved': string;
754
+ 'setup.persona.title': string;
755
+ 'setup.persona.selectEnabled': string;
756
+ 'setup.persona.default': string;
757
+ 'setup.persona.custom': string;
758
+ 'setup.persona.customName': string;
759
+ 'setup.persona.customPrompt': string;
760
+ 'setup.persona.customPromptEmpty': string;
761
+ 'setup.instructions.saved': string;
762
+ 'setup.instructions.edit': string;
763
+ 'setup.approval.invalid': string;
764
+ 'setup.approval.title': string;
765
+ 'setup.approval.ask': string;
766
+ 'setup.approval.agent': string;
767
+ 'setup.approval.full': string;
768
+ 'setup.approval.saved': string;
769
+ 'setup.init.editInstructions': string;
770
+ 'setup.init.done': string;
771
+ 'setup.reset.confirm': string;
772
+ 'setup.reset.done': string;
773
+ 'setup.menu.title': string;
774
+ 'setup.menu.init': string;
775
+ 'setup.menu.api': string;
776
+ 'setup.menu.language': string;
777
+ 'setup.menu.persona': string;
778
+ 'setup.menu.instructions': string;
779
+ 'setup.menu.approval': string;
780
+ 'setup.menu.show': string;
781
+ 'setup.menu.reset': string;
782
+ 'setup.menu.exit': string;
783
+ 'setup.menu.input': string;
784
+ 'ui.app.globalReloaded': string;
785
+ 'ui.app.globalPending': string;
786
+ 'ui.app.globalReloadFailed': string;
787
+ 'ui.app.commandActivity': string;
788
+ 'ui.app.executingCommand': string;
789
+ 'ui.app.loadingConversations': string;
790
+ 'ui.app.restoringConversation': string;
791
+ 'ui.app.deletingConversation': string;
792
+ 'ui.app.refreshingModels': string;
793
+ 'ui.app.commandFailed': string;
794
+ 'ui.app.conversationUnavailable': string;
795
+ 'ui.app.backgroundFinished': string;
796
+ 'ui.app.protocolFallback': string;
797
+ 'ui.app.protocolMismatch': string;
798
+ 'ui.app.noProvider': string;
799
+ 'ui.app.confirmationNeeded': string;
800
+ 'ui.app.modelMounted': string;
801
+ 'ui.app.modelSwitched': string;
802
+ 'ui.app.reasoningSet': string;
803
+ 'ui.app.cursorHint': string;
804
+ 'ui.app.selectedMessage': string;
805
+ 'ui.app.modelDiscoveryRunning': string;
806
+ 'ui.app.noModelMounted': string;
807
+ 'ui.app.clipboardImageMissing': string;
808
+ 'ui.app.runInterrupted': string;
809
+ 'ui.app.exitHint': string;
810
+ 'ui.app.shellSession': string;
811
+ 'ui.app.exitCode': string;
812
+ 'ui.app.logPath': string;
813
+ 'ui.app.persistenceUnavailable': string;
814
+ 'ui.app.persistenceBlocked': string;
815
+ 'ui.app.guidanceRestored': string;
816
+ 'ui.app.reviewRequired': string;
817
+ 'ui.app.inputRequired': string;
818
+ 'ui.app.agentTurnComplete': string;
819
+ 'ui.app.subagentResultReady': string;
820
+ 'ui.app.subagentFailed': string;
821
+ 'ui.app.backgroundTerminalStatus': string;
822
+ 'ui.app.runFailed': string;
823
+ 'ui.app.recoveredApprovals': string;
824
+ 'ui.app.actionReviewDelayed': string;
825
+ 'ui.app.actionInputDelayed': string;
826
+ 'ui.landing.prompt': string;
827
+ 'ui.sidebar.status': string;
828
+ 'ui.sidebar.session': string;
829
+ 'ui.sidebar.context': string;
830
+ 'ui.sidebar.repo': string;
831
+ 'ui.sidebar.runtime': string;
832
+ 'ui.sidebar.model': string;
833
+ 'ui.sidebar.profile': string;
834
+ 'ui.sidebar.used': string;
835
+ 'ui.sidebar.io': string;
836
+ 'ui.sidebar.state': string;
837
+ 'ui.sidebar.branch': string;
838
+ 'ui.sidebar.changes': string;
839
+ 'ui.sidebar.tracking': string;
840
+ 'ui.sidebar.operation': string;
841
+ 'ui.sidebar.terminal': string;
842
+ 'ui.sidebar.running': string;
843
+ 'ui.sidebar.queued': string;
844
+ 'ui.sidebar.notMounted': string;
845
+ 'ui.sidebar.provider': string;
846
+ 'ui.sidebar.waiting': string;
847
+ 'ui.sidebar.cacheOut': string;
848
+ 'ui.models.title': string;
849
+ 'ui.models.search': string;
850
+ 'ui.models.filter': string;
851
+ 'ui.models.none': string;
852
+ 'ui.models.keys': string;
853
+ 'ui.models.refresh': string;
854
+ 'ui.effort.title': string;
855
+ 'ui.effort.none': string;
856
+ 'ui.effort.minimal': string;
857
+ 'ui.effort.low': string;
858
+ 'ui.effort.medium': string;
859
+ 'ui.effort.high': string;
860
+ 'ui.effort.xhigh': string;
861
+ 'ui.effort.max': string;
862
+ 'ui.effort.disableThinking': string;
863
+ 'ui.effort.disableReasoning': string;
864
+ 'ui.effort.enableReasoning': string;
865
+ 'ui.effort.budget': string;
866
+ 'ui.effort.off': string;
867
+ 'ui.effort.on': string;
868
+ 'ui.effort.keys': string;
869
+ 'ui.permission.title': string;
870
+ 'ui.permission.review': string;
871
+ 'ui.permission.tool': string;
872
+ 'ui.permission.target': string;
873
+ 'ui.permission.reason': string;
874
+ 'ui.permission.allowOnce': string;
875
+ 'ui.permission.allowOnceDescription': string;
876
+ 'ui.permission.allowRun': string;
877
+ 'ui.permission.allowRunDescription': string;
878
+ 'ui.permission.allowSession': string;
879
+ 'ui.permission.allowSessionDescription': string;
880
+ 'ui.permission.deny': string;
881
+ 'ui.permission.denyDescription': string;
882
+ 'ui.permission.keys': string;
883
+ 'ui.rewind.title': string;
884
+ 'ui.rewind.subtitle': string;
885
+ 'ui.rewind.keys': string;
886
+ 'ui.conversations.title': string;
887
+ 'ui.conversations.none': string;
888
+ 'ui.conversations.selectKeys': string;
889
+ 'ui.conversations.openKeys': string;
890
+ 'ui.conversations.enter': string;
891
+ 'ui.conversations.delete': string;
892
+ 'ui.conversations.justNow': string;
893
+ 'ui.conversations.minutesAgo': string;
894
+ 'ui.conversations.hoursAgo': string;
895
+ 'ui.conversations.daysAgo': string;
896
+ 'ui.message.changes': string;
897
+ 'ui.message.answer': string;
898
+ 'ui.message.systemCount': string;
899
+ 'ui.recovery.toolResult': string;
900
+ 'ui.recovery.assistant': string;
901
+ 'ui.diff.unavailableRead': string;
902
+ 'ui.diff.tooLarge': string;
903
+ 'ui.diff.noSnapshot': string;
904
+ 'ui.diff.created': string;
905
+ 'ui.diff.deleted': string;
906
+ 'ui.diff.modified': string;
907
+ 'ui.diff.lines': string;
908
+ 'ui.diff.limit': string;
909
+ 'ui.diff.unknownSize': string;
910
+ 'ui.work.label': string;
911
+ 'ui.work.mainAgent': string;
912
+ 'ui.activity.title': string;
913
+ 'ui.activity.summaryWorking': string;
914
+ 'ui.activity.summaryComplete': string;
915
+ 'ui.activity.summaryFailed': string;
916
+ 'ui.activity.outputTokens': string;
917
+ 'ui.activity.phase.ready': string;
918
+ 'ui.activity.phase.thinking': string;
919
+ 'ui.activity.phase.working': string;
920
+ 'ui.activity.phase.awaitingApproval': string;
921
+ 'ui.activity.phase.awaitingInput': string;
922
+ 'ui.activity.phase.paused': string;
923
+ 'ui.activity.phase.stopping': string;
924
+ 'ui.activity.phase.recovering': string;
925
+ 'ui.activity.phase.done': string;
926
+ 'ui.runState.ready': string;
927
+ 'ui.runState.planning': string;
928
+ 'ui.runState.executing': string;
929
+ 'ui.runState.reviewRequired': string;
930
+ 'ui.runState.inputRequired': string;
931
+ 'ui.runState.paused': string;
932
+ 'ui.runState.stopping': string;
933
+ 'ui.runState.recovering': string;
934
+ 'ui.runState.done': string;
935
+ 'ui.runState.queued': string;
936
+ 'ui.flow.responding': string;
937
+ 'ui.flow.editing': string;
938
+ 'ui.flow.running': string;
939
+ 'ui.flow.exploring': string;
940
+ 'ui.flow.delegating': string;
941
+ 'ui.flow.working': string;
942
+ 'ui.flow.background': string;
943
+ 'ui.flow.reviewPending': string;
944
+ 'ui.flow.awaitingAnswer': string;
945
+ 'ui.flow.workPaused': string;
946
+ 'ui.flow.stoppingWork': string;
947
+ 'ui.flow.retryStep': string;
948
+ 'ui.flow.writingResult': string;
949
+ 'ui.flow.planningNext': string;
950
+ 'ui.flow.continuingTask': string;
951
+ 'ui.flow.agentWorking': string;
952
+ 'ui.flow.readyNext': string;
953
+ 'ui.flow.agentResultReady': string;
954
+ 'ui.flow.agentFailed': string;
955
+ 'ui.flow.terminalsActive': string;
956
+ 'ui.flow.terminalsActivePlural': string;
957
+ 'ui.flow.queued': string;
958
+ 'ui.subagent.starting': string;
959
+ 'ui.subagent.turn': string;
960
+ 'ui.subagent.waitingModel': string;
961
+ 'ui.subagent.retry': string;
962
+ 'ui.subagent.finalizing': string;
963
+ 'ui.subagent.turnComplete': string;
964
+ 'ui.subagent.resultReady': string;
965
+ 'ui.task.label': string;
966
+ 'ui.task.planning': string;
967
+ 'ui.task.tools': string;
968
+ 'ui.task.running': string;
969
+ 'ui.task.failed': string;
970
+ 'ui.task.finishing': string;
971
+ 'ui.task.tool.read': string;
972
+ 'ui.task.tool.readFull': string;
973
+ 'ui.task.tool.search': string;
974
+ 'ui.task.tool.findFiles': string;
975
+ 'ui.task.tool.symbols': string;
976
+ 'ui.task.tool.codemap': string;
977
+ 'ui.task.tool.write': string;
978
+ 'ui.task.tool.replace': string;
979
+ 'ui.task.tool.edit': string;
980
+ 'ui.task.tool.multiEdit': string;
981
+ 'ui.task.tool.shell': string;
982
+ 'ui.task.tool.readTerminal': string;
983
+ 'ui.task.tool.writeTerminal': string;
984
+ 'ui.task.tool.listTerminals': string;
985
+ 'ui.task.tool.stopTerminal': string;
986
+ 'ui.tool.read': string;
987
+ 'ui.tool.readFull': string;
988
+ 'ui.tool.list': string;
989
+ 'ui.tool.write': string;
990
+ 'ui.tool.replace': string;
991
+ 'ui.tool.edit': string;
992
+ 'ui.tool.delete': string;
993
+ 'ui.tool.search': string;
994
+ 'ui.tool.find': string;
995
+ 'ui.tool.symbol': string;
996
+ 'ui.tool.semantic': string;
997
+ 'ui.tool.codemap': string;
998
+ 'ui.tool.web': string;
999
+ 'ui.tool.run': string;
1000
+ 'ui.tool.gitStatus': string;
1001
+ 'ui.tool.gitDiff': string;
1002
+ 'ui.tool.gitLog': string;
1003
+ 'ui.tool.gitShow': string;
1004
+ 'ui.tool.gitStage': string;
1005
+ 'ui.tool.gitCommit': string;
1006
+ 'ui.tool.gitRestore': string;
1007
+ 'ui.tool.gitRevert': string;
1008
+ 'ui.tool.gitBranch': string;
1009
+ 'ui.tool.gitSwitch': string;
1010
+ 'ui.tool.gitStash': string;
1011
+ 'ui.tool.gitPush': string;
1012
+ 'ui.tool.task': string;
1013
+ 'ui.tool.createTasks': string;
1014
+ 'ui.tool.updateTask': string;
1015
+ 'ui.tool.listTasks': string;
1016
+ 'ui.tool.ask': string;
1017
+ 'ui.tool.notify': string;
1018
+ 'ui.tool.subagent': string;
1019
+ 'ui.tool.running.read': string;
1020
+ 'ui.tool.running.readFull': string;
1021
+ 'ui.tool.running.list': string;
1022
+ 'ui.tool.running.write': string;
1023
+ 'ui.tool.running.replace': string;
1024
+ 'ui.tool.running.edit': string;
1025
+ 'ui.tool.running.delete': string;
1026
+ 'ui.tool.running.search': string;
1027
+ 'ui.tool.running.find': string;
1028
+ 'ui.tool.running.symbol': string;
1029
+ 'ui.tool.running.semantic': string;
1030
+ 'ui.tool.running.codemap': string;
1031
+ 'ui.tool.running.web': string;
1032
+ 'ui.tool.running.run': string;
1033
+ 'ui.tool.running.default': string;
1034
+ 'ui.tool.preparing': string;
1035
+ 'ui.tool.preparingPath': string;
1036
+ 'ui.tool.name.readFile': string;
1037
+ 'ui.tool.name.readFull': string;
1038
+ 'ui.tool.name.listDirectory': string;
1039
+ 'ui.tool.name.writeFile': string;
1040
+ 'ui.tool.name.replaceFile': string;
1041
+ 'ui.tool.name.editFile': string;
1042
+ 'ui.tool.name.multiEdit': string;
1043
+ 'ui.tool.name.deleteFile': string;
1044
+ 'ui.tool.name.searchContent': string;
1045
+ 'ui.tool.name.searchFiles': string;
1046
+ 'ui.tool.name.searchSymbols': string;
1047
+ 'ui.tool.name.searchSemantic': string;
1048
+ 'ui.tool.name.codemap': string;
1049
+ 'ui.tool.name.webSearch': string;
1050
+ 'ui.tool.name.runCommand': string;
1051
+ 'ui.thinking.reasoning': string;
1052
+ 'ui.thinking.thought': string;
1053
+ 'ui.thinking.interrupted': string;
1054
+ 'ui.terminal.background': string;
1055
+ 'ui.queue.item': string;
1056
+ 'ui.queue.steeringItem': string;
1057
+ 'ui.queue.images': string;
1058
+ 'ui.queue.image': string;
1059
+ 'ui.header.workspace': string;
1060
+ 'ui.header.setupRequired': string;
1061
+ 'ui.prompt.plan': string;
1062
+ 'ui.prompt.default': string;
1063
+ 'ui.status.noModel': string;
1064
+ 'ui.status.gitOff': string;
1065
+ 'ui.status.gitDetecting': string;
1066
+ 'ui.status.gitUnavailable': string;
1067
+ 'ui.status.gitError': string;
1068
+ 'ui.status.gitClean': string;
1069
+ 'ui.status.gitChanged': string;
1070
+ 'ui.status.history': string;
1071
+ 'ui.status.unknown': string;
1072
+ 'ui.status.action': string;
1073
+ 'ui.status.alert': string;
1074
+ 'ui.status.stop': string;
1075
+ 'ui.status.reply': string;
1076
+ 'ui.status.work': string;
1077
+ 'ui.status.inbox': string;
1078
+ 'ui.status.queue': string;
1079
+ 'ui.status.background': string;
1080
+ 'ui.status.activity.ready': string;
1081
+ 'ui.status.activity.thinking': string;
1082
+ 'ui.status.activity.working': string;
1083
+ 'ui.status.activity.responding': string;
1084
+ 'ui.status.activity.reviewRequired': string;
1085
+ 'ui.status.activity.inputRequired': string;
1086
+ 'ui.status.activity.stopping': string;
1087
+ 'ui.status.activity.interrupted': string;
1088
+ 'ui.status.activity.needsAttention': string;
1089
+ 'ui.status.activity.historyUnavailable': string;
1090
+ 'ui.status.activity.detail': string;
1091
+ 'ui.flow.input.pending': string;
1092
+ 'ui.flow.input.steeringPending': string;
1093
+ 'ui.flow.input.steering': string;
1094
+ 'ui.flow.input.queued': string;
1095
+ 'ui.flow.input.committed': string;
1096
+ 'ui.flow.input.steered': string;
1097
+ 'ui.flow.input.restored': string;
1098
+ 'ui.flow.resultsReady': string;
1099
+ 'ui.flow.controls.running': string;
1100
+ 'ui.flow.controls.queued': string;
1101
+ 'ui.diff.moreHidden': string;
1102
+ 'command.unknown': string;
1103
+ 'command.available': string;
1104
+ 'command.exit.description': string;
1105
+ 'command.clear.description': string;
1106
+ 'command.help.description': string;
1107
+ 'command.config.description': string;
1108
+ 'command.setup.description': string;
1109
+ 'command.model.description': string;
1110
+ 'command.plan.description': string;
1111
+ 'command.vibe.description': string;
1112
+ 'command.git.description': string;
1113
+ 'command.ps.description': string;
1114
+ 'command.inbox.description': string;
1115
+ 'command.flow.description': string;
1116
+ 'command.stop.description': string;
1117
+ 'command.compact.description': string;
1118
+ 'command.context.description': string;
1119
+ 'command.theme.description': string;
1120
+ 'command.effort.description': string;
1121
+ 'command.approval.description': string;
1122
+ 'command.capability.description': string;
1123
+ 'command.mcp.description': string;
1124
+ 'command.skills.description': string;
1125
+ 'command.new.description': string;
1126
+ 'command.list.description': string;
1127
+ 'command.resume.description': string;
1128
+ 'command.init.description': string;
1129
+ 'command.clear.done': string;
1130
+ 'command.config.current': string;
1131
+ 'command.config.set': string;
1132
+ 'command.config.error': string;
1133
+ 'command.setup.instructions': string;
1134
+ 'command.model.current': string;
1135
+ 'command.model.available': string;
1136
+ 'command.model.none': string;
1137
+ 'command.model.usage': string;
1138
+ 'command.model.mounted': string;
1139
+ 'command.model.switchedPreset': string;
1140
+ 'command.model.switched': string;
1141
+ 'command.plan.done': string;
1142
+ 'command.vibe.done': string;
1143
+ 'command.git.disabled': string;
1144
+ 'command.git.enabled': string;
1145
+ 'command.git.refreshing': string;
1146
+ 'command.git.usage': string;
1147
+ 'command.git.phase': string;
1148
+ 'command.git.branch': string;
1149
+ 'command.git.changes': string;
1150
+ 'command.git.tracking': string;
1151
+ 'command.git.operation': string;
1152
+ 'command.ps.none': string;
1153
+ 'command.ps.title': string;
1154
+ 'command.ps.exit': string;
1155
+ 'command.ps.pid': string;
1156
+ 'command.ps.recovered': string;
1157
+ 'command.inbox.unavailable': string;
1158
+ 'command.inbox.cleared': string;
1159
+ 'command.inbox.alreadyClear': string;
1160
+ 'command.inbox.usage': string;
1161
+ 'command.inbox.none': string;
1162
+ 'command.inbox.title': string;
1163
+ 'command.inbox.reviewHint': string;
1164
+ 'command.flow.unavailable': string;
1165
+ 'command.flow.usage': string;
1166
+ 'command.flow.status': string;
1167
+ 'command.flow.healthy': string;
1168
+ 'command.flow.degraded': string;
1169
+ 'command.flow.pending': string;
1170
+ 'command.flow.features': string;
1171
+ 'command.flow.featuresUnknown': string;
1172
+ 'command.flow.error': string;
1173
+ 'command.flow.retrySucceeded': string;
1174
+ 'command.flow.retryFailed': string;
1175
+ 'command.flow.unknownError': string;
1176
+ 'command.flow.exported': string;
1177
+ 'command.flow.exportFailed': string;
1178
+ 'command.stop.unavailable': string;
1179
+ 'command.stop.noMatch': string;
1180
+ 'command.stop.none': string;
1181
+ 'command.stop.readOnly': string;
1182
+ 'command.stop.reason': string;
1183
+ 'command.stop.stopping': string;
1184
+ 'command.stop.stoppingOne': string;
1185
+ 'command.compact.triggered': string;
1186
+ 'command.context.unknown': string;
1187
+ 'command.context.waiting': string;
1188
+ 'command.context.noEstimate': string;
1189
+ 'command.context.usage': string;
1190
+ 'command.context.input': string;
1191
+ 'command.context.output': string;
1192
+ 'command.theme.usage': string;
1193
+ 'command.theme.switched': string;
1194
+ 'command.effort.unsupported': string;
1195
+ 'command.effort.thisModel': string;
1196
+ 'command.effort.summary': string;
1197
+ 'command.effort.fixed': string;
1198
+ 'command.effort.budget': string;
1199
+ 'command.effort.noToggle': string;
1200
+ 'command.effort.budgetOptions': string;
1201
+ 'command.effort.available': string;
1202
+ 'command.effort.set': string;
1203
+ 'command.approval.current': string;
1204
+ 'command.approval.usage': string;
1205
+ 'command.approval.ask': string;
1206
+ 'command.approval.agent': string;
1207
+ 'command.approval.full': string;
1208
+ 'command.capability.current': string;
1209
+ 'command.capability.usage': string;
1210
+ 'command.capability.set': string;
1211
+ 'command.mcp.uninitialized': string;
1212
+ 'command.mcp.none': string;
1213
+ 'command.mcp.noTools': string;
1214
+ 'command.mcp.tools': string;
1215
+ 'command.mcp.servers': string;
1216
+ 'command.mcp.toolCount': string;
1217
+ 'command.mcp.hint': string;
1218
+ 'command.skills.unavailable': string;
1219
+ 'command.skills.none': string;
1220
+ 'command.skills.active': string;
1221
+ 'command.skills.available': string;
1222
+ 'command.conversation.unavailable': string;
1223
+ 'command.conversation.persistenceBlocked': string;
1224
+ 'command.conversation.started': string;
1225
+ 'command.conversation.none': string;
1226
+ 'command.conversation.turns': string;
1227
+ 'command.conversation.id': string;
1228
+ 'command.conversation.total': string;
1229
+ 'command.init.active': string;
1230
+ 'command.init.created': string;
1231
+ 'command.init.template': string;
1232
+ 'command.init.unknownStack': string;
1233
+ 'command.init.empty': string;
1234
+ 'command.init.scanFailed': string;
1235
+ 'cli.description': string;
1236
+ 'cli.workspace': string;
1237
+ 'cli.modelOverride': string;
1238
+ 'cli.providerOverride': string;
1239
+ 'cli.command': string;
1240
+ 'cli.verbose': string;
1241
+ 'cli.noFlicker': string;
1242
+ 'cli.scrollback': string;
1243
+ 'cli.noAnimation': string;
1244
+ 'cli.noColor': string;
1245
+ 'cli.transparent': string;
1246
+ 'cli.opaque': string;
1247
+ 'cli.approvalPolicy': string;
1248
+ 'cli.capabilityProfile': string;
1249
+ 'cli.mcp': string;
1250
+ 'cli.invalidApproval': string;
1251
+ 'cli.invalidCapability': string;
1252
+ 'cli.config.description': string;
1253
+ 'cli.config.action': string;
1254
+ 'cli.config.key': string;
1255
+ 'cli.config.value': string;
1256
+ 'cli.config.usage': string;
1257
+ 'cli.setup.description': string;
1258
+ 'cli.setup.provider': string;
1259
+ 'cli.setup.apiKey': string;
1260
+ 'cli.setup.baseUrl': string;
1261
+ 'cli.setup.model': string;
1262
+ 'cli.setup.sharedLanguage': string;
1263
+ 'cli.setup.interfaceLanguage': string;
1264
+ 'cli.setup.aiLanguage': string;
1265
+ 'cli.setup.personas': string;
1266
+ 'cli.setup.defaultPersona': string;
1267
+ 'cli.setup.instructions': string;
1268
+ 'cli.setup.approval': string;
1269
+ 'cli.setup.yes': string;
1270
+ 'cli.setup.error': string;
1271
+ 'repl.commandFailed': string;
1272
+ 'repl.noApiKey': string;
1273
+ 'repl.transparent': string;
1274
+ 'repl.mcpEnabled': string;
1275
+ 'single.noApiKey': string;
1276
+ 'single.noModel': string;
1277
+ 'single.thinking': string;
1278
+ 'single.protocolFallback': string;
1279
+ 'single.agent': string;
1280
+ 'single.agentStarted': string;
1281
+ 'single.agentFinished': string;
1282
+ 'single.completed': string;
1283
+ 'single.failed': string;
1284
+ 'single.inputRequired': string;
1285
+ 'single.error': string;
1286
+ 'single.warning': string;
1287
+ 'single.historyUnavailable': string;
1288
+ 'single.phase.idle': string;
1289
+ 'single.phase.thinking': string;
1290
+ 'single.phase.toolRunning': string;
1291
+ 'single.phase.awaitingApproval': string;
1292
+ 'single.phase.awaitingInput': string;
1293
+ 'single.phase.paused': string;
1294
+ 'single.phase.aborting': string;
1295
+ 'single.phase.recoverableError': string;
1296
+ 'single.phase.completed': string;
1297
+ 'image.onlyOneClipboard': string;
1298
+ 'image.missingPlaceholders': string;
1299
+ 'image.notFound': string;
1300
+ 'image.notFile': string;
1301
+ 'image.tooLarge': string;
1302
+ 'image.clipboardUnsupported': string;
1303
+ 'image.clipboardMissing': string;
1304
+ 'image.clipboardTooLarge': string;
1305
+ };