@aiassesstech/fleet-bus 0.4.1 → 0.4.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.
@@ -25,8 +25,9 @@ type OpenClawCallGateway = (opts: {
25
25
  * Attempt to resolve OpenClaw's callGateway function from the running process.
26
26
  *
27
27
  * Tries multiple strategies:
28
- * 1. Walk up from process.argv[1] (the gateway entry point) to find gateway/call.js
29
- * 2. Check well-known global install paths
28
+ * 1. Walk up from process.argv[1] to find gateway/call.js (tsc layout)
29
+ * 2. Walk up from process.argv[1] to scan call-*.js chunks (tsdown layout)
30
+ * 3. Check well-known global install paths (both tsc and tsdown layouts)
30
31
  *
31
32
  * Returns null if resolution fails — caller should degrade gracefully.
32
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAsB,eAAe,EAAE,MAAM,YAAY,CAAC;AAErF,KAAK,mBAAmB,GAAG,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAuC9E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,mBAAmB,GAAG,aAAa,CAUjF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACnC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CASjC"}
1
+ {"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAsB,eAAe,EAAE,MAAM,YAAY,CAAC;AAErF,KAAK,mBAAmB,GAAG,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAmCvB;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAuC9E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,mBAAmB,GAAG,aAAa,CAUjF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACnC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CASjC"}
@@ -12,14 +12,50 @@
12
12
  * If resolution fails, fleet tools degrade gracefully — the bus continues
13
13
  * in observer-only mode (hooks, cards, audit still work).
14
14
  */
15
- import { existsSync } from 'node:fs';
15
+ import { existsSync, readdirSync } from 'node:fs';
16
16
  import { dirname, join } from 'node:path';
17
+ /**
18
+ * Try to import callGateway from a single file path.
19
+ * Returns the function if found, null otherwise.
20
+ */
21
+ async function tryImportCallGateway(filePath) {
22
+ if (!existsSync(filePath))
23
+ return null;
24
+ try {
25
+ const mod = await import(`file://${filePath}`);
26
+ if (typeof mod.callGateway === 'function')
27
+ return mod.callGateway;
28
+ }
29
+ catch { /* not importable or no callGateway export */ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Scan a dist/ directory for bundled call-*.js chunks that export callGateway.
34
+ * OpenClaw's tsdown bundler produces hashed filenames like call-FXQVz5v6.js
35
+ * instead of preserving the gateway/call.js path from the source tree.
36
+ */
37
+ async function scanBundledChunks(distDir) {
38
+ if (!existsSync(distDir))
39
+ return null;
40
+ try {
41
+ const entries = readdirSync(distDir);
42
+ const callChunks = entries.filter((f) => f.startsWith('call-') && f.endsWith('.js'));
43
+ for (const chunk of callChunks) {
44
+ const result = await tryImportCallGateway(join(distDir, chunk));
45
+ if (result)
46
+ return result;
47
+ }
48
+ }
49
+ catch { /* readdir/import failed */ }
50
+ return null;
51
+ }
17
52
  /**
18
53
  * Attempt to resolve OpenClaw's callGateway function from the running process.
19
54
  *
20
55
  * Tries multiple strategies:
21
- * 1. Walk up from process.argv[1] (the gateway entry point) to find gateway/call.js
22
- * 2. Check well-known global install paths
56
+ * 1. Walk up from process.argv[1] to find gateway/call.js (tsc layout)
57
+ * 2. Walk up from process.argv[1] to scan call-*.js chunks (tsdown layout)
58
+ * 3. Check well-known global install paths (both tsc and tsdown layouts)
23
59
  *
24
60
  * Returns null if resolution fails — caller should degrade gracefully.
25
61
  */
@@ -28,15 +64,13 @@ export async function resolveCallGateway() {
28
64
  if (mainScript) {
29
65
  let dir = dirname(mainScript);
30
66
  for (let i = 0; i < 6; i++) {
31
- const candidate = join(dir, 'gateway', 'call.js');
32
- if (existsSync(candidate)) {
33
- try {
34
- const mod = await import(`file://${candidate}`);
35
- if (typeof mod.callGateway === 'function')
36
- return mod.callGateway;
37
- }
38
- catch { /* continue to next candidate */ }
39
- }
67
+ const tscCandidate = join(dir, 'gateway', 'call.js');
68
+ const result = await tryImportCallGateway(tscCandidate);
69
+ if (result)
70
+ return result;
71
+ const bundledResult = await scanBundledChunks(dir);
72
+ if (bundledResult)
73
+ return bundledResult;
40
74
  const parent = dirname(dir);
41
75
  if (parent === dir)
42
76
  break;
@@ -44,22 +78,22 @@ export async function resolveCallGateway() {
44
78
  }
45
79
  }
46
80
  const home = process.env.HOME ?? '/root';
47
- const packageNames = ['clawdbot', 'openclaw'];
81
+ const packageNames = ['openclaw', 'clawdbot'];
48
82
  const globalRoots = [
49
83
  '/usr/lib/node_modules',
50
84
  '/usr/local/lib/node_modules',
51
85
  join(home, '.local', 'lib', 'node_modules'),
52
86
  ];
53
- const wellKnownPaths = globalRoots.flatMap((root) => packageNames.map((pkg) => join(root, pkg, 'dist', 'gateway', 'call.js')));
54
- for (const p of wellKnownPaths) {
55
- if (!existsSync(p))
56
- continue;
57
- try {
58
- const mod = await import(`file://${p}`);
59
- if (typeof mod.callGateway === 'function')
60
- return mod.callGateway;
87
+ for (const root of globalRoots) {
88
+ for (const pkg of packageNames) {
89
+ const tscPath = join(root, pkg, 'dist', 'gateway', 'call.js');
90
+ const result = await tryImportCallGateway(tscPath);
91
+ if (result)
92
+ return result;
93
+ const bundledResult = await scanBundledChunks(join(root, pkg, 'dist'));
94
+ if (bundledResult)
95
+ return bundledResult;
61
96
  }
62
- catch { /* continue to next path */ }
63
97
  }
64
98
  return null;
65
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiassesstech/fleet-bus",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Fleet communication infrastructure for AI Assess Tech governance agents — typed messaging, routing rules, audit trail, Agent Cards.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",