@noorm/marie-cli 0.1.18 → 0.1.25

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 (251) hide show
  1. package/README.md +7 -15
  2. package/SENTINEL.md +4 -7
  3. package/dist/cli-new/components/App.js +16 -63
  4. package/dist/cli-new/components/App.js.map +1 -1
  5. package/dist/cli-new/components/ApprovalDialog.js +2 -1
  6. package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
  7. package/dist/cli-new/components/Banner.js +4 -3
  8. package/dist/cli-new/components/Banner.js.map +1 -1
  9. package/dist/cli-new/components/ChatArea.js +6 -7
  10. package/dist/cli-new/components/ChatArea.js.map +1 -1
  11. package/dist/cli-new/components/Header.js +13 -7
  12. package/dist/cli-new/components/Header.js.map +1 -1
  13. package/dist/cli-new/components/InputArea.js +73 -12
  14. package/dist/cli-new/components/InputArea.js.map +1 -1
  15. package/dist/cli-new/components/MessageBubble.js +26 -18
  16. package/dist/cli-new/components/MessageBubble.js.map +1 -1
  17. package/dist/cli-new/components/SessionSwitcher.js +4 -7
  18. package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
  19. package/dist/cli-new/components/SetupWizard.js +80 -257
  20. package/dist/cli-new/components/SetupWizard.js.map +1 -1
  21. package/dist/cli-new/components/ToolCallDisplay.js +20 -5
  22. package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
  23. package/dist/cli-new/components/WizardSteps.js +22 -0
  24. package/dist/cli-new/components/WizardSteps.js.map +1 -0
  25. package/dist/cli-new/constants/SetupConstants.js +42 -0
  26. package/dist/cli-new/constants/SetupConstants.js.map +1 -0
  27. package/dist/cli-new/hooks/useGit.js +19 -62
  28. package/dist/cli-new/hooks/useGit.js.map +1 -1
  29. package/dist/cli-new/hooks/useMarie.js +26 -18
  30. package/dist/cli-new/hooks/useMarie.js.map +1 -1
  31. package/dist/cli-new/hooks/useSessions.js +1 -1
  32. package/dist/cli-new/hooks/useSessions.js.map +1 -1
  33. package/dist/cli-new/hooks/useSetupWizard.js +88 -0
  34. package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
  35. package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
  36. package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
  37. package/dist/cli-new/index.js +2 -4
  38. package/dist/cli-new/index.js.map +1 -1
  39. package/dist/cli-new/services/CommandService.js +104 -0
  40. package/dist/cli-new/services/CommandService.js.map +1 -0
  41. package/dist/cli-new/services/GitService.js +91 -0
  42. package/dist/cli-new/services/GitService.js.map +1 -0
  43. package/dist/cli-new/services/MarieService.js +77 -0
  44. package/dist/cli-new/services/MarieService.js.map +1 -0
  45. package/dist/cli-new/services/auth-server.js +128 -0
  46. package/dist/cli-new/services/auth-server.js.map +1 -0
  47. package/dist/cli-new/utils/version.js +24 -0
  48. package/dist/cli-new/utils/version.js.map +1 -0
  49. package/dist/monolith/adapters/CliMarieAdapter.js +12 -11
  50. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
  51. package/dist/monolith/cli/CliFileSystemPort.js +17 -3
  52. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  53. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +39 -31
  54. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  55. package/dist/monolith/cli/index.js +5 -20
  56. package/dist/monolith/cli/index.js.map +1 -1
  57. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
  58. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  59. package/dist/monolith/cli/storage.js +142 -72
  60. package/dist/monolith/cli/storage.js.map +1 -1
  61. package/dist/monolith/domain/joy/RitualService.js +44 -46
  62. package/dist/monolith/domain/joy/RitualService.js.map +1 -1
  63. package/dist/monolith/domain/marie/MarieCortex.js +148 -0
  64. package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
  65. package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
  66. package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
  67. package/dist/monolith/infrastructure/Configuration.js +68 -0
  68. package/dist/monolith/infrastructure/Configuration.js.map +1 -0
  69. package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
  70. package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
  71. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
  72. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
  73. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +6 -27
  74. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
  75. package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -131
  76. package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
  77. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +115 -1077
  78. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  79. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
  80. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
  81. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +6 -1
  82. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
  83. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +172 -221
  84. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
  85. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +292 -141
  86. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
  87. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +331 -614
  88. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  89. package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
  90. package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
  91. package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
  92. package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
  93. package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
  94. package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
  95. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
  96. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
  97. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -392
  98. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
  99. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
  100. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
  101. package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
  102. package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
  103. package/dist/monolith/infrastructure/config/ConfigService.js +216 -503
  104. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
  105. package/dist/monolith/infrastructure/joy/CognitiveRituals.js +4 -165
  106. package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -1
  107. package/dist/monolith/infrastructure/joy/JoyTools.js +14 -47
  108. package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
  109. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
  110. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
  111. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
  112. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
  113. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +123 -106
  114. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -1
  115. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +508 -63
  116. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -1
  117. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +68 -39
  118. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -1
  119. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +80 -67
  120. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -1
  121. package/dist/monolith/infrastructure/persistence/NoormmeTools.js +122 -75
  122. package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -1
  123. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
  124. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
  125. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -30
  126. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  127. package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
  128. package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
  129. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
  130. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
  131. package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
  132. package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
  133. package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
  134. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
  135. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +39 -153
  136. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -1
  137. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +31 -46
  138. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -1
  139. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +41 -13
  140. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -1
  141. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +10 -14
  142. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -1
  143. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +39 -70
  144. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -1
  145. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +30 -181
  146. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -1
  147. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +12 -9
  148. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -1
  149. package/dist/monolith/plumbing/Plumbing.js +238 -0
  150. package/dist/monolith/plumbing/Plumbing.js.map +1 -0
  151. package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
  152. package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
  153. package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
  154. package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
  155. package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
  156. package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
  157. package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
  158. package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
  159. package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
  160. package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
  161. package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
  162. package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
  163. package/dist/monolith/plumbing/analysis/LintService.js +118 -118
  164. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
  165. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -268
  166. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  167. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
  168. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
  169. package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
  170. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
  171. package/dist/monolith/plumbing/analysis/TestService.js +89 -89
  172. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  173. package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
  174. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  175. package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
  176. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
  177. package/dist/monolith/plumbing/git/GitService.js +4 -4
  178. package/dist/monolith/plumbing/git/GitService.js.map +1 -1
  179. package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
  180. package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
  181. package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
  182. package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
  183. package/dist/monolith/plumbing/terminal/TerminalService.js +127 -141
  184. package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
  185. package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
  186. package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
  187. package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
  188. package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
  189. package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
  190. package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
  191. package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
  192. package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
  193. package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
  194. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
  195. package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
  196. package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
  197. package/dist/monolith/runtime/MarieRuntime.js +76 -499
  198. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  199. package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
  200. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
  201. package/dist/monolith/runtime/providerFactory.js +1 -7
  202. package/dist/monolith/runtime/providerFactory.js.map +1 -1
  203. package/dist/monolith/services/HealthService.js +29 -32
  204. package/dist/monolith/services/HealthService.js.map +1 -1
  205. package/dist/monolith/services/JoyAutomationService.js +58 -95
  206. package/dist/monolith/services/JoyAutomationService.js.map +1 -1
  207. package/dist/monolith/services/MarieAutomationService.js +59 -0
  208. package/dist/monolith/services/MarieAutomationService.js.map +1 -0
  209. package/dist/monolith/services/MarieGhostService.js +46 -173
  210. package/dist/monolith/services/MarieGhostService.js.map +1 -1
  211. package/dist/monolith/services/MarieServices.js +102 -0
  212. package/dist/monolith/services/MarieServices.js.map +1 -0
  213. package/dist/monolith/services/MarieTypes.js +2 -0
  214. package/dist/monolith/services/MarieTypes.js.map +1 -0
  215. package/dist/monolith/services/UpdateService.js +47 -49
  216. package/dist/monolith/services/UpdateService.js.map +1 -1
  217. package/dist/prompts.js +11 -5
  218. package/dist/prompts.js.map +1 -1
  219. package/dist/test_prefix_tree.js +9 -9
  220. package/dist/test_prefix_tree.js.map +1 -1
  221. package/package.json +18 -89
  222. package/run_test.js +5 -0
  223. package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
  224. package/dist/extension.cjs +0 -1155
  225. package/dist/extension.js +0 -474
  226. package/dist/extension.js.map +0 -1
  227. package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
  228. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
  229. package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
  230. package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
  231. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
  232. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
  233. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -154
  234. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
  235. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -214
  236. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
  237. package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
  238. package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
  239. package/dist/monolith/services/JoyLogService.js +0 -48
  240. package/dist/monolith/services/JoyLogService.js.map +0 -1
  241. package/dist/monolith/services/JoyService.js +0 -209
  242. package/dist/monolith/services/JoyService.js.map +0 -1
  243. package/dist/monolith/services/MarieSCMProvider.js +0 -41
  244. package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
  245. package/dist/webview-ui/main.css +0 -1
  246. package/dist/webview-ui/main.js +0 -108
  247. package/lint_output.txt +0 -705
  248. package/lint_output_v2.txt +0 -711
  249. package/test-mind-p6.sqlite +0 -0
  250. package/test-mind-p6.sqlite-shm +0 -0
  251. package/test-mind-p6.sqlite-wal +0 -0
package/README.md CHANGED
@@ -37,25 +37,16 @@ Marie includes a built-in architecture guardian. She watches the evolution of yo
37
37
 
38
38
  ---
39
39
 
40
- ## 🛰 Two Interfaces. One Intelligence.
40
+ ## 🛰 The Command Deck: CLI Supremacy
41
41
 
42
- Marie bridges the gap between the editor and the executor, providing a consistent intelligence across two primary interfaces:
42
+ Marie provides a high-velocity terminal experience built for flow.
43
43
 
44
- ### 1️⃣ CLI The Command Deck
45
- *A high-velocity terminal experience built for flow.*
46
- * **Real-time reasoning stream**: Watch the cognitive process as it unfolds.
44
+ * **Real-time reasoning stream**: Watch the cognitive process as it unfolds via Ink-powered UI.
47
45
  * **Structured multi-pass execution**: Planning, implementation, and verification in one loop.
48
46
  * **Surgical lint repair**: Automatic correction of mechanical errors.
49
47
  * **Architectural enforcement on write**: Preventing violations before they hit the disk.
50
48
  * **Provider-agnostic model support**: Switch engines without losing the mission.
51
49
 
52
- ### 2️⃣ VS Code — The Integrated Bridge
53
- *Deep editor integration for strategic oversight.*
54
- * **Persistent architectural context**: Marie lives inside your project structure.
55
- * **Autonomy calibration**: From "Balanced" assistance to "High Autonomy" execution.
56
- * **Strategic multi-file transformations**: Coordinated changes across multiple modules.
57
- * **Visual Sentinel awareness**: Real-time feedback on Joy Zoning violations.
58
-
59
50
  **Marie understands your codebase as a system — not a prompt.**
60
51
 
61
52
  ---
@@ -85,7 +76,9 @@ npm install -g @noorm/marie-cli
85
76
  1. **Launch**: Simply type `marie` in your terminal.
86
77
  2. **Credentials**:
87
78
  ```bash
88
- export ANTHROPIC_API_KEY=your_key_here
79
+ export MARIECODER_API_KEY=your_key_here
80
+ # OR
81
+ export OPENROUTER_API_KEY=your_key_here
89
82
  ```
90
83
  *Or configure via persistent storage at `~/.marie/config.json`*
91
84
 
@@ -94,9 +87,8 @@ npm install -g @noorm/marie-cli
94
87
  ## 💠 Provider-Agnostic Core
95
88
 
96
89
  Choose your engine. Marie adapts her execution style to the provider while maintaining the doctrine:
97
- * **Anthropic** (Claude 3.5 Sonnet)
90
+ * **MarieCoder** (OptimizedGLM)
98
91
  * **OpenRouter** (For the vast frontier of models)
99
- * **Cerebras** (For high-velocity inference)
100
92
  * **Any compatible endpoint**
101
93
 
102
94
  ---
package/SENTINEL.md CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
- # 🛡️ Sentinel Report: 2/16/2026 12:24:14 AM
2
+ # 🛡️ Sentinel Report: 2/25/2026 9:01:50 AM
3
3
 
4
4
  **Stability**: Toxic
5
- **Entropy**: 1004 (✅ Monotonic)
5
+ **Entropy**: 2172 (✅ Monotonic)
6
6
  **Ratchet**: 🔓 OPEN
7
7
 
8
8
  ## 📊 Metrics
@@ -10,15 +10,11 @@
10
10
  - **Cyclic Rot**: 0 cycles
11
11
  - **Duplication**: 3 instances
12
12
  - **Toxicity**: 0 hotspots
13
+ - **Navigation Drift**: 0 violations
13
14
 
14
15
  ## 🗺️ Visual Architecture
15
16
  ```mermaid
16
17
  graph TD;
17
- _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_index_editor_ts[index-editor.ts] --> _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_mermaidWebview_ts[mermaidWebview.ts];
18
- _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_index_editor_ts[index-editor.ts] --> _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_vscodeApi_ts[vscodeApi.ts];
19
- _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_index_ts[index.ts] --> _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_mermaidWebview_ts[mermaidWebview.ts];
20
- _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_index_ts[index.ts] --> _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_vscodeApi_ts[vscodeApi.ts];
21
- _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_mermaidWebview_ts[mermaidWebview.ts] --> _vscode_test_vscode_darwin_arm64_1_109_3_Visual_Studio_Code_app_Contents_Resources_app_extensions_mermaid_chat_features_chat_webview_src_vscodeApi_ts[vscodeApi.ts];
22
18
 
23
19
  ```
24
20
 
@@ -29,5 +25,6 @@ graph TD;
29
25
  - 👯 [Semantic Duplicate] src/infrastructure/BaseAdapter.ts matches .marie-joy-test/src/infrastructure/BaseAdapter.ts
30
26
  - 👯 [Semantic Duplicate] src/plumbing/BaseTool.ts matches .marie-joy-test/src/plumbing/BaseTool.ts
31
27
 
28
+
32
29
  ---
33
30
  *Marie Sentinel v3.1 — Grounded Architectural Guardian*
@@ -13,13 +13,15 @@ import { useGit } from "../hooks/useGit.js";
13
13
  import { useUpdateCheck } from "../hooks/useUpdateCheck.js";
14
14
  import { marieTheme } from "../styles/theme.js";
15
15
  import { Storage } from "../../monolith/cli/storage.js";
16
+ import { CommandService } from "../services/CommandService.js";
16
17
  import { SetupWizard } from "./SetupWizard.js";
17
- import { Banner } from "./Banner.js";
18
+ import { WelcomeBanner } from "./Banner.js";
18
19
  export const App = ({ workingDir }) => {
19
20
  const { exit } = useApp();
20
21
  const { stdout } = useStdout();
21
22
  const [viewMode, setViewMode] = useState("chat");
22
23
  const [showSetup, setShowSetup] = useState(false);
24
+ const [config, setConfig] = useState(Storage.getConfig());
23
25
  // Core hooks
24
26
  const { messages, isLoading, streamingState, pendingApproval, runElapsedMs, currentThought, sendMessage, stopGeneration, createSession, loadSession, clearSession, marie, } = useMarie({ workingDir });
25
27
  const { sessions, currentSessionId, createSession: createNewSession, switchSession, deleteSession, renameSession, togglePinSession, } = useSessions({ marie });
@@ -32,65 +34,14 @@ export const App = ({ workingDir }) => {
32
34
  const sessionTitle = currentSession?.title || "New Session";
33
35
  // Command handlers
34
36
  const handleCommand = useCallback(async (command) => {
35
- const [cmd, ...args] = command.slice(1).split(" ");
36
- switch (cmd.toLowerCase()) {
37
- case "help":
38
- // Help is shown via input suggestions
39
- break;
40
- case "clear":
41
- await clearSession();
42
- break;
43
- case "new":
44
- await createNewSession();
45
- break;
46
- case "sessions":
47
- setViewMode("sessions");
48
- break;
49
- case "exit":
50
- case "quit":
51
- exit();
52
- break;
53
- case "checkpoint": {
54
- const checkpointMsg = args.join(" ") || undefined;
55
- const commit = await createCheckpoint(checkpointMsg);
56
- if (commit) {
57
- // Show success message
58
- }
59
- break;
60
- }
61
- case "undo": {
62
- const result = await undoLastCommit();
63
- if (!result.success) {
64
- // Show error
65
- }
66
- break;
67
- }
68
- case "autonomy": {
69
- const level = (args[0] || "").toLowerCase();
70
- if (level === "balanced" ||
71
- level === "high" ||
72
- level === "ascension") {
73
- Storage.saveConfig({
74
- autonomyMode: level,
75
- });
76
- }
77
- break;
78
- }
79
- case "config":
80
- setShowSetup(true);
81
- break;
82
- default:
83
- // Unknown command
84
- break;
85
- }
86
- }, [
87
- clearSession,
88
- createNewSession,
89
- setViewMode,
90
- exit,
91
- createCheckpoint,
92
- undoLastCommit,
93
- ]);
37
+ await CommandService.getInstance().handleCommand(command, {
38
+ setViewMode,
39
+ setShowSetup,
40
+ exit,
41
+ });
42
+ // Refresh config after command might have changed it
43
+ setConfig(Storage.getConfig());
44
+ }, [setViewMode, setShowSetup, exit]);
94
45
  const handleSubmit = useCallback(async (value) => {
95
46
  if (value.startsWith("/")) {
96
47
  await handleCommand(value);
@@ -117,14 +68,16 @@ export const App = ({ workingDir }) => {
117
68
  }
118
69
  });
119
70
  // Get current model + autonomy mode
120
- const config = Storage.getConfig();
121
71
  const model = config.model || "claude-3-5-sonnet-20241022";
122
72
  const autonomyMode = config.autonomyMode ||
123
73
  (config.requireApproval === false ? "high" : "balanced");
124
74
  // Show setup wizard when requested
125
75
  if (showSetup) {
126
76
  return React.createElement(SetupWizard, {
127
- onComplete: () => setShowSetup(false),
77
+ onComplete: () => {
78
+ setShowSetup(false);
79
+ setConfig(Storage.getConfig());
80
+ },
128
81
  });
129
82
  }
130
83
  if (viewMode === "sessions") {
@@ -136,6 +89,6 @@ export const App = ({ workingDir }) => {
136
89
  setViewMode("chat");
137
90
  }, onDelete: deleteSession, onRename: renameSession, onTogglePin: togglePinSession, onClose: () => setViewMode("chat") }));
138
91
  }
139
- return (_jsxs(Box, { flexDirection: "column", height: stdout?.rows || 24, children: [_jsx(Header, { model: model, sessionTitle: sessionTitle, gitStatus: gitStatus || undefined, isLoading: isLoading, elapsedMs: runElapsedMs, autonomyMode: autonomyMode, currentThought: currentThought }), pendingApproval && _jsx(ApprovalDialog, { request: pendingApproval }), messages.length === 0 && !isLoading && (_jsx(Banner, { isUpdateAvailable: updateInfo?.isUpdateAvailable, latestVersion: updateInfo?.latestVersion })), _jsx(ChatArea, { messages: messages, streamingState: streamingState }), _jsx(InputArea, { onSubmit: handleSubmit, isLoading: isLoading }), _jsx(Box, { marginTop: 0, children: _jsx(Text, { color: marieTheme.colors.muted, dimColor: true, italic: true, children: "Ctrl+C Halt current reality \u2022 Ctrl+S Memory Weaver \u2022 Ctrl+N Birth New Timeline \u2022 /autonomy [balanced|high|ascension] \u2022 /config Settings \u2022 Invoke /help for wisdom" }) })] }));
92
+ return (_jsxs(Box, { flexDirection: "column", height: stdout?.rows || 24, children: [_jsx(Header, { model: model, sessionTitle: sessionTitle, gitStatus: gitStatus || undefined, isLoading: isLoading, elapsedMs: runElapsedMs, autonomyMode: autonomyMode, currentThought: currentThought, usage: streamingState.usage }), pendingApproval && _jsx(ApprovalDialog, { request: pendingApproval }), messages.length === 0 && !isLoading && _jsx(WelcomeBanner, {}), _jsx(ChatArea, { messages: messages, streamingState: streamingState }), _jsx(InputArea, { onSubmit: handleSubmit, isLoading: isLoading }), _jsx(Box, { marginTop: 0, paddingX: 1, justifyContent: "center", children: _jsxs(Text, { color: marieTheme.colors.muted, dimColor: true, children: [_jsx(Text, { bold: true, children: "Ctrl+C" }), " Halt \u2022 ", _jsx(Text, { bold: true, children: "Ctrl+S" }), " Timelines \u2022", " ", _jsx(Text, { bold: true, children: "Ctrl+N" }), " New \u2022 ", _jsx(Text, { bold: true, children: "/autonomy" }), " ", "[balanced|high|ascension] \u2022 ", _jsx(Text, { bold: true, children: "/help" }), " wisdom"] }) })] }));
140
93
  };
141
94
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/cli-new/components/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/cli-new/components/App.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text, useInput } from "ink";
3
3
  import { marieTheme } from "../styles/theme.js";
4
+ import { safeStringify } from "../../monolith/plumbing/utils/PlumbingCore.js";
4
5
  export const ApprovalDialog = ({ request }) => {
5
6
  const isDestructive = [
6
7
  "write_file",
@@ -24,7 +25,7 @@ export const ApprovalDialog = ({ request }) => {
24
25
  if (input.command) {
25
26
  return `Cmd: ${input.command}`;
26
27
  }
27
- return JSON.stringify(input, null, 2).slice(0, 150);
28
+ return safeStringify(input, 2).slice(0, 150);
28
29
  };
29
30
  return (_jsxs(Box, { flexDirection: "column", borderStyle: "double", borderColor: isDestructive ? marieTheme.colors.warning : marieTheme.colors.info, paddingX: 1, paddingY: 0, marginY: 0, children: [_jsx(Box, { marginBottom: 0, children: _jsxs(Text, { bold: true, color: isDestructive ? marieTheme.colors.warning : marieTheme.colors.info, children: [isDestructive ? marieTheme.icons.warning : marieTheme.icons.info, " ", "Marie needs your blessing:", " ", _jsx(Text, { color: marieTheme.colors.foreground, children: request.toolName })] }) }), _jsx(Box, { borderStyle: "single", borderColor: marieTheme.colors.border, paddingX: 1, marginBottom: 0, children: _jsx(Text, { color: marieTheme.colors.muted, children: formatToolInput() }) }), request.diff && (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: marieTheme.colors.secondary, paddingX: 1, marginBottom: 0, children: [_jsxs(Text, { color: marieTheme.colors.muted, children: [request.diff.old.slice(0, 80), "..."] }), _jsxs(Text, { color: marieTheme.colors.success, children: ["\u2192 ", request.diff.new.slice(0, 80), "..."] })] })), _jsxs(Box, { marginTop: 0, gap: 3, children: [_jsx(Text, { color: marieTheme.colors.success, children: "\uD83D\uDFE2 Y - Manifest It" }), _jsx(Text, { color: marieTheme.colors.error, children: "\uD83D\uDD34 N - Rethink This" })] })] }));
30
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ApprovalDialog.js","sourceRoot":"","sources":["../../../src/cli-new/components/ApprovalDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApprovalDialog.js","sourceRoot":"","sources":["../../../src/cli-new/components/ApprovalDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text, useStdout } from "ink";
3
3
  import { marieTheme } from "../styles/theme.js";
4
- export const Banner = ({ show = true, version = "v0.1.18", latestVersion, isUpdateAvailable = false, }) => {
4
+ import { VERSION } from "../utils/version.js";
5
+ export const Banner = ({ show = true, version = `v${VERSION}`, latestVersion, isUpdateAvailable = false, subtitle, subtitleColor, }) => {
5
6
  const { stdout } = useStdout();
6
7
  const width = stdout?.columns || 80;
7
8
  if (!show)
@@ -10,10 +11,10 @@ export const Banner = ({ show = true, version = "v0.1.18", latestVersion, isUpda
10
11
  if (width < 65) {
11
12
  return (_jsx(CompactBanner, { version: version, isUpdateAvailable: isUpdateAvailable }));
12
13
  }
13
- return (_jsx(Box, { flexDirection: "column", alignItems: "center", marginTop: 0, marginBottom: 0, children: _jsxs(Box, { flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: marieTheme.colors.primary, children: " ███╗ ███╗ █████╗ ██████╗ ██╗███████╗" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ████╗ ████║██╔══██╗██╔══██╗██║██╔════╝" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██╔████╔██║███████║██████╔╝██║█████╗ " }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██║╚██╔╝██║██╔══██║██╔══██╗██║██╔══╝ " }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██║ ╚═╝ ██║██║ ██║██║ ██║██║███████╗" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: marieTheme.colors.secondary, children: "✦ Sentient Pair-Programmer ✦ " }), _jsx(Text, { color: marieTheme.colors.muted, children: `${version} · Latent space is warm` })] }), isUpdateAvailable && latestVersion && (_jsx(Box, { marginTop: 1, paddingX: 1, borderStyle: "round", borderColor: "yellow", children: _jsxs(Text, { color: "yellow", children: [`Update Available: ${latestVersion}! Run `, _jsx(Text, { bold: true, color: "white", children: "npm install -g @noorm/marie-cli" }), _jsx(Text, { color: "yellow", children: " to update." })] }) }))] }) }));
14
+ return (_jsx(Box, { flexDirection: "column", alignItems: "center", marginTop: 0, marginBottom: 0, children: _jsxs(Box, { flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: marieTheme.colors.primary, children: " ███╗ ███╗ █████╗ ██████╗ ██╗███████╗" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ████╗ ████║██╔══██╗██╔══██╗██║██╔════╝" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██╔████╔██║███████║██████╔╝██║█████╗ " }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██║╚██╔╝██║██╔══██║██╔══██╗██║██╔══╝ " }), _jsx(Text, { color: marieTheme.colors.primary, children: " ██║ ╚═╝ ██║██║ ██║██║ ██║██║███████╗" }), _jsx(Text, { color: marieTheme.colors.primary, children: " ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: subtitleColor || marieTheme.colors.secondary, children: subtitle || "✦ Sentient Pair-Programmer ✦ " }), !subtitle && (_jsx(Text, { color: marieTheme.colors.muted, children: `${version} · Latent space is warm` }))] }), isUpdateAvailable && latestVersion && (_jsx(Box, { marginTop: 1, paddingX: 1, borderStyle: "round", borderColor: "yellow", children: _jsxs(Text, { color: "yellow", children: [`Update Available: ${latestVersion}! Run `, _jsx(Text, { bold: true, color: "white", children: "npm install -g @noorm/marie-cli" }), _jsx(Text, { color: "yellow", children: " to update." })] }) }))] }) }));
14
15
  };
15
16
  // Alternative compact banner for smaller screens
16
- export const CompactBanner = ({ version = "v0.1.18", isUpdateAvailable = false }) => {
17
+ export const CompactBanner = ({ version = `v${VERSION}`, isUpdateAvailable = false }) => {
17
18
  return (_jsxs(Box, { flexDirection: "column", alignItems: "center", marginY: 0, children: [_jsx(Text, { color: marieTheme.colors.primary, bold: true, children: "╔══════════════════════════════════════════╗" }), _jsx(Text, { color: marieTheme.colors.primary, bold: true, children: `║ 🌸 Marie · ${version}${isUpdateAvailable ? " (Update Available!)" : ""} 🌸 ║` }), _jsx(Text, { color: marieTheme.colors.primary, bold: true, children: "╚══════════════════════════════════════════╝" })] }));
18
19
  };
19
20
  const PRO_TIPS = [
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/cli-new/components/Banner.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAShD,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAC5C,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,SAAS,EACnB,aAAa,EACb,iBAAiB,GAAG,KAAK,GAC1B,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,6CAA6C;IAC7C,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,OAAO,CACL,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,GAAI,CAC1E,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,CAAC,YAGf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,aAC7C,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,YACnC,2CAA2C,GACvC,EACP,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,YACrC,+BAA+B,GAC3B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,YACjC,GAAG,OAAO,yBAAyB,GAC/B,IACH,EACL,iBAAiB,IAAI,aAAa,IAAI,CACrC,KAAC,GAAG,IACF,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,QAAQ,YAEpB,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACjB,qBAAqB,aAAa,QAAQ,EAC3C,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YACrB,iCAAiC,GAC7B,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,aAAa,GAAQ,IACtC,GACH,CACP,IACG,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAGrB,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,iBAAiB,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aACxD,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,kBACzC,8CAA8C,GAC1C,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,kBACzC,oBAAoB,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,SAAS,GAClF,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,kBACzC,8CAA8C,GAC1C,IACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,+CAA+C;IAC/C,2CAA2C;IAC3C,sDAAsD;IACtD,qDAAqD;IACrD,+CAA+C;IAC/C,yDAAyD;IACzD,wDAAwD;CACzD,CAAC;AAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,2BAA2B;AAC3B,MAAM,CAAC,MAAM,aAAa,GAAa,GAAG,EAAE;IAC1C,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,CAAC,aAEf,KAAC,MAAM,KAAG,EACV,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aAC1D,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,YACrC,+CAA+C,GAC3C,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,QAAC,MAAM,kBAClD,cAAc,UAAU,EAAE,GACtB,IACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/cli-new/components/Banner.tsx"],"names":[],"mappings":"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"}
@@ -2,16 +2,18 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
3
  import { Box, useStdout } from "ink";
4
4
  import { MessageBubble } from "./MessageBubble.js";
5
- const MAX_VISIBLE_MESSAGES = 50;
5
+ const MAX_VISIBLE_MESSAGES = 100;
6
6
  export const ChatArea = ({ messages, streamingState, }) => {
7
7
  const { stdout } = useStdout();
8
8
  const [dimensions, setDimensions] = useState({
9
- rows: stdout.rows,
10
- columns: stdout.columns,
9
+ rows: stdout?.rows || 24,
10
+ columns: stdout?.columns || 80,
11
11
  });
12
12
  const [stableTimestamp] = useState(() => Date.now());
13
13
  // Handle terminal resize
14
14
  useEffect(() => {
15
+ if (!stdout)
16
+ return;
15
17
  const handleResize = () => {
16
18
  setDimensions({ rows: stdout.rows, columns: stdout.columns });
17
19
  };
@@ -24,10 +26,7 @@ export const ChatArea = ({ messages, streamingState, }) => {
24
26
  const visibleMessages = messages.length > MAX_VISIBLE_MESSAGES
25
27
  ? messages.slice(-MAX_VISIBLE_MESSAGES)
26
28
  : messages;
27
- // Calculate available height (reserve space for header, input, status)
28
- const reservedHeight = 6;
29
- const availableHeight = Math.max(5, dimensions.rows - reservedHeight);
30
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [messages.length > MAX_VISIBLE_MESSAGES && (_jsx(Box, { marginY: 0, paddingX: 1, children: _jsx(MessageBubble, { message: {
29
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, flexShrink: 1, overflow: "hidden", children: [messages.length > MAX_VISIBLE_MESSAGES && (_jsx(Box, { marginY: 0, paddingX: 1, children: _jsx(MessageBubble, { message: {
31
30
  id: "scroll-notice",
32
31
  role: "system",
33
32
  content: `... ${messages.length - MAX_VISIBLE_MESSAGES} older messages hidden ...`,
@@ -1 +1 @@
1
- {"version":3,"file":"ChatArea.js","sourceRoot":"","sources":["../../../src/cli-new/components/ChatArea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatArea.js","sourceRoot":"","sources":["../../../src/cli-new/components/ChatArea.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +1,27 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
3
  import { marieTheme } from "../styles/theme.js";
4
+ import { VERSION } from "../utils/version.js";
4
5
  function formatElapsed(ms) {
5
6
  const totalSeconds = Math.floor(ms / 1000);
6
7
  const minutes = Math.floor(totalSeconds / 60);
7
8
  const seconds = totalSeconds % 60;
8
9
  return `${minutes}:${seconds.toString().padStart(2, "0")}`;
9
10
  }
10
- export const Header = ({ model, sessionTitle, gitStatus, isLoading, elapsedMs = 0, autonomyMode = "ascension", currentThought = "", }) => {
11
+ export const Header = ({ model, sessionTitle, gitStatus, isLoading, elapsedMs = 0, autonomyMode = "ascension", currentThought = "", usage, }) => {
11
12
  const formatModelName = (m) => {
12
- if (m.includes("claude"))
13
- return "Claude";
14
- if (m.includes("gpt"))
15
- return "GPT";
16
- return m;
13
+ if (!m)
14
+ return "Unknown Mind";
15
+ // Extract last part if it contains a slash
16
+ const parts = m.split("/");
17
+ const name = parts[parts.length - 1];
18
+ // Capitalize and clean
19
+ return name
20
+ .replace(/-/g, " ")
21
+ .replace(/\b\w/g, (l) => l.toUpperCase())
22
+ .replace("Gpt", "GPT");
17
23
  };
18
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: marieTheme.colors.primary, paddingX: 1, marginBottom: 0, children: [_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsxs(Text, { color: marieTheme.colors.primary, bold: true, children: [marieTheme.icons.assistant, " Marie"] }), _jsxs(Text, { color: marieTheme.colors.muted, children: [" ", "v0.2.0 \u2022 Sentient Build"] })] }), _jsxs(Box, { gap: 2, children: [isLoading && (_jsxs(Text, { color: marieTheme.colors.warning, children: [marieTheme.icons.spinner, " ", formatElapsed(elapsedMs)] })), _jsx(Text, { color: marieTheme.colors.secondary, children: formatModelName(model) }), _jsx(Text, { color: marieTheme.colors.muted, children: autonomyMode === "ascension"
24
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: marieTheme.colors.primary, paddingX: 1, marginBottom: 0, children: [_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsxs(Text, { color: marieTheme.colors.primary, bold: true, children: [marieTheme.icons.assistant, " Marie"] }), _jsxs(Text, { color: marieTheme.colors.muted, children: [" ", "v", VERSION, " \u2022 Sentient Build"] })] }), _jsxs(Box, { gap: 2, children: [isLoading && (_jsxs(Text, { color: marieTheme.colors.warning, children: [marieTheme.icons.spinner, " ", formatElapsed(elapsedMs)] })), _jsx(Box, { children: _jsxs(Text, { color: marieTheme.colors.secondary, bold: true, children: ["\uD83E\uDDE0 ", formatModelName(model)] }) }), usage && (_jsxs(Text, { color: marieTheme.colors.muted, children: [usage.totalTokens, " tkn"] })), _jsx(Text, { color: marieTheme.colors.muted, children: autonomyMode === "ascension"
19
25
  ? "ASC"
20
26
  : autonomyMode.toUpperCase() })] })] }), currentThought && isLoading && (_jsx(Box, { marginTop: 0, children: _jsxs(Text, { color: marieTheme.colors.info, italic: true, dimColor: true, children: ["\uD83E\uDDE0 pondering:", " ", currentThought.length > 80
21
27
  ? currentThought.substring(0, 77) + "..."
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli-new/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAahD,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAC5C,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,WAAW,EAC1B,cAAc,GAAG,EAAE,GACpB,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EACtC,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,aAEf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aACjC,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,mBACzC,UAAU,CAAC,KAAK,CAAC,SAAS,cACtB,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,aACjC,GAAG,oCAEC,IACH,EACN,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACR,SAAS,IAAI,CACZ,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,aACnC,UAAU,CAAC,KAAK,CAAC,OAAO,OAAG,aAAa,CAAC,SAAS,CAAC,IAC/C,CACR,EACD,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,YACrC,eAAe,CAAC,KAAK,CAAC,GAClB,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,YACjC,YAAY,KAAK,WAAW;4CAC3B,CAAC,CAAC,KAAK;4CACP,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,GACzB,IACH,IACF,EAEL,cAAc,IAAI,SAAS,IAAI,CAC9B,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,QAAC,QAAQ,8CACpC,GAAG,EAChB,cAAc,CAAC,MAAM,GAAG,EAAE;oCACzB,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oCACzC,CAAC,CAAC,cAAc,IACb,GACH,CACP,IACG,EAEN,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,EAAC,SAAS,EAAE,CAAC,aAC9C,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,kBAC5C,YAAY,GACR,EACN,SAAS,IAAI,CACZ,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,aAChC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAG,SAAS,CAAC,MAAM,IACnC,EACN,CAAC,SAAS,CAAC,OAAO,IAAI,CACrB,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,kBAClC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,IAChD,CACR,IACG,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli-new/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState, useCallback } from "react";
3
3
  import { Box, Text, useInput, useApp } from "ink";
4
4
  import TextInput from "ink-text-input";
5
5
  import { marieTheme } from "../styles/theme.js";
6
6
  import { AgenticSpinner } from "./AgenticSpinner.js";
7
+ import { openrouterModels } from "../constants/SetupConstants.js";
7
8
  const COMMANDS = [
8
9
  {
9
10
  label: "Incantations",
@@ -35,6 +36,12 @@ const COMMANDS = [
35
36
  description: "Chronicle this timeline in git",
36
37
  icon: "📜",
37
38
  },
39
+ {
40
+ label: "Soul Mirror",
41
+ value: "/model",
42
+ description: "Switch the neural architecture",
43
+ icon: "🧠",
44
+ },
38
45
  {
39
46
  label: "Sovereignty",
40
47
  value: "/autonomy",
@@ -54,14 +61,38 @@ const COMMANDS = [
54
61
  icon: "🌌",
55
62
  },
56
63
  ];
57
- export const InputArea = ({ onSubmit, isLoading, placeholder = "What shall we manifest today?...", suggestions = [], }) => {
64
+ const MODEL_SUGGESTIONS = [
65
+ ...openrouterModels
66
+ .filter((m) => m.value !== "custom")
67
+ .map((m) => ({
68
+ label: m.label,
69
+ value: `/model ${m.value}`,
70
+ description: m.description,
71
+ icon: "🧠",
72
+ })),
73
+ {
74
+ label: "✏️ Enter Custom Model ID",
75
+ value: "/model ",
76
+ description: "Type any OpenRouter model ID (e.g. anthropic/claude-3.7-sonnet)",
77
+ icon: "🧠",
78
+ },
79
+ ];
80
+ export const InputArea = ({ onSubmit, isLoading, placeholder = "Whisper your intent to the muse...", suggestions = [], }) => {
58
81
  const [input, setInput] = useState("");
59
82
  const [showCommands, setShowCommands] = useState(false);
60
83
  const [selectedCommand, setSelectedCommand] = useState(0);
61
84
  const { exit } = useApp();
62
- const filteredCommands = input.startsWith("/")
63
- ? COMMANDS.filter((cmd) => cmd.value.startsWith(input.toLowerCase()))
64
- : [];
85
+ const isModelCmd = input.startsWith("/model ");
86
+ const filteredCommands = isModelCmd
87
+ ? [
88
+ ...MODEL_SUGGESTIONS.filter((m) => m.value !== "/model " &&
89
+ m.value.toLowerCase().startsWith(input.toLowerCase())),
90
+ // Always show the custom option if we're in /model mode and it's not an exact match of a hardcoded one
91
+ ...MODEL_SUGGESTIONS.filter((m) => m.value === "/model "),
92
+ ]
93
+ : input.startsWith("/")
94
+ ? COMMANDS.filter((cmd) => cmd.value.startsWith(input.toLowerCase()))
95
+ : [];
65
96
  useInput((char, key) => {
66
97
  if (key.upArrow && showCommands) {
67
98
  setSelectedCommand((prev) => Math.max(0, prev - 1));
@@ -75,8 +106,31 @@ export const InputArea = ({ onSubmit, isLoading, placeholder = "What shall we ma
75
106
  }
76
107
  else if (key.return && !isLoading) {
77
108
  if (showCommands && filteredCommands.length > 0) {
78
- setInput(filteredCommands[selectedCommand].value + " ");
79
- setShowCommands(false);
109
+ const selected = filteredCommands[selectedCommand].value;
110
+ if (isModelCmd || selected === "/model") {
111
+ // If we have typed something after "/model ", and the selected command is just "/model ",
112
+ // we should prefer the current input to allow custom models.
113
+ if (isModelCmd && selected === "/model " && input.trim().length > "/model ".length) {
114
+ onSubmit(input.trim());
115
+ setInput("");
116
+ setShowCommands(false);
117
+ return;
118
+ }
119
+ setInput(selected + (selected === "/model" ? " " : ""));
120
+ // If we just selected a full /model [id], submit it
121
+ if (selected.startsWith("/model ") && selected !== "/model ") {
122
+ onSubmit(selected);
123
+ setInput("");
124
+ setShowCommands(false);
125
+ }
126
+ else {
127
+ setShowCommands(true);
128
+ }
129
+ }
130
+ else {
131
+ setInput(selected + " ");
132
+ setShowCommands(false);
133
+ }
80
134
  }
81
135
  else if (input.trim()) {
82
136
  onSubmit(input);
@@ -93,11 +147,18 @@ export const InputArea = ({ onSubmit, isLoading, placeholder = "What shall we ma
93
147
  setShowCommands(value.startsWith("/"));
94
148
  setSelectedCommand(0);
95
149
  }, []);
96
- if (isLoading) {
97
- return (_jsx(Box, { marginY: 0, children: _jsx(AgenticSpinner, { prefix: "Marie is thinking..." }) }));
98
- }
99
- return (_jsxs(Box, { flexDirection: "column", marginY: 0, children: [_jsxs(Box, { children: [_jsxs(Text, { color: marieTheme.colors.primary, bold: true, children: [marieTheme.icons.user, " "] }), _jsx(TextInput, { value: input, onChange: handleChange, placeholder: placeholder, focus: true })] }), showCommands && filteredCommands.length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 0, marginLeft: 2, children: filteredCommands.map((cmd, index) => (_jsx(Box, { children: _jsxs(Text, { color: index === selectedCommand
150
+ const borderColor = isLoading
151
+ ? marieTheme.colors.warning
152
+ : input.startsWith("/")
153
+ ? marieTheme.colors.secondary
154
+ : marieTheme.colors.primary;
155
+ const modeTag = input.startsWith("/") ? "[CMD]" : "[CHAT]";
156
+ return (_jsxs(Box, { flexDirection: "column", marginY: 0, children: [showCommands && filteredCommands.length > 0 && (_jsx(Box, { flexDirection: "column", paddingX: 1, paddingY: 0, borderStyle: "round", borderColor: marieTheme.colors.secondary, marginLeft: 2, marginBottom: 0, children: filteredCommands.map((cmd, index) => (_jsx(Box, { children: _jsxs(Text, { color: index === selectedCommand
100
157
  ? marieTheme.colors.primary
101
- : marieTheme.colors.muted, children: [index === selectedCommand ? " " : " ", cmd.icon, " ", cmd.value, " - ", cmd.description] }) }, cmd.value))) }))] }));
158
+ : marieTheme.colors.muted, bold: index === selectedCommand, children: [index === selectedCommand ? " " : " ", cmd.icon, " ", cmd.value.padEnd(12), _jsxs(Text, { dimColor: true, italic: true, children: [" ", "- ", cmd.description] })] }) }, cmd.value))) })), _jsxs(Box, { borderStyle: "round", borderColor: borderColor, paddingX: 1, paddingY: 0, children: [_jsxs(Box, { flexGrow: 1, children: [_jsxs(Text, { color: borderColor, bold: true, children: [modeTag, " ", isLoading
159
+ ? marieTheme.icons.spinner
160
+ : input.startsWith("/")
161
+ ? "λ"
162
+ : marieTheme.icons.user, " "] }), isLoading ? (_jsx(Box, { flexGrow: 1, children: _jsx(AgenticSpinner, { prefix: "Marie is orchestrating reality... " }) })) : (_jsx(TextInput, { value: input, onChange: handleChange, placeholder: placeholder, focus: true }))] }), input.length > 0 && !isLoading && (_jsx(Box, { marginLeft: 1, children: _jsxs(Text, { color: marieTheme.colors.muted, dimColor: true, italic: true, children: [input.length, " intent tokens"] }) }))] })] }));
102
163
  };
103
164
  //# sourceMappingURL=InputArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputArea.js","sourceRoot":"","sources":["../../../src/cli-new/components/InputArea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputArea.js","sourceRoot":"","sources":["../../../src/cli-new/components/InputArea.tsx"],"names":[],"mappings":"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"}