@heysalad/cheri-cli 1.1.1 → 1.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/README.md CHANGED
@@ -83,6 +83,17 @@ cheri config set apiUrl https://your-instance.example.com
83
83
  - [Dashboard](https://cheri.heysalad.app/dashboard)
84
84
  - [GitHub](https://github.com/chilu18/cloud-ide)
85
85
 
86
- ## License
86
+ ## 🔗 Links
87
+
88
+ - **Homepage**: [cheri.heysalad.app](https://cheri.heysalad.app)
89
+ - **NPM Package**: [@heysalad/cheri-cli](https://www.npmjs.com/package/@heysalad/cheri-cli)
90
+ - **GitHub**: [Hey-Salad/cheri-cli](https://github.com/Hey-Salad/cheri-cli)
91
+ - **Documentation**: See [SETUP_GUIDE.md](./SETUP_GUIDE.md)
92
+
93
+ ## 📝 License
87
94
 
88
95
  MIT
96
+
97
+ ---
98
+
99
+ **Built with ❤️ by HeySalad®**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heysalad/cheri-cli",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "Cheri CLI - AI-powered cloud IDE by HeySalad®. Like Claude Code, but for cloud workspaces. Now with beautiful animations and enhanced UI!",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,9 +34,9 @@
34
34
  ],
35
35
  "repository": {
36
36
  "type": "git",
37
- "url": "https://github.com/chilu18/cloud-ide.git",
38
- "directory": "cli"
37
+ "url": "https://github.com/Hey-Salad/cheri-cli.git"
39
38
  },
39
+ "homepage": "https://cheri.heysalad.app",
40
40
  "author": "HeySalad",
41
41
  "license": "MIT",
42
42
  "engines": {
@@ -291,9 +291,23 @@ export async function runAgent(userRequest, options = {}) {
291
291
  const memoryContext = getMemoryContext();
292
292
  const skillContext = getSkillContext(plugins.skills, userRequest);
293
293
 
294
- // Create provider
294
+ // Create provider (defaults to Cheri cloud which uses AWS Bedrock)
295
295
  const providerName = getConfigValue("agent.provider") || getConfigValue("ai.provider") || "cheri";
296
- const provider = createProvider(providerName);
296
+ let provider;
297
+ try {
298
+ provider = createProvider(providerName);
299
+ } catch (err) {
300
+ // If using cheri provider and not logged in, show helpful message
301
+ if (providerName === "cheri" && err.message.includes("Not logged in")) {
302
+ log.error("Not logged in to Cheri cloud service.");
303
+ log.info("Two options:");
304
+ log.info(" 1. Login to Cheri cloud (AWS Bedrock): " + chalk.cyan("cheri login"));
305
+ log.info(" 2. Use your own API key (BYOK): " + chalk.cyan("cheri config set ai.provider anthropic"));
306
+ log.tip("Cheri cloud uses AWS Bedrock and includes free tier usage!");
307
+ return;
308
+ }
309
+ throw err;
310
+ }
297
311
  const agentModel = getConfigValue("agent.model") || getConfigValue("ai.model") || "";
298
312
 
299
313
  // Handle slash commands (before MCP init to avoid leaking child processes)
@@ -54,6 +54,9 @@ export async function loginFlow() {
54
54
 
55
55
  setConfigValue("token", token.trim());
56
56
 
57
+ // Set provider to cheri (cloud) when logging in
58
+ setConfigValue("ai.provider", "cheri");
59
+
57
60
  // Verify token works
58
61
  try {
59
62
  const me = await apiClient.getMe();
@@ -61,6 +64,7 @@ export async function loginFlow() {
61
64
  log.success(`Logged in as ${chalk.cyan(me.ghLogin || me.userId)}`);
62
65
  log.keyValue("Plan", me.plan === "pro" ? chalk.green("Pro") : "Free");
63
66
  log.blank();
67
+ log.tip("Using Cheri cloud service (AWS Bedrock). Run 'cheri agent' to start coding!");
64
68
  } catch (err) {
65
69
  setConfigValue("token", "");
66
70
  throw new Error(`Token verification failed: ${err.message}`);
@@ -26,9 +26,9 @@ function getDefaultConfig() {
26
26
  apiUrl: "https://cheri.heysalad.app",
27
27
  token: "",
28
28
  ai: {
29
- provider: "cheri", // cheri, openai, anthropic, deepseek, groq, ollama, etc.
29
+ provider: "cheri", // cheri (AWS Bedrock via cloud), openai, anthropic, deepseek, groq, ollama, etc.
30
30
  model: "", // override default model per provider
31
- keys: {}, // { openai: "sk-...", anthropic: "sk-ant-...", ... }
31
+ keys: {}, // { openai: "sk-...", anthropic: "sk-ant-...", ... } - for BYOK (bring your own key) mode
32
32
  providers: {}, // custom provider configs: { myapi: { baseUrl, model } }
33
33
  reasoning: {
34
34
  effort: "medium", // low, medium, high