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 +17 -0
- package/README.md +25 -5
- package/package.json +2 -1
- package/src/commands.ts +515 -32
- package/src/config.ts +46 -11
- package/src/index.ts +47 -27
- package/src/renderer.ts +18 -14
- package/src/repl.ts +31 -5
- package/src/types.ts +18 -1
- package/src/ui/App.tsx +309 -107
- package/src/ui/CommandPalette.tsx +103 -8
- package/src/ui/DealDeskHeader.tsx +219 -0
- package/src/ui/InputBox.tsx +115 -10
- package/src/ui/Message.tsx +94 -24
- package/src/ui/SetupPrompt.tsx +85 -0
- package/src/ui/Spinner.tsx +45 -6
- package/src/ui/StatusBar.tsx +39 -7
- package/src/ui/TranscriptViewport.tsx +255 -0
- package/src/ui/graphemes.ts +119 -0
- package/src/ui/themes.ts +36 -3
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 <
|
|
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` |
|
|
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
|
|
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 |
|
|
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.
|
|
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,
|