@openclaw-cloud/agent-controller 1.0.0-beta.19 → 1.0.0-beta.20

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.
@@ -1,6 +1,8 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { config } from '../../config.js';
4
+ import { getAgentControllerBinPath } from '../../utils/agent-controller-bin.js';
5
+ import { logCollector } from '../../connection.js';
4
6
  /**
5
7
  * Write `.claude/settings.json`, `.mcp.json`, and `CLAUDE.md` into the workspace.
6
8
  *
@@ -65,7 +67,21 @@ export function buildMcpJson(ctx) {
65
67
  // We use a plain stdio MCP entry (Option B) rather than Claude's `--channels
66
68
  // plugin:` install mechanism — it avoids any out-of-band plugin install
67
69
  // step and works with stock Claude Code.
68
- const binary = ctx.agentControllerBin?.trim() || 'agent-controller';
70
+ const explicitBin = ctx.agentControllerBin?.trim();
71
+ let binary;
72
+ if (explicitBin) {
73
+ binary = explicitBin;
74
+ }
75
+ else {
76
+ const resolved = getAgentControllerBinPath();
77
+ if (resolved) {
78
+ binary = resolved;
79
+ }
80
+ else {
81
+ binary = 'agent-controller';
82
+ logCollector?.push('agent_controller_bin_unresolved', 'warn', 'Could not resolve absolute path to agent-controller bin — falling back to PATH lookup in .mcp.json', { argv1: process.argv[1] ?? null });
83
+ }
84
+ }
69
85
  const channelArgs = ['channel-server'];
70
86
  if (ctx.channelSocketPath) {
71
87
  channelArgs.push('--socket-path', ctx.channelSocketPath);
@@ -1 +1 @@
1
- {"version":3,"file":"settings-writer.js","sourceRoot":"","sources":["../../../src/providers/claude-code/settings-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-writer.js","sourceRoot":"","sources":["../../../src/providers/claude-code/settings-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAuBnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAA8B;IAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACnD,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAClD,CAAC;IAEF,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,GAA8B;IAC1D,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;IAEvF,kFAAkF;IAClF,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAE3C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,WAAW;YACX,GAAG,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE;SACnC,CAAC;IACJ,CAAC;IACD,kFAAkF;IAClF,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAA8B;IACzD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;IAC7C,MAAM,OAAO,GAA4B;QACvC,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,oBAAoB,UAAU,MAAM;SAC1C;KACF,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IAClD,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,kBAAkB,CAAC,GAAG;YAC5B,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;YAC5C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,uCAAuC;IACvC,EAAE;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,yCAAyC;IACzC,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,MAAc,CAAC;IACnB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,WAAW,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,kBAAkB,CAAC;YAC5B,YAAY,EAAE,IAAI,CAChB,iCAAiC,EACjC,MAAM,EACN,oGAAoG,EACpG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,0BAA0B,CAAC,GAAG;QACpC,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,WAAW;KAClB,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns the absolute path to the `agent-controller` executable, or
3
+ * `undefined` when resolution fails (e.g. when running under `npx` from a
4
+ * temp directory with an unusual layout).
5
+ */
6
+ export declare function getAgentControllerBinPath(): string | undefined;
7
+ /** Test-only: reset the cached value. */
8
+ export declare function __resetAgentControllerBinCacheForTests(): void;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Resolve the absolute path of the `agent-controller` executable currently
3
+ * running this process. Used when writing `.mcp.json` for Claude Code so that
4
+ * spawned subprocesses do not depend on PATH containing the npm-global bin.
5
+ *
6
+ * Resolution order:
7
+ * 1. `which agent-controller` (via spawnSync) — finds the version the user
8
+ * installed on PATH. Most reliable on both macOS and Linux.
9
+ * 2. Fallback to `process.argv[1]` — absolute path to the script Node ran,
10
+ * i.e. the `bin/agent-controller.js` entry.
11
+ * 3. Returns `undefined` if neither resolves to an absolute path — callers
12
+ * should then fall back to the bare command `agent-controller`.
13
+ *
14
+ * Result is cached in a module-level variable.
15
+ */
16
+ import { spawnSync } from 'node:child_process';
17
+ import path from 'node:path';
18
+ let cached;
19
+ function runWhich() {
20
+ try {
21
+ const res = spawnSync('which', ['agent-controller'], { encoding: 'utf8' });
22
+ if (res.status === 0) {
23
+ const out = (res.stdout || '').trim().split('\n')[0]?.trim();
24
+ if (out && path.isAbsolute(out)) {
25
+ return out;
26
+ }
27
+ }
28
+ }
29
+ catch {
30
+ // ignore — `which` may not exist on some platforms (Windows)
31
+ }
32
+ return undefined;
33
+ }
34
+ function fromArgv() {
35
+ const argv1 = process.argv[1];
36
+ if (argv1 && path.isAbsolute(argv1)) {
37
+ return argv1;
38
+ }
39
+ return undefined;
40
+ }
41
+ /**
42
+ * Returns the absolute path to the `agent-controller` executable, or
43
+ * `undefined` when resolution fails (e.g. when running under `npx` from a
44
+ * temp directory with an unusual layout).
45
+ */
46
+ export function getAgentControllerBinPath() {
47
+ if (cached !== undefined) {
48
+ return cached ?? undefined;
49
+ }
50
+ const resolved = runWhich() ?? fromArgv();
51
+ cached = resolved ?? null;
52
+ return resolved;
53
+ }
54
+ /** Test-only: reset the cached value. */
55
+ export function __resetAgentControllerBinCacheForTests() {
56
+ cached = undefined;
57
+ }
58
+ //# sourceMappingURL=agent-controller-bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-controller-bin.js","sourceRoot":"","sources":["../../src/utils/agent-controller-bin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,IAAI,MAAiC,CAAC;AAEtC,SAAS,QAAQ;IACf,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7D,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC;IAC1C,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC;IAC1B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,sCAAsC;IACpD,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw-cloud/agent-controller",
3
- "version": "1.0.0-beta.19",
3
+ "version": "1.0.0-beta.20",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {