@charmland/crush 0.66.0 → 0.67.0
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/README.md +32 -6
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -181,6 +181,7 @@ That said, you can also set environment variables for preferred providers.
|
|
|
181
181
|
|
|
182
182
|
| Environment Variable | Provider |
|
|
183
183
|
| --------------------------- | -------------------------------------------------- |
|
|
184
|
+
| `HYPER_API_KEY` | Charm Hyper |
|
|
184
185
|
| `ANTHROPIC_API_KEY` | Anthropic |
|
|
185
186
|
| `OPENAI_API_KEY` | OpenAI |
|
|
186
187
|
| `VERCEL_API_KEY` | Vercel AI Gateway |
|
|
@@ -292,10 +293,36 @@ like you would. LSPs can be added manually like so:
|
|
|
292
293
|
|
|
293
294
|
### MCPs
|
|
294
295
|
|
|
295
|
-
Crush also supports Model Context Protocol (MCP) servers through three
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
296
|
+
Crush also supports Model Context Protocol (MCP) servers through three transport
|
|
297
|
+
types: `stdio` for command-line servers, `http` for HTTP endpoints, and `sse`
|
|
298
|
+
for Server-Sent Events.
|
|
299
|
+
|
|
300
|
+
Shell-style value expansion (`$VAR`, `${VAR:-default}`, `$(command)`, quoting,
|
|
301
|
+
nesting) works in `command`, `args`, `env`, `headers`, and `url`, so
|
|
302
|
+
file-based secrets work out of the box. You can use values like `"$TOKEN"`
|
|
303
|
+
or `"$(cat /path/to/secret/token)"`. Expansion runs through Crush's embedded
|
|
304
|
+
shell, so the same syntax works on every supported system, Windows included.
|
|
305
|
+
|
|
306
|
+
Unset variables expand to the empty string by default, matching bash. For
|
|
307
|
+
required credentials, use `${VAR:?message}` so an unset variable fails loudly
|
|
308
|
+
at load time with `message` instead of silently resolving to empty:
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{ "api_key": "${CODEBERG_TOKEN:?set CODEBERG_TOKEN}" }
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Headers (both MCP `headers` and provider `extra_headers`) whose value
|
|
315
|
+
resolves to the empty string are dropped from the outgoing request rather
|
|
316
|
+
than sent as `Header:`. That keeps optional env-gated headers like
|
|
317
|
+
`"OpenAI-Organization": "$OPENAI_ORG_ID"` clean when the variable is unset.
|
|
318
|
+
|
|
319
|
+
Provider `extra_body` is a non-expanding JSON passthrough; put env-driven
|
|
320
|
+
values in `extra_headers` or the provider's `api_key` / `base_url`, all of
|
|
321
|
+
which do expand.
|
|
322
|
+
|
|
323
|
+
> **Security note:** `crush.json` is trusted code. Any `$(...)` in it runs at
|
|
324
|
+
> load time with your shell's privileges, before the UI appears. Don't launch
|
|
325
|
+
> Crush in a directory whose `crush.json` you haven't reviewed.
|
|
299
326
|
|
|
300
327
|
```json
|
|
301
328
|
{
|
|
@@ -521,8 +548,7 @@ it creates. You can customize this behavior with the `attribution` option:
|
|
|
521
548
|
|
|
522
549
|
- `trailer_style`: Controls the attribution trailer added to commit messages
|
|
523
550
|
(default: `assisted-by`)
|
|
524
|
-
- `assisted-by`: Adds `Assisted-by: [
|
|
525
|
-
(includes the model name)
|
|
551
|
+
- `assisted-by`: Adds `Assisted-by: Crush:[ModelID]` as specified in [the convention](https://docs.kernel.org/process/coding-assistants.html#attribution)
|
|
526
552
|
- `co-authored-by`: Adds `Co-Authored-By: Crush <crush@charm.land>`
|
|
527
553
|
- `none`: No attribution trailer
|
|
528
554
|
- `generated_with`: When true (default), adds `💘 Generated with Crush` line to
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@charmland/crush",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.67.0",
|
|
5
5
|
"description": "A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"postinstall": "node install.js",
|
|
@@ -27,82 +27,82 @@
|
|
|
27
27
|
},
|
|
28
28
|
"archives": {
|
|
29
29
|
"darwin-arm64": {
|
|
30
|
-
"name": "crush_0.
|
|
31
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
30
|
+
"name": "crush_0.67.0_Darwin_arm64.tar.gz",
|
|
31
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Darwin_arm64.tar.gz",
|
|
32
32
|
"bins": [
|
|
33
33
|
"crush"
|
|
34
34
|
],
|
|
35
35
|
"format": "tar.gz",
|
|
36
36
|
"checksum": {
|
|
37
37
|
"algorithm": "sha256",
|
|
38
|
-
"digest": "
|
|
38
|
+
"digest": "768a0138e037de1114bb4045ab32e7f8150b4731f778ebefa9c077a68956ee1c"
|
|
39
39
|
},
|
|
40
|
-
"wrappedIn": "crush_0.
|
|
40
|
+
"wrappedIn": "crush_0.67.0_Darwin_arm64"
|
|
41
41
|
},
|
|
42
42
|
"darwin-x64": {
|
|
43
|
-
"name": "crush_0.
|
|
44
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
43
|
+
"name": "crush_0.67.0_Darwin_x86_64.tar.gz",
|
|
44
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Darwin_x86_64.tar.gz",
|
|
45
45
|
"bins": [
|
|
46
46
|
"crush"
|
|
47
47
|
],
|
|
48
48
|
"format": "tar.gz",
|
|
49
49
|
"checksum": {
|
|
50
50
|
"algorithm": "sha256",
|
|
51
|
-
"digest": "
|
|
51
|
+
"digest": "da369a4ff1f99949a63387bfac1a14a52753bb8d048917e6449e71b13c4fd4e9"
|
|
52
52
|
},
|
|
53
|
-
"wrappedIn": "crush_0.
|
|
53
|
+
"wrappedIn": "crush_0.67.0_Darwin_x86_64"
|
|
54
54
|
},
|
|
55
55
|
"linux-arm64": {
|
|
56
|
-
"name": "crush_0.
|
|
57
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
56
|
+
"name": "crush_0.67.0_Linux_arm64.tar.gz",
|
|
57
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Linux_arm64.tar.gz",
|
|
58
58
|
"bins": [
|
|
59
59
|
"crush"
|
|
60
60
|
],
|
|
61
61
|
"format": "tar.gz",
|
|
62
62
|
"checksum": {
|
|
63
63
|
"algorithm": "sha256",
|
|
64
|
-
"digest": "
|
|
64
|
+
"digest": "74882a67454e955d839eb234320039b554c96513cf445be14cd6093a6af601f5"
|
|
65
65
|
},
|
|
66
|
-
"wrappedIn": "crush_0.
|
|
66
|
+
"wrappedIn": "crush_0.67.0_Linux_arm64"
|
|
67
67
|
},
|
|
68
68
|
"linux-x64": {
|
|
69
|
-
"name": "crush_0.
|
|
70
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
69
|
+
"name": "crush_0.67.0_Linux_x86_64.tar.gz",
|
|
70
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Linux_x86_64.tar.gz",
|
|
71
71
|
"bins": [
|
|
72
72
|
"crush"
|
|
73
73
|
],
|
|
74
74
|
"format": "tar.gz",
|
|
75
75
|
"checksum": {
|
|
76
76
|
"algorithm": "sha256",
|
|
77
|
-
"digest": "
|
|
77
|
+
"digest": "f212c36f885f46562da3b591b6606d1c5504ea986c796c56e930336aa3d1ad94"
|
|
78
78
|
},
|
|
79
|
-
"wrappedIn": "crush_0.
|
|
79
|
+
"wrappedIn": "crush_0.67.0_Linux_x86_64"
|
|
80
80
|
},
|
|
81
81
|
"win32-arm64": {
|
|
82
|
-
"name": "crush_0.
|
|
83
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
82
|
+
"name": "crush_0.67.0_Windows_arm64.zip",
|
|
83
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Windows_arm64.zip",
|
|
84
84
|
"bins": [
|
|
85
85
|
"crush.exe"
|
|
86
86
|
],
|
|
87
87
|
"format": "zip",
|
|
88
88
|
"checksum": {
|
|
89
89
|
"algorithm": "sha256",
|
|
90
|
-
"digest": "
|
|
90
|
+
"digest": "49fc253fea71b8a435834ae07a039bfaa87bbaeab881a874d3ecad5644cea7e7"
|
|
91
91
|
},
|
|
92
|
-
"wrappedIn": "crush_0.
|
|
92
|
+
"wrappedIn": "crush_0.67.0_Windows_arm64"
|
|
93
93
|
},
|
|
94
94
|
"win32-x64": {
|
|
95
|
-
"name": "crush_0.
|
|
96
|
-
"url": "https://github.com/charmbracelet/crush/releases/download/v0.
|
|
95
|
+
"name": "crush_0.67.0_Windows_x86_64.zip",
|
|
96
|
+
"url": "https://github.com/charmbracelet/crush/releases/download/v0.67.0/crush_0.67.0_Windows_x86_64.zip",
|
|
97
97
|
"bins": [
|
|
98
98
|
"crush.exe"
|
|
99
99
|
],
|
|
100
100
|
"format": "zip",
|
|
101
101
|
"checksum": {
|
|
102
102
|
"algorithm": "sha256",
|
|
103
|
-
"digest": "
|
|
103
|
+
"digest": "996549ec8f52c20495d3d740ba5989a6480a30c89b742310a07f80a114cd7b15"
|
|
104
104
|
},
|
|
105
|
-
"wrappedIn": "crush_0.
|
|
105
|
+
"wrappedIn": "crush_0.67.0_Windows_x86_64"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|