osagent 0.2.1 → 0.2.3

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.
Files changed (3) hide show
  1. package/README.md +42 -0
  2. package/cli.js +93 -5
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -42,6 +42,48 @@ npm run build
42
42
  npm link
43
43
  ```
44
44
 
45
+ ### Troubleshooting Installation
46
+
47
+ **Never use `sudo` with npm!** Using `sudo npm install -g` creates permission problems.
48
+
49
+ If you see permission errors:
50
+
51
+ ```bash
52
+ # Fix npm cache permissions
53
+ sudo chown -R $(whoami) ~/.npm
54
+
55
+ # If using nvm, also fix nvm directory
56
+ sudo chown -R $(whoami) ~/.nvm
57
+
58
+ # Clear npm cache
59
+ npm cache clean --force
60
+
61
+ # Now install without sudo
62
+ npm install -g osagent
63
+ ```
64
+
65
+ If updates don't take effect (old version showing):
66
+
67
+ ```bash
68
+ npm cache clean --force
69
+ npm install -g osagent@latest --force
70
+ osagent --version
71
+ ```
72
+
73
+ **Recommended: Use nvm** to avoid permission issues entirely:
74
+
75
+ ```bash
76
+ # Install nvm
77
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
78
+
79
+ # Restart terminal, then:
80
+ nvm install 20
81
+ nvm use 20
82
+
83
+ # Now npm never needs sudo
84
+ npm install -g osagent
85
+ ```
86
+
45
87
  ## Quick Start
46
88
 
47
89
  ### Option 1: Use with Ollama (Local - Recommended)
package/cli.js CHANGED
@@ -148873,7 +148873,7 @@ function createContentGeneratorConfig(config2, authType, generationConfig) {
148873
148873
  };
148874
148874
  }
148875
148875
  async function createContentGenerator(config2, gcConfig, sessionId2, isInitialAuth) {
148876
- const version3 = "0.2.1";
148876
+ const version3 = "0.2.3";
148877
148877
  const userAgent2 = `OSAgent/${version3} (${process.platform}; ${process.arch})`;
148878
148878
  const baseHeaders = {
148879
148879
  "User-Agent": userAgent2
@@ -337241,7 +337241,7 @@ __name(getPackageJson, "getPackageJson");
337241
337241
  // packages/cli/src/utils/version.ts
337242
337242
  async function getCliVersion() {
337243
337243
  const pkgJson = await getPackageJson();
337244
- return "0.2.1";
337244
+ return "0.2.3";
337245
337245
  }
337246
337246
  __name(getCliVersion, "getCliVersion");
337247
337247
 
@@ -341443,8 +341443,8 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
341443
341443
 
341444
341444
  // packages/cli/src/generated/git-commit.ts
341445
341445
  init_esbuild_shims();
341446
- var GIT_COMMIT_INFO2 = "0532adb";
341447
- var CLI_VERSION2 = "0.2.1";
341446
+ var GIT_COMMIT_INFO2 = "385d5ee";
341447
+ var CLI_VERSION2 = "0.2.3";
341448
341448
 
341449
341449
  // packages/cli/src/utils/systemInfo.ts
341450
341450
  async function getNpmVersion() {
@@ -346651,6 +346651,85 @@ Provider selection saved to settings.`)
346651
346651
  }
346652
346652
  }, "action")
346653
346653
  },
346654
+ {
346655
+ name: "reset",
346656
+ altNames: ["clear", "reset-key", "clear-key"],
346657
+ get description() {
346658
+ return t2("Clear stored API key for a provider (groq, ollama-cloud, openai)");
346659
+ },
346660
+ kind: "built-in" /* BUILT_IN */,
346661
+ action: /* @__PURE__ */ __name(async (context2, args) => {
346662
+ const { settings } = context2.services;
346663
+ const provider = args?.trim().toLowerCase();
346664
+ const providerMap = {
346665
+ groq: { key: "groq", envVar: "GROQ_API_KEY", displayName: "GROQ" },
346666
+ "ollama-cloud": {
346667
+ key: "ollama_cloud",
346668
+ envVar: "OLLAMA_API_KEY",
346669
+ displayName: "Ollama Cloud"
346670
+ },
346671
+ ollama_cloud: {
346672
+ key: "ollama_cloud",
346673
+ envVar: "OLLAMA_API_KEY",
346674
+ displayName: "Ollama Cloud"
346675
+ },
346676
+ openai: {
346677
+ key: "openai",
346678
+ envVar: "OPENAI_API_KEY",
346679
+ displayName: "OpenAI"
346680
+ }
346681
+ };
346682
+ if (!provider || !providerMap[provider]) {
346683
+ return {
346684
+ type: "message",
346685
+ messageType: "error",
346686
+ content: t2(`Please specify a provider to reset:
346687
+ /provider reset groq - Clear GROQ API key
346688
+ /provider reset ollama-cloud - Clear Ollama Cloud API key
346689
+ /provider reset openai - Clear OpenAI API key
346690
+
346691
+ Example: /provider reset ollama-cloud`)
346692
+ };
346693
+ }
346694
+ const config2 = providerMap[provider];
346695
+ try {
346696
+ delete process.env[config2.envVar];
346697
+ const currentProviders = settings.merged.security?.auth?.providers || {};
346698
+ if (currentProviders[config2.key]) {
346699
+ const updatedProviders = { ...currentProviders };
346700
+ delete updatedProviders[config2.key]?.apiKey;
346701
+ if (updatedProviders[config2.key] && Object.keys(updatedProviders[config2.key]).length === 0) {
346702
+ delete updatedProviders[config2.key];
346703
+ }
346704
+ settings.setValue(
346705
+ "User" /* User */,
346706
+ "security.auth.providers",
346707
+ updatedProviders
346708
+ );
346709
+ }
346710
+ return {
346711
+ type: "message",
346712
+ messageType: "info",
346713
+ content: t2(`${config2.displayName} API key has been cleared.
346714
+
346715
+ The key has been removed from:
346716
+ \u2022 Current session environment
346717
+ \u2022 Saved settings
346718
+
346719
+ To set a new key, use:
346720
+ /provider ${provider === "ollama_cloud" ? "ollama-cloud" : provider}`)
346721
+ };
346722
+ } catch (error2) {
346723
+ return {
346724
+ type: "message",
346725
+ messageType: "error",
346726
+ content: t2(
346727
+ `Failed to reset API key: ${error2 instanceof Error ? error2.message : String(error2)}`
346728
+ )
346729
+ };
346730
+ }
346731
+ }, "action")
346732
+ },
346654
346733
  {
346655
346734
  name: "status",
346656
346735
  get description() {
@@ -346738,6 +346817,11 @@ Available Providers:
346738
346817
  /provider openai - OpenAI compatible APIs
346739
346818
  /provider status - Show detailed status
346740
346819
 
346820
+ Reset API Keys:
346821
+ /provider reset groq - Clear GROQ API key
346822
+ /provider reset ollama-cloud - Clear Ollama Cloud API key
346823
+ /provider reset openai - Clear OpenAI API key
346824
+
346741
346825
  Configuration:
346742
346826
  API keys can be set via environment variables or saved in settings.
346743
346827
  Use the provider commands to configure and save your preferences.
@@ -379146,7 +379230,10 @@ function OpenAIKeyPrompt({
379146
379230
  return;
379147
379231
  }
379148
379232
  if (input && input.length > 0) {
379149
- const cleanInput = input.split("").filter((ch) => ch.charCodeAt(0) >= 32).join("");
379233
+ let cleanInput = input.replace(/\[200~/g, "").replace(/\[201~/g, "").replace(/\[\d*[A-Za-z]/g, "").replace(/\[[\d;]*[A-Za-z]/g, "").split("").filter((ch) => {
379234
+ const code2 = ch.charCodeAt(0);
379235
+ return code2 >= 32 && code2 !== 127;
379236
+ }).join("").trim();
379150
379237
  if (cleanInput.length > 0) {
379151
379238
  if (currentField === "apiKey") {
379152
379239
  setApiKey((prev) => prev + cleanInput);
@@ -380773,6 +380860,7 @@ var DialogManager = /* @__PURE__ */ __name(({
380773
380860
  OpenAIKeyPrompt,
380774
380861
  {
380775
380862
  onSubmit: (apiKey, baseUrl, model) => {
380863
+ process34.env["OLLAMA_API_KEY"] = apiKey;
380776
380864
  uiActions.handleAuthSelect(AuthType2.OLLAMA_CLOUD, "User" /* User */, {
380777
380865
  apiKey,
380778
380866
  baseUrl: baseUrl || "https://ollama.com/v1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osagent",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "OS Agent - AI-powered CLI for autonomous coding with Ollama Cloud and Qwen models",
5
5
  "repository": {
6
6
  "type": "git",