drexler 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog
2
+
3
+ ## 0.2.1
4
+
5
+ - Fixed slash command help and palette coverage so every implemented command is discoverable.
6
+ - Kept overlapping slash-command previews visible, such as `/save` with `/save-last` and `/re` with `/regenerate`, `/redo`, and `/retry`.
7
+
8
+ ## 0.2.0
9
+
10
+ - Added premium Ink chat chrome with responsive header, transcript viewport, command palette, input, live spinner, and streaming response states.
11
+ - Added expanded theme pack: `terminal`, `dealroom`, `midnight`, `paper`, and `plasma`.
12
+ - Added persisted UI preferences through `/theme <name> save`, `/theme save`, and `/startup fast|no-intro|normal`.
13
+ - Added transcript search, markdown/text/json/html export, save-last, copy-last, expand, quote, and styled retry commands.
14
+ - Added first-run Ink setup prompt with masked API key entry and inline validation.
15
+ - Added fast startup controls via `--fast`, `--no-intro`, `DREXLER_FAST`, and `DREXLER_NO_INTRO`.
16
+ - Improved narrow-terminal handling, scrollback, grapheme-aware input editing, and live response clipping.
17
+ - Expanded tests across commands, UI components, App state helpers, themes, config, and release smoke paths.
package/README.md CHANGED
@@ -85,7 +85,9 @@ rm -rf ~/.config/drexler # optional: wipe stored key + settings
85
85
  | --------------------------------- | ----------------------------------------------------------------- |
86
86
  | `--model <31b\|26b\|vendor/name>` | switch model (alias or full OpenRouter id, e.g. `google/gemma-4-31b-it`) |
87
87
  | `--persona <path>` | load a custom persona markdown file instead of bundled `drexler.md` |
88
- | `--theme <apollo\|amber\|mono>` | color theme (default `apollo`) |
88
+ | `--theme <name>` | color theme (default `apollo`) |
89
+ | `--no-intro` | skip the startup banner and mascot |
90
+ | `--fast` | fast startup mode, implies `--no-intro` |
89
91
  | `--version`, `-v` | print version |
90
92
  | `--help`, `-h` | print usage |
91
93
 
@@ -98,9 +100,19 @@ rm -rf ~/.config/drexler # optional: wipe stored key + settings
98
100
  | `/exit` | meeting adjourned |
99
101
  | `/synergy` | SYNERGY! |
100
102
  | `/model` | show current model, or `/model 26b` to switch |
103
+ | `/theme` | show/switch theme; append `save` to persist, e.g. `/theme midnight save` |
104
+ | `/startup fast\|no-intro\|normal` | persist startup behavior for future launches |
101
105
  | `/history` | message count + approx tokens |
102
106
  | `/regenerate` | re-roll last response |
107
+ | `/redo` | alias for `/regenerate` |
108
+ | `/retry terse\|brutal` | re-roll last response with a style mandate |
109
+ | `/expand` | print Drexler's latest response |
110
+ | `/quote` | quote Drexler's latest response |
111
+ | `/search <term>` | search the current transcript |
112
+ | `/export md\|txt\|json\|html [path]` | export transcript |
103
113
  | `/save [path]` | archive conversation as markdown |
114
+ | `/save-last [path]` | save Drexler's last response only |
115
+ | `/copy-last` | copy Drexler's latest response to the clipboard |
104
116
 
105
117
  `Ctrl+C` exits gracefully with an in-character farewell.
106
118
 
@@ -120,7 +132,9 @@ Drexler reads config in this priority (later wins):
120
132
  | -------------------- | ---------------------------------------------------- |
121
133
  | `OPENROUTER_API_KEY` | API key (overrides config file) |
122
134
  | `DREXLER_MODEL` | model id or alias |
123
- | `DREXLER_THEME` | `apollo` / `amber` / `mono` |
135
+ | `DREXLER_THEME` | color theme name |
136
+ | `DREXLER_NO_INTRO` | `1`, `true`, `yes`, or `on` skips startup intro |
137
+ | `DREXLER_FAST` | `1`, `true`, `yes`, or `on` enables fast startup |
124
138
  | `XDG_CONFIG_HOME` | override config dir (default `~/.config/drexler`) |
125
139
  | `NO_COLOR` | disable colors entirely |
126
140
 
@@ -134,12 +148,17 @@ Drexler reads config in this priority (later wins):
134
148
  "model": "google/gemma-4-31b-it",
135
149
  "maxHistory": 50,
136
150
  "personaPath": "/optional/path/to/custom-persona.md",
137
- "theme": "apollo"
151
+ "theme": "apollo",
152
+ "noIntro": false,
153
+ "fast": false
138
154
  }
139
155
  ```
140
156
 
141
157
  Default `maxHistory`: 50 messages.
142
158
 
159
+ Available launch/config themes: `apollo`, `amber`, `mono`, `terminal`, `dealroom`, `midnight`, `paper`, and `plasma`.
160
+ `NO_COLOR` always forces `mono`.
161
+
143
162
  ---
144
163
 
145
164
  ## Models
@@ -173,7 +192,7 @@ bun run typecheck
173
192
  ### Releasing a new version
174
193
 
175
194
  ```bash
176
- npm version patch # bumps package.json, commits, tags
195
+ npm version <patch|minor> # bumps package.json, commits, tags
177
196
  git push --follow-tags # CI publishes to npm automatically
178
197
  ```
179
198
 
@@ -189,7 +208,8 @@ The `.github/workflows/publish.yml` workflow runs typecheck + tests + `npm publi
189
208
  | `command not found: bun` | Install Bun (see [Install](#install) section above) |
190
209
  | `API key rejected by OpenRouter` | Update key: `rm ~/.config/drexler/config.json` and re-run `drexler`, or export `OPENROUTER_API_KEY` |
191
210
  | Garbled box-drawing characters | Use a UTF-8 terminal with a Nerd Font (e.g. iTerm2, Alacritty, WezTerm) |
192
- | Want to switch themes mid-session | `drexler --theme amber` (or `mono`) on next launch |
211
+ | Want to switch themes mid-session | Use `/theme midnight`, `/theme dealroom`, `/theme amber`, or any listed theme inside the REPL |
212
+ | Want a faster launch | Use `drexler --fast` or set `"fast": true` in config |
193
213
 
194
214
  ---
195
215
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drexler",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "CLI chat with Drexler, a corporate-executive AI persona built on OpenRouter Gemma 4 31B.",
5
5
  "license": "MIT",
6
6
  "author": "showOS",
@@ -30,6 +30,7 @@
30
30
  "src",
31
31
  "prompts",
32
32
  "README.md",
33
+ "CHANGELOG.md",
33
34
  "LICENSE"
34
35
  ],
35
36
  "preferGlobal": true,