From d042184ab5c8b1ad5be27b454894cc6974b9b123 Mon Sep 17 00:00:00 2001 From: Harry Cordewener Date: Tue, 28 Jul 2026 14:14:21 -0500 Subject: [PATCH 1/3] Rename MuClient.* assemblies to SharpMUTerm.* Mechanical rename of all five source projects and their five test projects, plus the solution file. No behavioural change: 514 tests pass before and after. The repo previously carried three names for one product -- MuGlyph (repo/product), MuClient.* (assemblies) and muglyph (binary). This collapses the assembly axis onto the new product name; the brand strings follow in the next commit. Co-Authored-By: Claude Opus 5 (1M context) --- MuGlyph.slnx | 16 ------------ SharpMUTerm.slnx | 16 ++++++++++++ .../MuClient.Graphics.csproj | 12 --------- .../MuClient.Scripting.csproj | 16 ------------ .../Automation/Alias.cs | 2 +- .../Automation/AliasEngine.cs | 2 +- .../Automation/AutomationDefaults.cs | 2 +- .../Automation/IntervalScheduler.cs | 2 +- .../Automation/Macro.cs | 2 +- .../Automation/MacroEngine.cs | 2 +- .../Automation/TimerDefinition.cs | 4 +-- .../Automation/Trigger.cs | 4 +-- .../Automation/TriggerEngine.cs | 4 +-- .../Commands/CommandCatalog.cs | 4 +-- .../Commands/CommandItem.cs | 2 +- .../Commands/CommandMatcher.cs | 2 +- .../Configuration/AppConfiguration.cs | 6 ++--- .../Configuration/CharacterDefinition.cs | 2 +- .../Configuration/ConfigurationMigrator.cs | 2 +- .../Configuration/ConfigurationStore.cs | 2 +- .../Configuration/RgbJsonConverter.cs | 4 +-- .../TerminalColorJsonConverter.cs | 4 +-- .../Configuration/TriggerSet.cs | 4 +-- .../Configuration/WorldDefinition.cs | 6 ++--- .../Input/InputHistory.cs | 2 +- .../Logging/HtmlLogSink.cs | 4 +-- .../Logging/ILogSink.cs | 4 +-- .../Logging/PlainTextLogSink.cs | 4 +-- .../Protocols/MxpParser.cs | 4 +-- .../Protocols/PuebloParser.cs | 4 +-- .../Session/SessionEvents.cs | 4 +-- .../Session/SessionManager.cs | 4 +-- .../Session/WorldSession.cs | 18 ++++++------- .../SharpMUTerm.Core.csproj} | 4 +-- .../Telnet/ITelnetSession.cs | 2 +- .../Telnet/MsspConfigReader.cs | 2 +- .../Telnet/TelnetEvents.cs | 2 +- .../Telnet/TelnetSession.cs | 4 +-- .../Text/AnsiPalette.cs | 2 +- .../Text/AnsiParser.cs | 2 +- .../Text/EmojiSubstitutor.cs | 2 +- .../Text/ILineParser.cs | 2 +- .../Text/Meters.cs | 2 +- .../Text/ScrollbackBuffer.cs | 2 +- .../Text/SpanInteraction.cs | 2 +- .../Text/StatusFormatter.cs | 2 +- .../Text/StyledLine.cs | 2 +- .../Text/StyledSpan.cs | 2 +- .../Text/StyledText.cs | 2 +- .../Text/TerminalColor.cs | 2 +- .../Text/TextStyle.cs | 2 +- .../Text/WebColors.cs | 2 +- .../Theming/Theme.cs | 4 +-- .../Theming/ThemeLibrary.cs | 4 +-- .../Transport/ConnectionOptions.cs | 2 +- .../Transport/ITransport.cs | 2 +- .../Transport/TcpTransport.cs | 2 +- .../Workspace/DropZones.cs | 2 +- .../Workspace/LayoutNode.cs | 2 +- .../Workspace/LayoutSolver.cs | 2 +- .../Workspace/PaneCommands.cs | 2 +- .../Workspace/Workspace.cs | 2 +- .../Workspace/WorkspaceLayout.cs | 2 +- .../Workspace/WorkspaceState.cs | 2 +- .../Workspace/WorkspaceWindow.cs | 2 +- .../Workspaces/RailModel.cs | 4 +-- .../CapabilityProbe.cs | 2 +- .../GraphicsProtocol.cs | 2 +- .../HalfBlockRenderer.cs | 4 +-- .../IImageSource.cs | 2 +- .../InlineImage.cs | 4 +-- .../KittyGraphicsProtocol.cs | 4 +-- .../SharpMUTerm.Graphics.csproj | 12 +++++++++ .../SixelEncoder.cs | 2 +- .../TerminalCapabilities.cs | 2 +- .../IScriptWorld.cs | 4 +-- .../ScriptException.cs | 2 +- .../ScriptHost.cs | 2 +- .../SharpMUTerm.Scripting.csproj | 16 ++++++++++++ .../WorldSessionScriptBridge.cs | 8 +++--- .../AliasesScreenRenderer.cs | 6 ++--- .../CaptureLineRenderer.cs | 2 +- .../CommandPalette.cs | 4 +-- .../CommandSurfaceRenderer.cs | 4 +-- .../DemoScene.cs | 10 +++---- .../FreezeBarRenderer.cs | 2 +- .../Glyphs.cs | 2 +- .../GmcpStats.cs | 2 +- .../KeypadScreenRenderer.cs | 4 +-- .../MarkupFormatter.cs | 6 ++--- .../MuGlyphApp.cs | 26 +++++++++---------- .../OptionsScreenRenderer.cs | 4 +-- .../Powerline.cs | 2 +- .../Program.cs | 6 ++--- .../PublishProfiles/linux-x64.pubxml | 0 .../Properties/PublishProfiles/win-x64.pubxml | 0 .../RailRenderer.cs | 6 ++--- .../SettingsOverlay.cs | 2 +- .../SharpMUTerm.Tui.csproj} | 12 ++++----- .../TabTitles.cs | 4 +-- .../TimersScreenRenderer.cs | 6 ++--- .../TriggersScreenRenderer.cs | 8 +++--- .../WorldsScreenRenderer.cs | 6 ++--- .../WorldsScreenView.cs | 4 +-- .../HtmlStyledRenderer.cs | 4 +-- .../LineWriter.cs | 4 +-- .../SharpMUTerm.Web.csproj} | 6 ++--- .../WebPage.cs | 4 +-- .../WebPageFetcher.cs | 2 +- .../MuClient.Core.Tests.csproj | 20 -------------- .../Automation/AliasAndMacroTests.cs | 4 +-- .../Automation/IntervalSchedulerTests.cs | 4 +-- .../Automation/TriggerEngineTests.cs | 6 ++--- .../Commands/CommandCatalogTests.cs | 6 ++--- .../Commands/CommandMatcherTests.cs | 4 +-- .../Configuration/ConfigurationTests.cs | 10 +++---- .../Input/InputHistoryTests.cs | 4 +-- .../Logging/LogSinkTests.cs | 6 ++--- .../Protocols/MxpParserTests.cs | 6 ++--- .../Protocols/ParserBoundaryTests.cs | 4 +-- .../Protocols/PuebloParserTests.cs | 6 ++--- .../Session/FakeTelnetSession.cs | 4 +-- .../Session/WorldSessionContentTests.cs | 8 +++--- .../Session/WorldSessionTests.cs | 12 ++++----- .../SharpMUTerm.Core.Tests.csproj | 20 ++++++++++++++ .../Telnet/FakeTransport.cs | 4 +-- .../Telnet/TelnetSessionTests.cs | 4 +-- .../Text/AnsiParserTests.cs | 4 +-- .../Text/EmojiSubstitutorTests.cs | 4 +-- .../Text/MetersAndStatusTests.cs | 4 +-- .../Text/ScrollbackBufferTests.cs | 4 +-- .../Text/StyledTextTests.cs | 4 +-- .../Text/WebColorsAndInteractionTests.cs | 4 +-- .../Theming/ThemeTests.cs | 8 +++--- .../Workspace/DropZonesTests.cs | 4 +-- .../Workspace/LayoutSolverTests.cs | 4 +-- .../Workspace/PaneCommandsTests.cs | 4 +-- .../Workspace/RailModelTests.cs | 6 ++--- .../Workspace/WorkspaceLayoutTests.cs | 4 +-- .../Workspace/WorkspaceStateTests.cs | 6 ++--- .../Workspace/WorkspaceTests.cs | 4 +-- .../CapabilityProbeTests.cs | 4 +-- .../HalfBlockRendererTests.cs | 6 ++--- .../InlineImageRendererTests.cs | 4 +-- .../KittyGraphicsProtocolTests.cs | 6 ++--- .../KittyImageIdValidationTests.cs | 4 +-- .../MemoryImageSourceTests.cs | 4 +-- .../SharpMUTerm.Graphics.Tests.csproj} | 6 ++--- .../SixelEncoderTests.cs | 4 +-- .../FakeScriptWorld.cs | 2 +- .../ReloadTests.cs | 2 +- .../SandboxTests.cs | 2 +- .../ScriptHostTests.cs | 2 +- .../SharpMUTerm.Scripting.Tests.csproj} | 6 ++--- .../AliasesScreenRendererTests.cs | 8 +++--- .../CaptureLineRendererTests.cs | 4 +-- .../CommandSurfaceRendererTests.cs | 6 ++--- .../FreezeBarRendererTests.cs | 4 +-- .../KeypadScreenRendererTests.cs | 6 ++--- .../MarkupFormatterTests.cs | 8 +++--- .../OptionsScreenRendererTests.cs | 6 ++--- .../PowerlineTests.cs | 4 +-- .../RailRendererTests.cs | 8 +++--- .../SharpMUTerm.Tui.Tests.csproj} | 6 ++--- .../TabTitlesTests.cs | 6 ++--- .../TimersScreenRendererTests.cs | 8 +++--- .../TriggersScreenRendererTests.cs | 10 +++---- .../WorldsScreenRendererTests.cs | 10 +++---- .../HtmlStyledRendererTests.cs | 6 ++--- .../SharpMUTerm.Web.Tests.csproj} | 6 ++--- 170 files changed, 407 insertions(+), 407 deletions(-) delete mode 100644 MuGlyph.slnx create mode 100644 SharpMUTerm.slnx delete mode 100644 src/MuClient.Graphics/MuClient.Graphics.csproj delete mode 100644 src/MuClient.Scripting/MuClient.Scripting.csproj rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/Alias.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/AliasEngine.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/AutomationDefaults.cs (91%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/IntervalScheduler.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/Macro.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/MacroEngine.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/TimerDefinition.cs (88%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/Trigger.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Automation/TriggerEngine.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Commands/CommandCatalog.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Commands/CommandItem.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Commands/CommandMatcher.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/AppConfiguration.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/CharacterDefinition.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/ConfigurationMigrator.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/ConfigurationStore.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/RgbJsonConverter.cs (94%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/TerminalColorJsonConverter.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/TriggerSet.cs (92%) rename src/{MuClient.Core => SharpMUTerm.Core}/Configuration/WorldDefinition.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Input/InputHistory.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Logging/HtmlLogSink.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Logging/ILogSink.cs (87%) rename src/{MuClient.Core => SharpMUTerm.Core}/Logging/PlainTextLogSink.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Protocols/MxpParser.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Protocols/PuebloParser.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Session/SessionEvents.cs (91%) rename src/{MuClient.Core => SharpMUTerm.Core}/Session/SessionManager.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Session/WorldSession.cs (97%) rename src/{MuClient.Core/MuClient.Core.csproj => SharpMUTerm.Core/SharpMUTerm.Core.csproj} (70%) rename src/{MuClient.Core => SharpMUTerm.Core}/Telnet/ITelnetSession.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Telnet/MsspConfigReader.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Telnet/TelnetEvents.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Telnet/TelnetSession.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/AnsiPalette.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/AnsiParser.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/EmojiSubstitutor.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/ILineParser.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/Meters.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/ScrollbackBuffer.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/SpanInteraction.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/StatusFormatter.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/StyledLine.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/StyledSpan.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/StyledText.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/TerminalColor.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/TextStyle.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Text/WebColors.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Theming/Theme.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Theming/ThemeLibrary.cs (97%) rename src/{MuClient.Core => SharpMUTerm.Core}/Transport/ConnectionOptions.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Transport/ITransport.cs (96%) rename src/{MuClient.Core => SharpMUTerm.Core}/Transport/TcpTransport.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/DropZones.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/LayoutNode.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/LayoutSolver.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/PaneCommands.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/Workspace.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/WorkspaceLayout.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/WorkspaceState.cs (99%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspace/WorkspaceWindow.cs (98%) rename src/{MuClient.Core => SharpMUTerm.Core}/Workspaces/RailModel.cs (98%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/CapabilityProbe.cs (99%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/GraphicsProtocol.cs (95%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/HalfBlockRenderer.cs (98%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/IImageSource.cs (98%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/InlineImage.cs (98%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/KittyGraphicsProtocol.cs (99%) create mode 100644 src/SharpMUTerm.Graphics/SharpMUTerm.Graphics.csproj rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/SixelEncoder.cs (99%) rename src/{MuClient.Graphics => SharpMUTerm.Graphics}/TerminalCapabilities.cs (97%) rename src/{MuClient.Scripting => SharpMUTerm.Scripting}/IScriptWorld.cs (92%) rename src/{MuClient.Scripting => SharpMUTerm.Scripting}/ScriptException.cs (98%) rename src/{MuClient.Scripting => SharpMUTerm.Scripting}/ScriptHost.cs (99%) create mode 100644 src/SharpMUTerm.Scripting/SharpMUTerm.Scripting.csproj rename src/{MuClient.Scripting => SharpMUTerm.Scripting}/WorldSessionScriptBridge.cs (96%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/AliasesScreenRenderer.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/CaptureLineRenderer.cs (95%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/CommandPalette.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/CommandSurfaceRenderer.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/DemoScene.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/FreezeBarRenderer.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/Glyphs.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/GmcpStats.cs (99%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/KeypadScreenRenderer.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/MarkupFormatter.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/MuGlyphApp.cs (99%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/OptionsScreenRenderer.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/Powerline.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/Program.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/Properties/PublishProfiles/linux-x64.pubxml (100%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/Properties/PublishProfiles/win-x64.pubxml (100%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/RailRenderer.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/SettingsOverlay.cs (99%) rename src/{MuClient.Tui/MuClient.Tui.csproj => SharpMUTerm.Tui/SharpMUTerm.Tui.csproj} (63%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/TabTitles.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/TimersScreenRenderer.cs (97%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/TriggersScreenRenderer.cs (98%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/WorldsScreenRenderer.cs (99%) rename src/{MuClient.Tui => SharpMUTerm.Tui}/WorldsScreenView.cs (98%) rename src/{MuClient.Web => SharpMUTerm.Web}/HtmlStyledRenderer.cs (99%) rename src/{MuClient.Web => SharpMUTerm.Web}/LineWriter.cs (98%) rename src/{MuClient.Web/MuClient.Web.csproj => SharpMUTerm.Web/SharpMUTerm.Web.csproj} (51%) rename src/{MuClient.Web => SharpMUTerm.Web}/WebPage.cs (91%) rename src/{MuClient.Web => SharpMUTerm.Web}/WebPageFetcher.cs (99%) delete mode 100644 tests/MuClient.Core.Tests/MuClient.Core.Tests.csproj rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Automation/AliasAndMacroTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Automation/IntervalSchedulerTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Automation/TriggerEngineTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Commands/CommandCatalogTests.cs (95%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Commands/CommandMatcherTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Configuration/ConfigurationTests.cs (98%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Input/InputHistoryTests.cs (98%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Logging/LogSinkTests.cs (95%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Protocols/MxpParserTests.cs (99%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Protocols/ParserBoundaryTests.cs (95%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Protocols/PuebloParserTests.cs (99%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Session/FakeTelnetSession.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Session/WorldSessionContentTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Session/WorldSessionTests.cs (97%) create mode 100644 tests/SharpMUTerm.Core.Tests/SharpMUTerm.Core.Tests.csproj rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Telnet/FakeTransport.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Telnet/TelnetSessionTests.cs (99%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/AnsiParserTests.cs (99%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/EmojiSubstitutorTests.cs (98%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/MetersAndStatusTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/ScrollbackBufferTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/StyledTextTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Text/WebColorsAndInteractionTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Theming/ThemeTests.cs (94%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/DropZonesTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/LayoutSolverTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/PaneCommandsTests.cs (97%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/RailModelTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/WorkspaceLayoutTests.cs (99%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/WorkspaceStateTests.cs (96%) rename tests/{MuClient.Core.Tests => SharpMUTerm.Core.Tests}/Workspace/WorkspaceTests.cs (98%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/CapabilityProbeTests.cs (98%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/HalfBlockRendererTests.cs (97%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/InlineImageRendererTests.cs (96%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/KittyGraphicsProtocolTests.cs (98%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/KittyImageIdValidationTests.cs (92%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/MemoryImageSourceTests.cs (96%) rename tests/{MuClient.Scripting.Tests/MuClient.Scripting.Tests.csproj => SharpMUTerm.Graphics.Tests/SharpMUTerm.Graphics.Tests.csproj} (57%) rename tests/{MuClient.Graphics.Tests => SharpMUTerm.Graphics.Tests}/SixelEncoderTests.cs (97%) rename tests/{MuClient.Scripting.Tests => SharpMUTerm.Scripting.Tests}/FakeScriptWorld.cs (98%) rename tests/{MuClient.Scripting.Tests => SharpMUTerm.Scripting.Tests}/ReloadTests.cs (98%) rename tests/{MuClient.Scripting.Tests => SharpMUTerm.Scripting.Tests}/SandboxTests.cs (98%) rename tests/{MuClient.Scripting.Tests => SharpMUTerm.Scripting.Tests}/ScriptHostTests.cs (99%) rename tests/{MuClient.Graphics.Tests/MuClient.Graphics.Tests.csproj => SharpMUTerm.Scripting.Tests/SharpMUTerm.Scripting.Tests.csproj} (57%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/AliasesScreenRendererTests.cs (97%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/CaptureLineRendererTests.cs (91%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/CommandSurfaceRendererTests.cs (95%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/FreezeBarRendererTests.cs (91%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/KeypadScreenRendererTests.cs (96%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/MarkupFormatterTests.cs (97%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/OptionsScreenRendererTests.cs (98%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/PowerlineTests.cs (96%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/RailRendererTests.cs (97%) rename tests/{MuClient.Web.Tests/MuClient.Web.Tests.csproj => SharpMUTerm.Tui.Tests/SharpMUTerm.Tui.Tests.csproj} (59%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/TabTitlesTests.cs (97%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/TimersScreenRendererTests.cs (97%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/TriggersScreenRendererTests.cs (97%) rename tests/{MuClient.Tui.Tests => SharpMUTerm.Tui.Tests}/WorldsScreenRendererTests.cs (97%) rename tests/{MuClient.Web.Tests => SharpMUTerm.Web.Tests}/HtmlStyledRendererTests.cs (98%) rename tests/{MuClient.Tui.Tests/MuClient.Tui.Tests.csproj => SharpMUTerm.Web.Tests/SharpMUTerm.Web.Tests.csproj} (59%) diff --git a/MuGlyph.slnx b/MuGlyph.slnx deleted file mode 100644 index a0625cc..0000000 --- a/MuGlyph.slnx +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/SharpMUTerm.slnx b/SharpMUTerm.slnx new file mode 100644 index 0000000..a9c33c9 --- /dev/null +++ b/SharpMUTerm.slnx @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/MuClient.Graphics/MuClient.Graphics.csproj b/src/MuClient.Graphics/MuClient.Graphics.csproj deleted file mode 100644 index 92d8357..0000000 --- a/src/MuClient.Graphics/MuClient.Graphics.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - MuClient.Graphics - MuClient.Graphics - - - - - - - diff --git a/src/MuClient.Scripting/MuClient.Scripting.csproj b/src/MuClient.Scripting/MuClient.Scripting.csproj deleted file mode 100644 index 5d1d62b..0000000 --- a/src/MuClient.Scripting/MuClient.Scripting.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - MuClient.Scripting - MuClient.Scripting - - - - - - - - - - - diff --git a/src/MuClient.Core/Automation/Alias.cs b/src/SharpMUTerm.Core/Automation/Alias.cs similarity index 96% rename from src/MuClient.Core/Automation/Alias.cs rename to src/SharpMUTerm.Core/Automation/Alias.cs index f45df92..d18639f 100644 --- a/src/MuClient.Core/Automation/Alias.cs +++ b/src/SharpMUTerm.Core/Automation/Alias.cs @@ -1,7 +1,7 @@ using System.Text.Json.Serialization; using System.Text.RegularExpressions; -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// /// A command alias: when user input matches , it is expanded into one diff --git a/src/MuClient.Core/Automation/AliasEngine.cs b/src/SharpMUTerm.Core/Automation/AliasEngine.cs similarity index 98% rename from src/MuClient.Core/Automation/AliasEngine.cs rename to src/SharpMUTerm.Core/Automation/AliasEngine.cs index c75bc62..683258f 100644 --- a/src/MuClient.Core/Automation/AliasEngine.cs +++ b/src/SharpMUTerm.Core/Automation/AliasEngine.cs @@ -1,6 +1,6 @@ using System.Text.RegularExpressions; -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// The result of expanding a line of user input against the alias set. public sealed class AliasResult diff --git a/src/MuClient.Core/Automation/AutomationDefaults.cs b/src/SharpMUTerm.Core/Automation/AutomationDefaults.cs similarity index 91% rename from src/MuClient.Core/Automation/AutomationDefaults.cs rename to src/SharpMUTerm.Core/Automation/AutomationDefaults.cs index e889ba1..f7d770e 100644 --- a/src/MuClient.Core/Automation/AutomationDefaults.cs +++ b/src/SharpMUTerm.Core/Automation/AutomationDefaults.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// Shared defaults for the automation engines. public static class AutomationDefaults diff --git a/src/MuClient.Core/Automation/IntervalScheduler.cs b/src/SharpMUTerm.Core/Automation/IntervalScheduler.cs similarity index 98% rename from src/MuClient.Core/Automation/IntervalScheduler.cs rename to src/SharpMUTerm.Core/Automation/IntervalScheduler.cs index 68bf671..8195343 100644 --- a/src/MuClient.Core/Automation/IntervalScheduler.cs +++ b/src/SharpMUTerm.Core/Automation/IntervalScheduler.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// /// Schedules recurring and one-shot callbacks. Backs script timer.every/timer.after diff --git a/src/MuClient.Core/Automation/Macro.cs b/src/SharpMUTerm.Core/Automation/Macro.cs similarity index 97% rename from src/MuClient.Core/Automation/Macro.cs rename to src/SharpMUTerm.Core/Automation/Macro.cs index 686532d..a39cd26 100644 --- a/src/MuClient.Core/Automation/Macro.cs +++ b/src/SharpMUTerm.Core/Automation/Macro.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// /// A keybind: a normalised key descriptor (e.g. Ctrl+F1, Alt+k, F3) mapped diff --git a/src/MuClient.Core/Automation/MacroEngine.cs b/src/SharpMUTerm.Core/Automation/MacroEngine.cs similarity index 97% rename from src/MuClient.Core/Automation/MacroEngine.cs rename to src/SharpMUTerm.Core/Automation/MacroEngine.cs index 4636fb1..48b3b4a 100644 --- a/src/MuClient.Core/Automation/MacroEngine.cs +++ b/src/SharpMUTerm.Core/Automation/MacroEngine.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// Maps normalised key descriptors to bindings. public sealed class MacroEngine diff --git a/src/MuClient.Core/Automation/TimerDefinition.cs b/src/SharpMUTerm.Core/Automation/TimerDefinition.cs similarity index 88% rename from src/MuClient.Core/Automation/TimerDefinition.cs rename to src/SharpMUTerm.Core/Automation/TimerDefinition.cs index 2714705..e2d0dea 100644 --- a/src/MuClient.Core/Automation/TimerDefinition.cs +++ b/src/SharpMUTerm.Core/Automation/TimerDefinition.cs @@ -1,8 +1,8 @@ -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// /// A configured timer: fires a command (or script callback) on a fixed interval while its owning -/// is active for a session. The +/// is active for a session. The /// realises these at runtime; this is the persisted definition the /// F6 timers screen edits. /// diff --git a/src/MuClient.Core/Automation/Trigger.cs b/src/SharpMUTerm.Core/Automation/Trigger.cs similarity index 97% rename from src/MuClient.Core/Automation/Trigger.cs rename to src/SharpMUTerm.Core/Automation/Trigger.cs index 5d21edd..48a69d7 100644 --- a/src/MuClient.Core/Automation/Trigger.cs +++ b/src/SharpMUTerm.Core/Automation/Trigger.cs @@ -1,8 +1,8 @@ using System.Text.Json.Serialization; using System.Text.RegularExpressions; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// The typed actions a matched performs. public sealed class TriggerActions diff --git a/src/MuClient.Core/Automation/TriggerEngine.cs b/src/SharpMUTerm.Core/Automation/TriggerEngine.cs similarity index 98% rename from src/MuClient.Core/Automation/TriggerEngine.cs rename to src/SharpMUTerm.Core/Automation/TriggerEngine.cs index af6fcf9..8d3a41e 100644 --- a/src/MuClient.Core/Automation/TriggerEngine.cs +++ b/src/SharpMUTerm.Core/Automation/TriggerEngine.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Automation; +namespace SharpMUTerm.Core.Automation; /// A script callback requested by a matched trigger, with its capture groups. public sealed record TriggerScriptInvocation(string Callback, Match Match); diff --git a/src/MuClient.Core/Commands/CommandCatalog.cs b/src/SharpMUTerm.Core/Commands/CommandCatalog.cs similarity index 98% rename from src/MuClient.Core/Commands/CommandCatalog.cs rename to src/SharpMUTerm.Core/Commands/CommandCatalog.cs index 7cd1a0a..5ccb9d4 100644 --- a/src/MuClient.Core/Commands/CommandCatalog.cs +++ b/src/SharpMUTerm.Core/Commands/CommandCatalog.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Workspaces; +using SharpMUTerm.Core.Workspaces; -namespace MuClient.Core.Commands; +namespace SharpMUTerm.Core.Commands; /// A character the command surface can switch to, with enough detail to label the entry. public sealed record CharacterRef(string WorldName, string CharacterName, string SessionKey, bool Connected); diff --git a/src/MuClient.Core/Commands/CommandItem.cs b/src/SharpMUTerm.Core/Commands/CommandItem.cs similarity index 96% rename from src/MuClient.Core/Commands/CommandItem.cs rename to src/SharpMUTerm.Core/Commands/CommandItem.cs index 0a3e058..0aacd0d 100644 --- a/src/MuClient.Core/Commands/CommandItem.cs +++ b/src/SharpMUTerm.Core/Commands/CommandItem.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Commands; +namespace SharpMUTerm.Core.Commands; /// The section a is grouped under in the command surface (βŒƒP). public enum CommandGroup diff --git a/src/MuClient.Core/Commands/CommandMatcher.cs b/src/SharpMUTerm.Core/Commands/CommandMatcher.cs similarity index 99% rename from src/MuClient.Core/Commands/CommandMatcher.cs rename to src/SharpMUTerm.Core/Commands/CommandMatcher.cs index 8b3ef34..99ced66 100644 --- a/src/MuClient.Core/Commands/CommandMatcher.cs +++ b/src/SharpMUTerm.Core/Commands/CommandMatcher.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Commands; +namespace SharpMUTerm.Core.Commands; /// A paired with its match score for the current query. public readonly record struct RankedCommand(CommandItem Item, int Score); diff --git a/src/MuClient.Core/Configuration/AppConfiguration.cs b/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs similarity index 96% rename from src/MuClient.Core/Configuration/AppConfiguration.cs rename to src/SharpMUTerm.Core/Configuration/AppConfiguration.cs index 64683e6..470cac6 100644 --- a/src/MuClient.Core/Configuration/AppConfiguration.cs +++ b/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs @@ -1,7 +1,7 @@ -using MuClient.Core.Theming; -using MuClient.Core.Workspaces; +using SharpMUTerm.Core.Theming; +using SharpMUTerm.Core.Workspaces; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// Top-level MuGlyph configuration: global preferences, saved worlds, and shared trigger sets. public sealed class AppConfiguration diff --git a/src/MuClient.Core/Configuration/CharacterDefinition.cs b/src/SharpMUTerm.Core/Configuration/CharacterDefinition.cs similarity index 98% rename from src/MuClient.Core/Configuration/CharacterDefinition.cs rename to src/SharpMUTerm.Core/Configuration/CharacterDefinition.cs index 2d63217..7c00b73 100644 --- a/src/MuClient.Core/Configuration/CharacterDefinition.cs +++ b/src/SharpMUTerm.Core/Configuration/CharacterDefinition.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// /// A character on a β€” the unit you actually connect *as*. A world diff --git a/src/MuClient.Core/Configuration/ConfigurationMigrator.cs b/src/SharpMUTerm.Core/Configuration/ConfigurationMigrator.cs similarity index 99% rename from src/MuClient.Core/Configuration/ConfigurationMigrator.cs rename to src/SharpMUTerm.Core/Configuration/ConfigurationMigrator.cs index 49a9ee5..9501b44 100644 --- a/src/MuClient.Core/Configuration/ConfigurationMigrator.cs +++ b/src/SharpMUTerm.Core/Configuration/ConfigurationMigrator.cs @@ -1,6 +1,6 @@ using System.Text.Json.Nodes; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// /// Upgrades an on-disk configuration DOM to . Runs diff --git a/src/MuClient.Core/Configuration/ConfigurationStore.cs b/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs similarity index 98% rename from src/MuClient.Core/Configuration/ConfigurationStore.cs rename to src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs index 4182215..479ed35 100644 --- a/src/MuClient.Core/Configuration/ConfigurationStore.cs +++ b/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs @@ -2,7 +2,7 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// Loads and saves as JSON. public static class ConfigurationStore diff --git a/src/MuClient.Core/Configuration/RgbJsonConverter.cs b/src/SharpMUTerm.Core/Configuration/RgbJsonConverter.cs similarity index 94% rename from src/MuClient.Core/Configuration/RgbJsonConverter.cs rename to src/SharpMUTerm.Core/Configuration/RgbJsonConverter.cs index aafaa4c..165e19d 100644 --- a/src/MuClient.Core/Configuration/RgbJsonConverter.cs +++ b/src/SharpMUTerm.Core/Configuration/RgbJsonConverter.cs @@ -1,8 +1,8 @@ using System.Text.Json; using System.Text.Json.Serialization; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// Serialises as a CSS-style hex string (#rrggbb). public sealed class RgbJsonConverter : JsonConverter diff --git a/src/MuClient.Core/Configuration/TerminalColorJsonConverter.cs b/src/SharpMUTerm.Core/Configuration/TerminalColorJsonConverter.cs similarity index 96% rename from src/MuClient.Core/Configuration/TerminalColorJsonConverter.cs rename to src/SharpMUTerm.Core/Configuration/TerminalColorJsonConverter.cs index 1443028..1f4899b 100644 --- a/src/MuClient.Core/Configuration/TerminalColorJsonConverter.cs +++ b/src/SharpMUTerm.Core/Configuration/TerminalColorJsonConverter.cs @@ -1,8 +1,8 @@ using System.Text.Json; using System.Text.Json.Serialization; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// /// Serialises as a compact string: default, idx:N, diff --git a/src/MuClient.Core/Configuration/TriggerSet.cs b/src/SharpMUTerm.Core/Configuration/TriggerSet.cs similarity index 92% rename from src/MuClient.Core/Configuration/TriggerSet.cs rename to src/SharpMUTerm.Core/Configuration/TriggerSet.cs index 26d6c44..a497a7a 100644 --- a/src/MuClient.Core/Configuration/TriggerSet.cs +++ b/src/SharpMUTerm.Core/Configuration/TriggerSet.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Automation; +using SharpMUTerm.Core.Automation; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// /// A named, world-independent bundle of automation. Characters select which sets apply by name, diff --git a/src/MuClient.Core/Configuration/WorldDefinition.cs b/src/SharpMUTerm.Core/Configuration/WorldDefinition.cs similarity index 96% rename from src/MuClient.Core/Configuration/WorldDefinition.cs rename to src/SharpMUTerm.Core/Configuration/WorldDefinition.cs index 73aa187..ce0d225 100644 --- a/src/MuClient.Core/Configuration/WorldDefinition.cs +++ b/src/SharpMUTerm.Core/Configuration/WorldDefinition.cs @@ -1,7 +1,7 @@ -using MuClient.Core.Text; -using MuClient.Core.Transport; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Transport; -namespace MuClient.Core.Configuration; +namespace SharpMUTerm.Core.Configuration; /// Which log formats a session writes. public enum LogFormat diff --git a/src/MuClient.Core/Input/InputHistory.cs b/src/SharpMUTerm.Core/Input/InputHistory.cs similarity index 99% rename from src/MuClient.Core/Input/InputHistory.cs rename to src/SharpMUTerm.Core/Input/InputHistory.cs index 1873eaf..6709716 100644 --- a/src/MuClient.Core/Input/InputHistory.cs +++ b/src/SharpMUTerm.Core/Input/InputHistory.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Input; +namespace SharpMUTerm.Core.Input; /// /// Draft-safe command history recall for a single input buffer. Modern MU*/shell input lines let diff --git a/src/MuClient.Core/Logging/HtmlLogSink.cs b/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs similarity index 98% rename from src/MuClient.Core/Logging/HtmlLogSink.cs rename to src/SharpMUTerm.Core/Logging/HtmlLogSink.cs index 0e98df8..232e3b5 100644 --- a/src/MuClient.Core/Logging/HtmlLogSink.cs +++ b/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs @@ -1,7 +1,7 @@ using System.Text; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Logging; +namespace SharpMUTerm.Core.Logging; /// /// Writes output as a self-contained HTML document, preserving colour and attributes via diff --git a/src/MuClient.Core/Logging/ILogSink.cs b/src/SharpMUTerm.Core/Logging/ILogSink.cs similarity index 87% rename from src/MuClient.Core/Logging/ILogSink.cs rename to src/SharpMUTerm.Core/Logging/ILogSink.cs index 0537b03..723589e 100644 --- a/src/MuClient.Core/Logging/ILogSink.cs +++ b/src/SharpMUTerm.Core/Logging/ILogSink.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Logging; +namespace SharpMUTerm.Core.Logging; /// A destination for session output logging (plain text or HTML). public interface ILogSink : IDisposable diff --git a/src/MuClient.Core/Logging/PlainTextLogSink.cs b/src/SharpMUTerm.Core/Logging/PlainTextLogSink.cs similarity index 96% rename from src/MuClient.Core/Logging/PlainTextLogSink.cs rename to src/SharpMUTerm.Core/Logging/PlainTextLogSink.cs index 0fb6dff..4c9d7ac 100644 --- a/src/MuClient.Core/Logging/PlainTextLogSink.cs +++ b/src/SharpMUTerm.Core/Logging/PlainTextLogSink.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Logging; +namespace SharpMUTerm.Core.Logging; /// Writes plain, unstyled output lines to a . public sealed class PlainTextLogSink : ILogSink diff --git a/src/MuClient.Core/Protocols/MxpParser.cs b/src/SharpMUTerm.Core/Protocols/MxpParser.cs similarity index 99% rename from src/MuClient.Core/Protocols/MxpParser.cs rename to src/SharpMUTerm.Core/Protocols/MxpParser.cs index fd62aeb..0cc769c 100644 --- a/src/MuClient.Core/Protocols/MxpParser.cs +++ b/src/SharpMUTerm.Core/Protocols/MxpParser.cs @@ -1,8 +1,8 @@ using System.Globalization; using System.Text; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Protocols; +namespace SharpMUTerm.Core.Protocols; /// /// Incremental, stateful, line-oriented parser for the MUD eXtension Protocol (MXP). diff --git a/src/MuClient.Core/Protocols/PuebloParser.cs b/src/SharpMUTerm.Core/Protocols/PuebloParser.cs similarity index 99% rename from src/MuClient.Core/Protocols/PuebloParser.cs rename to src/SharpMUTerm.Core/Protocols/PuebloParser.cs index 6f08542..82a8954 100644 --- a/src/MuClient.Core/Protocols/PuebloParser.cs +++ b/src/SharpMUTerm.Core/Protocols/PuebloParser.cs @@ -1,7 +1,7 @@ using System.Text; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Protocols; +namespace SharpMUTerm.Core.Protocols; /// /// Incremental, line-oriented parser for Pueblo markup β€” the HTML subset spoken by some diff --git a/src/MuClient.Core/Session/SessionEvents.cs b/src/SharpMUTerm.Core/Session/SessionEvents.cs similarity index 91% rename from src/MuClient.Core/Session/SessionEvents.cs rename to src/SharpMUTerm.Core/Session/SessionEvents.cs index eced7cd..e8b106a 100644 --- a/src/MuClient.Core/Session/SessionEvents.cs +++ b/src/SharpMUTerm.Core/Session/SessionEvents.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Session; +namespace SharpMUTerm.Core.Session; /// The lifecycle state of a . public enum ConnectionState diff --git a/src/MuClient.Core/Session/SessionManager.cs b/src/SharpMUTerm.Core/Session/SessionManager.cs similarity index 97% rename from src/MuClient.Core/Session/SessionManager.cs rename to src/SharpMUTerm.Core/Session/SessionManager.cs index 41d6f11..9699ae7 100644 --- a/src/MuClient.Core/Session/SessionManager.cs +++ b/src/SharpMUTerm.Core/Session/SessionManager.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Configuration; +using SharpMUTerm.Core.Configuration; -namespace MuClient.Core.Session; +namespace SharpMUTerm.Core.Session; /// Manages the set of open world sessions (the tabbed multi-world model). public sealed class SessionManager : IAsyncDisposable diff --git a/src/MuClient.Core/Session/WorldSession.cs b/src/SharpMUTerm.Core/Session/WorldSession.cs similarity index 97% rename from src/MuClient.Core/Session/WorldSession.cs rename to src/SharpMUTerm.Core/Session/WorldSession.cs index 838468a..a3e0dc2 100644 --- a/src/MuClient.Core/Session/WorldSession.cs +++ b/src/SharpMUTerm.Core/Session/WorldSession.cs @@ -1,12 +1,12 @@ -using MuClient.Core.Automation; -using MuClient.Core.Configuration; -using MuClient.Core.Logging; -using MuClient.Core.Protocols; -using MuClient.Core.Telnet; -using MuClient.Core.Text; -using MuClient.Core.Transport; - -namespace MuClient.Core.Session; +using SharpMUTerm.Core.Automation; +using SharpMUTerm.Core.Configuration; +using SharpMUTerm.Core.Logging; +using SharpMUTerm.Core.Protocols; +using SharpMUTerm.Core.Telnet; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Transport; + +namespace SharpMUTerm.Core.Session; /// /// The runtime for a single connected world. Orchestrates the full pipeline: diff --git a/src/MuClient.Core/MuClient.Core.csproj b/src/SharpMUTerm.Core/SharpMUTerm.Core.csproj similarity index 70% rename from src/MuClient.Core/MuClient.Core.csproj rename to src/SharpMUTerm.Core/SharpMUTerm.Core.csproj index 54a2eb2..a4c8ebd 100644 --- a/src/MuClient.Core/MuClient.Core.csproj +++ b/src/SharpMUTerm.Core/SharpMUTerm.Core.csproj @@ -1,8 +1,8 @@ - MuClient.Core - MuClient.Core + SharpMUTerm.Core + SharpMUTerm.Core diff --git a/src/MuClient.Core/Telnet/ITelnetSession.cs b/src/SharpMUTerm.Core/Telnet/ITelnetSession.cs similarity index 98% rename from src/MuClient.Core/Telnet/ITelnetSession.cs rename to src/SharpMUTerm.Core/Telnet/ITelnetSession.cs index f48fcd6..cd49657 100644 --- a/src/MuClient.Core/Telnet/ITelnetSession.cs +++ b/src/SharpMUTerm.Core/Telnet/ITelnetSession.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Telnet; +namespace SharpMUTerm.Core.Telnet; /// /// A telnet session over a transport: option negotiation, charset decoding, prompt diff --git a/src/MuClient.Core/Telnet/MsspConfigReader.cs b/src/SharpMUTerm.Core/Telnet/MsspConfigReader.cs similarity index 98% rename from src/MuClient.Core/Telnet/MsspConfigReader.cs rename to src/SharpMUTerm.Core/Telnet/MsspConfigReader.cs index 756fd2e..024ffdb 100644 --- a/src/MuClient.Core/Telnet/MsspConfigReader.cs +++ b/src/SharpMUTerm.Core/Telnet/MsspConfigReader.cs @@ -2,7 +2,7 @@ using System.Reflection; using TelnetNegotiationCore.Models; -namespace MuClient.Core.Telnet; +namespace SharpMUTerm.Core.Telnet; /// /// Projects a into a flat string dictionary of the values the diff --git a/src/MuClient.Core/Telnet/TelnetEvents.cs b/src/SharpMUTerm.Core/Telnet/TelnetEvents.cs similarity index 97% rename from src/MuClient.Core/Telnet/TelnetEvents.cs rename to src/SharpMUTerm.Core/Telnet/TelnetEvents.cs index af29971..3ceb487 100644 --- a/src/MuClient.Core/Telnet/TelnetEvents.cs +++ b/src/SharpMUTerm.Core/Telnet/TelnetEvents.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Telnet; +namespace SharpMUTerm.Core.Telnet; /// A chunk of server output: a completed line, or an unterminated prompt. public sealed class TelnetOutputEventArgs(string text, bool isPrompt) : EventArgs diff --git a/src/MuClient.Core/Telnet/TelnetSession.cs b/src/SharpMUTerm.Core/Telnet/TelnetSession.cs similarity index 99% rename from src/MuClient.Core/Telnet/TelnetSession.cs rename to src/SharpMUTerm.Core/Telnet/TelnetSession.cs index 958d43e..032e0b2 100644 --- a/src/MuClient.Core/Telnet/TelnetSession.cs +++ b/src/SharpMUTerm.Core/Telnet/TelnetSession.cs @@ -2,12 +2,12 @@ using System.Text; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MuClient.Core.Transport; +using SharpMUTerm.Core.Transport; using TelnetNegotiationCore.Builders; using TelnetNegotiationCore.Interpreters; using TelnetNegotiationCore.Models; -namespace MuClient.Core.Telnet; +namespace SharpMUTerm.Core.Telnet; /// Tuning knobs for a . public sealed class TelnetSessionOptions diff --git a/src/MuClient.Core/Text/AnsiPalette.cs b/src/SharpMUTerm.Core/Text/AnsiPalette.cs similarity index 98% rename from src/MuClient.Core/Text/AnsiPalette.cs rename to src/SharpMUTerm.Core/Text/AnsiPalette.cs index 83e5178..c64cb28 100644 --- a/src/MuClient.Core/Text/AnsiPalette.cs +++ b/src/SharpMUTerm.Core/Text/AnsiPalette.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// An 8-bit-per-channel RGB triple. public readonly record struct Rgb(byte R, byte G, byte B) diff --git a/src/MuClient.Core/Text/AnsiParser.cs b/src/SharpMUTerm.Core/Text/AnsiParser.cs similarity index 99% rename from src/MuClient.Core/Text/AnsiParser.cs rename to src/SharpMUTerm.Core/Text/AnsiParser.cs index a228258..9c8f2d2 100644 --- a/src/MuClient.Core/Text/AnsiParser.cs +++ b/src/SharpMUTerm.Core/Text/AnsiParser.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// Incremental, line-oriented ANSI/VT parser. Feed it decoded text (any number of diff --git a/src/MuClient.Core/Text/EmojiSubstitutor.cs b/src/SharpMUTerm.Core/Text/EmojiSubstitutor.cs similarity index 99% rename from src/MuClient.Core/Text/EmojiSubstitutor.cs rename to src/SharpMUTerm.Core/Text/EmojiSubstitutor.cs index badf449..f6e488d 100644 --- a/src/MuClient.Core/Text/EmojiSubstitutor.cs +++ b/src/SharpMUTerm.Core/Text/EmojiSubstitutor.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// Substitutes text emoticons (:) β†’ πŸ™‚) and :shortcode: names (:fire: β†’ πŸ”₯) diff --git a/src/MuClient.Core/Text/ILineParser.cs b/src/SharpMUTerm.Core/Text/ILineParser.cs similarity index 96% rename from src/MuClient.Core/Text/ILineParser.cs rename to src/SharpMUTerm.Core/Text/ILineParser.cs index 287b064..e0d2224 100644 --- a/src/MuClient.Core/Text/ILineParser.cs +++ b/src/SharpMUTerm.Core/Text/ILineParser.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// An incremental, line-oriented parser that turns decoded server text into styled lines. diff --git a/src/MuClient.Core/Text/Meters.cs b/src/SharpMUTerm.Core/Text/Meters.cs similarity index 98% rename from src/MuClient.Core/Text/Meters.cs rename to src/SharpMUTerm.Core/Text/Meters.cs index be30e83..33e840b 100644 --- a/src/MuClient.Core/Text/Meters.cs +++ b/src/SharpMUTerm.Core/Text/Meters.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// Text meters for the status bar: a filled/empty bar (β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘) and a Unicode block diff --git a/src/MuClient.Core/Text/ScrollbackBuffer.cs b/src/SharpMUTerm.Core/Text/ScrollbackBuffer.cs similarity index 99% rename from src/MuClient.Core/Text/ScrollbackBuffer.cs rename to src/SharpMUTerm.Core/Text/ScrollbackBuffer.cs index 666b22d..499fa77 100644 --- a/src/MuClient.Core/Text/ScrollbackBuffer.cs +++ b/src/SharpMUTerm.Core/Text/ScrollbackBuffer.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// Event payload describing lines appended to a . public sealed class LinesAppendedEventArgs(IReadOnlyList lines) : EventArgs diff --git a/src/MuClient.Core/Text/SpanInteraction.cs b/src/SharpMUTerm.Core/Text/SpanInteraction.cs similarity index 97% rename from src/MuClient.Core/Text/SpanInteraction.cs rename to src/SharpMUTerm.Core/Text/SpanInteraction.cs index f17624f..894b5d9 100644 --- a/src/MuClient.Core/Text/SpanInteraction.cs +++ b/src/SharpMUTerm.Core/Text/SpanInteraction.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// What activating an interactive span does. public enum InteractionKind diff --git a/src/MuClient.Core/Text/StatusFormatter.cs b/src/SharpMUTerm.Core/Text/StatusFormatter.cs similarity index 97% rename from src/MuClient.Core/Text/StatusFormatter.cs rename to src/SharpMUTerm.Core/Text/StatusFormatter.cs index 3ec590c..cef1308 100644 --- a/src/MuClient.Core/Text/StatusFormatter.cs +++ b/src/SharpMUTerm.Core/Text/StatusFormatter.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// Builds the design's input-prompt string and its right-hand gutter (destination window + other diff --git a/src/MuClient.Core/Text/StyledLine.cs b/src/SharpMUTerm.Core/Text/StyledLine.cs similarity index 98% rename from src/MuClient.Core/Text/StyledLine.cs rename to src/SharpMUTerm.Core/Text/StyledLine.cs index a53865b..eb89d4f 100644 --- a/src/MuClient.Core/Text/StyledLine.cs +++ b/src/SharpMUTerm.Core/Text/StyledLine.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// A single logical line of terminal output: an ordered list of s diff --git a/src/MuClient.Core/Text/StyledSpan.cs b/src/SharpMUTerm.Core/Text/StyledSpan.cs similarity index 97% rename from src/MuClient.Core/Text/StyledSpan.cs rename to src/SharpMUTerm.Core/Text/StyledSpan.cs index 9653a23..45b5418 100644 --- a/src/MuClient.Core/Text/StyledSpan.cs +++ b/src/SharpMUTerm.Core/Text/StyledSpan.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// A run of text sharing a single , optionally interactive. public readonly struct StyledSpan : IEquatable diff --git a/src/MuClient.Core/Text/StyledText.cs b/src/SharpMUTerm.Core/Text/StyledText.cs similarity index 98% rename from src/MuClient.Core/Text/StyledText.cs rename to src/SharpMUTerm.Core/Text/StyledText.cs index 8ffe4f0..2aa3480 100644 --- a/src/MuClient.Core/Text/StyledText.cs +++ b/src/SharpMUTerm.Core/Text/StyledText.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// Helpers for transforming s at character granularity. public static class StyledText diff --git a/src/MuClient.Core/Text/TerminalColor.cs b/src/SharpMUTerm.Core/Text/TerminalColor.cs similarity index 99% rename from src/MuClient.Core/Text/TerminalColor.cs rename to src/SharpMUTerm.Core/Text/TerminalColor.cs index 5e7cb73..ccbcedd 100644 --- a/src/MuClient.Core/Text/TerminalColor.cs +++ b/src/SharpMUTerm.Core/Text/TerminalColor.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// How a value should be interpreted. public enum TerminalColorKind : byte diff --git a/src/MuClient.Core/Text/TextStyle.cs b/src/SharpMUTerm.Core/Text/TextStyle.cs similarity index 98% rename from src/MuClient.Core/Text/TextStyle.cs rename to src/SharpMUTerm.Core/Text/TextStyle.cs index 6253426..fcd64a0 100644 --- a/src/MuClient.Core/Text/TextStyle.cs +++ b/src/SharpMUTerm.Core/Text/TextStyle.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// Non-colour text rendition attributes carried by an SGR sequence. [Flags] diff --git a/src/MuClient.Core/Text/WebColors.cs b/src/SharpMUTerm.Core/Text/WebColors.cs similarity index 98% rename from src/MuClient.Core/Text/WebColors.cs rename to src/SharpMUTerm.Core/Text/WebColors.cs index c206d5a..9ceea19 100644 --- a/src/MuClient.Core/Text/WebColors.cs +++ b/src/SharpMUTerm.Core/Text/WebColors.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Text; +namespace SharpMUTerm.Core.Text; /// /// Resolves the named colours used by MXP and Pueblo markup (a subset of CSS/HTML colour names, diff --git a/src/MuClient.Core/Theming/Theme.cs b/src/SharpMUTerm.Core/Theming/Theme.cs similarity index 97% rename from src/MuClient.Core/Theming/Theme.cs rename to src/SharpMUTerm.Core/Theming/Theme.cs index 2303d22..154b5df 100644 --- a/src/MuClient.Core/Theming/Theme.cs +++ b/src/SharpMUTerm.Core/Theming/Theme.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Theming; +namespace SharpMUTerm.Core.Theming; /// /// A colour theme: semantic UI colours plus an optional override of the 16 base ANSI palette diff --git a/src/MuClient.Core/Theming/ThemeLibrary.cs b/src/SharpMUTerm.Core/Theming/ThemeLibrary.cs similarity index 97% rename from src/MuClient.Core/Theming/ThemeLibrary.cs rename to src/SharpMUTerm.Core/Theming/ThemeLibrary.cs index 01bc7e2..3359d4e 100644 --- a/src/MuClient.Core/Theming/ThemeLibrary.cs +++ b/src/SharpMUTerm.Core/Theming/ThemeLibrary.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Theming; +namespace SharpMUTerm.Core.Theming; /// Built-in themes and lookup by name (yazi-style named flavours). public static class ThemeLibrary diff --git a/src/MuClient.Core/Transport/ConnectionOptions.cs b/src/SharpMUTerm.Core/Transport/ConnectionOptions.cs similarity index 96% rename from src/MuClient.Core/Transport/ConnectionOptions.cs rename to src/SharpMUTerm.Core/Transport/ConnectionOptions.cs index 6597a63..3e5181b 100644 --- a/src/MuClient.Core/Transport/ConnectionOptions.cs +++ b/src/SharpMUTerm.Core/Transport/ConnectionOptions.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Transport; +namespace SharpMUTerm.Core.Transport; /// Immutable connection parameters for a single MU* world. public sealed class ConnectionOptions diff --git a/src/MuClient.Core/Transport/ITransport.cs b/src/SharpMUTerm.Core/Transport/ITransport.cs similarity index 96% rename from src/MuClient.Core/Transport/ITransport.cs rename to src/SharpMUTerm.Core/Transport/ITransport.cs index 6112c0d..a8ac445 100644 --- a/src/MuClient.Core/Transport/ITransport.cs +++ b/src/SharpMUTerm.Core/Transport/ITransport.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Transport; +namespace SharpMUTerm.Core.Transport; /// /// A bidirectional byte transport (TCP, optionally TLS). Kept deliberately minimal so it diff --git a/src/MuClient.Core/Transport/TcpTransport.cs b/src/SharpMUTerm.Core/Transport/TcpTransport.cs similarity index 99% rename from src/MuClient.Core/Transport/TcpTransport.cs rename to src/SharpMUTerm.Core/Transport/TcpTransport.cs index b14f3e1..8ae2ed0 100644 --- a/src/MuClient.Core/Transport/TcpTransport.cs +++ b/src/SharpMUTerm.Core/Transport/TcpTransport.cs @@ -3,7 +3,7 @@ using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; -namespace MuClient.Core.Transport; +namespace SharpMUTerm.Core.Transport; /// /// A TCP transport with optional TLS. DNS resolution via makes it diff --git a/src/MuClient.Core/Workspace/DropZones.cs b/src/SharpMUTerm.Core/Workspace/DropZones.cs similarity index 98% rename from src/MuClient.Core/Workspace/DropZones.cs rename to src/SharpMUTerm.Core/Workspace/DropZones.cs index 1972726..decdf34 100644 --- a/src/MuClient.Core/Workspace/DropZones.cs +++ b/src/SharpMUTerm.Core/Workspace/DropZones.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// /// Resolves where a dragged tab or rail window should land when dropped on a pane: in the middle to diff --git a/src/MuClient.Core/Workspace/LayoutNode.cs b/src/SharpMUTerm.Core/Workspace/LayoutNode.cs similarity index 99% rename from src/MuClient.Core/Workspace/LayoutNode.cs rename to src/SharpMUTerm.Core/Workspace/LayoutNode.cs index e2e747f..2a72fee 100644 --- a/src/MuClient.Core/Workspace/LayoutNode.cs +++ b/src/SharpMUTerm.Core/Workspace/LayoutNode.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// How a arranges its children. public enum SplitDirection diff --git a/src/MuClient.Core/Workspace/LayoutSolver.cs b/src/SharpMUTerm.Core/Workspace/LayoutSolver.cs similarity index 98% rename from src/MuClient.Core/Workspace/LayoutSolver.cs rename to src/SharpMUTerm.Core/Workspace/LayoutSolver.cs index db60051..f03a02e 100644 --- a/src/MuClient.Core/Workspace/LayoutSolver.cs +++ b/src/SharpMUTerm.Core/Workspace/LayoutSolver.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// An integer cell rectangle in the terminal grid (top-left origin). public readonly record struct PaneRect(int X, int Y, int Width, int Height) diff --git a/src/MuClient.Core/Workspace/PaneCommands.cs b/src/SharpMUTerm.Core/Workspace/PaneCommands.cs similarity index 98% rename from src/MuClient.Core/Workspace/PaneCommands.cs rename to src/SharpMUTerm.Core/Workspace/PaneCommands.cs index b46cf1a..ae56989 100644 --- a/src/MuClient.Core/Workspace/PaneCommands.cs +++ b/src/SharpMUTerm.Core/Workspace/PaneCommands.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// A tmux-style pane command, triggered by a key after the βŒƒB prefix. public enum PaneCommand diff --git a/src/MuClient.Core/Workspace/Workspace.cs b/src/SharpMUTerm.Core/Workspace/Workspace.cs similarity index 99% rename from src/MuClient.Core/Workspace/Workspace.cs rename to src/SharpMUTerm.Core/Workspace/Workspace.cs index b32ceef..5256380 100644 --- a/src/MuClient.Core/Workspace/Workspace.cs +++ b/src/SharpMUTerm.Core/Workspace/Workspace.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// /// The full workspace state the TUI shell drives: the pane tree plus diff --git a/src/MuClient.Core/Workspace/WorkspaceLayout.cs b/src/SharpMUTerm.Core/Workspace/WorkspaceLayout.cs similarity index 99% rename from src/MuClient.Core/Workspace/WorkspaceLayout.cs rename to src/SharpMUTerm.Core/Workspace/WorkspaceLayout.cs index f1ed86a..3aada18 100644 --- a/src/MuClient.Core/Workspace/WorkspaceLayout.cs +++ b/src/SharpMUTerm.Core/Workspace/WorkspaceLayout.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// /// The pure, UI-agnostic model of a tmux-style pane workspace: a recursive split tree of panes, diff --git a/src/MuClient.Core/Workspace/WorkspaceState.cs b/src/SharpMUTerm.Core/Workspace/WorkspaceState.cs similarity index 99% rename from src/MuClient.Core/Workspace/WorkspaceState.cs rename to src/SharpMUTerm.Core/Workspace/WorkspaceState.cs index e3f8c40..8707450 100644 --- a/src/MuClient.Core/Workspace/WorkspaceState.cs +++ b/src/SharpMUTerm.Core/Workspace/WorkspaceState.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// Serialisable snapshot of one window's identity/metadata (not its scrollback). public sealed class WorkspaceWindowState diff --git a/src/MuClient.Core/Workspace/WorkspaceWindow.cs b/src/SharpMUTerm.Core/Workspace/WorkspaceWindow.cs similarity index 98% rename from src/MuClient.Core/Workspace/WorkspaceWindow.cs rename to src/SharpMUTerm.Core/Workspace/WorkspaceWindow.cs index 6bad677..420efaf 100644 --- a/src/MuClient.Core/Workspace/WorkspaceWindow.cs +++ b/src/SharpMUTerm.Core/Workspace/WorkspaceWindow.cs @@ -1,4 +1,4 @@ -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// What a window shows, used for rail grouping and routing rules. public enum WindowKind diff --git a/src/MuClient.Core/Workspaces/RailModel.cs b/src/SharpMUTerm.Core/Workspaces/RailModel.cs similarity index 98% rename from src/MuClient.Core/Workspaces/RailModel.cs rename to src/SharpMUTerm.Core/Workspaces/RailModel.cs index 322ff21..3d79f10 100644 --- a/src/MuClient.Core/Workspaces/RailModel.cs +++ b/src/SharpMUTerm.Core/Workspaces/RailModel.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Core.Workspaces; +namespace SharpMUTerm.Core.Workspaces; /// What a represents in the connection rail. public enum RailRowKind diff --git a/src/MuClient.Graphics/CapabilityProbe.cs b/src/SharpMUTerm.Graphics/CapabilityProbe.cs similarity index 99% rename from src/MuClient.Graphics/CapabilityProbe.cs rename to src/SharpMUTerm.Graphics/CapabilityProbe.cs index 4c8db87..b524356 100644 --- a/src/MuClient.Graphics/CapabilityProbe.cs +++ b/src/SharpMUTerm.Graphics/CapabilityProbe.cs @@ -1,6 +1,6 @@ using System.Collections; -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// Detects the best available inline-graphics protocol from environment variables. diff --git a/src/MuClient.Graphics/GraphicsProtocol.cs b/src/SharpMUTerm.Graphics/GraphicsProtocol.cs similarity index 95% rename from src/MuClient.Graphics/GraphicsProtocol.cs rename to src/SharpMUTerm.Graphics/GraphicsProtocol.cs index 7891629..b2f1584 100644 --- a/src/MuClient.Graphics/GraphicsProtocol.cs +++ b/src/SharpMUTerm.Graphics/GraphicsProtocol.cs @@ -1,4 +1,4 @@ -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// An inline-graphics transport, ordered by ascending capability. A renderer should diff --git a/src/MuClient.Graphics/HalfBlockRenderer.cs b/src/SharpMUTerm.Graphics/HalfBlockRenderer.cs similarity index 98% rename from src/MuClient.Graphics/HalfBlockRenderer.cs rename to src/SharpMUTerm.Graphics/HalfBlockRenderer.cs index 6739989..82e4752 100644 --- a/src/MuClient.Graphics/HalfBlockRenderer.cs +++ b/src/SharpMUTerm.Graphics/HalfBlockRenderer.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// Renders an to styled text using the upper-half-block glyph diff --git a/src/MuClient.Graphics/IImageSource.cs b/src/SharpMUTerm.Graphics/IImageSource.cs similarity index 98% rename from src/MuClient.Graphics/IImageSource.cs rename to src/SharpMUTerm.Graphics/IImageSource.cs index 9137422..d2f92ae 100644 --- a/src/MuClient.Graphics/IImageSource.cs +++ b/src/SharpMUTerm.Graphics/IImageSource.cs @@ -1,4 +1,4 @@ -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// A 32-bit non-premultiplied RGBA pixel. Keeps the graphics subsystem free of any diff --git a/src/MuClient.Graphics/InlineImage.cs b/src/SharpMUTerm.Graphics/InlineImage.cs similarity index 98% rename from src/MuClient.Graphics/InlineImage.cs rename to src/SharpMUTerm.Graphics/InlineImage.cs index ff20d80..c474863 100644 --- a/src/MuClient.Graphics/InlineImage.cs +++ b/src/SharpMUTerm.Graphics/InlineImage.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// How an should be consumed by the renderer. public enum InlineImageKind diff --git a/src/MuClient.Graphics/KittyGraphicsProtocol.cs b/src/SharpMUTerm.Graphics/KittyGraphicsProtocol.cs similarity index 99% rename from src/MuClient.Graphics/KittyGraphicsProtocol.cs rename to src/SharpMUTerm.Graphics/KittyGraphicsProtocol.cs index e4b7aaa..a1f8674 100644 --- a/src/MuClient.Graphics/KittyGraphicsProtocol.cs +++ b/src/SharpMUTerm.Graphics/KittyGraphicsProtocol.cs @@ -1,7 +1,7 @@ using System.Text; -using MuClient.Core.Text; +using SharpMUTerm.Core.Text; -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// Pixel format of a payload handed to the Kitty encoder. public enum KittyImageFormat diff --git a/src/SharpMUTerm.Graphics/SharpMUTerm.Graphics.csproj b/src/SharpMUTerm.Graphics/SharpMUTerm.Graphics.csproj new file mode 100644 index 0000000..5b7f666 --- /dev/null +++ b/src/SharpMUTerm.Graphics/SharpMUTerm.Graphics.csproj @@ -0,0 +1,12 @@ + + + + SharpMUTerm.Graphics + SharpMUTerm.Graphics + + + + + + + diff --git a/src/MuClient.Graphics/SixelEncoder.cs b/src/SharpMUTerm.Graphics/SixelEncoder.cs similarity index 99% rename from src/MuClient.Graphics/SixelEncoder.cs rename to src/SharpMUTerm.Graphics/SixelEncoder.cs index 697ce73..8204348 100644 --- a/src/MuClient.Graphics/SixelEncoder.cs +++ b/src/SharpMUTerm.Graphics/SixelEncoder.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// Encodes an to a DEC Sixel data string diff --git a/src/MuClient.Graphics/TerminalCapabilities.cs b/src/SharpMUTerm.Graphics/TerminalCapabilities.cs similarity index 97% rename from src/MuClient.Graphics/TerminalCapabilities.cs rename to src/SharpMUTerm.Graphics/TerminalCapabilities.cs index 76bde78..65ac161 100644 --- a/src/MuClient.Graphics/TerminalCapabilities.cs +++ b/src/SharpMUTerm.Graphics/TerminalCapabilities.cs @@ -1,4 +1,4 @@ -namespace MuClient.Graphics; +namespace SharpMUTerm.Graphics; /// /// An immutable snapshot of what the host terminal can display. Produced by diff --git a/src/MuClient.Scripting/IScriptWorld.cs b/src/SharpMUTerm.Scripting/IScriptWorld.cs similarity index 92% rename from src/MuClient.Scripting/IScriptWorld.cs rename to src/SharpMUTerm.Scripting/IScriptWorld.cs index a15b161..514cb80 100644 --- a/src/MuClient.Scripting/IScriptWorld.cs +++ b/src/SharpMUTerm.Scripting/IScriptWorld.cs @@ -1,9 +1,9 @@ -namespace MuClient.Scripting; +namespace SharpMUTerm.Scripting; /// /// The narrow surface a uses to talk to a world. Abstracted so the host /// can be unit-tested without a live connection: production wires it to a real -/// MuClient.Core.Session.WorldSession via , while +/// SharpMUTerm.Core.Session.WorldSession via , while /// tests supply a fake that captures the calls. /// public interface IScriptWorld diff --git a/src/MuClient.Scripting/ScriptException.cs b/src/SharpMUTerm.Scripting/ScriptException.cs similarity index 98% rename from src/MuClient.Scripting/ScriptException.cs rename to src/SharpMUTerm.Scripting/ScriptException.cs index df12cf9..c2f1f49 100644 --- a/src/MuClient.Scripting/ScriptException.cs +++ b/src/SharpMUTerm.Scripting/ScriptException.cs @@ -1,6 +1,6 @@ using MoonSharp.Interpreter; -namespace MuClient.Scripting; +namespace SharpMUTerm.Scripting; /// /// A clean, MoonSharp-free error surfaced by the scripting layer. Wraps the underlying Lua diff --git a/src/MuClient.Scripting/ScriptHost.cs b/src/SharpMUTerm.Scripting/ScriptHost.cs similarity index 99% rename from src/MuClient.Scripting/ScriptHost.cs rename to src/SharpMUTerm.Scripting/ScriptHost.cs index be54ca9..5de5351 100644 --- a/src/MuClient.Scripting/ScriptHost.cs +++ b/src/SharpMUTerm.Scripting/ScriptHost.cs @@ -2,7 +2,7 @@ using System.Text; using MoonSharp.Interpreter; -namespace MuClient.Scripting; +namespace SharpMUTerm.Scripting; /// /// Hosts a single sandboxed Lua environment for a world and bridges it to an diff --git a/src/SharpMUTerm.Scripting/SharpMUTerm.Scripting.csproj b/src/SharpMUTerm.Scripting/SharpMUTerm.Scripting.csproj new file mode 100644 index 0000000..cd8a111 --- /dev/null +++ b/src/SharpMUTerm.Scripting/SharpMUTerm.Scripting.csproj @@ -0,0 +1,16 @@ + + + + SharpMUTerm.Scripting + SharpMUTerm.Scripting + + + + + + + + + + + diff --git a/src/MuClient.Scripting/WorldSessionScriptBridge.cs b/src/SharpMUTerm.Scripting/WorldSessionScriptBridge.cs similarity index 96% rename from src/MuClient.Scripting/WorldSessionScriptBridge.cs rename to src/SharpMUTerm.Scripting/WorldSessionScriptBridge.cs index 6f8186d..835e28e 100644 --- a/src/MuClient.Scripting/WorldSessionScriptBridge.cs +++ b/src/SharpMUTerm.Scripting/WorldSessionScriptBridge.cs @@ -1,8 +1,8 @@ -using MuClient.Core.Automation; -using MuClient.Core.Session; -using MuClient.Core.Telnet; +using SharpMUTerm.Core.Automation; +using SharpMUTerm.Core.Session; +using SharpMUTerm.Core.Telnet; -namespace MuClient.Scripting; +namespace SharpMUTerm.Scripting; /// /// Adapts a live to and pumps the session's diff --git a/src/MuClient.Tui/AliasesScreenRenderer.cs b/src/SharpMUTerm.Tui/AliasesScreenRenderer.cs similarity index 97% rename from src/MuClient.Tui/AliasesScreenRenderer.cs rename to src/SharpMUTerm.Tui/AliasesScreenRenderer.cs index 0986011..a41f884 100644 --- a/src/MuClient.Tui/AliasesScreenRenderer.cs +++ b/src/SharpMUTerm.Tui/AliasesScreenRenderer.cs @@ -1,7 +1,7 @@ -using MuClient.Core.Automation; -using MuClient.Core.Configuration; +using SharpMUTerm.Core.Automation; +using SharpMUTerm.Core.Configuration; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders the F3 aliases screen: a flattened list of aliases across all trigger sets on the left, diff --git a/src/MuClient.Tui/CaptureLineRenderer.cs b/src/SharpMUTerm.Tui/CaptureLineRenderer.cs similarity index 95% rename from src/MuClient.Tui/CaptureLineRenderer.cs rename to src/SharpMUTerm.Tui/CaptureLineRenderer.cs index 5dbf9fa..0ddbff4 100644 --- a/src/MuClient.Tui/CaptureLineRenderer.cs +++ b/src/SharpMUTerm.Tui/CaptureLineRenderer.cs @@ -1,4 +1,4 @@ -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders a spawn window's capture line β€” the dim ⇱ capture ^\[public\] row shown under the diff --git a/src/MuClient.Tui/CommandPalette.cs b/src/SharpMUTerm.Tui/CommandPalette.cs similarity index 98% rename from src/MuClient.Tui/CommandPalette.cs rename to src/SharpMUTerm.Tui/CommandPalette.cs index b63bdb7..bff80d9 100644 --- a/src/MuClient.Tui/CommandPalette.cs +++ b/src/SharpMUTerm.Tui/CommandPalette.cs @@ -1,9 +1,9 @@ -using MuClient.Core.Commands; +using SharpMUTerm.Core.Commands; using SharpConsoleUI; using SharpConsoleUI.Builders; using SharpConsoleUI.Controls; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// The command surface (βŒƒP): a modal search box over a live-generated catalog, ranked with diff --git a/src/MuClient.Tui/CommandSurfaceRenderer.cs b/src/SharpMUTerm.Tui/CommandSurfaceRenderer.cs similarity index 98% rename from src/MuClient.Tui/CommandSurfaceRenderer.cs rename to src/SharpMUTerm.Tui/CommandSurfaceRenderer.cs index 8c0322d..9fd7707 100644 --- a/src/MuClient.Tui/CommandSurfaceRenderer.cs +++ b/src/SharpMUTerm.Tui/CommandSurfaceRenderer.cs @@ -1,7 +1,7 @@ using System.Text; -using MuClient.Core.Commands; +using SharpMUTerm.Core.Commands; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders the command surface (βŒƒP) results to markup lines, grouped GO TO / WORLD / TERMINAL / diff --git a/src/MuClient.Tui/DemoScene.cs b/src/SharpMUTerm.Tui/DemoScene.cs similarity index 97% rename from src/MuClient.Tui/DemoScene.cs rename to src/SharpMUTerm.Tui/DemoScene.cs index 4632e3f..33efdfe 100644 --- a/src/MuClient.Tui/DemoScene.cs +++ b/src/SharpMUTerm.Tui/DemoScene.cs @@ -1,9 +1,9 @@ -using MuClient.Core.Automation; -using MuClient.Core.Configuration; -using MuClient.Core.Text; -using MuClient.Core.Workspaces; +using SharpMUTerm.Core.Automation; +using SharpMUTerm.Core.Configuration; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Workspaces; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Builds the configuration behind the headless demo/snapshots. Rather than assembling windows and diff --git a/src/MuClient.Tui/FreezeBarRenderer.cs b/src/SharpMUTerm.Tui/FreezeBarRenderer.cs similarity index 97% rename from src/MuClient.Tui/FreezeBarRenderer.cs rename to src/SharpMUTerm.Tui/FreezeBarRenderer.cs index f7cfc7c..735e904 100644 --- a/src/MuClient.Tui/FreezeBarRenderer.cs +++ b/src/SharpMUTerm.Tui/FreezeBarRenderer.cs @@ -1,4 +1,4 @@ -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders the freeze split bar (β–² FROZEN βŒƒF) that divides a frozen pane's pinned scrollback diff --git a/src/MuClient.Tui/Glyphs.cs b/src/SharpMUTerm.Tui/Glyphs.cs similarity index 98% rename from src/MuClient.Tui/Glyphs.cs rename to src/SharpMUTerm.Tui/Glyphs.cs index 2e4854e..b323b5f 100644 --- a/src/MuClient.Tui/Glyphs.cs +++ b/src/SharpMUTerm.Tui/Glyphs.cs @@ -1,4 +1,4 @@ -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Centralised Nerd Font (v3) icon glyphs for MuGlyph's chrome. The terminals MuGlyph targets diff --git a/src/MuClient.Tui/GmcpStats.cs b/src/SharpMUTerm.Tui/GmcpStats.cs similarity index 99% rename from src/MuClient.Tui/GmcpStats.cs rename to src/SharpMUTerm.Tui/GmcpStats.cs index 70b824a..0141c18 100644 --- a/src/MuClient.Tui/GmcpStats.cs +++ b/src/SharpMUTerm.Tui/GmcpStats.cs @@ -1,7 +1,7 @@ using System.Text; using System.Text.Json; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Accumulates GMCP character stats (e.g. Char.Vitals, Char.Stats) into a flat diff --git a/src/MuClient.Tui/KeypadScreenRenderer.cs b/src/SharpMUTerm.Tui/KeypadScreenRenderer.cs similarity index 97% rename from src/MuClient.Tui/KeypadScreenRenderer.cs rename to src/SharpMUTerm.Tui/KeypadScreenRenderer.cs index 8969ffa..26ca25b 100644 --- a/src/MuClient.Tui/KeypadScreenRenderer.cs +++ b/src/SharpMUTerm.Tui/KeypadScreenRenderer.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Automation; +using SharpMUTerm.Core.Automation; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders the F4 keypad & hotkeys screen: a 3Γ—3 numpad grid (Num7..Num9 top row through diff --git a/src/MuClient.Tui/MarkupFormatter.cs b/src/SharpMUTerm.Tui/MarkupFormatter.cs similarity index 98% rename from src/MuClient.Tui/MarkupFormatter.cs rename to src/SharpMUTerm.Tui/MarkupFormatter.cs index 021daf0..bb4f20c 100644 --- a/src/MuClient.Tui/MarkupFormatter.cs +++ b/src/SharpMUTerm.Tui/MarkupFormatter.cs @@ -1,8 +1,8 @@ using System.Text; -using MuClient.Core.Text; -using MuClient.Core.Theming; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Theming; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Converts MuGlyph's UI-agnostic model into SharpConsoleUI (Spectre-style) diff --git a/src/MuClient.Tui/MuGlyphApp.cs b/src/SharpMUTerm.Tui/MuGlyphApp.cs similarity index 99% rename from src/MuClient.Tui/MuGlyphApp.cs rename to src/SharpMUTerm.Tui/MuGlyphApp.cs index 26a313b..d278909 100644 --- a/src/MuClient.Tui/MuGlyphApp.cs +++ b/src/SharpMUTerm.Tui/MuGlyphApp.cs @@ -1,12 +1,12 @@ -using MuClient.Core.Commands; -using MuClient.Core.Automation; -using MuClient.Core.Configuration; -using MuClient.Core.Input; -using MuClient.Core.Session; -using MuClient.Core.Text; -using MuClient.Core.Theming; -using MuClient.Core.Workspaces; -using MuClient.Graphics; +using SharpMUTerm.Core.Commands; +using SharpMUTerm.Core.Automation; +using SharpMUTerm.Core.Configuration; +using SharpMUTerm.Core.Input; +using SharpMUTerm.Core.Session; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Theming; +using SharpMUTerm.Core.Workspaces; +using SharpMUTerm.Graphics; using SharpConsoleUI; using SharpConsoleUI.Builders; using SharpConsoleUI.Configuration; @@ -16,7 +16,7 @@ using SharpConsoleUI.Layout; using SColor = SharpConsoleUI.Color; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// The top-level MuGlyph application on SharpConsoleUI: a status line, a tabbed set of output @@ -57,7 +57,7 @@ internal sealed class MuGlyphApp : IAsyncDisposable private readonly Dictionary _paneTabs = new(StringComparer.Ordinal); private readonly PromptControl _input; private readonly GmcpStats _stats = new(); - private readonly MuClient.Web.WebPageFetcher _fetcher = new(); + private readonly SharpMUTerm.Web.WebPageFetcher _fetcher = new(); private readonly CommandPalette _palette; private readonly SettingsOverlay _settings; @@ -1101,7 +1101,7 @@ private async Task LoadWebAsync(string url) } } - private void ShowWeb(MuClient.Web.WebPage page) + private void ShowWeb(SharpMUTerm.Web.WebPage page) { var title = page.Title ?? page.Url; var isNew = _workspace.FindWindow(WebWindowId) is null; @@ -1242,7 +1242,7 @@ private static int MarkupWidth(string markup) /// becomes a proportional grid (columns for a row split, rows for a /// column split) with a draggable splitter between children. /// - private IWindowControl BuildLayoutNode(MuClient.Core.Workspaces.LayoutNode node) + private IWindowControl BuildLayoutNode(SharpMUTerm.Core.Workspaces.LayoutNode node) { if (node is PaneNode pane) { diff --git a/src/MuClient.Tui/OptionsScreenRenderer.cs b/src/SharpMUTerm.Tui/OptionsScreenRenderer.cs similarity index 98% rename from src/MuClient.Tui/OptionsScreenRenderer.cs rename to src/SharpMUTerm.Tui/OptionsScreenRenderer.cs index f34b771..da685c6 100644 --- a/src/MuClient.Tui/OptionsScreenRenderer.cs +++ b/src/SharpMUTerm.Tui/OptionsScreenRenderer.cs @@ -1,6 +1,6 @@ -using MuClient.Core.Configuration; +using SharpMUTerm.Core.Configuration; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders the shared options-list body used by the F7 (Text & ANSI), F8 (Input & diff --git a/src/MuClient.Tui/Powerline.cs b/src/SharpMUTerm.Tui/Powerline.cs similarity index 98% rename from src/MuClient.Tui/Powerline.cs rename to src/SharpMUTerm.Tui/Powerline.cs index bf13c38..f7a689d 100644 --- a/src/MuClient.Tui/Powerline.cs +++ b/src/SharpMUTerm.Tui/Powerline.cs @@ -1,6 +1,6 @@ using System.Text; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// One coloured segment of a powerline bar: its text and resolved #rrggbb colours. internal readonly record struct PowerSegment(string Text, string Fg, string Bg); diff --git a/src/MuClient.Tui/Program.cs b/src/SharpMUTerm.Tui/Program.cs similarity index 98% rename from src/MuClient.Tui/Program.cs rename to src/SharpMUTerm.Tui/Program.cs index e5944b2..d342d5b 100644 --- a/src/MuClient.Tui/Program.cs +++ b/src/SharpMUTerm.Tui/Program.cs @@ -1,8 +1,8 @@ -using MuClient.Core.Configuration; -using MuClient.Graphics; +using SharpMUTerm.Core.Configuration; +using SharpMUTerm.Graphics; using SharpConsoleUI.Drivers; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; internal static class Program { diff --git a/src/MuClient.Tui/Properties/PublishProfiles/linux-x64.pubxml b/src/SharpMUTerm.Tui/Properties/PublishProfiles/linux-x64.pubxml similarity index 100% rename from src/MuClient.Tui/Properties/PublishProfiles/linux-x64.pubxml rename to src/SharpMUTerm.Tui/Properties/PublishProfiles/linux-x64.pubxml diff --git a/src/MuClient.Tui/Properties/PublishProfiles/win-x64.pubxml b/src/SharpMUTerm.Tui/Properties/PublishProfiles/win-x64.pubxml similarity index 100% rename from src/MuClient.Tui/Properties/PublishProfiles/win-x64.pubxml rename to src/SharpMUTerm.Tui/Properties/PublishProfiles/win-x64.pubxml diff --git a/src/MuClient.Tui/RailRenderer.cs b/src/SharpMUTerm.Tui/RailRenderer.cs similarity index 97% rename from src/MuClient.Tui/RailRenderer.cs rename to src/SharpMUTerm.Tui/RailRenderer.cs index 17c760e..70936b6 100644 --- a/src/MuClient.Tui/RailRenderer.cs +++ b/src/SharpMUTerm.Tui/RailRenderer.cs @@ -1,7 +1,7 @@ -using MuClient.Core.Text; -using MuClient.Core.Workspaces; +using SharpMUTerm.Core.Text; +using SharpMUTerm.Core.Workspaces; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// Renders rows into markup lines for the connection rail: a header, worlds diff --git a/src/MuClient.Tui/SettingsOverlay.cs b/src/SharpMUTerm.Tui/SettingsOverlay.cs similarity index 99% rename from src/MuClient.Tui/SettingsOverlay.cs rename to src/SharpMUTerm.Tui/SettingsOverlay.cs index 40058dd..b430f3d 100644 --- a/src/MuClient.Tui/SettingsOverlay.cs +++ b/src/SharpMUTerm.Tui/SettingsOverlay.cs @@ -3,7 +3,7 @@ using SharpConsoleUI.Controls; using SharpConsoleUI.Layout; -namespace MuClient.Tui; +namespace SharpMUTerm.Tui; /// /// A full-screen overlay hosting the F2–F9 settings screens. The design specifies these as diff --git a/src/MuClient.Tui/MuClient.Tui.csproj b/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj similarity index 63% rename from src/MuClient.Tui/MuClient.Tui.csproj rename to src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj index ebd8a9e..d8c3ba2 100644 --- a/src/MuClient.Tui/MuClient.Tui.csproj +++ b/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj @@ -2,7 +2,7 @@ Exe - MuClient.Tui + SharpMUTerm.Tui muglyph + net10.0 latest @@ -11,10 +11,10 @@ true true Harry Cordewener - MuGlyph + SharpMUTerm Copyright (c) 2026 Harry Cordewener MIT - https://github.com/HarryCordewener/MuGlyph + https://github.com/SharpMUSH/SharpMUTerm diff --git a/README.md b/README.md index ee9392d..8966d52 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,25 @@ -# MuGlyph +# SharpMUTerm A hyper-modern, cross-platform **TUI client for MU\*** (MUSH / MUCK / MUD) worlds, built for GPU-accelerated terminals (Kitty, WezTerm, Ghostty) on **Windows and Linux**. +Part of the [SharpMUSH](https://github.com/SharpMUSH) family: **SharpMUSH** is the server, +[**SharpClient**](https://github.com/SharpMUSH/SharpClient) is the graphical client, and +**SharpMUTerm** is the terminal one. It speaks plain telnet, so it connects to any MU\* world β€” +not just SharpMUSH ones. + The goal is [BeipMU](https://beipdev.github.io/BeipMU/)-class feature parity in a terminal-native client: rich truecolor text, inline graphics, powerful automation, and full MU\* protocol support. > **Status:** milestone **M1 delivered** (usable text client foundation) with substantial work > from M2–M4 in place β€” automation engines, inline-graphics subsystem, Lua scripting, and theming. -> `MuClient.Core` is fully unit-tested (391 tests across the solution). See +> `SharpMUTerm.Core` is fully unit-tested (514 tests across the solution). See > [`docs/PLAN.md`](docs/PLAN.md) for the full architecture and roadmap. ## Why a TUI "GPU acceleration" is a property of the terminal *emulator*, not the app. Any TUI running inside -Kitty / WezTerm / Ghostty gets GPU-accelerated glyph rendering for free. MuGlyph focuses on emitting +Kitty / WezTerm / Ghostty gets GPU-accelerated glyph rendering for free. SharpMUTerm focuses on emitting rich truecolor/styled text and using the **Kitty graphics protocol** (with Sixel and half-block fallbacks) for inline images and maps. @@ -36,10 +41,10 @@ HTML logging Β· GMCP / MSDP / MSSP / MCCP Β· MXP + Pueblo Β· Unicode/emoji. | Project | Responsibility | |---|---| -| `MuClient.Core` | Transport, telnet, ANSI/MXP/Pueblo parsers, GMCP/MSDP routing, scrollback, trigger/alias/macro engines, logging (UI-agnostic) | -| `MuClient.Graphics` | Kitty graphics protocol, capability probe, Sixel + half-block fallbacks, `GraphicsView` | -| `MuClient.Scripting` | MoonSharp host + scripting API | -| `MuClient.Tui` | SharpConsoleUI application (windows, panes, settings, wiring) | +| `SharpMUTerm.Core` | Transport, telnet, ANSI/MXP/Pueblo parsers, GMCP/MSDP routing, scrollback, trigger/alias/macro engines, logging (UI-agnostic) | +| `SharpMUTerm.Graphics` | Kitty graphics protocol, capability probe, Sixel + half-block fallbacks, `GraphicsView` | +| `SharpMUTerm.Scripting` | MoonSharp host + scripting API | +| `SharpMUTerm.Tui` | SharpConsoleUI application (windows, panes, settings, wiring) | | `*.Tests` | TUnit test projects | ## What works today @@ -75,7 +80,7 @@ HTML logging Β· GMCP / MSDP / MSSP / MCCP Β· MXP + Pueblo Β· Unicode/emoji. character-bound input prompt + destination/draft gutter. Output is truecolor markup with clickable MXP/Pueblo/web spans; NAWS is re-advertised on resize. `Ctrl+N` next window Β· `Ctrl+O` next pane Β· `Ctrl+W` close Β· `Ctrl+Q` quit. -- **Web view** β€” an in-TUI text-mode browser (`MuClient.Web`, AngleSharp): fetch a URL or +- **Web view** β€” an in-TUI text-mode browser (`SharpMUTerm.Web`, AngleSharp): fetch a URL or follow an MXP/Pueblo/HTML link and read the page as styled, word-wrapped text with clickable links you can navigate in-pane. `` shows as a labelled link (graphics-terminal image rendering reuses the Kitty/Sixel/half-block pipeline). @@ -87,14 +92,14 @@ HTML logging Β· GMCP / MSDP / MSSP / MCCP Β· MXP + Pueblo Β· Unicode/emoji. Requires the **.NET 10 SDK**. ```bash -dotnet build MuGlyph.slnx -c Release +dotnet build SharpMUTerm.slnx -c Release ``` ## Running ```bash -dotnet run --project src/MuClient.Tui -- [--tls] [--insecure] [--name NAME] -muglyph --help # once published +dotnet run --project src/SharpMUTerm.Tui -- [--tls] [--insecure] [--name NAME] +sharpmuterm --help # once published ``` In-app: **Up/Down** input history Β· **Ctrl+N** next window Β· **Ctrl+W** close window Β· **Ctrl+Q** quit. (Windows/panes are mouse-resizable; each window keeps its own input draft.) @@ -105,11 +110,11 @@ The test projects use [TUnit], which runs on the Microsoft.Testing.Platform. Run (the classic `dotnet test`/VSTest path is not used by MTP on .NET 10): ```bash -dotnet run --project tests/MuClient.Core.Tests -dotnet run --project tests/MuClient.Graphics.Tests -dotnet run --project tests/MuClient.Scripting.Tests -dotnet run --project tests/MuClient.Web.Tests -dotnet run --project tests/MuClient.Tui.Tests +dotnet run --project tests/SharpMUTerm.Core.Tests +dotnet run --project tests/SharpMUTerm.Graphics.Tests +dotnet run --project tests/SharpMUTerm.Scripting.Tests +dotnet run --project tests/SharpMUTerm.Web.Tests +dotnet run --project tests/SharpMUTerm.Tui.Tests ``` ## License diff --git a/docs/PACKAGING.md b/docs/PACKAGING.md index e82ce90..112d315 100644 --- a/docs/PACKAGING.md +++ b/docs/PACKAGING.md @@ -1,29 +1,29 @@ -# Packaging MuGlyph +# Packaging SharpMUTerm -MuGlyph publishes as a **self-contained, single-file** executable β€” no .NET runtime required on +SharpMUTerm publishes as a **self-contained, single-file** executable β€” no .NET runtime required on the target machine. ## Supported runtimes `linux-x64`, `linux-arm64`, `win-x64`, `osx-x64`, `osx-arm64` (declared in -`src/MuClient.Tui/MuClient.Tui.csproj`). +`src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj`). ## Local publish -Publish profiles live in `src/MuClient.Tui/Properties/PublishProfiles/`: +Publish profiles live in `src/SharpMUTerm.Tui/Properties/PublishProfiles/`: ```bash -# Linux x64 β†’ publish output contains a single `muglyph` binary -dotnet publish src/MuClient.Tui -p:PublishProfile=linux-x64 -o out/linux-x64 +# Linux x64 β†’ publish output contains a single `sharpmuterm` binary +dotnet publish src/SharpMUTerm.Tui -p:PublishProfile=linux-x64 -o out/linux-x64 -# Windows x64 β†’ `muglyph.exe` -dotnet publish src/MuClient.Tui -p:PublishProfile=win-x64 -o out/win-x64 +# Windows x64 β†’ `sharpmuterm.exe` +dotnet publish src/SharpMUTerm.Tui -p:PublishProfile=win-x64 -o out/win-x64 ``` For a RID without a profile, pass the flags directly: ```bash -dotnet publish src/MuClient.Tui -c Release -r osx-arm64 \ +dotnet publish src/SharpMUTerm.Tui -c Release -r osx-arm64 \ --self-contained -p:PublishSingleFile=true \ -p:IncludeNativeLibrariesForSelfExtract=true -o out/osx-arm64 ``` diff --git a/docs/PLAN.md b/docs/PLAN.md index b307893..f106e63 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -7,7 +7,7 @@ BeipMU is the best-in-class **Windows-only** MU\* (MUSH/MUCK/MUD) client, but it Key reframing from research: **"GPU-enabled" is a property of the terminal emulator, not our app.** Any TUI running inside Kitty/WezTerm/Ghostty gets GPU-accelerated glyph rendering for free. Our job is to (a) emit rich truecolor/styled text and (b) use the **Kitty graphics protocol** (escape sequences) for inline images/maps, with graceful fallbacks. Both are fully achievable from managed C#. ### Locked decisions (from planning Q&A) -- **Rendering base:** **SharpConsoleUI** (`nickprotop/ConsoleEx`, stable, net8/9/10) β€” a compositor-based framework with split layouts, tabs, resizable/mouse windows, Spectre-style markup, and a **native Kitty graphics protocol** (+ Sixel/half-block). Superseded the original Terminal.Gui v2 choice (which was prerelease with an `[Obsolete]` mid-migration API); the switch was contained to `MuClient.Tui` since `MuClient.Core` is UI-agnostic. References below that describe Terminal.Gui reflect the earlier plan. +- **Rendering base:** **SharpConsoleUI** (`nickprotop/ConsoleEx`, stable, net8/9/10) β€” a compositor-based framework with split layouts, tabs, resizable/mouse windows, Spectre-style markup, and a **native Kitty graphics protocol** (+ Sixel/half-block). Superseded the original Terminal.Gui v2 choice (which was prerelease with an `[Obsolete]` mid-migration API); the switch was contained to `SharpMUTerm.Tui` since `SharpMUTerm.Core` is UI-agnostic. References below that describe Terminal.Gui reflect the earlier plan. - **Scripting:** Lua via **MoonSharp** (pure-managed, no native deps). - **Inline graphics:** must-have from day one. - **Scope:** broad BeipMU parity (phased into milestones below). @@ -51,11 +51,11 @@ Layered, with a strict separation between **protocol/session** (headless, unit-t ``` ### Solution structure (proposed) -- `MuClient.Core` β€” transport, telnet, ANSI/MXP parsers, GMCP/MSDP routing, scrollback model, trigger/alias/macro engines, logging. **No UI deps.** -- `MuClient.Scripting` β€” MoonSharp host + the scripting API surface (world, output, triggers, timers, gmcp). -- `MuClient.Graphics` β€” Kitty graphics protocol encoder, capability probe, Sixel + half-block fallbacks, `GraphicsView`. -- `MuClient.Tui` β€” SharpConsoleUI app: windows, panes, key routing, settings UI, wiring. -- `MuClient.Core.Tests` / `MuClient.Graphics.Tests` β€” xUnit. +- `SharpMUTerm.Core` β€” transport, telnet, ANSI/MXP parsers, GMCP/MSDP routing, scrollback model, trigger/alias/macro engines, logging. **No UI deps.** +- `SharpMUTerm.Scripting` β€” MoonSharp host + the scripting API surface (world, output, triggers, timers, gmcp). +- `SharpMUTerm.Graphics` β€” Kitty graphics protocol encoder, capability probe, Sixel + half-block fallbacks, `GraphicsView`. +- `SharpMUTerm.Tui` β€” SharpConsoleUI app: windows, panes, key routing, settings UI, wiring. +- `SharpMUTerm.Core.Tests` / `SharpMUTerm.Graphics.Tests` β€” xUnit. - Target **.NET 10** (confirm TelnetNegotiationCore + Terminal.Gui v2 support net10.0; if a dep lags, reference it via `net8.0` compat and keep our own projects on net10.0). --- @@ -75,7 +75,7 @@ Layered, with a strict separation between **protocol/session** (headless, unit-t ## Rendering & graphics - **Text UI**: Terminal.Gui v2 provides the window manager, tabbed worlds, dockable panes, scrollback view, multi-input, focus, and truecolor cell rendering. Advertise UTF-8 + truecolor to servers. -- **`GraphicsView`** (`MuClient.Graphics`): renders images (maps, avatars, inline media) using **Kitty Unicode placeholders** so images occupy real cells and scroll/clip via Terminal.Gui's layout. Pipeline: probe capability β†’ upload image once (base64-chunked `APC _G` transmit) β†’ paint placeholder runes/colors into the view's cells β†’ manage image lifecycle (`a=d` delete on close/replace). +- **`GraphicsView`** (`SharpMUTerm.Graphics`): renders images (maps, avatars, inline media) using **Kitty Unicode placeholders** so images occupy real cells and scroll/clip via Terminal.Gui's layout. Pipeline: probe capability β†’ upload image once (base64-chunked `APC _G` transmit) β†’ paint placeholder runes/colors into the view's cells β†’ manage image lifecycle (`a=d` delete on close/replace). - **Capability probe + fallbacks**: query terminal for Kitty graphics; else **Sixel**; else Unicode **half-block/quadrant** approximation; else a text placeholder. Selection is per-session and user-overridable in settings. - **Map rendering**: `MapModel` (rooms/exits/z-levels) rendered either as box-drawing/Unicode vector art in a normal view *or* as a rasterized image through `GraphicsView` β€” start with box-drawing (works everywhere), add rasterized mode where graphics are available. @@ -99,7 +99,7 @@ Transport (TCP + SslStream TLS + IPv6); TelnetSession over TelnetNegotiationCore `TriggerEngine` (regex, gag/highlight/rewrite/spawn actions), `AliasEngine`, `MacroEngine`/keybinds, timers. Settings UI for all of them. Per-world profiles (JSON). **M3 β€” Graphics day-one payoff** -`MuClient.Graphics`: Kitty placeholder `GraphicsView` + Sixel/half-block fallbacks + capability probe. Inline **image viewer**; **map** view (box-drawing first, rasterized where supported); **stat panes** driven by GMCP. +`SharpMUTerm.Graphics`: Kitty placeholder `GraphicsView` + Sixel/half-block fallbacks + capability probe. Inline **image viewer**; **map** view (box-drawing first, rasterized where supported); **stat panes** driven by GMCP. **M4 β€” Scripting** MoonSharp `ScriptHost`, scripting API, Lua-backed triggers/aliases, GMCP subscriptions from Lua, hot-reload. @@ -113,7 +113,7 @@ MoonSharp `ScriptHost`, scripting API, Lua-backed triggers/aliases, GMCP subscri in the TUI. **Emoji** substitution (`EmojiSubstitutor`), opt-in per world. GMCP-driven **stat line**, **spawn** capture, ReDoS-guarded regex engines, and self-contained **single-file packaging** (`docs/PACKAGING.md`) + a tagged release workflow. -- **In-TUI web view** (`MuClient.Web` + `WebView`): fetch a URL or follow an MXP/Pueblo/HTML link +- **In-TUI web view** (`SharpMUTerm.Web` + `WebView`): fetch a URL or follow an MXP/Pueblo/HTML link and read the page as styled, word-wrapped text with clickable in-pane navigation (AngleSharp β†’ `StyledLine`s, reusing `SpanInteraction`). `` renders as a labelled link today. @@ -163,11 +163,13 @@ prompt with a destination/draft gutter. Built on these `Core` pieces (pure + tes - **Unit tests** (`Core.Tests`): ANSI/SGR parser (256 + truecolor + edge sequences), telnet negotiation round-trips, MCCP decompression against captured zlib streams, trigger/alias regex + action application, GMCP JSON routing. - **Graphics tests**: Kitty placeholder-sequence encoder golden-output tests; capability-probe fallback selection. - **Manual/integration**: connect to a public test MU\* (and a local throwaway server) from **Kitty, WezTerm, Ghostty, and a non-graphics terminal**; verify truecolor, prompts on input line, logging, triggers firing, an inline image rendering under Kitty and degrading to half-block elsewhere. Run on both **Windows and Linux**. -- Use `dotnet test` in CI (GitHub Actions matrix: windows-latest + ubuntu-latest). +- Run the tests in CI with `dotnet run --project ` per test project (GitHub Actions matrix: + windows-latest + ubuntu-latest). TUnit runs on Microsoft.Testing.Platform, where the classic + `dotnet test`/VSTest path is unsupported on .NET 10 and later. --- ## Open items to confirm before/at M1 - Confirm TelnetNegotiationCore + Terminal.Gui v2 both build against **net10.0** (fallback: consume via net8.0 compat). - Which servers you actually play on (helps prioritize protocol edge cases; all are targeted regardless). -- Final project/repo **name** (currently scaffolded as `MuGlyph` β€” trivially renamable). +- Final project/repo **name** (currently scaffolded as `SharpMUTerm` β€” trivially renamable). diff --git a/docs/SCREENSHOTS.md b/docs/SCREENSHOTS.md index 39c06f3..86892bb 100644 --- a/docs/SCREENSHOTS.md +++ b/docs/SCREENSHOTS.md @@ -1,12 +1,12 @@ # Screenshots & demos (headless) -MuGlyph can render its UI to an image **without a terminal or a live connection**, so +SharpMUTerm can render its UI to an image **without a terminal or a live connection**, so documentation images and CI visual checks work anywhere the .NET build runs. ## How it works SharpConsoleUI ships a `HeadlessConsoleDriver` that renders to a captured buffer instead -of a real console. `muglyph --snapshot` builds the app on that driver, loads a +of a real console. `sharpmuterm --snapshot` builds the app on that driver, loads a representative demo scene (a room, a `Chat` spawn window with unread, an input draft), renders one frame, and writes the raw ANSI to stdout (or `--out file`). @@ -16,19 +16,19 @@ a character grid and emits a **self-contained SVG** (great for embedding in Mark ```bash # one-shot -muglyph --snapshot --size 100x30 | python3 tools/ansi_frame_to_image.py > shot.svg +sharpmuterm --snapshot --size 100x30 | python3 tools/ansi_frame_to_image.py > shot.svg # regenerate the committed screenshots tools/make-screenshots.sh ``` The frame is deterministic (the desktop panels/clock are disabled under the headless -driver), so `muglyph --snapshot` output can also serve as a **golden file** for CI. +driver), so `sharpmuterm --snapshot` output can also serve as a **golden file** for CI. ## Animated demos (VHS) For animated GIFs/MP4s of real usage (typing, spawn windows appearing), use [charmbracelet/vhs](https://github.com/charmbracelet/vhs): write a `.tape` script and run it in CI with [`charmbracelet/vhs-action`](https://github.com/charmbracelet/vhs-action). -VHS drives the published `muglyph` binary in a headless terminal and records the result β€” +VHS drives the published `sharpmuterm` binary in a headless terminal and records the result β€” complementary to the static SVG snapshots above. diff --git a/docs/design/README.md b/docs/design/README.md index aac8713..6c8de0c 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -1,22 +1,22 @@ -# Handoff: MuGlyph multi-pane workspace, spawn windows & settings (M5 UI) +# Handoff: SharpMUTerm multi-pane workspace, spawn windows & settings (M5 UI) ## Overview -A design for MuGlyph's TUI shell at M5 scope: a tmux-style pane tree hosting BeipMU-style +A design for SharpMUTerm's TUI shell at M5 scope: a tmux-style pane tree hosting BeipMU-style spawn windows, a worldsβ†’characters connection model, trigger sets assignable to characters, a searchable command surface, and per-tab input drafts. -This covers the UI layer only. It assumes the existing `MuClient.Core` engines +This covers the UI layer only. It assumes the existing `SharpMUTerm.Core` engines (`TriggerEngine`, `AliasEngine`, `IntervalScheduler`, `ScrollbackBuffer`, `SessionManager`) -and asks for two **schema changes** in `MuClient.Core.Configuration` β€” see *Schema changes* below. +and asks for two **schema changes** in `SharpMUTerm.Core.Configuration` β€” see *Schema changes* below. ## About the design files -`Glyph-TUI-v3.dc.html` is a **design reference written in HTML**, not production code and not +`SharpMUTerm-TUI-v3.dc.html` is a **design reference written in HTML**, not production code and not something to port. It is a browser mock of a terminal UI: every "pane border", "block meter" and "box-drawing glyph" is HTML standing in for what SharpConsoleUI will draw as real cells. -The task is to **rebuild these screens in `MuClient.Tui`** using SharpConsoleUI views and the +The task is to **rebuild these screens in `SharpMUTerm.Tui`** using SharpConsoleUI views and the existing `Theme`/`ColorMapper` pipeline. Do not translate the HTML structure; translate the layout, the interaction model, and the information hierarchy. @@ -28,7 +28,7 @@ Open the file in a browser to interact with it (typing, pane splits, βŒƒP, F2– low-fidelity for colour.** Every colour in the mock is a literal hex, because HTML has no theme layer. In the real client -these must resolve through `MuClient.Core.Theming.Theme` β€” do not hardcode the mock's hexes. +these must resolve through `SharpMUTerm.Core.Theming.Theme` β€” do not hardcode the mock's hexes. The mapping table under *Design tokens* gives the theme field or ANSI index each mock colour stands for. @@ -104,7 +104,7 @@ world's imported character, preserving today's behaviour. The whole client. Five regions, top to bottom: header, [rail | pane area], input, status bar. -**Header** (1 row): `☰ glyphΒ·tui` at far left is the menu affordance and opens the command +**Header** (1 row): `☰ muterm` at far left is the menu affordance and opens the command surface (the caret flips `☰`β†’`β–Ύ` while open). Right side carries a `βŒƒB` prefix indicator (shown only while armed), the log indicator (`β—‰ LOG 1284` / `β—‰ LOG off`), and a clock. @@ -337,7 +337,7 @@ None. No images, no icon fonts β€” glyphs only. ## Files -- `Glyph TUI v3.dc.html` β€” the interactive design reference (open in a browser) +- `SharpMUTerm-TUI-v3.dc.html` β€” the interactive design reference (open in a browser) - `support.js` β€” runtime for the above; not part of the design Repo files each screen maps to are tabulated in `github.md` at the project root. diff --git a/docs/design/Glyph-TUI-v3.dc.html b/docs/design/SharpMUTerm-TUI-v3.dc.html similarity index 99% rename from docs/design/Glyph-TUI-v3.dc.html rename to docs/design/SharpMUTerm-TUI-v3.dc.html index 8288595..00cea19 100644 --- a/docs/design/Glyph-TUI-v3.dc.html +++ b/docs/design/SharpMUTerm-TUI-v3.dc.html @@ -22,7 +22,7 @@
-
{{ brandCaret }}glyphΒ·tui
+
{{ brandCaret }}muterm
βŒƒB β€” awaiting | - z o x
diff --git a/examples/example.lua b/examples/example.lua index 296d5de..779f976 100644 --- a/examples/example.lua +++ b/examples/example.lua @@ -1,4 +1,4 @@ --- Example MuGlyph Lua script. +-- Example SharpMUTerm Lua script. -- Loaded per-world; the sandbox exposes: world, output, trigger, alias, timer, gmcp, log. -- (No io/os.execute/require β€” scripting is sandboxed.) diff --git a/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs b/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs index 470cac6..b9958c5 100644 --- a/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs +++ b/src/SharpMUTerm.Core/Configuration/AppConfiguration.cs @@ -3,7 +3,7 @@ namespace SharpMUTerm.Core.Configuration; -/// Top-level MuGlyph configuration: global preferences, saved worlds, and shared trigger sets. +/// Top-level SharpMUTerm configuration: global preferences, saved worlds, and shared trigger sets. public sealed class AppConfiguration { /// The current on-disk schema version. Older configs are upgraded by . diff --git a/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs b/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs index 479ed35..ceb254a 100644 --- a/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs +++ b/src/SharpMUTerm.Core/Configuration/ConfigurationStore.cs @@ -35,7 +35,7 @@ public static string DefaultPath baseDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config"); } - return Path.Combine(baseDir, "MuGlyph", "config.json"); + return Path.Combine(baseDir, "SharpMUTerm", "config.json"); } } diff --git a/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs b/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs index 232e3b5..0b981fd 100644 --- a/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs +++ b/src/SharpMUTerm.Core/Logging/HtmlLogSink.cs @@ -18,7 +18,7 @@ public sealed class HtmlLogSink : ILogSink private readonly object _gate = new(); private bool _closed; - public HtmlLogSink(TextWriter writer, string title = "MuGlyph session log", bool ownsWriter = true) + public HtmlLogSink(TextWriter writer, string title = "SharpMUTerm session log", bool ownsWriter = true) { _writer = writer ?? throw new ArgumentNullException(nameof(writer)); _ownsWriter = ownsWriter; @@ -26,7 +26,7 @@ public HtmlLogSink(TextWriter writer, string title = "MuGlyph session log", bool } /// Opens an HTML log file, creating parent directories as needed. - public static HtmlLogSink CreateFile(string path, string title = "MuGlyph session log") + public static HtmlLogSink CreateFile(string path, string title = "SharpMUTerm session log") { ArgumentException.ThrowIfNullOrEmpty(path); Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))!); diff --git a/src/SharpMUTerm.Graphics/CapabilityProbe.cs b/src/SharpMUTerm.Graphics/CapabilityProbe.cs index b524356..20ab3b9 100644 --- a/src/SharpMUTerm.Graphics/CapabilityProbe.cs +++ b/src/SharpMUTerm.Graphics/CapabilityProbe.cs @@ -13,7 +13,7 @@ namespace SharpMUTerm.Graphics; public static class CapabilityProbe { /// Explicit override: forces a specific protocol regardless of heuristics. - public const string OverrideVariable = "MUGLYPH_GRAPHICS"; + public const string OverrideVariable = "SHARPMUTERM_GRAPHICS"; // Terminals known to speak Sixel that do not otherwise advertise it via TERM. private static readonly string[] KnownSixelTermPrograms = @@ -49,7 +49,7 @@ public static TerminalCapabilities Detect(IReadOnlyDictionary e var supportsSixel = Contains(term, "sixel") || - Equals(Get(environment, "MUGLYPH_SIXEL"), "1") || + Equals(Get(environment, "SHARPMUTERM_SIXEL"), "1") || IsKnownSixelProgram(termProgram); // An explicit override wins over everything, but we still report the individual diff --git a/src/SharpMUTerm.Tui/DemoScene.cs b/src/SharpMUTerm.Tui/DemoScene.cs index 33efdfe..ad6cc52 100644 --- a/src/SharpMUTerm.Tui/DemoScene.cs +++ b/src/SharpMUTerm.Tui/DemoScene.cs @@ -36,7 +36,7 @@ private static void AddWorlds(AppConfiguration config) UseTls = true, Encoding = "UTF-8", KeepaliveSeconds = 30, - Accent = MuGlyphApp.AccentPalette[0], + Accent = SharpMUTermApp.AccentPalette[0], Characters = { new CharacterDefinition @@ -57,7 +57,7 @@ private static void AddWorlds(AppConfiguration config) Host = "grapevine.haus", Port = 4000, Encoding = "ISO-8859-1", - Accent = MuGlyphApp.AccentPalette[1], + Accent = SharpMUTermApp.AccentPalette[1], Characters = { new CharacterDefinition { Name = "Thistle" } }, }); } diff --git a/src/SharpMUTerm.Tui/Glyphs.cs b/src/SharpMUTerm.Tui/Glyphs.cs index b323b5f..1734dae 100644 --- a/src/SharpMUTerm.Tui/Glyphs.cs +++ b/src/SharpMUTerm.Tui/Glyphs.cs @@ -1,7 +1,7 @@ namespace SharpMUTerm.Tui; /// -/// Centralised Nerd Font (v3) icon glyphs for MuGlyph's chrome. The terminals MuGlyph targets +/// Centralised Nerd Font (v3) icon glyphs for SharpMUTerm's chrome. The terminals SharpMUTerm targets /// (Kitty, WezTerm, Ghostty) are routinely run with Nerd Font builds, so these icons render as /// crisp symbols there; on a plain font they degrade to a "tofu" box. Keeping them in one place /// means a future MTTS-driven fallback to plain geometric glyphs is a single-file change rather diff --git a/src/SharpMUTerm.Tui/MarkupFormatter.cs b/src/SharpMUTerm.Tui/MarkupFormatter.cs index bb4f20c..4e38634 100644 --- a/src/SharpMUTerm.Tui/MarkupFormatter.cs +++ b/src/SharpMUTerm.Tui/MarkupFormatter.cs @@ -5,7 +5,7 @@ namespace SharpMUTerm.Tui; /// -/// Converts MuGlyph's UI-agnostic model into SharpConsoleUI (Spectre-style) +/// Converts SharpMUTerm's UI-agnostic model into SharpConsoleUI (Spectre-style) /// markup: truecolor foreground/background, bold/italic/underline/etc., and clickable /// s rendered as [link=…] spans. Colours are resolved through the /// active so palette-indexed and default colours land on real RGB values. diff --git a/src/SharpMUTerm.Tui/Program.cs b/src/SharpMUTerm.Tui/Program.cs index d342d5b..09377fc 100644 --- a/src/SharpMUTerm.Tui/Program.cs +++ b/src/SharpMUTerm.Tui/Program.cs @@ -35,7 +35,7 @@ private static int Main(string[] args) } var (width, height) = ParseSize(args); - var app = new MuGlyphApp(config, capabilities, new HeadlessConsoleDriver(width, height)); + var app = new SharpMUTermApp(config, capabilities, new HeadlessConsoleDriver(width, height)); var frame = app.RenderSnapshot(GetOption(args, "--view")); var outPath = GetOption(args, "--out"); if (outPath is not null) @@ -54,7 +54,7 @@ private static int Main(string[] args) } var world = ResolveWorld(args, config); - var liveApp = new MuGlyphApp(config, capabilities); + var liveApp = new SharpMUTermApp(config, capabilities); var exitCode = liveApp.Run(world); // blocks on the SharpConsoleUI main loop until exit // Persist the workspace so the next launch resumes where this one left off. @@ -101,10 +101,10 @@ private static AppConfiguration LoadConfiguration() private static TerminalCapabilities DetectCapabilities(AppConfiguration config) { - // A config graphics override maps onto the same MUGLYPH_GRAPHICS mechanism the probe reads. + // A config graphics override maps onto the same SHARPMUTERM_GRAPHICS mechanism the probe reads. if (!string.IsNullOrEmpty(config.GraphicsOverride)) { - Environment.SetEnvironmentVariable("MUGLYPH_GRAPHICS", config.GraphicsOverride); + Environment.SetEnvironmentVariable("SHARPMUTERM_GRAPHICS", config.GraphicsOverride); } return CapabilityProbe.DetectFromEnvironment(); @@ -142,9 +142,9 @@ private static TerminalCapabilities DetectCapabilities(AppConfiguration config) private static void PrintUsage() { - Console.WriteLine("MuGlyph β€” a cross-platform TUI MU* client."); + Console.WriteLine("SharpMUTerm β€” a cross-platform TUI MU* client."); Console.WriteLine(); - Console.WriteLine("Usage: muglyph [host] [port] [options]"); + Console.WriteLine("Usage: sharpmuterm [host] [port] [options]"); Console.WriteLine(); Console.WriteLine(" host Server hostname or IP (IPv4/IPv6)."); Console.WriteLine(" port Server port (default 4000)."); diff --git a/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj b/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj index d8c3ba2..9ebfcd2 100644 --- a/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj +++ b/src/SharpMUTerm.Tui/SharpMUTerm.Tui.csproj @@ -3,7 +3,7 @@ Exe SharpMUTerm.Tui - muglyph + sharpmuterm