@halfagiraf/clawx 0.1.16 → 0.1.17

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
@@ -364,7 +364,8 @@ Clawx looks for config in this order (first match wins):
364
364
  | 2 | `~/.clawx/config` | `clawx init` | Global config (recommended) |
365
365
  | 3 | `.env` in package install dir | Dev only | Fallback for development |
366
366
  | 4 | `clawx.json` in current directory | You | JSON format, supports systemPrompt |
367
- | 5 | Built-in defaults | | Ollama on localhost |
367
+ | 5 | `~/.clawx/clawx.json` | You | Global JSON config (SSH targets, etc.) |
368
+ | 6 | Built-in defaults | — | Ollama on localhost |
368
369
 
369
370
  **Config file paths by OS:**
370
371
 
@@ -376,6 +377,8 @@ Clawx looks for config in this order (first match wins):
376
377
 
377
378
  The fastest way to set up is `clawx init` — it writes `~/.clawx/config` for you. To override per-project, drop a `.env` or `clawx.json` in the project directory.
378
379
 
380
+ **Global SSH targets:** Place a `clawx.json` in `~/.clawx/` to make SSH targets available from any directory. Local `clawx.json` targets override global ones with the same name.
381
+
379
382
  ### Environment variables
380
383
 
381
384
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAyChE,yCAAyC;AACzC,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAmFxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAyDhE,yCAAyC;AACzC,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAmFxE"}
@@ -31,18 +31,33 @@ function parseSshTargets(raw) {
31
31
  return {};
32
32
  }
33
33
  }
34
- function loadJsonConfig(workDir) {
35
- const configPath = path.join(workDir, "clawx.json");
36
- if (!fs.existsSync(configPath))
34
+ function loadJsonFile(filePath) {
35
+ if (!fs.existsSync(filePath))
37
36
  return {};
38
37
  try {
39
- const raw = fs.readFileSync(configPath, "utf-8");
38
+ const raw = fs.readFileSync(filePath, "utf-8");
40
39
  return JSON.parse(raw);
41
40
  }
42
41
  catch {
43
42
  return {};
44
43
  }
45
44
  }
45
+ function loadJsonConfig(workDir) {
46
+ // 1. Check current working directory first
47
+ const local = loadJsonFile(path.join(workDir, "clawx.json"));
48
+ // 2. Check global config directory (~/.clawx/clawx.json)
49
+ const global = loadJsonFile(path.join(getGlobalConfigDir(), "clawx.json"));
50
+ // Local overrides global, but merge sshTargets from both
51
+ const mergedSshTargets = {
52
+ ...(global.sshTargets || {}),
53
+ ...(local.sshTargets || {}),
54
+ };
55
+ const merged = { ...global, ...local };
56
+ if (Object.keys(mergedSshTargets).length > 0) {
57
+ merged.sshTargets = mergedSshTargets;
58
+ }
59
+ return merged;
60
+ }
46
61
  /** Global config directory: ~/.clawx/ */
47
62
  export function getGlobalConfigDir() {
48
63
  return path.join(process.env.HOME || process.env.USERPROFILE || ".", ".clawx");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@halfagiraf/clawx",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "Terminal-first coding agent — runs locally with Ollama, DeepSeek, OpenAI, or any OpenAI-compatible endpoint",
5
5
  "type": "module",
6
6
  "bin": {