autohand-cli 0.7.3 → 0.7.5
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/LICENSE +0 -43
- package/README.md +1 -1
- package/dist/{chunk-FEI2GPAW.cjs → chunk-2E2COWKB.cjs} +2 -2
- package/dist/{chunk-6XITU2RU.js → chunk-2FSQPRPJ.js} +1 -1
- package/dist/{chunk-U43RFUBR.cjs → chunk-536VWSZK.cjs} +2 -2
- package/dist/{chunk-7EIL6P6Q.cjs → chunk-63XGCFCC.cjs} +2 -2
- package/dist/{chunk-52HPEJ4P.js → chunk-6LP2GO5C.js} +1 -1
- package/dist/{chunk-ZYHQ652D.js → chunk-C2NFLFHH.js} +1 -1
- package/dist/{chunk-KNYGI365.js → chunk-EYBIKL2I.js} +2 -2
- package/dist/{chunk-HXAAED4W.cjs → chunk-HYTYXN2G.cjs} +10 -10
- package/dist/{chunk-B2BPL6IL.js → chunk-PVM5I5WI.js} +6 -2
- package/dist/{chunk-SXUZ3CX3.cjs → chunk-QMVTT55Y.cjs} +6 -2
- package/dist/index.cjs +590 -394
- package/dist/index.js +219 -23
- package/dist/{login-BZ7J4Z4M.js → login-NYWZRZO5.js} +2 -2
- package/dist/{login-HUH3CEWL.cjs → login-QNJ5C42G.cjs} +3 -3
- package/dist/{logout-BZKEMNHB.js → logout-MBS7L3ZW.js} +2 -2
- package/dist/logout-MVUP7GPU.cjs +12 -0
- package/dist/status-CYVPCW7G.cjs +8 -0
- package/dist/{status-ROTJZEKU.js → status-VRYDAEBT.js} +1 -1
- package/dist/theme-CVY6MVEK.cjs +12 -0
- package/dist/{theme-JAMJSCKR.js → theme-CY7WF4M6.js} +2 -2
- package/package.json +2 -2
- package/dist/logout-3V3SH7OL.cjs +0 -12
- package/dist/status-RSWACM74.cjs +0 -8
- package/dist/theme-LIF3RD3A.cjs +0 -12
package/LICENSE
CHANGED
|
@@ -175,47 +175,6 @@
|
|
|
175
175
|
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
|
177
177
|
|
|
178
|
-
============================================================================
|
|
179
|
-
COMMERCIAL LICENSE EXCEPTION
|
|
180
|
-
============================================================================
|
|
181
|
-
|
|
182
|
-
The Apache License 2.0 above applies to all users EXCEPT as follows:
|
|
183
|
-
|
|
184
|
-
If You are a Legal Entity (as defined above) with Annual Recurring Revenue
|
|
185
|
-
(ARR) exceeding Five Million United States Dollars (USD $5,000,000), You
|
|
186
|
-
must obtain a separate commercial license from the Licensor to use, modify,
|
|
187
|
-
or distribute this Work in any form.
|
|
188
|
-
|
|
189
|
-
"Annual Recurring Revenue" (ARR) means the annualized value of all
|
|
190
|
-
subscription, license, or recurring revenue contracts in effect at the
|
|
191
|
-
time of measurement, including but not limited to SaaS subscriptions,
|
|
192
|
-
maintenance agreements, and support contracts.
|
|
193
|
-
|
|
194
|
-
For commercial licensing inquiries, please contact:
|
|
195
|
-
|
|
196
|
-
Autohand AI LLC
|
|
197
|
-
Email: licensing@autohand.ai
|
|
198
|
-
|
|
199
|
-
This Commercial License Exception does not apply to:
|
|
200
|
-
- Individual developers using this Work for personal, non-commercial purposes
|
|
201
|
-
- Non-profit organizations
|
|
202
|
-
- Educational institutions
|
|
203
|
-
- Open source projects licensed under an OSI-approved license
|
|
204
|
-
- Legal Entities with ARR of $5,000,000 or less
|
|
205
|
-
|
|
206
|
-
============================================================================
|
|
207
|
-
|
|
208
|
-
APPENDIX: How to apply the Apache License to your work.
|
|
209
|
-
|
|
210
|
-
To apply the Apache License to your work, attach the following
|
|
211
|
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
212
|
-
replaced with your own identifying information. (Don't include
|
|
213
|
-
the brackets!) The text should be enclosed in the appropriate
|
|
214
|
-
comment syntax for the file format. We also recommend that a
|
|
215
|
-
file or class name and description of purpose be included on the
|
|
216
|
-
same "printed page" as the copyright notice for easier
|
|
217
|
-
identification within third-party archives.
|
|
218
|
-
|
|
219
178
|
Copyright 2025 Autohand AI LLC
|
|
220
179
|
|
|
221
180
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -229,5 +188,3 @@
|
|
|
229
188
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
230
189
|
See the License for the specific language governing permissions and
|
|
231
190
|
limitations under the License.
|
|
232
|
-
|
|
233
|
-
Subject to the Commercial License Exception above.
|
package/README.md
CHANGED
|
@@ -328,7 +328,7 @@ docker run -it autohand
|
|
|
328
328
|
|
|
329
329
|
## License
|
|
330
330
|
|
|
331
|
-
|
|
331
|
+
Apache License 2.0 - Free for individuals, non-profits, educational institutions, open source projects, and companies with ARR under $5M. See [LICENSE](LICENSE) and [COMMERCIAL.md](COMMERCIAL.md) for details.
|
|
332
332
|
|
|
333
333
|
## Links
|
|
334
334
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _chunkREPKBECDcjs = require('./chunk-REPKBECD.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkQMVTT55Ycjs = require('./chunk-QMVTT55Y.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunk3HPUOQJNcjs = require('./chunk-3HPUOQJN.cjs');
|
|
@@ -106,7 +106,7 @@ async function login(ctx) {
|
|
|
106
106
|
expiresAt
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
|
-
await
|
|
109
|
+
await _chunkQMVTT55Ycjs.saveConfig.call(void 0, updatedConfig);
|
|
110
110
|
console.log();
|
|
111
111
|
console.log(_chalk2.default.green("Login successful!"));
|
|
112
112
|
console.log(_chalk2.default.cyan(`Welcome, ${pollResult.user.name || pollResult.user.email}!`));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _chunkREPKBECDcjs = require('./chunk-REPKBECD.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkQMVTT55Ycjs = require('./chunk-QMVTT55Y.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunk3HPUOQJNcjs = require('./chunk-3HPUOQJN.cjs');
|
|
@@ -42,7 +42,7 @@ async function logout(ctx) {
|
|
|
42
42
|
...config,
|
|
43
43
|
auth: void 0
|
|
44
44
|
};
|
|
45
|
-
await
|
|
45
|
+
await _chunkQMVTT55Ycjs.saveConfig.call(void 0, updatedConfig);
|
|
46
46
|
console.log();
|
|
47
47
|
console.log(_chalk2.default.green("Successfully logged out."));
|
|
48
48
|
console.log(_chalk2.default.gray("Your local session has been cleared."));
|
|
@@ -5,8 +5,8 @@ var _readline = require('readline'); var _readline2 = _interopRequireDefault(_re
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "autohand-cli",
|
|
8
|
-
version: "0.7.
|
|
9
|
-
|
|
8
|
+
version: "0.7.5",
|
|
9
|
+
license: "Apache-2.0",
|
|
10
10
|
description: "Autohand interactive coding agent CLI powered by LLMs.",
|
|
11
11
|
repository: {
|
|
12
12
|
type: "git",
|
|
@@ -5,8 +5,8 @@ import readline from "readline";
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "autohand-cli",
|
|
8
|
-
version: "0.7.
|
|
9
|
-
|
|
8
|
+
version: "0.7.5",
|
|
9
|
+
license: "Apache-2.0",
|
|
10
10
|
description: "Autohand interactive coding agent CLI powered by LLMs.",
|
|
11
11
|
repository: {
|
|
12
12
|
type: "git",
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkQMVTT55Ycjs = require('./chunk-QMVTT55Y.cjs');
|
|
9
9
|
|
|
10
10
|
// src/commands/theme.ts
|
|
11
11
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
12
12
|
var _enquirer = require('enquirer'); var _enquirer2 = _interopRequireDefault(_enquirer);
|
|
13
13
|
async function theme(ctx) {
|
|
14
14
|
const { Select } = _enquirer2.default;
|
|
15
|
-
const themes =
|
|
16
|
-
const currentTheme =
|
|
15
|
+
const themes = _chunkQMVTT55Ycjs.listAvailableThemes.call(void 0, );
|
|
16
|
+
const currentTheme = _chunkQMVTT55Ycjs.isThemeInitialized.call(void 0, ) ? _chunkQMVTT55Ycjs.getTheme.call(void 0, ).name : _optionalChain([ctx, 'access', _ => _.config, 'access', _2 => _2.ui, 'optionalAccess', _3 => _3.theme]) || "dark";
|
|
17
17
|
console.log(_chalk2.default.cyan("\n\u{1F3A8} Theme Selection\n"));
|
|
18
18
|
console.log(_chalk2.default.gray(`Current theme: ${_chalk2.default.white(currentTheme)}`));
|
|
19
|
-
console.log(_chalk2.default.gray(`Custom themes location: ${
|
|
19
|
+
console.log(_chalk2.default.gray(`Custom themes location: ${_chunkQMVTT55Ycjs.CUSTOM_THEMES_DIR}
|
|
20
20
|
`));
|
|
21
21
|
const choices = themes.map((name) => ({
|
|
22
22
|
name,
|
|
@@ -35,12 +35,12 @@ async function theme(ctx) {
|
|
|
35
35
|
console.log(_chalk2.default.gray("\nNo change made."));
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
_chunkQMVTT55Ycjs.initTheme.call(void 0, selected);
|
|
39
39
|
ctx.config.ui = { ...ctx.config.ui, theme: selected };
|
|
40
|
-
await
|
|
40
|
+
await _chunkQMVTT55Ycjs.saveConfig.call(void 0, ctx.config);
|
|
41
41
|
console.log(_chalk2.default.green(`
|
|
42
42
|
\u2713 Theme changed to '${selected}'`));
|
|
43
|
-
const newTheme =
|
|
43
|
+
const newTheme = _chunkQMVTT55Ycjs.getTheme.call(void 0, );
|
|
44
44
|
console.log("\nTheme preview:");
|
|
45
45
|
console.log(` ${newTheme.fg("accent", "\u25CF accent")} ${newTheme.fg("success", "\u25CF success")} ${newTheme.fg("error", "\u25CF error")} ${newTheme.fg("warning", "\u25CF warning")}`);
|
|
46
46
|
console.log(` ${newTheme.fg("muted", "\u25CF muted")} ${newTheme.fg("dim", "\u25CF dim")} ${newTheme.fg("text", "\u25CF text")}`);
|
|
@@ -52,15 +52,15 @@ async function theme(ctx) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
async function themeInfo() {
|
|
55
|
-
if (!
|
|
55
|
+
if (!_chunkQMVTT55Ycjs.isThemeInitialized.call(void 0, )) {
|
|
56
56
|
console.log(_chalk2.default.yellow("Theme not initialized."));
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
59
|
-
const currentTheme =
|
|
59
|
+
const currentTheme = _chunkQMVTT55Ycjs.getTheme.call(void 0, );
|
|
60
60
|
console.log(_chalk2.default.cyan("\n\u{1F3A8} Current Theme Info\n"));
|
|
61
61
|
console.log(_chalk2.default.gray(`Name: ${_chalk2.default.white(currentTheme.name)}`));
|
|
62
62
|
console.log(_chalk2.default.gray(`Color mode: ${_chalk2.default.white(currentTheme.getColorMode())}`));
|
|
63
|
-
console.log(_chalk2.default.gray(`Custom themes dir: ${
|
|
63
|
+
console.log(_chalk2.default.gray(`Custom themes dir: ${_chunkQMVTT55Ycjs.CUSTOM_THEMES_DIR}`));
|
|
64
64
|
console.log();
|
|
65
65
|
console.log("Color preview:");
|
|
66
66
|
console.log(` ${currentTheme.fg("accent", "\u25CF accent")} ${currentTheme.fg("success", "\u25CF success")} ${currentTheme.fg("error", "\u25CF error")} ${currentTheme.fg("warning", "\u25CF warning")}`);
|
|
@@ -888,6 +888,7 @@ var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
|
|
|
888
888
|
var DEFAULT_OLLAMA_URL = "http://localhost:11434";
|
|
889
889
|
var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
|
|
890
890
|
var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
|
|
891
|
+
var DEFAULT_MLX_URL = "http://localhost:8080";
|
|
891
892
|
async function detectConfigPath(customPath) {
|
|
892
893
|
if (customPath) {
|
|
893
894
|
return path.resolve(customPath);
|
|
@@ -990,7 +991,7 @@ function normalizeConfig(config) {
|
|
|
990
991
|
return config;
|
|
991
992
|
}
|
|
992
993
|
function isModernConfig(config) {
|
|
993
|
-
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object";
|
|
994
|
+
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object";
|
|
994
995
|
}
|
|
995
996
|
function isLegacyConfig(config) {
|
|
996
997
|
return typeof config.api_key === "string";
|
|
@@ -1043,7 +1044,8 @@ function getProviderConfig(config, provider) {
|
|
|
1043
1044
|
openrouter: config.openrouter,
|
|
1044
1045
|
ollama: config.ollama,
|
|
1045
1046
|
llamacpp: config.llamacpp,
|
|
1046
|
-
openai: config.openai
|
|
1047
|
+
openai: config.openai,
|
|
1048
|
+
mlx: config.mlx
|
|
1047
1049
|
};
|
|
1048
1050
|
const entry = configByProvider[chosen];
|
|
1049
1051
|
if (!entry) {
|
|
@@ -1074,6 +1076,8 @@ function defaultBaseUrlFor(provider, port) {
|
|
|
1074
1076
|
return p ? `http://localhost:${p}` : DEFAULT_LLAMACPP_URL;
|
|
1075
1077
|
case "openai":
|
|
1076
1078
|
return DEFAULT_OPENAI_URL;
|
|
1079
|
+
case "mlx":
|
|
1080
|
+
return p ? `http://localhost:${p}` : DEFAULT_MLX_URL;
|
|
1077
1081
|
default:
|
|
1078
1082
|
return void 0;
|
|
1079
1083
|
}
|
|
@@ -888,6 +888,7 @@ var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
|
|
|
888
888
|
var DEFAULT_OLLAMA_URL = "http://localhost:11434";
|
|
889
889
|
var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
|
|
890
890
|
var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
|
|
891
|
+
var DEFAULT_MLX_URL = "http://localhost:8080";
|
|
891
892
|
async function detectConfigPath(customPath) {
|
|
892
893
|
if (customPath) {
|
|
893
894
|
return _path2.default.resolve(customPath);
|
|
@@ -990,7 +991,7 @@ function normalizeConfig(config) {
|
|
|
990
991
|
return config;
|
|
991
992
|
}
|
|
992
993
|
function isModernConfig(config) {
|
|
993
|
-
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object";
|
|
994
|
+
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object";
|
|
994
995
|
}
|
|
995
996
|
function isLegacyConfig(config) {
|
|
996
997
|
return typeof config.api_key === "string";
|
|
@@ -1043,7 +1044,8 @@ function getProviderConfig(config, provider) {
|
|
|
1043
1044
|
openrouter: config.openrouter,
|
|
1044
1045
|
ollama: config.ollama,
|
|
1045
1046
|
llamacpp: config.llamacpp,
|
|
1046
|
-
openai: config.openai
|
|
1047
|
+
openai: config.openai,
|
|
1048
|
+
mlx: config.mlx
|
|
1047
1049
|
};
|
|
1048
1050
|
const entry = configByProvider[chosen];
|
|
1049
1051
|
if (!entry) {
|
|
@@ -1074,6 +1076,8 @@ function defaultBaseUrlFor(provider, port) {
|
|
|
1074
1076
|
return p ? `http://localhost:${p}` : DEFAULT_LLAMACPP_URL;
|
|
1075
1077
|
case "openai":
|
|
1076
1078
|
return DEFAULT_OPENAI_URL;
|
|
1079
|
+
case "mlx":
|
|
1080
|
+
return p ? `http://localhost:${p}` : DEFAULT_MLX_URL;
|
|
1077
1081
|
default:
|
|
1078
1082
|
return void 0;
|
|
1079
1083
|
}
|