Add GMCP support and shared media layer
This commit is contained in:
@@ -11,6 +11,9 @@ The project is currently an early but usable Telnet client. Its interface is bui
|
||||
- UTF-8, Windows-1252, and ISO-8859-1 character encodings
|
||||
- Streaming Telnet negotiation with ECHO, Suppress Go Ahead, and Terminal Type support
|
||||
- MCCP2 compressed-stream negotiation and bounded streaming decompression
|
||||
- GMCP negotiation with bounded UTF-8/JSON parsing and a raw diagnostic inspector
|
||||
- Accessible live views for character, room, items, skills, group, and communication data
|
||||
- Opt-in Client.Media audio with captions, per-profile volumes, HTTPS-only bounded downloads, and cache limits
|
||||
- Streaming ANSI control-sequence filtering
|
||||
- Accessible scrollback and command entry
|
||||
- Automatic reading of incoming lines and prompts
|
||||
@@ -40,6 +43,9 @@ The output and command fields provide additional actions through their context m
|
||||
- `lib/meow/profile_repository.rb` stores and validates connection profiles.
|
||||
- `lib/meow/transport.rb` owns TCP/TLS sockets and background I/O.
|
||||
- `lib/meow/telnet.rb` implements the streaming Telnet state machine.
|
||||
- `lib/meow/gmcp.rb` parses GMCP and maintains package state.
|
||||
- `lib/meow/media.rb` provides protocol-neutral media requests, safe caching, and Elten audio playback.
|
||||
- `lib/meow/session_gmcp.rb` integrates GMCP packages with accessible session views.
|
||||
- `lib/meow/text_pipeline.rb` handles ANSI filtering, decoding, lines, and prompts.
|
||||
- `lib/meow/session.rb` owns connected-session state, scrollback, input, and speech.
|
||||
- `lib/meow/ui.rb` implements the connection manager and profile editor.
|
||||
@@ -52,11 +58,10 @@ Automated regression coverage now exercises the streaming Telnet parser and text
|
||||
|
||||
Planned work, roughly in order:
|
||||
|
||||
1. Add GMCP negotiation, bounded JSON parsing, typed package events, and an accessible inspector.
|
||||
2. Add opt-in MSP sound and music with safe URL handling, limits, caching, and independent playback controls.
|
||||
3. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
|
||||
4. Add multiple simultaneous sessions with independent output and speech queues.
|
||||
5. Add localization catalogs and package/signing automation for releases.
|
||||
1. Add MSP parsing as a second adapter to the shared media request and playback layer.
|
||||
2. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
|
||||
3. Add multiple simultaneous sessions with independent output, media, and speech queues.
|
||||
4. Add localization catalogs and package/signing automation for releases.
|
||||
|
||||
## Running the tests
|
||||
|
||||
|
||||
Reference in New Issue
Block a user