codewhale 0.8.46 → 0.8.48
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 +6 -4
- package/package.json +2 -2
- package/scripts/artifacts.js +14 -4
- package/test/artifacts.test.js +10 -0
package/README.md
CHANGED
|
@@ -35,10 +35,12 @@ codewhale doctor
|
|
|
35
35
|
codewhale
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
The `codewhale` facade and `codewhale-tui` binary share
|
|
39
|
-
for DeepSeek auth and default model settings.
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
The `codewhale` facade and `codewhale-tui` binary share
|
|
39
|
+
`~/.codewhale/config.toml` for DeepSeek auth and default model settings. Legacy
|
|
40
|
+
`~/.deepseek/config.toml` installs are still read as a compatibility fallback.
|
|
41
|
+
Common TUI commands are available directly through the facade, including
|
|
42
|
+
`codewhale doctor`, `codewhale models`, `codewhale sessions`, and
|
|
43
|
+
`codewhale resume --last`.
|
|
42
44
|
|
|
43
45
|
The app talks to DeepSeek's documented OpenAI-compatible Chat Completions API.
|
|
44
46
|
Set `DEEPSEEK_BASE_URL` only if you need the China endpoint or DeepSeek beta
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codewhale",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"codewhaleBinaryVersion": "0.8.
|
|
3
|
+
"version": "0.8.48",
|
|
4
|
+
"codewhaleBinaryVersion": "0.8.48",
|
|
5
5
|
"description": "Install and run CodeWhale, the agentic terminal for open-source and open-weight coding models, from GitHub release artifacts.",
|
|
6
6
|
"author": "Hmbown",
|
|
7
7
|
"license": "MIT",
|
package/scripts/artifacts.js
CHANGED
|
@@ -7,13 +7,14 @@ const ASSET_MATRIX = {
|
|
|
7
7
|
linux: {
|
|
8
8
|
x64: ["codewhale-linux-x64", "codewhale-tui-linux-x64"],
|
|
9
9
|
arm64: ["codewhale-linux-arm64", "codewhale-tui-linux-arm64"],
|
|
10
|
+
riscv64: ["codewhale-linux-riscv64", "codewhale-tui-linux-riscv64"],
|
|
10
11
|
},
|
|
11
12
|
darwin: {
|
|
12
13
|
x64: ["codewhale-macos-x64", "codewhale-tui-macos-x64"],
|
|
13
14
|
arm64: ["codewhale-macos-arm64", "codewhale-tui-macos-arm64"],
|
|
14
15
|
},
|
|
15
16
|
win32: {
|
|
16
|
-
x64: ["codewhale-windows-x64.exe", "codewhale-tui-windows-x64.exe"],
|
|
17
|
+
x64: ["codewhale-windows-x64.exe", "codewhale-tui-windows-x64.exe", "codewhale.bat"],
|
|
17
18
|
},
|
|
18
19
|
};
|
|
19
20
|
|
|
@@ -78,12 +79,21 @@ function executableName(base, platform) {
|
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
function releaseBaseUrl(version, repo = "Hmbown/CodeWhale") {
|
|
82
|
+
// CODEWHALE_RELEASE_BASE_URL is the canonical override.
|
|
83
|
+
// DEEPSEEK_TUI_RELEASE_BASE_URL / DEEPSEEK_RELEASE_BASE_URL are legacy aliases.
|
|
81
84
|
const override =
|
|
82
|
-
process.env.
|
|
85
|
+
process.env.CODEWHALE_RELEASE_BASE_URL ||
|
|
86
|
+
process.env.DEEPSEEK_TUI_RELEASE_BASE_URL ||
|
|
87
|
+
process.env.DEEPSEEK_RELEASE_BASE_URL;
|
|
83
88
|
if (override) {
|
|
84
89
|
const trimmed = String(override).trim();
|
|
85
90
|
return trimmed.endsWith("/") ? trimmed : `${trimmed}/`;
|
|
86
91
|
}
|
|
92
|
+
// When CODEWHALE_USE_CNB_MIRROR is set, use the CNB (China-friendly)
|
|
93
|
+
// mirror that already builds and publishes binary release assets.
|
|
94
|
+
if (process.env.CODEWHALE_USE_CNB_MIRROR) {
|
|
95
|
+
return `https://cnb.cool/Hmbown/CodeWhale/-/releases/v${version}/`;
|
|
96
|
+
}
|
|
87
97
|
return `https://github.com/${repo}/releases/download/v${version}/`;
|
|
88
98
|
}
|
|
89
99
|
|
|
@@ -102,8 +112,8 @@ function releaseBinaryDirectory() {
|
|
|
102
112
|
function allAssetNames() {
|
|
103
113
|
const names = [];
|
|
104
114
|
for (const platformAssets of Object.values(ASSET_MATRIX)) {
|
|
105
|
-
for (const
|
|
106
|
-
names.push(
|
|
115
|
+
for (const assets of Object.values(platformAssets)) {
|
|
116
|
+
names.push(...assets);
|
|
107
117
|
}
|
|
108
118
|
}
|
|
109
119
|
return Array.from(new Set(names));
|
package/test/artifacts.test.js
CHANGED
|
@@ -55,6 +55,7 @@ test("known platforms are unaffected by alias map", () => {
|
|
|
55
55
|
for (const [platform, arch, expectedCodeWhale] of [
|
|
56
56
|
["linux", "x64", "codewhale-linux-x64"],
|
|
57
57
|
["darwin", "arm64", "codewhale-macos-arm64"],
|
|
58
|
+
["linux", "riscv64", "codewhale-linux-riscv64"],
|
|
58
59
|
["win32", "x64", "codewhale-windows-x64.exe"],
|
|
59
60
|
]) {
|
|
60
61
|
withMockedOs(platform, arch, () => {
|
|
@@ -64,3 +65,12 @@ test("known platforms are unaffected by alias map", () => {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
});
|
|
68
|
+
|
|
69
|
+
test("allAssetNames includes every matrix entry", () => {
|
|
70
|
+
const { allAssetNames, allReleaseAssetNames } = require(ARTIFACTS_PATH);
|
|
71
|
+
const assetNames = allAssetNames();
|
|
72
|
+
assert.ok(assetNames.includes("codewhale-windows-x64.exe"));
|
|
73
|
+
assert.ok(assetNames.includes("codewhale-tui-windows-x64.exe"));
|
|
74
|
+
assert.ok(assetNames.includes("codewhale.bat"));
|
|
75
|
+
assert.ok(allReleaseAssetNames().includes("codewhale.bat"));
|
|
76
|
+
});
|