capacitor-mobile-claw 1.0.12 → 1.0.14

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.
@@ -22,6 +22,7 @@ export declare class MobileClawEngine {
22
22
  private _loading;
23
23
  private _error;
24
24
  private _currentSessionKey;
25
+ private _loadingPhase;
25
26
  private nodePlugin;
26
27
  private listeners;
27
28
  private initPromise;
@@ -34,6 +35,7 @@ export declare class MobileClawEngine {
34
35
  get loading(): boolean;
35
36
  get error(): string | null;
36
37
  get currentSessionKey(): string | null;
38
+ get loadingPhase(): string;
37
39
  /** Access the MCP server manager for status, restart, etc. */
38
40
  get mcpManager(): McpServerManager | null;
39
41
  init(options?: MobileClawInitOptions): Promise<MobileClawReadyInfo>;
@@ -64,7 +66,7 @@ export declare class MobileClawEngine {
64
66
  respondToPreExecute(toolCallId: string, args: Record<string, unknown>, deny?: boolean, denyReason?: string): Promise<void>;
65
67
  steerAgent(text: string): Promise<void>;
66
68
  updateConfig(config: Record<string, unknown>): Promise<void>;
67
- exchangeOAuthCode(tokenUrl: string, body: Record<string, string>): Promise<any>;
69
+ exchangeOAuthCode(tokenUrl: string, body: Record<string, string>, contentType?: string): Promise<any>;
68
70
  getAuthStatus(): Promise<AuthStatus>;
69
71
  readFile(path: string): Promise<FileReadResult>;
70
72
  writeFile(path: string, content: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  *
11
11
  * No Vue, React, or any UI framework dependency.
12
12
  */
13
+ import { Capacitor } from '@capacitor/core';
13
14
  import { McpServerManager } from './mcp/mcp-server-manager';
14
15
  export class MobileClawEngine {
15
16
  // ── State ──────────────────────────────────────────────────────────────
@@ -21,6 +22,7 @@ export class MobileClawEngine {
21
22
  _loading = false;
22
23
  _error = null;
23
24
  _currentSessionKey = null;
25
+ _loadingPhase = 'starting';
24
26
  nodePlugin = null;
25
27
  listeners = new Map();
26
28
  initPromise = null;
@@ -50,6 +52,9 @@ export class MobileClawEngine {
50
52
  get currentSessionKey() {
51
53
  return this._currentSessionKey;
52
54
  }
55
+ get loadingPhase() {
56
+ return this._loadingPhase;
57
+ }
53
58
  /** Access the MCP server manager for status, restart, etc. */
54
59
  get mcpManager() {
55
60
  return this._mcpManager;
@@ -62,7 +67,6 @@ export class MobileClawEngine {
62
67
  return this.initPromise;
63
68
  }
64
69
  async _doInit(options) {
65
- const { Capacitor } = await import('@capacitor/core');
66
70
  if (!Capacitor.isNativePlatform()) {
67
71
  this._available = false;
68
72
  this._error = 'MobileClaw only works on native platforms (Android/iOS)';
@@ -82,6 +86,16 @@ export class MobileClawEngine {
82
86
  return;
83
87
  this._dispatch(msg);
84
88
  });
89
+ this._onMessage('worker.tools_updated', (msg) => {
90
+ if (msg?.mcpToolCount == null)
91
+ return;
92
+ this._mcpToolCount = msg.mcpToolCount;
93
+ console.log(`[MobileClaw] Tools updated — ${this._mcpToolCount} MCP tools`);
94
+ });
95
+ this._onMessage('worker.loading_phase', (msg) => {
96
+ if (msg?.phase)
97
+ this._loadingPhase = msg.phase;
98
+ });
85
99
  // Set up worker.ready promise before MCP init (captures early ready events)
86
100
  const timeout = options.workerTimeout ?? 60_000;
87
101
  const readyPromise = new Promise((resolve) => {
@@ -229,10 +243,10 @@ export class MobileClawEngine {
229
243
  async updateConfig(config) {
230
244
  await this.send({ type: 'config.update', config });
231
245
  }
232
- async exchangeOAuthCode(tokenUrl, body) {
246
+ async exchangeOAuthCode(tokenUrl, body, contentType) {
233
247
  return new Promise((resolve) => {
234
248
  this._onMessage('oauth.exchange.result', (msg) => resolve(msg), { once: true });
235
- this.send({ type: 'oauth.exchange', tokenUrl, body });
249
+ this.send({ type: 'oauth.exchange', tokenUrl, body, ...(contentType ? { contentType } : {}) });
236
250
  });
237
251
  }
238
252
  async getAuthStatus() {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -72,35 +72,51 @@ const mcpBridge = initMcpBridge(channel);
72
72
 
73
73
  // Cache for discovered MCP tools — avoids re-discovery on every agent run
74
74
  let cachedMcpTools = null;
75
+ let discoveryPromise = null;
76
+ // Epoch incremented on invalidation — prevents a stale in-flight discovery
77
+ // from overwriting the cache after mcp.tools.invalidate fires.
78
+ let discoveryEpoch = 0;
75
79
 
76
80
  /**
77
81
  * Discover MCP device tools from the WebView server.
78
82
  * Returns AgentTool[] or empty array if bridge is not available.
79
- * Uses a 3-second timeout for graceful degradation.
83
+ * Uses a 10-second timeout for graceful degradation.
84
+ * Concurrent callers share the same in-flight promise (no duplicate timeouts).
80
85
  */
81
86
  async function discoverMcpTools() {
82
87
  if (cachedMcpTools) return cachedMcpTools;
88
+ if (discoveryPromise) return discoveryPromise;
83
89
 
84
- try {
85
- const mcpToolDescriptors = await Promise.race([
86
- mcpBridge.listTools(),
87
- new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 10_000)),
88
- ]);
90
+ const epoch = discoveryEpoch; // Capture epoch before async work
89
91
 
90
- const rawTools = buildMcpAgentTools(mcpBridge, mcpToolDescriptors);
92
+ discoveryPromise = (async () => {
93
+ try {
94
+ const mcpToolDescriptors = await Promise.race([
95
+ mcpBridge.listTools(),
96
+ new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 10_000)),
97
+ ]);
98
+
99
+ const rawTools = buildMcpAgentTools(mcpBridge, mcpToolDescriptors);
100
+
101
+ // Only cache if the epoch hasn't changed (no invalidation while discovering)
102
+ if (epoch === discoveryEpoch) {
103
+ cachedMcpTools = rawTools.map(tool => ({
104
+ ...tool,
105
+ execute: wrapWithPreExecuteHook(tool.name, tool.execute),
106
+ }));
107
+ console.log(`[mobile-claw] Discovered ${cachedMcpTools.length} MCP device tools`);
108
+ }
91
109
 
92
- // Wrap each MCP tool with the pre-execute hook (consumer decides approval policy)
93
- cachedMcpTools = rawTools.map(tool => ({
94
- ...tool,
95
- execute: wrapWithPreExecuteHook(tool.name, tool.execute),
96
- }));
110
+ return cachedMcpTools ?? [];
111
+ } catch (err) {
112
+ console.warn(`[mobile-claw] MCP bridge not available, using local tools only: ${err.message}`);
113
+ return [];
114
+ } finally {
115
+ discoveryPromise = null;
116
+ }
117
+ })();
97
118
 
98
- console.log(`[mobile-claw] Discovered ${cachedMcpTools.length} MCP device tools`);
99
- return cachedMcpTools;
100
- } catch (err) {
101
- console.warn(`[mobile-claw] MCP bridge not available, using local tools only: ${err.message}`);
102
- return [];
103
- }
119
+ return discoveryPromise;
104
120
  }
105
121
 
106
122
  // ── OpenClaw filesystem paths ─────────────────────────────────────────────
@@ -1914,12 +1930,13 @@ channel.addListener('message', async (event) => {
1914
1930
 
1915
1931
  case 'oauth.exchange': {
1916
1932
  // Perform OAuth token exchange in Node.js (bypasses Capacitor HTTP / CORS)
1917
- const { tokenUrl, body } = msg;
1933
+ const { tokenUrl, body, contentType } = msg;
1934
+ const useForm = (contentType || 'application/x-www-form-urlencoded') === 'application/x-www-form-urlencoded';
1918
1935
  try {
1919
1936
  const resp = await fetch(tokenUrl, {
1920
1937
  method: 'POST',
1921
- headers: { 'Content-Type': 'application/json' },
1922
- body: JSON.stringify(body),
1938
+ headers: { 'Content-Type': useForm ? 'application/x-www-form-urlencoded' : 'application/json' },
1939
+ body: useForm ? new URLSearchParams(body).toString() : JSON.stringify(body),
1923
1940
  });
1924
1941
  const text = await resp.text();
1925
1942
  let data;
@@ -1941,6 +1958,29 @@ channel.addListener('message', async (event) => {
1941
1958
  break;
1942
1959
  }
1943
1960
 
1961
+ case 'mcp.tools.invalidate': {
1962
+ // MCP server restarted with new tools (e.g. after account connection).
1963
+ // Increment epoch first so any in-flight discoverMcpTools() discards its result.
1964
+ discoveryEpoch++;
1965
+ cachedMcpTools = null;
1966
+ discoveryPromise = null;
1967
+ // If an agent is running, re-discover and inject the updated tool set
1968
+ if (currentAgent) {
1969
+ try {
1970
+ const localTools = buildAgentTools();
1971
+ const mcpTools = await discoverMcpTools();
1972
+ const tools = [...localTools, ...mcpTools];
1973
+ currentAgent.setTools(tools);
1974
+ console.log(`[mobile-claw] Tools invalidated and refreshed: ${tools.length} total (${mcpTools.length} MCP)`);
1975
+ } catch (err) {
1976
+ console.warn(`[mobile-claw] Tool refresh failed: ${err.message}`);
1977
+ }
1978
+ } else {
1979
+ console.log('[mobile-claw] MCP tool cache invalidated (no active agent)');
1980
+ }
1981
+ break;
1982
+ }
1983
+
1944
1984
  case 'config.update': {
1945
1985
  const { action, provider, apiKey, model } = msg.config;
1946
1986
  if (action === 'setApiKey') {
@@ -2307,9 +2347,11 @@ channel.addListener('message', async (event) => {
2307
2347
  // ── Init ──────────────────────────────────────────────────────────────────
2308
2348
 
2309
2349
  ensureOpenClawDirs();
2350
+ channel.send('message', { type: 'worker.loading_phase', phase: 'engine' });
2310
2351
 
2311
- // Initialize SQLite, migrate legacy JSONL data, then start MCP discovery
2352
+ // Initialize SQLite, migrate legacy JSONL data, then signal ready and warm MCP discovery
2312
2353
  initWorkerDb(OPENCLAW_ROOT).then(() => {
2354
+ channel.send('message', { type: 'worker.loading_phase', phase: 'database' });
2313
2355
  // Migrate existing JSONL sessions into SQLite (one-time, idempotent)
2314
2356
  try {
2315
2357
  migrateFromJsonl(OPENCLAW_ROOT, 'main', deduplicateMessages);
@@ -2319,23 +2361,28 @@ initWorkerDb(OPENCLAW_ROOT).then(() => {
2319
2361
  }).catch(err => {
2320
2362
  console.warn(`[init] SQLite init failed, using JSONL fallback: ${err.message}`);
2321
2363
  }).finally(() => {
2364
+ // Send ready as soon as DB init/migration settles — do not block on MCP discovery.
2365
+ channel.send('message', {
2366
+ type: 'worker.ready',
2367
+ nodeVersion: process.version,
2368
+ openclawRoot: OPENCLAW_ROOT,
2369
+ mcpToolCount: 0,
2370
+ });
2371
+ console.log(`[mobile-claw worker] Ready. Node ${process.version}, root=${OPENCLAW_ROOT}, mcpTools=0 (discovering...)`);
2372
+
2322
2373
  // Pre-discover MCP device tools at startup (non-blocking, best-effort).
2323
2374
  // Results are cached so the first agent run doesn't wait for discovery.
2375
+ channel.send('message', { type: 'worker.loading_phase', phase: 'tools' });
2324
2376
  discoverMcpTools().then(tools => {
2325
- channel.send('message', {
2326
- type: 'worker.ready',
2327
- nodeVersion: process.version,
2328
- openclawRoot: OPENCLAW_ROOT,
2329
- mcpToolCount: tools.length,
2330
- });
2331
- console.log(`[mobile-claw worker] Ready. Node ${process.version}, root=${OPENCLAW_ROOT}, mcpTools=${tools.length}`);
2377
+ if (tools.length > 0) {
2378
+ channel.send('message', {
2379
+ type: 'worker.tools_updated',
2380
+ mcpToolCount: tools.length,
2381
+ });
2382
+ console.log(`[mobile-claw worker] MCP tools ready: ${tools.length}`);
2383
+ }
2384
+ channel.send('message', { type: 'worker.loading_phase', phase: 'ready' });
2332
2385
  }).catch(() => {
2333
- channel.send('message', {
2334
- type: 'worker.ready',
2335
- nodeVersion: process.version,
2336
- openclawRoot: OPENCLAW_ROOT,
2337
- mcpToolCount: 0,
2338
- });
2339
- console.log(`[mobile-claw worker] Ready (no MCP). Node ${process.version}, root=${OPENCLAW_ROOT}`);
2386
+ channel.send('message', { type: 'worker.loading_phase', phase: 'ready' });
2340
2387
  });
2341
2388
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-mobile-claw",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "On-device AI agent engine for Capacitor apps — embedded Node.js worker with LLM, file tools, code execution, git, and extensible MCP server",
5
5
  "main": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",