capacitor-mobile-claw 1.6.2 → 1.6.4

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.
@@ -0,0 +1,19 @@
1
+ require 'json'
2
+
3
+ package = JSON.parse(File.read(File.join(File.dirname(__FILE__), 'package.json')))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = 'CapacitorMobileClaw'
7
+ s.version = package['version']
8
+ s.summary = package['description']
9
+ s.license = package['license']
10
+ s.homepage = 'https://github.com/rogelioRuiz/capacitor-mobile-claw'
11
+ s.author = 'Rogelio Ruiz'
12
+ s.source = { :git => 'https://github.com/rogelioRuiz/capacitor-mobile-claw.git', :tag => s.version.to_s }
13
+
14
+ s.source_files = 'ios/Plugin/**/*.{swift,h,m}'
15
+ s.ios.deployment_target = '14.0'
16
+
17
+ s.dependency 'Capacitor'
18
+ s.swift_version = '5.9'
19
+ end
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  **On-device AI agent engine for mobile apps** — run Claude directly on your phone with file tools, code execution, git, and extensible MCP tool support.
8
8
 
9
- Mobile Claw is a [Capacitor](https://capacitorjs.com/) plugin that embeds a full AI agent runtime on Android and iOS via an embedded Node.js worker. No cloud relay, no proxy the agent runs locally on the device and talks directly to the Anthropic API.
9
+ Mobile Claw is a [Capacitor](https://capacitorjs.com/) plugin that embeds a full AI agent runtime on Android and iOS. Two execution modes: a **WebView agent** for instant cold start (agent loop runs in-process) or a **Node.js worker** for full sandboxed tooling. Both talk directly to the Anthropic API — no cloud relay, no proxy. Includes native Kotlin + Swift plugins for streaming HTTP (CORS bypass), background heartbeat scheduling, cron jobs, and on-device vector memory.
10
10
 
11
11
  > Built on [OpenClaw](https://github.com/openclaw/openclaw) and the [Pi framework](https://www.npmjs.com/package/@mariozechner/pi-ai) by [Mario Zechner](https://github.com/badlogic). Pi's philosophy of *"what you leave out matters more than what you put in"* — just 4 core tools and a system prompt under 1,000 tokens — is what makes running a capable AI agent on a phone possible at all.
12
12
 
@@ -79,13 +79,16 @@ npx cap open ios
79
79
  ### Running Tests
80
80
 
81
81
  ```bash
82
- # Android E2E (100 tests, requires ADB device)
82
+ # Unit tests (64 tests)
83
+ npm test
84
+
85
+ # Android E2E (111 tests, requires ADB device)
83
86
  npm run test:android
84
87
 
85
- # iOS E2E (104 tests, requires booted Simulator)
88
+ # iOS E2E (111 tests, requires booted Simulator)
86
89
  npm run test:ios
87
90
 
88
- # Full suite: node + Android + iOS (skips unavailable platforms)
91
+ # Full suite: unit + Android + iOS (skips unavailable platforms)
89
92
  npm run test:full
90
93
  ```
91
94
 
@@ -93,29 +96,54 @@ Once the app launches, enter your Anthropic API key in settings and start chatti
93
96
 
94
97
  ## How It Works
95
98
 
99
+ Mobile Claw supports two agent execution modes:
100
+
101
+ ### WebView Agent (recommended)
102
+
103
+ The agent loop runs directly in the WebView for instant cold start. LLM API calls go through a native HTTP plugin (OkHttp on Android, URLSession on iOS) that bypasses WebView CORS restrictions and provides true streaming via `ReadableStream`. Worker tools are transparently proxied via the bridge.
104
+
105
+ ```
106
+ ┌──────────────────────────────────────────────────────────┐
107
+ │ Your App (Vue, React, Svelte, vanilla JS) │
108
+ │ ┌────────────────────────────────────────────────────┐ │
109
+ │ │ MobileClawEngine (useWebViewAgent: true) │ │
110
+ │ │ ┌──────────────┐ ┌───────────────────────────┐ │ │
111
+ │ │ │ Pi Agent │ │ HttpStreamPlugin (native) │ │ │
112
+ │ │ │ (in WebView) │ │ - OkHttp (Android) │ │ │
113
+ │ │ │ │──│ - URLSession (iOS) │ │ │
114
+ │ │ │ │ │ - CORS bypass │ │ │
115
+ │ │ │ │ │ - ReadableStream assembly │ │ │
116
+ │ │ └──────┬───────┘ └───────────────────────────┘ │ │
117
+ │ │ │ ToolProxy (bridge IPC) │ │
118
+ │ │ ┌──────▼───────────────────────────────────────┐ │ │
119
+ │ │ │ Node.js Worker (file tools, git, code exec) │ │ │
120
+ │ │ └──────────────────────────────────────────────┘ │ │
121
+ │ └────────────────────────────────────────────────────┘ │
122
+ └──────────────────────────────────────────────────────────┘
123
+ ```
124
+
125
+ ### Worker Agent (legacy)
126
+
127
+ The full agent loop runs inside the embedded Node.js worker. Higher cold start latency but full isolation.
128
+
96
129
  ```
97
- ┌─────────────────────────────────────────────────────┐
98
- │ Your App (Vue, React, Svelte, vanilla JS)
99
- ┌───────────────────────────────────────────────┐
100
- │ │ MobileClawEngine (framework-agnostic) │ │
101
- - sendMessage() / stopTurn() / steerAgent()
102
- - readFile() / writeFile()
103
- - listSessions() / resumeSession()
104
- │ │ - invokeTool() │ │
105
- └──────────────────┬────────────────────────────┘
106
- Bridge Protocol (IPC)
107
- ┌──────────────────▼────────────────────────────┐
108
- │ │ Embedded Node.js Worker (Capacitor-NodeJS) │ │
109
- │ │ ┌──────────────┐ ┌──────────────────────┐ │ │
110
- │ │ │ Pi Agent │ MCP Server │ │
111
- │ │ (@mariozechner│ │ - Bridge transport
112
- /pi-ai) │ │ - STOMP transport │ │ │
113
- │ │ │ │ │ - Custom tools (BYO) │ │ │
114
- │ │ └──────┬───────┘ └──────────────────────┘ │ │
115
- │ │ │ │ │
116
- │ │ ▼ Anthropic Messages API │ │
117
- │ └────────────────────────────────────────────────┘ │
118
- └─────────────────────────────────────────────────────┘
130
+ ┌──────────────────────────────────────────────────────────┐
131
+ │ Your App
132
+ ┌────────────────────────────────────────────────────┐
133
+ │ │ MobileClawEngine │ │
134
+ └──────────────────┬─────────────────────────────────┘
135
+ Bridge Protocol (IPC)
136
+ ┌──────────────────▼─────────────────────────────────┐
137
+ │ │ Node.js Worker (Capacitor-NodeJS) │ │
138
+ ┌──────────────┐ ┌──────────────────────┐
139
+ Pi Agent │ │ MCP Server │ │
140
+ (pi-ai) │ │ - Bridge transport │ │ │
141
+ │ │ │ │ │ - STOMP transport
142
+ │ │ │ │ - Custom tools (BYO) │ │
143
+ │ │ └──────┬───────┘ └──────────────────────┘ │ │
144
+ │ │ Anthropic Messages API │ │
145
+ └─────────────────────────────────────────────────────┘
146
+ └──────────────────────────────────────────────────────────┘
119
147
  ```
120
148
 
121
149
  ## Install in Your Own App
@@ -124,6 +152,16 @@ Once the app launches, enter your Anthropic API key in settings and start chatti
124
152
  npm install capacitor-mobile-claw @capacitor/core @capacitor/device @choreruiz/capacitor-node-js @capacitor-community/sqlite
125
153
  ```
126
154
 
155
+ If using Vite, add the bundler plugin to `vite.config.js` (stubs Node.js-only transitive deps):
156
+
157
+ ```javascript
158
+ import { mobileClawVitePlugin } from 'capacitor-mobile-claw/vite-plugin'
159
+
160
+ export default defineConfig({
161
+ plugins: [mobileClawVitePlugin(), vue()],
162
+ })
163
+ ```
164
+
127
165
  Then add these scripts to your `package.json`:
128
166
 
129
167
  ```json
@@ -156,13 +194,13 @@ import { MobileClawEngine } from 'capacitor-mobile-claw'
156
194
 
157
195
  const engine = new MobileClawEngine()
158
196
 
159
- // Initialize the embedded Node.js worker
160
- await engine.init()
197
+ // WebView agent instant cold start, streaming via native HTTP
198
+ await engine.init({ useWebViewAgent: true })
161
199
 
162
200
  // Listen for streaming text
163
201
  engine.addListener('agentEvent', (event) => {
164
202
  if (event.eventType === 'text_delta') {
165
- process.stdout.write(event.data.text)
203
+ console.log(event.data.text)
166
204
  }
167
205
  })
168
206
 
@@ -189,12 +227,55 @@ const engine = new MobileClawEngine()
189
227
 
190
228
  await engine.init({
191
229
  tools: myTools,
192
- enableBridge: true,
230
+ useWebViewAgent: true,
231
+ })
232
+ ```
233
+
234
+ ### With Heartbeat Scheduling
235
+
236
+ ```typescript
237
+ const engine = new MobileClawEngine()
238
+ await engine.init({ useWebViewAgent: true, mobileCron: MobileCron })
239
+
240
+ // Enable scheduler + heartbeat (runs every 30 minutes)
241
+ await engine.setSchedulerConfig({ enabled: true, schedulingMode: 'balanced' })
242
+ await engine.setHeartbeat({ enabled: true, everyMs: 1800000 })
243
+
244
+ // Listen for heartbeat results
245
+ engine.addListener('heartbeatCompleted', (event) => {
246
+ console.log(`Heartbeat: ${event.status} (${event.durationMs}ms)`)
247
+ })
248
+
249
+ // Manual trigger
250
+ await engine.triggerHeartbeatWake('manual')
251
+ ```
252
+
253
+ ### With Cron Jobs
254
+
255
+ ```typescript
256
+ // Create a skill (reusable prompt + tool constraints)
257
+ const skill = await engine.addSkill({
258
+ name: 'daily-summary',
259
+ maxTurns: 3,
260
+ timeoutMs: 60000,
261
+ })
262
+
263
+ // Schedule a cron job
264
+ await engine.addCronJob({
265
+ name: 'morning-briefing',
266
+ enabled: true,
267
+ sessionTarget: 'isolated',
268
+ schedule: { kind: 'every', everyMs: 86400000 }, // 24h
269
+ skillId: skill.id,
270
+ prompt: 'Summarize my workspace changes since yesterday',
271
+ deliveryMode: 'notification',
193
272
  })
194
273
  ```
195
274
 
196
275
  ## Features
197
276
 
277
+ - **Two agent modes** — WebView (instant cold start) or Node.js worker (full isolation)
278
+ - **Native streaming HTTP** — OkHttp (Android) + URLSession (iOS) bypass CORS, stream SSE chunks as `ReadableStream`
198
279
  - **Real-time streaming** — text deltas, tool use, and thinking events
199
280
  - **Multi-turn conversations** — session persistence via native SQLite
200
281
  - **OAuth PKCE + API key** — sign in with Claude Max or use a direct API key
@@ -202,8 +283,12 @@ await engine.init({
202
283
  - **Code execution** — JavaScript (sandbox) + Python (Pyodide/WebAssembly)
203
284
  - **Git** — clone, commit, push, diff via isomorphic-git
204
285
  - **MCP device tools** — extensible via Model Context Protocol
205
- - **Tool approval gate** — approve/deny tool executions before they run
286
+ - **Tool approval gate** — approve/deny tool executions before they run (120s TTL)
206
287
  - **Agent steering** — inject follow-up instructions into a running turn
288
+ - **Background heartbeat** — scheduled agent check-ins via MobileCron + WorkManager
289
+ - **Cron jobs** — recurring agent tasks with skills, schedules, and delivery modes
290
+ - **On-device vector memory** — store/recall/search via LanceDB (capacitor-lancedb)
291
+ - **Vite plugin** — stubs Node.js-only transitive deps for browser bundling
207
292
 
208
293
  ## API Reference
209
294
 
@@ -211,18 +296,38 @@ await engine.init({
211
296
 
212
297
  | Method | Description |
213
298
  |--------|-------------|
214
- | `init(options?)` | Start the Node.js worker and MCP bridge |
299
+ | `init(options?)` | Start engine. Options: `useWebViewAgent`, `tools`, `mobileCron`, `enableBridge`, `enableStomp` |
215
300
  | `sendMessage(prompt, agentId?)` | Send a prompt to the agent |
216
301
  | `stopTurn()` | Cancel the running agent turn |
217
- | `approveTool(toolCallId, approved)` | Approve/deny a tool execution |
302
+ | `respondToPreExecute(toolCallId, args, deny?)` | Approve/deny a tool execution |
218
303
  | `steerAgent(text)` | Inject a follow-up instruction |
219
- | `updateConfig(config)` | Update worker config (auth, model, etc.) |
220
- | `getAuthStatus()` | Get current auth profile status |
221
- | `getModels()` | List available models |
304
+ | `updateConfig(config)` | Update config (auth, model, provider) |
305
+ | `exchangeOAuthCode(tokenUrl, body)` | OAuth token exchange via native HTTP |
306
+ | `getAuthStatus(provider?)` | Get current auth profile status |
307
+ | `getModels(provider?)` | List available models |
222
308
  | `readFile(path)` / `writeFile(path, content)` | Workspace file operations |
223
309
  | `listSessions()` / `resumeSession(key)` | Session management |
224
310
  | `invokeTool(toolName, args?)` | Call a tool directly |
225
- | `addListener(eventName, handler)` | Subscribe to agent events |
311
+ | `addListener(eventName, handler)` | Subscribe to events |
312
+
313
+ #### Scheduler & Heartbeat
314
+
315
+ | Method | Description |
316
+ |--------|-------------|
317
+ | `setSchedulerConfig(config)` | Set scheduler state (enabled, mode, runOnCharging, activeHours) |
318
+ | `getSchedulerConfig()` | Read scheduler + heartbeat config |
319
+ | `setHeartbeat(config)` | Configure heartbeat (enabled, interval, skillId, prompt) |
320
+ | `triggerHeartbeatWake(source?)` | Trigger immediate heartbeat (`manual` bypasses scheduler gate) |
321
+
322
+ #### Cron Jobs & Skills
323
+
324
+ | Method | Description |
325
+ |--------|-------------|
326
+ | `addCronJob(job)` / `updateCronJob(id, patch)` / `removeCronJob(id)` | CRUD for cron jobs |
327
+ | `listCronJobs()` / `runCronJob(id)` | List or manually trigger a job |
328
+ | `getCronRunHistory(jobId?, limit?)` | Get historical run records |
329
+ | `addSkill(skill)` / `updateSkill(id, patch)` / `removeSkill(id)` | CRUD for skills |
330
+ | `listSkills()` | List all defined skills |
226
331
 
227
332
  ### Events
228
333
 
@@ -231,8 +336,11 @@ await engine.init({
231
336
  | `agentEvent` | Text delta, tool use, tool result, or thinking update |
232
337
  | `agentCompleted` | Agent turn finished (includes token usage) |
233
338
  | `agentError` | Agent execution failed |
234
- | `toolApprovalRequest` | Agent wants to run a tool (approval gate) |
339
+ | `toolPreExecute` | Agent wants to run a tool (approval gate) |
235
340
  | `workerReady` | Node.js worker initialized |
341
+ | `heartbeatStarted` / `heartbeatCompleted` / `heartbeatSkipped` | Heartbeat lifecycle |
342
+ | `cronJobStarted` / `cronJobCompleted` / `cronJobError` | Cron job lifecycle |
343
+ | `schedulerStatus` | Scheduler state changed (next run times) |
236
344
 
237
345
  ## Documentation
238
346
 
@@ -243,6 +351,8 @@ await engine.init({
243
351
  ## Related Packages
244
352
 
245
353
  - [capacitor-mobile-claw-device-tools](https://www.npmjs.com/package/capacitor-mobile-claw-device-tools) — 64+ pre-built device tools (camera, clipboard, sensors, SSH, etc.)
354
+ - [capacitor-lancedb](https://www.npmjs.com/package/capacitor-lancedb) — on-device vector database for agent memory
355
+ - [capacitor-mobilecron](https://www.npmjs.com/package/capacitor-mobilecron) — native background scheduling (WorkManager / BGTaskScheduler)
246
356
 
247
357
  ## Contributing
248
358
 
@@ -255,13 +365,17 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, workflow, and guid
255
365
  | Mobile framework | [Capacitor 8](https://capacitorjs.com/) |
256
366
  | Agent core | [Pi](https://www.npmjs.com/package/@mariozechner/pi-ai) by Mario Zechner |
257
367
  | Embedded runtime | [@choreruiz/capacitor-node-js](https://github.com/rogelioRuiz/capacitor-node-js) |
368
+ | Native HTTP | OkHttp (Android) + URLSession (iOS) — streaming, CORS bypass |
258
369
  | Tool protocol | [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) |
259
370
  | LLM provider | [Anthropic Claude](https://anthropic.com/) |
371
+ | Vector memory | [LanceDB](https://lancedb.com/) via [capacitor-lancedb](https://www.npmjs.com/package/capacitor-lancedb) |
372
+ | Background scheduling | [capacitor-mobilecron](https://www.npmjs.com/package/capacitor-mobilecron) (WorkManager / BGTaskScheduler) |
260
373
  | Git | [isomorphic-git](https://isomorphic-git.org/) |
261
374
  | Database | [@capacitor-community/sqlite](https://github.com/nicepkg/capacitor-community-sqlite) (native SQLite via JSON-RPC bridge) |
262
375
  | Python | [Pyodide](https://pyodide.org/) (CPython via WebAssembly) |
263
376
  | Type system | TypeScript (strict mode) |
264
- | Tests | [Vitest](https://vitest.dev/) |
377
+ | Lint | [Biome](https://biomejs.dev/) |
378
+ | Tests | [Vitest](https://vitest.dev/) (64 unit) + Sentinel E2E (111 on-device) |
265
379
 
266
380
  ## Acknowledgments
267
381
 
@@ -0,0 +1,44 @@
1
+ ext {
2
+ junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
3
+ androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.5'
4
+ androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.5.1'
5
+ }
6
+
7
+ apply plugin: 'com.android.library'
8
+ apply plugin: 'kotlin-android'
9
+
10
+ android {
11
+ namespace "io.mobileclaw"
12
+ compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
13
+
14
+ defaultConfig {
15
+ minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 23
16
+ targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
17
+ versionCode 1
18
+ versionName "1.6.1"
19
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
20
+ }
21
+
22
+ compileOptions {
23
+ sourceCompatibility JavaVersion.VERSION_17
24
+ targetCompatibility JavaVersion.VERSION_17
25
+ }
26
+
27
+ kotlinOptions {
28
+ jvmTarget = '17'
29
+ }
30
+ }
31
+
32
+ repositories {
33
+ google()
34
+ mavenCentral()
35
+ }
36
+
37
+ dependencies {
38
+ implementation project(':capacitor-android')
39
+ implementation "org.jetbrains.kotlin:kotlin-stdlib"
40
+ implementation "com.squareup.okhttp3:okhttp:4.12.0"
41
+ testImplementation "junit:junit:$junitVersion"
42
+ androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
43
+ androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
44
+ }
@@ -0,0 +1,3 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.mobileclaw">
2
+ <application />
3
+ </manifest>
@@ -0,0 +1,158 @@
1
+ package io.mobileclaw
2
+
3
+ import android.util.Base64
4
+ import com.getcapacitor.JSObject
5
+ import com.getcapacitor.Plugin
6
+ import com.getcapacitor.PluginCall
7
+ import com.getcapacitor.PluginMethod
8
+ import com.getcapacitor.annotation.CapacitorPlugin
9
+ import okhttp3.Call
10
+ import okhttp3.Callback
11
+ import okhttp3.MediaType.Companion.toMediaTypeOrNull
12
+ import okhttp3.OkHttpClient
13
+ import okhttp3.Request
14
+ import okhttp3.RequestBody.Companion.toRequestBody
15
+ import okhttp3.Response
16
+ import java.io.IOException
17
+ import java.util.concurrent.ConcurrentHashMap
18
+
19
+ @CapacitorPlugin(name = "HttpStream")
20
+ class HttpStreamPlugin : Plugin() {
21
+ private data class ActiveRequest(
22
+ val pluginCall: PluginCall,
23
+ val httpCall: Call,
24
+ )
25
+
26
+ private val client = OkHttpClient()
27
+ private val activeRequests = ConcurrentHashMap<String, ActiveRequest>()
28
+
29
+ @PluginMethod
30
+ fun stream(call: PluginCall) {
31
+ val fetchId = call.getString("fetchId") ?: return call.reject("fetchId is required")
32
+ val url = call.getString("url") ?: return call.reject("url is required")
33
+ val method = (call.getString("method") ?: "GET").uppercase()
34
+ val headers = call.getObject("headers") ?: JSObject()
35
+ val body = call.getString("body")
36
+
37
+ val requestBuilder = Request.Builder().url(url)
38
+ val headerKeys = headers.keys()
39
+ while (headerKeys.hasNext()) {
40
+ val name = headerKeys.next()
41
+ if (name.equals("origin", ignoreCase = true)) {
42
+ continue
43
+ }
44
+ val value = headers.optString(name)
45
+ if (value.isNotEmpty()) {
46
+ requestBuilder.addHeader(name, value)
47
+ }
48
+ }
49
+
50
+ val mediaType = headerValue(headers, "content-type")?.toMediaTypeOrNull()
51
+ val requestBody = when {
52
+ method == "GET" || method == "HEAD" -> null
53
+ body != null -> body.toRequestBody(mediaType)
54
+ requiresRequestBody(method) -> ByteArray(0).toRequestBody(null)
55
+ else -> null
56
+ }
57
+ requestBuilder.method(method, requestBody)
58
+
59
+ val httpCall = client.newCall(requestBuilder.build())
60
+ activeRequests[fetchId] = ActiveRequest(call, httpCall)
61
+
62
+ httpCall.enqueue(object : Callback {
63
+ override fun onFailure(callRef: Call, e: IOException) {
64
+ val active = activeRequests.remove(fetchId) ?: return
65
+ notifyError(fetchId, e.message ?: "HTTP request failed")
66
+ active.pluginCall.reject(e.message ?: "HTTP request failed", e)
67
+ }
68
+
69
+ override fun onResponse(callRef: Call, response: Response) {
70
+ try {
71
+ response.use { httpResponse ->
72
+ if (!activeRequests.containsKey(fetchId)) {
73
+ return
74
+ }
75
+
76
+ val responseHeaders = JSObject()
77
+ for (name in httpResponse.headers.names()) {
78
+ responseHeaders.put(name, httpResponse.header(name))
79
+ }
80
+
81
+ val responseEvent = JSObject()
82
+ responseEvent.put("fetchId", fetchId)
83
+ responseEvent.put("event", "response")
84
+ responseEvent.put("status", httpResponse.code)
85
+ responseEvent.put("statusText", httpResponse.message)
86
+ responseEvent.put("headers", responseHeaders)
87
+ responseEvent.put("url", httpResponse.request.url.toString())
88
+ notifyListeners("httpStream", responseEvent)
89
+
90
+ httpResponse.body?.byteStream()?.use { stream ->
91
+ val buffer = ByteArray(4096)
92
+ while (true) {
93
+ val bytesRead = stream.read(buffer)
94
+ if (bytesRead == -1) {
95
+ break
96
+ }
97
+
98
+ val chunkEvent = JSObject()
99
+ chunkEvent.put("fetchId", fetchId)
100
+ chunkEvent.put("event", "chunk")
101
+ chunkEvent.put(
102
+ "data",
103
+ Base64.encodeToString(buffer, 0, bytesRead, Base64.NO_WRAP),
104
+ )
105
+ notifyListeners("httpStream", chunkEvent)
106
+ }
107
+ }
108
+
109
+ val active = activeRequests.remove(fetchId) ?: return
110
+ val doneEvent = JSObject()
111
+ doneEvent.put("fetchId", fetchId)
112
+ doneEvent.put("event", "done")
113
+ notifyListeners("httpStream", doneEvent)
114
+ active.pluginCall.resolve()
115
+ }
116
+ } catch (e: Exception) {
117
+ val active = activeRequests.remove(fetchId) ?: return
118
+ notifyError(fetchId, e.message ?: "Failed to stream response")
119
+ active.pluginCall.reject(e.message ?: "Failed to stream response", e)
120
+ }
121
+ }
122
+ })
123
+ }
124
+
125
+ @PluginMethod
126
+ fun abort(call: PluginCall) {
127
+ val fetchId = call.getString("fetchId") ?: return call.reject("fetchId is required")
128
+ val active = activeRequests.remove(fetchId)
129
+ if (active != null) {
130
+ active.httpCall.cancel()
131
+ active.pluginCall.reject("Request aborted")
132
+ }
133
+ call.resolve()
134
+ }
135
+
136
+ private fun notifyError(fetchId: String, message: String) {
137
+ val event = JSObject()
138
+ event.put("fetchId", fetchId)
139
+ event.put("event", "error")
140
+ event.put("error", message)
141
+ notifyListeners("httpStream", event)
142
+ }
143
+
144
+ private fun headerValue(headers: JSObject, target: String): String? {
145
+ val keys = headers.keys()
146
+ while (keys.hasNext()) {
147
+ val name = keys.next()
148
+ if (name.equals(target, ignoreCase = true)) {
149
+ return headers.optString(name).ifEmpty { null }
150
+ }
151
+ }
152
+ return null
153
+ }
154
+
155
+ private fun requiresRequestBody(method: String): Boolean {
156
+ return method == "POST" || method == "PUT" || method == "PATCH"
157
+ }
158
+ }
@@ -0,0 +1,2 @@
1
+ export declare function createProxiedFetch(): typeof fetch;
2
+ //# sourceMappingURL=fetch-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-proxy.d.ts","sourceRoot":"","sources":["../../../src/agent/fetch-proxy.ts"],"names":[],"mappings":"AAuJA,wBAAgB,kBAAkB,IAAI,OAAO,KAAK,CA4EjD"}
@@ -0,0 +1,171 @@
1
+ import { registerPlugin } from '@capacitor/core';
2
+ const HttpStream = registerPlugin('HttpStream');
3
+ const inflight = new Map();
4
+ const PROXY_MARKER = '__mobileClawProxied';
5
+ let listenerReady = null;
6
+ function ensureListener() {
7
+ if (!listenerReady) {
8
+ listenerReady = HttpStream.addListener('httpStream', (event) => {
9
+ const entry = inflight.get(event.fetchId);
10
+ if (!entry) {
11
+ return;
12
+ }
13
+ switch (event.event) {
14
+ case 'response': {
15
+ const stream = new ReadableStream({
16
+ start(controller) {
17
+ entry.controller = controller;
18
+ },
19
+ });
20
+ entry.responseStarted = true;
21
+ const response = new Response(stream, {
22
+ status: event.status ?? 200,
23
+ statusText: event.statusText ?? '',
24
+ headers: new Headers(event.headers ?? {}),
25
+ });
26
+ try {
27
+ Object.defineProperty(response, 'url', { value: event.url ?? '', configurable: true });
28
+ }
29
+ catch {
30
+ // Some runtimes expose Response.url as a non-configurable getter.
31
+ }
32
+ entry.responseResolve(response);
33
+ break;
34
+ }
35
+ case 'chunk':
36
+ if (event.data) {
37
+ entry.controller?.enqueue(decodeBase64(event.data));
38
+ }
39
+ break;
40
+ case 'done':
41
+ if (!entry.responseStarted) {
42
+ rejectEntry(entry, new Error('Native stream closed before response metadata'));
43
+ return;
44
+ }
45
+ entry.controller?.close();
46
+ cleanupEntry(event.fetchId);
47
+ break;
48
+ case 'error':
49
+ rejectEntry(entry, new Error(event.error || 'Native stream failed'));
50
+ break;
51
+ }
52
+ }).then(() => { });
53
+ }
54
+ return listenerReady;
55
+ }
56
+ function cleanupEntry(fetchId) {
57
+ const entry = inflight.get(fetchId);
58
+ if (!entry) {
59
+ return;
60
+ }
61
+ inflight.delete(fetchId);
62
+ entry.cleanup();
63
+ }
64
+ function rejectEntry(entry, error) {
65
+ if (entry.responseStarted && entry.controller) {
66
+ entry.controller.error(error);
67
+ }
68
+ else {
69
+ entry.responseReject(error);
70
+ }
71
+ cleanupEntry(entry.fetchId);
72
+ }
73
+ function decodeBase64(value) {
74
+ if (typeof atob !== 'function') {
75
+ throw new Error('Base64 decoding is unavailable in this runtime');
76
+ }
77
+ const decoded = atob(value);
78
+ const bytes = new Uint8Array(decoded.length);
79
+ for (let i = 0; i < decoded.length; i += 1) {
80
+ bytes[i] = decoded.charCodeAt(i);
81
+ }
82
+ return bytes;
83
+ }
84
+ function isLocalRequest(url) {
85
+ const currentUrl = new URL(window.location.href);
86
+ return (url.origin === currentUrl.origin ||
87
+ url.hostname === 'localhost' ||
88
+ url.hostname === '127.0.0.1' ||
89
+ url.hostname === '::1' ||
90
+ url.hostname === '[::1]');
91
+ }
92
+ function createAbortError() {
93
+ if (typeof DOMException !== 'undefined') {
94
+ return new DOMException('The operation was aborted.', 'AbortError');
95
+ }
96
+ const error = new Error('The operation was aborted.');
97
+ error.name = 'AbortError';
98
+ return error;
99
+ }
100
+ function createFetchId() {
101
+ if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
102
+ return crypto.randomUUID();
103
+ }
104
+ return `fetch-${Date.now()}-${Math.random().toString(36).slice(2)}`;
105
+ }
106
+ export function createProxiedFetch() {
107
+ const currentFetch = window.fetch;
108
+ if (currentFetch[PROXY_MARKER]) {
109
+ return currentFetch;
110
+ }
111
+ const originalFetch = currentFetch.bind(window);
112
+ const proxiedFetch = (async (input, init) => {
113
+ const request = new Request(input, init);
114
+ const url = new URL(request.url, window.location.href);
115
+ if (isLocalRequest(url)) {
116
+ return originalFetch(request);
117
+ }
118
+ await ensureListener();
119
+ if (request.signal.aborted) {
120
+ throw createAbortError();
121
+ }
122
+ const fetchId = createFetchId();
123
+ const headers = {};
124
+ request.headers.forEach((value, key) => {
125
+ headers[key] = value;
126
+ });
127
+ const body = request.method === 'GET' || request.method === 'HEAD' ? undefined : await request.text();
128
+ return new Promise((resolve, reject) => {
129
+ const abort = () => {
130
+ const entry = inflight.get(fetchId);
131
+ if (!entry) {
132
+ return;
133
+ }
134
+ const abortError = createAbortError();
135
+ if (entry.controller) {
136
+ entry.controller.error(abortError);
137
+ }
138
+ else {
139
+ entry.responseReject(abortError);
140
+ }
141
+ cleanupEntry(fetchId);
142
+ void HttpStream.abort({ fetchId }).catch(() => { });
143
+ };
144
+ inflight.set(fetchId, {
145
+ fetchId,
146
+ controller: null,
147
+ responseStarted: false,
148
+ responseResolve: resolve,
149
+ responseReject: reject,
150
+ cleanup: () => request.signal.removeEventListener('abort', abort),
151
+ });
152
+ request.signal.addEventListener('abort', abort, { once: true });
153
+ void HttpStream.stream({
154
+ fetchId,
155
+ url: url.href,
156
+ method: request.method.toUpperCase(),
157
+ headers,
158
+ body,
159
+ }).catch((error) => {
160
+ const entry = inflight.get(fetchId);
161
+ if (!entry) {
162
+ return;
163
+ }
164
+ rejectEntry(entry, error instanceof Error ? error : new Error(String(error)));
165
+ });
166
+ });
167
+ });
168
+ proxiedFetch[PROXY_MARKER] = true;
169
+ return proxiedFetch;
170
+ }
171
+ //# sourceMappingURL=fetch-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-proxy.js","sourceRoot":"","sources":["../../../src/agent/fetch-proxy.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export declare class MobileClawEngine {
34
34
  private _agentRunner;
35
35
  private _toolProxy;
36
36
  private _sessionStore;
37
+ private _webViewFetchProxyInstalled;
37
38
  /** Pending pre-execute resolvers keyed by toolCallId */
38
39
  private _preExecuteResolvers;
39
40
  get ready(): boolean;
@@ -73,6 +74,7 @@ export declare class MobileClawEngine {
73
74
  * worker (async), then starts the agent loop immediately in the WebView.
74
75
  */
75
76
  private _runWebViewAgent;
77
+ private _installWebViewFetchProxy;
76
78
  /**
77
79
  * Pre-execute hook for WebView agent: fires the event directly to UI listeners,
78
80
  * then waits for the consumer to respond via respondToPreExecute().
@@ -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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"}
@@ -38,6 +38,7 @@ export class MobileClawEngine {
38
38
  _agentRunner = null;
39
39
  _toolProxy = null;
40
40
  _sessionStore = null;
41
+ _webViewFetchProxyInstalled = false;
41
42
  /** Pending pre-execute resolvers keyed by toolCallId */
42
43
  _preExecuteResolvers = new Map();
43
44
  // ── Public getters ─────────────────────────────────────────────────────
@@ -129,6 +130,7 @@ export class MobileClawEngine {
129
130
  // ── WebView agent setup (instant, no worker dependency) ────────────
130
131
  this._useWebViewAgent = options.useWebViewAgent ?? false;
131
132
  if (this._useWebViewAgent) {
133
+ await this._installWebViewFetchProxy();
132
134
  this._toolProxy = new ToolProxy();
133
135
  // Set up bridge send function — nodePlugin.send is available immediately
134
136
  this._toolProxy.setBridge((msg) => this.send(msg));
@@ -435,6 +437,20 @@ export class MobileClawEngine {
435
437
  this._dispatch({ type: 'agent.error', error: err.message || 'WebView agent failed' });
436
438
  }
437
439
  }
440
+ async _installWebViewFetchProxy() {
441
+ if (this._webViewFetchProxyInstalled || typeof window === 'undefined') {
442
+ return;
443
+ }
444
+ // Only proxy fetch on native platforms where the HttpStream plugin exists.
445
+ // In browser dev mode, standard fetch works (no CORS issues from localhost).
446
+ if (!Capacitor.isNativePlatform()) {
447
+ return;
448
+ }
449
+ const { createProxiedFetch } = await import('./agent/fetch-proxy');
450
+ window.fetch = createProxiedFetch();
451
+ window.__fetchProxied = true;
452
+ this._webViewFetchProxyInstalled = true;
453
+ }
438
454
  /**
439
455
  * Pre-execute hook for WebView agent: fires the event directly to UI listeners,
440
456
  * then waits for the consumer to respond via respondToPreExecute().
@@ -510,10 +526,25 @@ export class MobileClawEngine {
510
526
  await this.send({ type: 'config.update', config });
511
527
  }
512
528
  async exchangeOAuthCode(tokenUrl, body, contentType) {
513
- return new Promise((resolve) => {
514
- this._onMessage('oauth.exchange.result', (msg) => resolve(msg), { once: true });
515
- this.send({ type: 'oauth.exchange', tokenUrl, body, ...(contentType ? { contentType } : {}) });
516
- });
529
+ // Use Capacitor's native HTTP plugin to bypass WebView CORS restrictions.
530
+ // On native platforms this runs as a native HTTP call (no CORS).
531
+ // On web it falls back to fetch (same-origin or CORS-enabled endpoints only).
532
+ const { CapacitorHttp } = await import('@capacitor/core');
533
+ const ct = contentType || 'application/json';
534
+ try {
535
+ const resp = await CapacitorHttp.request({
536
+ method: 'POST',
537
+ url: tokenUrl,
538
+ headers: { 'Content-Type': ct },
539
+ data: body,
540
+ responseType: 'json',
541
+ });
542
+ const ok = resp.status >= 200 && resp.status < 300;
543
+ return { success: ok, status: resp.status, data: resp.data, text: ok ? undefined : JSON.stringify(resp.data) };
544
+ }
545
+ catch (err) {
546
+ return { success: false, error: err.message };
547
+ }
517
548
  }
518
549
  async getAuthStatus(provider = 'anthropic') {
519
550
  return new Promise((resolve) => {
@@ -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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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Vite plugin that stubs Node.js-only transitive dependencies from
3
+ * @mariozechner/pi-ai's Bedrock provider.
4
+ *
5
+ * pi-ai's register-builtins.js statically imports amazon-bedrock.js which
6
+ * statically imports @aws-sdk/client-bedrock-runtime. That SDK pulls in
7
+ * @smithy/node-http-handler and other Node.js-only packages (http, https,
8
+ * http2, stream, node:fs). These break browser/WebView bundling.
9
+ *
10
+ * Usage in a consumer's vite.config:
11
+ *
12
+ * import { mobileClawVitePlugin } from 'capacitor-mobile-claw/vite-plugin'
13
+ *
14
+ * export default defineConfig({
15
+ * plugins: [mobileClawVitePlugin(), vue()],
16
+ * })
17
+ */
18
+ export declare function mobileClawVitePlugin(): {
19
+ name: string;
20
+ enforce: "pre";
21
+ resolveId(source: string): {
22
+ id: string;
23
+ syntheticNamedExports: boolean;
24
+ } | null;
25
+ load(id: string): string | null;
26
+ };
27
+ //# sourceMappingURL=vite-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuBH,wBAAgB,oBAAoB;;;sBAKd,MAAM;;;;aAOf,MAAM;EAOlB"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Vite plugin that stubs Node.js-only transitive dependencies from
3
+ * @mariozechner/pi-ai's Bedrock provider.
4
+ *
5
+ * pi-ai's register-builtins.js statically imports amazon-bedrock.js which
6
+ * statically imports @aws-sdk/client-bedrock-runtime. That SDK pulls in
7
+ * @smithy/node-http-handler and other Node.js-only packages (http, https,
8
+ * http2, stream, node:fs). These break browser/WebView bundling.
9
+ *
10
+ * Usage in a consumer's vite.config:
11
+ *
12
+ * import { mobileClawVitePlugin } from 'capacitor-mobile-claw/vite-plugin'
13
+ *
14
+ * export default defineConfig({
15
+ * plugins: [mobileClawVitePlugin(), vue()],
16
+ * })
17
+ */
18
+ const STUB_IDS = [
19
+ '@aws-sdk/client-bedrock-runtime',
20
+ '@smithy/node-http-handler',
21
+ '@smithy/hash-node',
22
+ '@smithy/eventstream-serde-node',
23
+ '@smithy/util-body-length-node',
24
+ '@smithy/util-defaults-mode-node',
25
+ '@smithy/node-config-provider',
26
+ '@smithy/shared-ini-file-loader',
27
+ 'proxy-agent',
28
+ 'undici',
29
+ ];
30
+ // A module that uses a Proxy as the default export and marks it with
31
+ // syntheticNamedExports so Rollup resolves ANY named import from the stub.
32
+ const STUB_MODULE = [
33
+ 'const handler = { get: () => undefined };',
34
+ 'const stub = new Proxy({}, handler);',
35
+ 'export default stub;',
36
+ ].join('\n');
37
+ export function mobileClawVitePlugin() {
38
+ return {
39
+ name: 'mobile-claw-stub-node-deps',
40
+ enforce: 'pre',
41
+ resolveId(source) {
42
+ if (STUB_IDS.includes(source)) {
43
+ return { id: `\0stub:${source}`, syntheticNamedExports: true };
44
+ }
45
+ return null;
46
+ },
47
+ load(id) {
48
+ if (id.startsWith('\0stub:')) {
49
+ return STUB_MODULE;
50
+ }
51
+ return null;
52
+ },
53
+ };
54
+ }
55
+ //# sourceMappingURL=vite-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../../src/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,QAAQ,GAAG;IACf,iCAAiC;IACjC,2BAA2B;IAC3B,mBAAmB;IACnB,gCAAgC;IAChC,+BAA+B;IAC/B,iCAAiC;IACjC,8BAA8B;IAC9B,gCAAgC;IAChC,aAAa;IACb,QAAQ;CACT,CAAA;AAED,qEAAqE;AACrE,2EAA2E;AAC3E,MAAM,WAAW,GAAG;IAClB,2CAA2C;IAC3C,sCAAsC;IACtC,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,KAAc;QAEvB,SAAS,CAAC,MAAc;YACtB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,EAAE,EAAE,UAAU,MAAM,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAA;YAChE,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,EAAU;YACb,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,WAAW,CAAA;YACpB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,155 @@
1
+ import Foundation
2
+ import Capacitor
3
+
4
+ @objc(HttpStreamPlugin)
5
+ public class HttpStreamPlugin: CAPPlugin, CAPBridgedPlugin, URLSessionDataDelegate {
6
+ public let identifier = "HttpStreamPlugin"
7
+ public let jsName = "HttpStream"
8
+ public let pluginMethods: [CAPPluginMethod] = [
9
+ CAPPluginMethod(name: "stream", returnType: CAPPluginReturnPromise),
10
+ CAPPluginMethod(name: "abort", returnType: CAPPluginReturnPromise)
11
+ ]
12
+
13
+ private var activeSessions: [String: URLSession] = [:]
14
+ private var activeCalls: [String: CAPPluginCall] = [:]
15
+ private var activeTasks: [String: URLSessionDataTask] = [:]
16
+
17
+ @objc func stream(_ call: CAPPluginCall) {
18
+ guard let fetchId = call.getString("fetchId"), !fetchId.isEmpty else {
19
+ call.reject("fetchId is required")
20
+ return
21
+ }
22
+ guard let urlValue = call.getString("url"), let url = URL(string: urlValue) else {
23
+ call.reject("url is required")
24
+ return
25
+ }
26
+
27
+ let method = (call.getString("method") ?? "GET").uppercased()
28
+ let headers = call.getObject("headers") ?? [:]
29
+ let body = call.getString("body")
30
+
31
+ var request = URLRequest(url: url)
32
+ request.httpMethod = method
33
+ for (key, value) in headers {
34
+ if key.caseInsensitiveCompare("origin") == .orderedSame {
35
+ continue
36
+ }
37
+ request.setValue(String(describing: value), forHTTPHeaderField: key)
38
+ }
39
+
40
+ if method != "GET" && method != "HEAD" {
41
+ if let body {
42
+ request.httpBody = body.data(using: .utf8)
43
+ } else if requiresRequestBody(method) {
44
+ request.httpBody = Data()
45
+ }
46
+ }
47
+
48
+ let configuration = URLSessionConfiguration.ephemeral
49
+ let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
50
+ let task = session.dataTask(with: request)
51
+ task.taskDescription = fetchId
52
+
53
+ activeSessions[fetchId] = session
54
+ activeCalls[fetchId] = call
55
+ activeTasks[fetchId] = task
56
+
57
+ task.resume()
58
+ }
59
+
60
+ @objc func abort(_ call: CAPPluginCall) {
61
+ guard let fetchId = call.getString("fetchId"), !fetchId.isEmpty else {
62
+ call.reject("fetchId is required")
63
+ return
64
+ }
65
+
66
+ let activeCall = activeCalls.removeValue(forKey: fetchId)
67
+ let task = activeTasks.removeValue(forKey: fetchId)
68
+ let session = activeSessions.removeValue(forKey: fetchId)
69
+
70
+ activeCall?.reject("Request aborted")
71
+ task?.cancel()
72
+ session?.invalidateAndCancel()
73
+ call.resolve()
74
+ }
75
+
76
+ public func urlSession(
77
+ _ session: URLSession,
78
+ dataTask: URLSessionDataTask,
79
+ didReceive response: URLResponse,
80
+ completionHandler: @escaping (URLSession.ResponseDisposition) -> Void
81
+ ) {
82
+ defer { completionHandler(.allow) }
83
+
84
+ guard let fetchId = dataTask.taskDescription,
85
+ let httpResponse = response as? HTTPURLResponse else {
86
+ return
87
+ }
88
+
89
+ notifyListeners("httpStream", data: [
90
+ "fetchId": fetchId,
91
+ "event": "response",
92
+ "status": httpResponse.statusCode,
93
+ "statusText": HTTPURLResponse.localizedString(forStatusCode: httpResponse.statusCode),
94
+ "headers": stringifyHeaders(httpResponse.allHeaderFields),
95
+ "url": httpResponse.url?.absoluteString ?? ""
96
+ ])
97
+ }
98
+
99
+ public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
100
+ guard let fetchId = dataTask.taskDescription else {
101
+ return
102
+ }
103
+
104
+ notifyListeners("httpStream", data: [
105
+ "fetchId": fetchId,
106
+ "event": "chunk",
107
+ "data": data.base64EncodedString()
108
+ ])
109
+ }
110
+
111
+ public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
112
+ guard let fetchId = task.taskDescription else {
113
+ return
114
+ }
115
+
116
+ DispatchQueue.main.async {
117
+ let pluginCall = self.activeCalls.removeValue(forKey: fetchId)
118
+ self.activeTasks.removeValue(forKey: fetchId)
119
+ let activeSession = self.activeSessions.removeValue(forKey: fetchId)
120
+ activeSession?.finishTasksAndInvalidate()
121
+
122
+ guard let pluginCall else {
123
+ return
124
+ }
125
+
126
+ if let error {
127
+ self.notifyListeners("httpStream", data: [
128
+ "fetchId": fetchId,
129
+ "event": "error",
130
+ "error": error.localizedDescription
131
+ ])
132
+ pluginCall.reject(error.localizedDescription)
133
+ return
134
+ }
135
+
136
+ self.notifyListeners("httpStream", data: [
137
+ "fetchId": fetchId,
138
+ "event": "done"
139
+ ])
140
+ pluginCall.resolve()
141
+ }
142
+ }
143
+
144
+ private func stringifyHeaders(_ headers: [AnyHashable: Any]) -> [String: String] {
145
+ var result: [String: String] = [:]
146
+ for (key, value) in headers {
147
+ result[String(describing: key)] = String(describing: value)
148
+ }
149
+ return result
150
+ }
151
+
152
+ private func requiresRequestBody(_ method: String) -> Bool {
153
+ return method == "POST" || method == "PUT" || method == "PATCH"
154
+ }
155
+ }
package/package.json CHANGED
@@ -1,10 +1,28 @@
1
1
  {
2
2
  "name": "capacitor-mobile-claw",
3
- "version": "1.6.2",
3
+ "version": "1.6.4",
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",
7
7
  "type": "module",
8
+ "capacitor": {
9
+ "ios": {
10
+ "src": "ios"
11
+ },
12
+ "android": {
13
+ "src": "android"
14
+ }
15
+ },
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/esm/index.d.ts",
19
+ "import": "./dist/esm/index.js"
20
+ },
21
+ "./vite-plugin": {
22
+ "types": "./dist/esm/vite-plugin.d.ts",
23
+ "import": "./dist/esm/vite-plugin.js"
24
+ }
25
+ },
8
26
  "scripts": {
9
27
  "worker:install": "cd nodejs-assets/nodejs-project && npm install --production",
10
28
  "build": "tsc",
@@ -21,30 +39,26 @@
21
39
  "files": [
22
40
  "dist/esm/",
23
41
  "nodejs-assets/",
24
- "!nodejs-assets/nodejs-project/node_modules/"
42
+ "!nodejs-assets/nodejs-project/node_modules/",
43
+ "android/src/main/",
44
+ "android/build.gradle",
45
+ "ios/Plugin/",
46
+ "CapacitorMobileClaw.podspec"
25
47
  ],
26
- "dependencies": {},
48
+ "dependencies": {
49
+ "@mariozechner/pi-agent-core": "^0.55.1",
50
+ "@mariozechner/pi-ai": "^0.55.1",
51
+ "@sinclair/typebox": "^0.34.41"
52
+ },
27
53
  "peerDependencies": {
28
54
  "@capacitor-community/sqlite": ">=6.0.0",
29
55
  "@capacitor/core": "^8.0.0",
30
56
  "@capacitor/device": "^8.0.0",
31
57
  "@choreruiz/capacitor-node-js": ">=1.0.0",
32
- "@mariozechner/pi-agent-core": ">=0.55.0",
33
- "@mariozechner/pi-ai": ">=0.55.0",
34
58
  "@modelcontextprotocol/sdk": ">=1.0.0",
35
- "@sinclair/typebox": ">=0.34.0",
36
59
  "capacitor-mobilecron": ">=0.1.0"
37
60
  },
38
61
  "peerDependenciesMeta": {
39
- "@mariozechner/pi-agent-core": {
40
- "optional": true
41
- },
42
- "@mariozechner/pi-ai": {
43
- "optional": true
44
- },
45
- "@sinclair/typebox": {
46
- "optional": true
47
- },
48
62
  "@modelcontextprotocol/sdk": {
49
63
  "optional": true
50
64
  },
@@ -58,12 +72,9 @@
58
72
  "@capacitor/core": "^8.1.0",
59
73
  "@capacitor/device": "^8.0.1",
60
74
  "@choreruiz/capacitor-node-js": "^1.0.0",
61
- "@mariozechner/pi-agent-core": "^0.55.1",
62
- "@mariozechner/pi-ai": "^0.55.1",
63
75
  "@commitlint/cli": "^19.0.0",
64
76
  "@commitlint/config-conventional": "^19.0.0",
65
77
  "@modelcontextprotocol/sdk": "^1.26.0",
66
- "@sinclair/typebox": "^0.34.41",
67
78
  "@stomp/stompjs": "^7.0.0",
68
79
  "isomorphic-git": "^1.37.2",
69
80
  "lefthook": "^1.6.0",