airlok 0.4.0 → 0.4.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 +11 -0
- package/README.md +4 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to airlok. The format follows Keep a Changelog; versions follow SemVer.
|
|
4
4
|
|
|
5
|
+
## [0.4.1] - 2026-09-11
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `/model [<id>]` shows the model or switches it for the rest of the session, without validating the id. `/provider [anthropic|openai]` switches provider when a key is available for it and otherwise names the missing key. Both are recorded in the session file, and `--resume` continues on the session's last model when it used the configured provider and no `--model` is given.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Markdown lines slightly wider than the terminal no longer leave a bullet, a bold label, or a styled first word such as `airlok` alone on a line. termimad's wrap cut between style runs; airlok now wraps word by word. Paragraphs and list items are rendered per block (when a blank line or the next block marker arrives, or the reply ends), so a paragraph split across source lines reflows as one. A paragraph now appears when it completes, not line by line.
|
|
14
|
+
- The REPL prompt always starts on its own line: rustyline checks the cursor column before each prompt.
|
|
15
|
+
|
|
5
16
|
## [0.4.0] - 2026-09-11
|
|
6
17
|
|
|
7
18
|
### Added
|
package/README.md
CHANGED
|
@@ -43,6 +43,8 @@ Model output is rendered as markdown (headings, emphasis, lists, tables, highlig
|
|
|
43
43
|
| Command | What it does |
|
|
44
44
|
|---|---|
|
|
45
45
|
| `/help` | list the commands |
|
|
46
|
+
| `/model [<id>]` | show the model, or use `<id>` for the rest of the session; not validated, the provider rejects a bad id on the next turn |
|
|
47
|
+
| `/provider [<name>]` | show the provider, or switch to `anthropic` or `openai` if a key is available for it; says which key is missing otherwise |
|
|
46
48
|
| `/clear` | start a new session; the current one stays saved |
|
|
47
49
|
| `/compact` | summarise older turns to free context |
|
|
48
50
|
| `/cost` | tokens used so far, and whether they are estimates |
|
|
@@ -50,6 +52,8 @@ Model output is rendered as markdown (headings, emphasis, lists, tables, highlig
|
|
|
50
52
|
| `/config` | the effective configuration |
|
|
51
53
|
| `/exit` | save and quit |
|
|
52
54
|
|
|
55
|
+
`[provider]` settings (`api_key_cmd`, `api_key_env`, `base_url`) belong to the configured provider. After `/provider` switches to the other one, it runs on that provider's default model and its default key variables (`ANTHROPIC_API_KEY`; `AZURE_OPENAI_API_KEY` or `OPENAI_API_KEY`); switching back restores the configured one. Both changes are written to the session file, and `--resume` continues on the session's last model when it used the configured provider and `--model` is not given.
|
|
56
|
+
|
|
53
57
|
Every turn, one-shot or interactive, is saved under `$XDG_DATA_HOME/airlok/sessions/<hash of the directory>/` (`~/.local/share/airlok` by default). `airlok --resume` picks up the latest session for the directory; it rebuilds the context block, so the model sees the current tree and git state, and adds a note with the resume time. `airlok sessions` lists what is there.
|
|
54
58
|
|
|
55
59
|
A session file holds the plaintext conversation and the real value behind every placeholder, because that is what rehydration on resume needs. That is why the file is written with mode 0600 in a 0700 directory, and why the provider API key is the one thing left out: it is stored blank and re-read from your config on every start.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"hasInstallScript": true,
|
|
20
20
|
"license": "MIT OR Apache-2.0",
|
|
21
21
|
"name": "airlok",
|
|
22
|
-
"version": "0.4.
|
|
22
|
+
"version": "0.4.1"
|
|
23
23
|
},
|
|
24
24
|
"node_modules/detect-libc": {
|
|
25
25
|
"engines": {
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"requires": true,
|
|
51
|
-
"version": "0.4.
|
|
51
|
+
"version": "0.4.1"
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/airlok-dev/airlok/releases/download/v0.4.
|
|
3
|
+
"https://github.com/airlok-dev/airlok/releases/download/v0.4.1"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"airlok": "run-airlok.js"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"zipExt": ".tar.xz"
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
"version": "0.4.
|
|
63
|
+
"version": "0.4.1",
|
|
64
64
|
"volta": {
|
|
65
65
|
"node": "18.14.1",
|
|
66
66
|
"npm": "9.5.0"
|