erosolar-cli 1.7.344 → 1.7.346

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 (328) hide show
  1. package/README.md +148 -24
  2. package/dist/alpha-zero/agentWrapper.d.ts +84 -0
  3. package/dist/alpha-zero/agentWrapper.d.ts.map +1 -0
  4. package/dist/alpha-zero/agentWrapper.js +171 -0
  5. package/dist/alpha-zero/agentWrapper.js.map +1 -0
  6. package/dist/alpha-zero/codeEvaluator.d.ts +25 -0
  7. package/dist/alpha-zero/codeEvaluator.d.ts.map +1 -0
  8. package/dist/alpha-zero/codeEvaluator.js +273 -0
  9. package/dist/alpha-zero/codeEvaluator.js.map +1 -0
  10. package/dist/alpha-zero/competitiveRunner.d.ts +66 -0
  11. package/dist/alpha-zero/competitiveRunner.d.ts.map +1 -0
  12. package/dist/alpha-zero/competitiveRunner.js +224 -0
  13. package/dist/alpha-zero/competitiveRunner.js.map +1 -0
  14. package/dist/alpha-zero/index.d.ts +67 -0
  15. package/dist/alpha-zero/index.d.ts.map +1 -0
  16. package/dist/alpha-zero/index.js +99 -0
  17. package/dist/alpha-zero/index.js.map +1 -0
  18. package/dist/alpha-zero/introspection.d.ts +128 -0
  19. package/dist/alpha-zero/introspection.d.ts.map +1 -0
  20. package/dist/alpha-zero/introspection.js +300 -0
  21. package/dist/alpha-zero/introspection.js.map +1 -0
  22. package/dist/alpha-zero/metricsTracker.d.ts +71 -0
  23. package/dist/alpha-zero/metricsTracker.d.ts.map +1 -0
  24. package/dist/{core → alpha-zero}/metricsTracker.js +5 -2
  25. package/dist/alpha-zero/metricsTracker.js.map +1 -0
  26. package/dist/alpha-zero/security/core.d.ts +125 -0
  27. package/dist/alpha-zero/security/core.d.ts.map +1 -0
  28. package/dist/alpha-zero/security/core.js +271 -0
  29. package/dist/alpha-zero/security/core.js.map +1 -0
  30. package/dist/alpha-zero/security/google.d.ts +125 -0
  31. package/dist/alpha-zero/security/google.d.ts.map +1 -0
  32. package/dist/alpha-zero/security/google.js +311 -0
  33. package/dist/alpha-zero/security/google.js.map +1 -0
  34. package/dist/alpha-zero/security/googleLoader.d.ts +17 -0
  35. package/dist/alpha-zero/security/googleLoader.d.ts.map +1 -0
  36. package/dist/alpha-zero/security/googleLoader.js +41 -0
  37. package/dist/alpha-zero/security/googleLoader.js.map +1 -0
  38. package/dist/alpha-zero/security/index.d.ts +29 -0
  39. package/dist/alpha-zero/security/index.d.ts.map +1 -0
  40. package/dist/alpha-zero/security/index.js +32 -0
  41. package/dist/alpha-zero/security/index.js.map +1 -0
  42. package/dist/alpha-zero/security/simulation.d.ts +124 -0
  43. package/dist/alpha-zero/security/simulation.d.ts.map +1 -0
  44. package/dist/alpha-zero/security/simulation.js +277 -0
  45. package/dist/alpha-zero/security/simulation.js.map +1 -0
  46. package/dist/alpha-zero/selfModification.d.ts +109 -0
  47. package/dist/alpha-zero/selfModification.d.ts.map +1 -0
  48. package/dist/alpha-zero/selfModification.js +233 -0
  49. package/dist/alpha-zero/selfModification.js.map +1 -0
  50. package/dist/alpha-zero/types.d.ts +170 -0
  51. package/dist/alpha-zero/types.d.ts.map +1 -0
  52. package/dist/alpha-zero/types.js +31 -0
  53. package/dist/alpha-zero/types.js.map +1 -0
  54. package/dist/bin/erosolar.js +21 -5
  55. package/dist/bin/erosolar.js.map +1 -1
  56. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  57. package/dist/capabilities/agentSpawningCapability.js +31 -56
  58. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  59. package/dist/capabilities/securityTestingCapability.d.ts +13 -0
  60. package/dist/capabilities/securityTestingCapability.d.ts.map +1 -0
  61. package/dist/capabilities/securityTestingCapability.js +25 -0
  62. package/dist/capabilities/securityTestingCapability.js.map +1 -0
  63. package/dist/contracts/agent-schemas.json +15 -0
  64. package/dist/contracts/tools.schema.json +9 -0
  65. package/dist/core/agent.d.ts +2 -2
  66. package/dist/core/agent.d.ts.map +1 -1
  67. package/dist/core/agent.js.map +1 -1
  68. package/dist/core/aiFlowOptimizer.d.ts +26 -0
  69. package/dist/core/aiFlowOptimizer.d.ts.map +1 -0
  70. package/dist/core/aiFlowOptimizer.js +31 -0
  71. package/dist/core/aiFlowOptimizer.js.map +1 -0
  72. package/dist/core/aiOptimizationEngine.d.ts +158 -0
  73. package/dist/core/aiOptimizationEngine.d.ts.map +1 -0
  74. package/dist/core/aiOptimizationEngine.js +428 -0
  75. package/dist/core/aiOptimizationEngine.js.map +1 -0
  76. package/dist/core/aiOptimizationIntegration.d.ts +93 -0
  77. package/dist/core/aiOptimizationIntegration.d.ts.map +1 -0
  78. package/dist/core/aiOptimizationIntegration.js +250 -0
  79. package/dist/core/aiOptimizationIntegration.js.map +1 -0
  80. package/dist/core/customCommands.d.ts +0 -1
  81. package/dist/core/customCommands.d.ts.map +1 -1
  82. package/dist/core/customCommands.js +0 -3
  83. package/dist/core/customCommands.js.map +1 -1
  84. package/dist/core/enhancedErrorRecovery.d.ts +100 -0
  85. package/dist/core/enhancedErrorRecovery.d.ts.map +1 -0
  86. package/dist/core/enhancedErrorRecovery.js +345 -0
  87. package/dist/core/enhancedErrorRecovery.js.map +1 -0
  88. package/dist/core/hooksSystem.d.ts +65 -0
  89. package/dist/core/hooksSystem.d.ts.map +1 -0
  90. package/dist/core/hooksSystem.js +273 -0
  91. package/dist/core/hooksSystem.js.map +1 -0
  92. package/dist/core/memorySystem.d.ts +48 -0
  93. package/dist/core/memorySystem.d.ts.map +1 -0
  94. package/dist/core/memorySystem.js +271 -0
  95. package/dist/core/memorySystem.js.map +1 -0
  96. package/dist/core/sessionStore.d.ts +0 -2
  97. package/dist/core/sessionStore.d.ts.map +1 -1
  98. package/dist/core/sessionStore.js +0 -1
  99. package/dist/core/sessionStore.js.map +1 -1
  100. package/dist/core/toolPreconditions.d.ts.map +1 -1
  101. package/dist/core/toolPreconditions.js +14 -0
  102. package/dist/core/toolPreconditions.js.map +1 -1
  103. package/dist/core/toolRuntime.d.ts +1 -22
  104. package/dist/core/toolRuntime.d.ts.map +1 -1
  105. package/dist/core/toolRuntime.js +5 -0
  106. package/dist/core/toolRuntime.js.map +1 -1
  107. package/dist/core/toolValidation.d.ts.map +1 -1
  108. package/dist/core/toolValidation.js +3 -14
  109. package/dist/core/toolValidation.js.map +1 -1
  110. package/dist/core/unified/errors.d.ts +189 -0
  111. package/dist/core/unified/errors.d.ts.map +1 -0
  112. package/dist/core/unified/errors.js +497 -0
  113. package/dist/core/unified/errors.js.map +1 -0
  114. package/dist/core/unified/index.d.ts +19 -0
  115. package/dist/core/unified/index.d.ts.map +1 -0
  116. package/dist/core/unified/index.js +68 -0
  117. package/dist/core/unified/index.js.map +1 -0
  118. package/dist/core/unified/schema.d.ts +101 -0
  119. package/dist/core/unified/schema.d.ts.map +1 -0
  120. package/dist/core/unified/schema.js +350 -0
  121. package/dist/core/unified/schema.js.map +1 -0
  122. package/dist/core/unified/toolRuntime.d.ts +179 -0
  123. package/dist/core/unified/toolRuntime.d.ts.map +1 -0
  124. package/dist/core/unified/toolRuntime.js +517 -0
  125. package/dist/core/unified/toolRuntime.js.map +1 -0
  126. package/dist/core/unified/tools.d.ts +127 -0
  127. package/dist/core/unified/tools.d.ts.map +1 -0
  128. package/dist/core/unified/tools.js +1333 -0
  129. package/dist/core/unified/tools.js.map +1 -0
  130. package/dist/core/unified/types.d.ts +352 -0
  131. package/dist/core/unified/types.d.ts.map +1 -0
  132. package/dist/core/unified/types.js +12 -0
  133. package/dist/core/unified/types.js.map +1 -0
  134. package/dist/core/unified/version.d.ts +209 -0
  135. package/dist/core/unified/version.d.ts.map +1 -0
  136. package/dist/core/unified/version.js +454 -0
  137. package/dist/core/unified/version.js.map +1 -0
  138. package/dist/core/validationRunner.d.ts +3 -1
  139. package/dist/core/validationRunner.d.ts.map +1 -1
  140. package/dist/core/validationRunner.js.map +1 -1
  141. package/dist/headless/headlessApp.d.ts.map +1 -1
  142. package/dist/headless/headlessApp.js +0 -21
  143. package/dist/headless/headlessApp.js.map +1 -1
  144. package/dist/mcp/sseClient.d.ts.map +1 -1
  145. package/dist/mcp/sseClient.js +18 -9
  146. package/dist/mcp/sseClient.js.map +1 -1
  147. package/dist/plugins/tools/build/buildPlugin.d.ts +6 -0
  148. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  149. package/dist/plugins/tools/build/buildPlugin.js +10 -4
  150. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  151. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  152. package/dist/plugins/tools/nodeDefaults.js +2 -0
  153. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  154. package/dist/plugins/tools/security/securityPlugin.d.ts +3 -0
  155. package/dist/plugins/tools/security/securityPlugin.d.ts.map +1 -0
  156. package/dist/plugins/tools/security/securityPlugin.js +12 -0
  157. package/dist/plugins/tools/security/securityPlugin.js.map +1 -0
  158. package/dist/runtime/agentSession.d.ts +2 -2
  159. package/dist/runtime/agentSession.d.ts.map +1 -1
  160. package/dist/runtime/agentSession.js +2 -2
  161. package/dist/runtime/agentSession.js.map +1 -1
  162. package/dist/security/active-stack-security.d.ts +112 -0
  163. package/dist/security/active-stack-security.d.ts.map +1 -0
  164. package/dist/security/active-stack-security.js +296 -0
  165. package/dist/security/active-stack-security.js.map +1 -0
  166. package/dist/security/advanced-persistence-research.d.ts +92 -0
  167. package/dist/security/advanced-persistence-research.d.ts.map +1 -0
  168. package/dist/security/advanced-persistence-research.js +195 -0
  169. package/dist/security/advanced-persistence-research.js.map +1 -0
  170. package/dist/security/advanced-targeting.d.ts +119 -0
  171. package/dist/security/advanced-targeting.d.ts.map +1 -0
  172. package/dist/security/advanced-targeting.js +233 -0
  173. package/dist/security/advanced-targeting.js.map +1 -0
  174. package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
  175. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
  176. package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
  177. package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
  178. package/dist/security/authorization/securityAuthorization.d.ts +88 -0
  179. package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
  180. package/dist/security/authorization/securityAuthorization.js +172 -0
  181. package/dist/security/authorization/securityAuthorization.js.map +1 -0
  182. package/dist/security/comprehensive-targeting.d.ts +85 -0
  183. package/dist/security/comprehensive-targeting.d.ts.map +1 -0
  184. package/dist/security/comprehensive-targeting.js +438 -0
  185. package/dist/security/comprehensive-targeting.js.map +1 -0
  186. package/dist/security/global-security-integration.d.ts +91 -0
  187. package/dist/security/global-security-integration.d.ts.map +1 -0
  188. package/dist/security/global-security-integration.js +218 -0
  189. package/dist/security/global-security-integration.js.map +1 -0
  190. package/dist/security/index.d.ts +38 -0
  191. package/dist/security/index.d.ts.map +1 -0
  192. package/dist/security/index.js +47 -0
  193. package/dist/security/index.js.map +1 -0
  194. package/dist/security/persistence-analyzer.d.ts +56 -0
  195. package/dist/security/persistence-analyzer.d.ts.map +1 -0
  196. package/dist/security/persistence-analyzer.js +187 -0
  197. package/dist/security/persistence-analyzer.js.map +1 -0
  198. package/dist/security/persistence-cli.d.ts +36 -0
  199. package/dist/security/persistence-cli.d.ts.map +1 -0
  200. package/dist/security/persistence-cli.js +160 -0
  201. package/dist/security/persistence-cli.js.map +1 -0
  202. package/dist/security/persistence-research.d.ts +92 -0
  203. package/dist/security/persistence-research.d.ts.map +1 -0
  204. package/dist/security/persistence-research.js +364 -0
  205. package/dist/security/persistence-research.js.map +1 -0
  206. package/dist/security/research/persistenceResearch.d.ts +97 -0
  207. package/dist/security/research/persistenceResearch.d.ts.map +1 -0
  208. package/dist/security/research/persistenceResearch.js +282 -0
  209. package/dist/security/research/persistenceResearch.js.map +1 -0
  210. package/dist/security/security-integration.d.ts +74 -0
  211. package/dist/security/security-integration.d.ts.map +1 -0
  212. package/dist/security/security-integration.js +137 -0
  213. package/dist/security/security-integration.js.map +1 -0
  214. package/dist/security/security-testing-framework.d.ts +112 -0
  215. package/dist/security/security-testing-framework.d.ts.map +1 -0
  216. package/dist/security/security-testing-framework.js +364 -0
  217. package/dist/security/security-testing-framework.js.map +1 -0
  218. package/dist/security/simulation/attackSimulation.d.ts +93 -0
  219. package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
  220. package/dist/security/simulation/attackSimulation.js +341 -0
  221. package/dist/security/simulation/attackSimulation.js.map +1 -0
  222. package/dist/security/strategic-operations.d.ts +100 -0
  223. package/dist/security/strategic-operations.d.ts.map +1 -0
  224. package/dist/security/strategic-operations.js +276 -0
  225. package/dist/security/strategic-operations.js.map +1 -0
  226. package/dist/security/tool-security-wrapper.d.ts +58 -0
  227. package/dist/security/tool-security-wrapper.d.ts.map +1 -0
  228. package/dist/security/tool-security-wrapper.js +156 -0
  229. package/dist/security/tool-security-wrapper.js.map +1 -0
  230. package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
  231. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
  232. package/dist/shell/claudeCodeStreamHandler.js +322 -0
  233. package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
  234. package/dist/shell/inputQueueManager.d.ts +144 -0
  235. package/dist/shell/inputQueueManager.d.ts.map +1 -0
  236. package/dist/shell/inputQueueManager.js +290 -0
  237. package/dist/shell/inputQueueManager.js.map +1 -0
  238. package/dist/shell/interactiveShell.d.ts +7 -19
  239. package/dist/shell/interactiveShell.d.ts.map +1 -1
  240. package/dist/shell/interactiveShell.js +166 -271
  241. package/dist/shell/interactiveShell.js.map +1 -1
  242. package/dist/shell/metricsTracker.d.ts +60 -0
  243. package/dist/shell/metricsTracker.d.ts.map +1 -0
  244. package/dist/shell/metricsTracker.js +119 -0
  245. package/dist/shell/metricsTracker.js.map +1 -0
  246. package/dist/shell/shellApp.d.ts +0 -2
  247. package/dist/shell/shellApp.d.ts.map +1 -1
  248. package/dist/shell/shellApp.js +9 -82
  249. package/dist/shell/shellApp.js.map +1 -1
  250. package/dist/shell/streamingOutputManager.d.ts +115 -0
  251. package/dist/shell/streamingOutputManager.d.ts.map +1 -0
  252. package/dist/shell/streamingOutputManager.js +225 -0
  253. package/dist/shell/streamingOutputManager.js.map +1 -0
  254. package/dist/shell/systemPrompt.d.ts.map +1 -1
  255. package/dist/shell/systemPrompt.js +4 -1
  256. package/dist/shell/systemPrompt.js.map +1 -1
  257. package/dist/shell/terminalInput.d.ts +120 -218
  258. package/dist/shell/terminalInput.d.ts.map +1 -1
  259. package/dist/shell/terminalInput.js +537 -932
  260. package/dist/shell/terminalInput.js.map +1 -1
  261. package/dist/shell/terminalInputAdapter.d.ts +21 -99
  262. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  263. package/dist/shell/terminalInputAdapter.js +30 -135
  264. package/dist/shell/terminalInputAdapter.js.map +1 -1
  265. package/dist/subagents/taskRunner.d.ts +1 -7
  266. package/dist/subagents/taskRunner.d.ts.map +1 -1
  267. package/dist/subagents/taskRunner.js +47 -180
  268. package/dist/subagents/taskRunner.js.map +1 -1
  269. package/dist/tools/securityTools.d.ts +22 -0
  270. package/dist/tools/securityTools.d.ts.map +1 -0
  271. package/dist/tools/securityTools.js +448 -0
  272. package/dist/tools/securityTools.js.map +1 -0
  273. package/dist/ui/ShellUIAdapter.d.ts +1 -7
  274. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  275. package/dist/ui/ShellUIAdapter.js +18 -42
  276. package/dist/ui/ShellUIAdapter.js.map +1 -1
  277. package/dist/ui/display.d.ts +45 -24
  278. package/dist/ui/display.d.ts.map +1 -1
  279. package/dist/ui/display.js +259 -140
  280. package/dist/ui/display.js.map +1 -1
  281. package/dist/ui/persistentPrompt.d.ts +50 -0
  282. package/dist/ui/persistentPrompt.d.ts.map +1 -0
  283. package/dist/ui/persistentPrompt.js +92 -0
  284. package/dist/ui/persistentPrompt.js.map +1 -0
  285. package/dist/ui/terminalUISchema.d.ts +195 -0
  286. package/dist/ui/terminalUISchema.d.ts.map +1 -0
  287. package/dist/ui/terminalUISchema.js +113 -0
  288. package/dist/ui/terminalUISchema.js.map +1 -0
  289. package/dist/ui/theme.d.ts.map +1 -1
  290. package/dist/ui/theme.js +8 -6
  291. package/dist/ui/theme.js.map +1 -1
  292. package/dist/ui/toolDisplay.d.ts +158 -0
  293. package/dist/ui/toolDisplay.d.ts.map +1 -1
  294. package/dist/ui/toolDisplay.js +348 -0
  295. package/dist/ui/toolDisplay.js.map +1 -1
  296. package/dist/ui/unified/layout.d.ts +0 -20
  297. package/dist/ui/unified/layout.d.ts.map +1 -1
  298. package/dist/ui/unified/layout.js +216 -29
  299. package/dist/ui/unified/layout.js.map +1 -1
  300. package/package.json +4 -4
  301. package/scripts/deploy-security-capabilities.js +178 -0
  302. package/dist/core/hooks.d.ts +0 -113
  303. package/dist/core/hooks.d.ts.map +0 -1
  304. package/dist/core/hooks.js +0 -267
  305. package/dist/core/hooks.js.map +0 -1
  306. package/dist/core/metricsTracker.d.ts +0 -122
  307. package/dist/core/metricsTracker.d.ts.map +0 -1
  308. package/dist/core/metricsTracker.js.map +0 -1
  309. package/dist/core/securityAssessment.d.ts +0 -91
  310. package/dist/core/securityAssessment.d.ts.map +0 -1
  311. package/dist/core/securityAssessment.js +0 -580
  312. package/dist/core/securityAssessment.js.map +0 -1
  313. package/dist/core/verification.d.ts +0 -137
  314. package/dist/core/verification.d.ts.map +0 -1
  315. package/dist/core/verification.js +0 -323
  316. package/dist/core/verification.js.map +0 -1
  317. package/dist/subagents/agentConfig.d.ts +0 -27
  318. package/dist/subagents/agentConfig.d.ts.map +0 -1
  319. package/dist/subagents/agentConfig.js +0 -89
  320. package/dist/subagents/agentConfig.js.map +0 -1
  321. package/dist/subagents/agentRegistry.d.ts +0 -33
  322. package/dist/subagents/agentRegistry.d.ts.map +0 -1
  323. package/dist/subagents/agentRegistry.js +0 -162
  324. package/dist/subagents/agentRegistry.js.map +0 -1
  325. package/dist/utils/frontmatter.d.ts +0 -10
  326. package/dist/utils/frontmatter.d.ts.map +0 -1
  327. package/dist/utils/frontmatter.js +0 -78
  328. package/dist/utils/frontmatter.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import type { Writable } from 'node:stream';
2
+ type TtyLikeStream = Writable & {
3
+ columns?: number;
4
+ rows?: number;
5
+ isTTY?: boolean;
6
+ };
7
+ interface StatusBarState {
8
+ fileChanges?: string;
9
+ message?: string;
10
+ contextUsage?: number;
11
+ }
12
+ /**
13
+ * Lightweight persistent prompt renderer with a minimal status bar.
14
+ * Designed to keep output stable while inputs and statuses change.
15
+ */
16
+ export declare class PersistentPrompt {
17
+ private readonly stream;
18
+ private promptState;
19
+ private disposed;
20
+ constructor(stream: TtyLikeStream, promptSymbol?: string);
21
+ /**
22
+ * Update the current input buffer and cursor location.
23
+ */
24
+ updateInput(input: string, cursorPosition?: number): void;
25
+ /**
26
+ * Update status bar fields. Context usage is intentionally not rendered to keep
27
+ * the status bar concise and performance focused.
28
+ */
29
+ updateStatusBar(status: StatusBarState): void;
30
+ /**
31
+ * Render the current status bar state to the stream.
32
+ */
33
+ showStatus(): void;
34
+ /**
35
+ * Show the prompt and current input buffer.
36
+ */
37
+ show(): void;
38
+ /**
39
+ * Hide the prompt from further rendering.
40
+ */
41
+ hide(): void;
42
+ /**
43
+ * Dispose prompt resources.
44
+ */
45
+ dispose(): void;
46
+ private renderPrompt;
47
+ private formatStatusBar;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=persistentPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistentPrompt.d.ts","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,aAAa,GAAG,QAAQ,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErF,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,aAAa,EAAE,YAAY,SAAO;IAWtD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,GAAE,MAAqB,GAAG,IAAI;IASvE;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAO7C;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,eAAe;CAgBxB"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Lightweight persistent prompt renderer with a minimal status bar.
3
+ * Designed to keep output stable while inputs and statuses change.
4
+ */
5
+ export class PersistentPrompt {
6
+ stream;
7
+ promptState;
8
+ disposed = false;
9
+ constructor(stream, promptSymbol = '> ') {
10
+ this.stream = stream;
11
+ this.promptState = {
12
+ promptSymbol,
13
+ userInput: '',
14
+ cursorPosition: 0,
15
+ isVisible: false,
16
+ statusBar: {},
17
+ };
18
+ }
19
+ /**
20
+ * Update the current input buffer and cursor location.
21
+ */
22
+ updateInput(input, cursorPosition = input.length) {
23
+ this.promptState.userInput = input;
24
+ this.promptState.cursorPosition = Math.max(0, Math.min(cursorPosition, input.length));
25
+ if (this.promptState.isVisible) {
26
+ this.renderPrompt();
27
+ }
28
+ }
29
+ /**
30
+ * Update status bar fields. Context usage is intentionally not rendered to keep
31
+ * the status bar concise and performance focused.
32
+ */
33
+ updateStatusBar(status) {
34
+ this.promptState.statusBar = {
35
+ ...this.promptState.statusBar,
36
+ ...status,
37
+ };
38
+ }
39
+ /**
40
+ * Render the current status bar state to the stream.
41
+ */
42
+ showStatus() {
43
+ if (this.disposed)
44
+ return;
45
+ const statusText = this.formatStatusBar();
46
+ if (statusText) {
47
+ this.stream.write(`${statusText}\n`);
48
+ }
49
+ }
50
+ /**
51
+ * Show the prompt and current input buffer.
52
+ */
53
+ show() {
54
+ if (this.disposed)
55
+ return;
56
+ this.promptState.isVisible = true;
57
+ this.renderPrompt();
58
+ }
59
+ /**
60
+ * Hide the prompt from further rendering.
61
+ */
62
+ hide() {
63
+ this.promptState.isVisible = false;
64
+ }
65
+ /**
66
+ * Dispose prompt resources.
67
+ */
68
+ dispose() {
69
+ this.hide();
70
+ this.disposed = true;
71
+ }
72
+ renderPrompt() {
73
+ if (!this.promptState.isVisible || this.disposed) {
74
+ return;
75
+ }
76
+ const { promptSymbol, userInput } = this.promptState;
77
+ this.stream.write(`${promptSymbol}${userInput}`);
78
+ }
79
+ formatStatusBar() {
80
+ const parts = [];
81
+ const { statusBar } = this.promptState;
82
+ if (statusBar.fileChanges) {
83
+ parts.push(statusBar.fileChanges);
84
+ }
85
+ // Context usage is intentionally omitted for a lean status bar
86
+ if (statusBar.message) {
87
+ parts.push(statusBar.message);
88
+ }
89
+ return parts.join(' • ');
90
+ }
91
+ }
92
+ //# sourceMappingURL=persistentPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistentPrompt.js","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAgB;IAC/B,WAAW,CAAc;IACzB,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAqB,EAAE,YAAY,GAAG,IAAI;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG;YACjB,YAAY;YACZ,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,iBAAyB,KAAK,CAAC,MAAM;QAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtF,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,MAAsB;QACpC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG;YAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS;YAC7B,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,eAAe;QACrB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAEvC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,+DAA+D;QAE/D,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Terminal UI Schema - Hard enforcement of UI structure and behavior
3
+ *
4
+ * This schema defines the correct structure for terminal UI components.
5
+ * Changes that violate these constraints should fail at compile time.
6
+ */
7
+ /** Input mode - only these states are valid */
8
+ export type InputMode = 'idle' | 'streaming' | 'paste';
9
+ /** Edit guard mode for permission handling */
10
+ export type EditGuardMode = 'display-edits' | 'ask-permission';
11
+ /** Status tone for visual feedback */
12
+ export type StatusTone = 'info' | 'warn' | 'error' | 'success' | 'muted';
13
+ /**
14
+ * The terminal UI MUST have these components in this order (top to bottom):
15
+ * 1. Banner (session info) - ALWAYS at top
16
+ * 2. Content area - Scrollable, contains AI responses and tool outputs
17
+ * 3. Status bar - Shows streaming status, elapsed time
18
+ * 4. Top divider - Horizontal line above input
19
+ * 5. Input area - User input with prompt
20
+ * 6. Bottom divider - Horizontal line below input
21
+ * 7. Mode controls - Toggle states and context info
22
+ */
23
+ export interface TerminalUILayout {
24
+ /** Banner is always pinned at top */
25
+ readonly banner: BannerConfig;
26
+ /** Content flows naturally between banner and input area */
27
+ readonly contentArea: ContentAreaConfig;
28
+ /** Input area is pinned at bottom */
29
+ readonly inputArea: InputAreaConfig;
30
+ }
31
+ export interface BannerConfig {
32
+ /** Minimum width for banner */
33
+ readonly minWidth: number;
34
+ /** Maximum width for banner */
35
+ readonly maxWidth: number;
36
+ /** Required elements in banner */
37
+ readonly requiredElements: readonly ['profile', 'model', 'workspace', 'commands'];
38
+ }
39
+ export interface ContentAreaConfig {
40
+ /** Content scrolls naturally - NO artificial gaps */
41
+ readonly scrollBehavior: 'natural';
42
+ /** Content starts immediately after banner */
43
+ readonly startsAfterBanner: true;
44
+ }
45
+ export interface InputAreaConfig {
46
+ /** Input is always at bottom */
47
+ readonly position: 'bottom';
48
+ /** Required components in order */
49
+ readonly components: readonly ['statusBar', 'topDivider', 'inputLines', 'bottomDivider', 'modeControls'];
50
+ /** Reserved lines for input area */
51
+ readonly reservedLines: number;
52
+ }
53
+ export interface ModeControlsSchema {
54
+ /** Edit mode toggle - REQUIRED */
55
+ readonly editMode: {
56
+ readonly enabled: EditGuardMode;
57
+ readonly icons: {
58
+ readonly auto: '⏵⏵';
59
+ readonly ask: '⏸⏸';
60
+ };
61
+ readonly colors: {
62
+ readonly auto: 'green';
63
+ readonly ask: 'yellow';
64
+ };
65
+ };
66
+ /** Thinking mode toggle - REQUIRED */
67
+ readonly thinkingMode: {
68
+ readonly enabled: boolean;
69
+ readonly icons: {
70
+ readonly on: '💭';
71
+ readonly off: '○';
72
+ };
73
+ readonly colors: {
74
+ readonly on: 'cyan';
75
+ readonly off: 'dim';
76
+ };
77
+ };
78
+ /** Verification mode toggle - REQUIRED */
79
+ readonly verificationMode: {
80
+ readonly enabled: boolean;
81
+ readonly icons: {
82
+ readonly on: '✓';
83
+ readonly off: '○';
84
+ };
85
+ readonly colors: {
86
+ readonly on: 'green';
87
+ readonly off: 'dim';
88
+ };
89
+ };
90
+ /** Auto-continue mode toggle - REQUIRED */
91
+ readonly autoContinueMode: {
92
+ readonly enabled: boolean;
93
+ readonly icons: {
94
+ readonly on: '↻';
95
+ readonly off: '○';
96
+ };
97
+ readonly colors: {
98
+ readonly on: 'magenta';
99
+ readonly off: 'dim';
100
+ };
101
+ };
102
+ /** Context usage display - REQUIRED when available */
103
+ readonly contextUsage: {
104
+ readonly percentage: number | null;
105
+ readonly thresholds: {
106
+ readonly critical: 10;
107
+ readonly warning: 25;
108
+ };
109
+ readonly colors: {
110
+ readonly critical: 'red';
111
+ readonly warning: 'yellow';
112
+ readonly normal: 'dim';
113
+ };
114
+ };
115
+ }
116
+ export interface StreamingBehaviorSchema {
117
+ /** During streaming, input area rendering is SKIPPED to avoid conflicts */
118
+ readonly duringStreaming: {
119
+ readonly renderInputArea: false;
120
+ readonly hideCursor: true;
121
+ readonly contentFlows: 'naturally';
122
+ };
123
+ /** After streaming ends */
124
+ readonly afterStreaming: {
125
+ readonly renderInputArea: true;
126
+ readonly showCursor: true;
127
+ readonly addNewlineBeforeInput: true;
128
+ };
129
+ }
130
+ export declare const UI_COLORS: {
131
+ readonly green: "\u001B[32m";
132
+ readonly yellow: "\u001B[33m";
133
+ readonly cyan: "\u001B[36m";
134
+ readonly magenta: "\u001B[35m";
135
+ readonly red: "\u001B[31m";
136
+ readonly dim: "\u001B[2m";
137
+ readonly reset: "\u001B[0m";
138
+ readonly bold: "\u001B[1m";
139
+ readonly reverse: "\u001B[7m";
140
+ };
141
+ export type UIColor = keyof typeof UI_COLORS;
142
+ /**
143
+ * Validate that mode controls have all required toggles
144
+ */
145
+ export declare function validateModeControls(controls: {
146
+ editMode?: EditGuardMode;
147
+ thinkingEnabled?: boolean;
148
+ verificationEnabled?: boolean;
149
+ autoContinueEnabled?: boolean;
150
+ }): {
151
+ valid: boolean;
152
+ errors: string[];
153
+ };
154
+ /**
155
+ * Validate streaming state transitions
156
+ */
157
+ export declare function validateStreamingTransition(fromMode: InputMode, toMode: InputMode, actions: {
158
+ hideCursor?: boolean;
159
+ showCursor?: boolean;
160
+ addNewline?: boolean;
161
+ }): {
162
+ valid: boolean;
163
+ errors: string[];
164
+ };
165
+ /**
166
+ * Validate input area has all required components
167
+ */
168
+ export declare function validateInputAreaComponents(components: string[]): {
169
+ valid: boolean;
170
+ errors: string[];
171
+ };
172
+ export declare const DEFAULT_UI_CONFIG: {
173
+ readonly banner: {
174
+ readonly minWidth: 42;
175
+ readonly maxWidth: 110;
176
+ };
177
+ readonly inputArea: {
178
+ readonly maxLines: 15;
179
+ readonly maxLength: 10000;
180
+ readonly promptChar: "> ";
181
+ readonly continuationChar: "│ ";
182
+ readonly reservedLines: 5;
183
+ };
184
+ readonly modeControls: {
185
+ readonly separator: " · ";
186
+ readonly shortcut: "(⇧⇥)";
187
+ };
188
+ readonly divider: {
189
+ readonly char: "─";
190
+ };
191
+ };
192
+ export declare function isValidInputMode(mode: string): mode is InputMode;
193
+ export declare function isValidEditGuardMode(mode: string): mode is EditGuardMode;
194
+ export declare function isValidStatusTone(tone: string): tone is StatusTone;
195
+ //# sourceMappingURL=terminalUISchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalUISchema.d.ts","sourceRoot":"","sources":["../../src/ui/terminalUISchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Terminal UI Schema - Hard enforcement of UI structure and behavior
3
+ *
4
+ * This schema defines the correct structure for terminal UI components.
5
+ * Changes that violate these constraints should fail at compile time.
6
+ */
7
+ // =============================================================================
8
+ // COLOR SCHEMA - Defines the color palette
9
+ // =============================================================================
10
+ export const UI_COLORS = {
11
+ green: '\x1b[32m',
12
+ yellow: '\x1b[33m',
13
+ cyan: '\x1b[36m',
14
+ magenta: '\x1b[35m',
15
+ red: '\x1b[31m',
16
+ dim: '\x1b[2m',
17
+ reset: '\x1b[0m',
18
+ bold: '\x1b[1m',
19
+ reverse: '\x1b[7m',
20
+ };
21
+ // =============================================================================
22
+ // VALIDATION FUNCTIONS - Runtime checks for UI correctness
23
+ // =============================================================================
24
+ /**
25
+ * Validate that mode controls have all required toggles
26
+ */
27
+ export function validateModeControls(controls) {
28
+ const errors = [];
29
+ if (controls.editMode === undefined) {
30
+ errors.push('editMode is required');
31
+ }
32
+ if (controls.thinkingEnabled === undefined) {
33
+ errors.push('thinkingEnabled is required');
34
+ }
35
+ if (controls.verificationEnabled === undefined) {
36
+ errors.push('verificationEnabled is required');
37
+ }
38
+ if (controls.autoContinueEnabled === undefined) {
39
+ errors.push('autoContinueEnabled is required');
40
+ }
41
+ return { valid: errors.length === 0, errors };
42
+ }
43
+ /**
44
+ * Validate streaming state transitions
45
+ */
46
+ export function validateStreamingTransition(fromMode, toMode, actions) {
47
+ const errors = [];
48
+ if (fromMode === 'idle' && toMode === 'streaming') {
49
+ // Entering streaming - cursor should be hidden
50
+ if (!actions.hideCursor) {
51
+ errors.push('Must hide cursor when entering streaming mode');
52
+ }
53
+ }
54
+ if (fromMode === 'streaming' && toMode === 'idle') {
55
+ // Exiting streaming - cursor should be shown, newline added
56
+ if (!actions.showCursor) {
57
+ errors.push('Must show cursor when exiting streaming mode');
58
+ }
59
+ if (!actions.addNewline) {
60
+ errors.push('Must add newline after streaming content');
61
+ }
62
+ }
63
+ return { valid: errors.length === 0, errors };
64
+ }
65
+ /**
66
+ * Validate input area has all required components
67
+ */
68
+ export function validateInputAreaComponents(components) {
69
+ const required = ['statusBar', 'topDivider', 'inputLines', 'bottomDivider', 'modeControls'];
70
+ const errors = [];
71
+ for (const req of required) {
72
+ if (!components.includes(req)) {
73
+ errors.push(`Missing required component: ${req}`);
74
+ }
75
+ }
76
+ return { valid: errors.length === 0, errors };
77
+ }
78
+ // =============================================================================
79
+ // DEFAULT CONFIGURATION - The correct defaults
80
+ // =============================================================================
81
+ export const DEFAULT_UI_CONFIG = {
82
+ banner: {
83
+ minWidth: 42,
84
+ maxWidth: 110,
85
+ },
86
+ inputArea: {
87
+ maxLines: 15,
88
+ maxLength: 10000,
89
+ promptChar: '> ',
90
+ continuationChar: '│ ',
91
+ reservedLines: 5, // status + divider + input + divider + controls
92
+ },
93
+ modeControls: {
94
+ separator: ' · ',
95
+ shortcut: '(⇧⇥)',
96
+ },
97
+ divider: {
98
+ char: '─',
99
+ },
100
+ };
101
+ // =============================================================================
102
+ // TYPE GUARDS - Ensure type safety at runtime
103
+ // =============================================================================
104
+ export function isValidInputMode(mode) {
105
+ return mode === 'idle' || mode === 'streaming' || mode === 'paste';
106
+ }
107
+ export function isValidEditGuardMode(mode) {
108
+ return mode === 'display-edits' || mode === 'ask-permission';
109
+ }
110
+ export function isValidStatusTone(tone) {
111
+ return ['info', 'warn', 'error', 'success', 'muted'].includes(tone);
112
+ }
113
+ //# sourceMappingURL=terminalUISchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalUISchema.js","sourceRoot":"","sources":["../../src/ui/terminalUISchema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuHH,gFAAgF;AAChF,2CAA2C;AAC3C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;CACV,CAAC;AAIX,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAKpC;IACC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAmB,EACnB,MAAiB,EACjB,OAA6E;IAE7E,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClD,+CAA+C;QAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,WAAW,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAClD,4DAA4D;QAC5D,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAAoB;IAC9D,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,gFAAgF;AAChF,+CAA+C;AAC/C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,GAAG;KACd;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,CAAC,EAAE,gDAAgD;KACnE;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,MAAM;KACjB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,GAAG;KACV;CACO,CAAC;AAEX,gFAAgF;AAChF,8CAA8C;AAC9C,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,OAAO,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,gBAAgB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAejB,CAAC;AAEF,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAO5F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS5F"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAejB,CAAC;AAEF,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAQ5F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS5F"}
package/dist/ui/theme.js CHANGED
@@ -100,20 +100,22 @@ export function formatBanner(profileLabel, model) {
100
100
  return `\n${title}\n${subtitle}\n`;
101
101
  }
102
102
  export function formatUserPrompt(_profile) {
103
- // Always use '>' as the user input prefix for consistent look
104
- const glyph = theme.user('>');
105
- return `${glyph} `;
103
+ // Enhanced user prompt with visual indicator
104
+ const bullet = theme.accent('');
105
+ const label = theme.user('You');
106
+ return `${bullet} ${label}: `;
106
107
  }
107
108
  /**
108
109
  * Get the raw '>' prompt character for display consistency
109
110
  */
110
111
  export const USER_PROMPT_PREFIX = '> ';
111
112
  export function formatToolCall(name, status) {
112
- const statusIcon = status === 'running' ? icons.thinking :
113
- status === 'success' ? icons.success : icons.error;
113
+ const statusIcon = status === 'running' ? '◐' :
114
+ status === 'success' ? '●' : '○';
114
115
  const statusColor = status === 'running' ? theme.info :
115
116
  status === 'success' ? theme.success : theme.error;
116
- return `${statusColor(statusIcon)} ${theme.tool(name)}`;
117
+ const prefix = theme.ui.muted('⏺');
118
+ return `${prefix} ${theme.tool(name)}\n${theme.ui.muted('⎿')} ${statusColor(statusIcon)}`;
117
119
  }
118
120
  export function formatMessage(role, content) {
119
121
  switch (role) {
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}