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.
- package/CapacitorMobileClaw.podspec +19 -0
- package/README.md +153 -39
- package/android/build.gradle +44 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/io/mobileclaw/HttpStreamPlugin.kt +158 -0
- package/dist/esm/agent/fetch-proxy.d.ts +2 -0
- package/dist/esm/agent/fetch-proxy.d.ts.map +1 -0
- package/dist/esm/agent/fetch-proxy.js +171 -0
- package/dist/esm/agent/fetch-proxy.js.map +1 -0
- package/dist/esm/engine.d.ts +2 -0
- package/dist/esm/engine.d.ts.map +1 -1
- package/dist/esm/engine.js +35 -4
- package/dist/esm/engine.js.map +1 -1
- package/dist/esm/vite-plugin.d.ts +27 -0
- package/dist/esm/vite-plugin.d.ts.map +1 -0
- package/dist/esm/vite-plugin.js +55 -0
- package/dist/esm/vite-plugin.js.map +1 -0
- package/ios/Plugin/HttpStreamPlugin.swift +155 -0
- package/package.json +29 -18
|
@@ -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
|
|
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
|
-
#
|
|
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 (
|
|
88
|
+
# iOS E2E (111 tests, requires booted Simulator)
|
|
86
89
|
npm run test:ios
|
|
87
90
|
|
|
88
|
-
# Full suite:
|
|
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
|
|
99
|
-
│
|
|
100
|
-
│ │ MobileClawEngine
|
|
101
|
-
│
|
|
102
|
-
│
|
|
103
|
-
│
|
|
104
|
-
│ │
|
|
105
|
-
│
|
|
106
|
-
│
|
|
107
|
-
│
|
|
108
|
-
│ │
|
|
109
|
-
│ │
|
|
110
|
-
│ │
|
|
111
|
-
│ │
|
|
112
|
-
│
|
|
113
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
| `
|
|
302
|
+
| `respondToPreExecute(toolCallId, args, deny?)` | Approve/deny a tool execution |
|
|
218
303
|
| `steerAgent(text)` | Inject a follow-up instruction |
|
|
219
|
-
| `updateConfig(config)` | Update
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
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
|
|
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
|
-
| `
|
|
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
|
-
|
|
|
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,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 @@
|
|
|
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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"}
|
package/dist/esm/engine.d.ts
CHANGED
|
@@ -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().
|
package/dist/esm/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAyB,MAAM,sBAAsB,CAAA;AAGzE,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAyB,MAAM,0BAA0B,CAAA;AAGlF,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;AAExC,qBAAa,gBAAgB;IAG3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,aAAa,CAAqB;IAE1C,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAY;IAG/B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,aAAa,CAA4B;IACjD,wDAAwD;IACxD,OAAO,CAAC,oBAAoB,CAAwD;IAIpF,IAAI,KAAK,IAAI,OAAO,CAEnB;IACD,IAAI,SAAS,IAAI,OAAO,CAEvB;IACD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IACD,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IACD,IAAI,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAErC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,8DAA8D;IAC9D,IAAI,UAAU,IAAI,gBAAgB,GAAG,IAAI,CAExC;IAED,4CAA4C;IAC5C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,6EAA6E;IAC7E,IAAI,WAAW,IAAI,WAAW,GAAG,IAAI,CAEpC;IAIK,IAAI,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAM/D,OAAO;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/engine.js
CHANGED
|
@@ -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
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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) => {
|
package/dist/esm/engine.js.map
CHANGED
|
@@ -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.
|
|
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",
|