opencode-mobile 1.3.2 → 1.3.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/README.md +151 -219
- package/bin/audit +8 -1
- package/dist/src/cli/install.d.ts.map +1 -1
- package/dist/src/cli/install.js +40 -0
- package/dist/src/cli/install.js.map +1 -1
- package/dist/src/cli/tunnel-setup.js +9 -10
- package/dist/src/cli/tunnel-setup.js.map +1 -1
- package/dist/src/cli/update.d.ts +2 -0
- package/dist/src/cli/update.d.ts.map +1 -0
- package/dist/src/cli/update.js +74 -0
- package/dist/src/cli/update.js.map +1 -0
- package/dist/src/cli/version-check.d.ts +32 -0
- package/dist/src/cli/version-check.d.ts.map +1 -0
- package/dist/src/cli/version-check.js +108 -0
- package/dist/src/cli/version-check.js.map +1 -0
- package/dist/src/tunnel/cloudflare.d.ts +0 -3
- package/dist/src/tunnel/cloudflare.d.ts.map +1 -1
- package/dist/src/tunnel/cloudflare.js +12 -11
- package/dist/src/tunnel/cloudflare.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,291 +1,223 @@
|
|
|
1
1
|
# OpenCode Mobile Plugin
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **Push Notifications**: Send push notifications via Expo Push Notifications service
|
|
8
|
-
- **Tunnel Management**: Support for Cloudflare and ngrok tunnels for mobile device connectivity
|
|
9
|
-
- **Reverse Proxy**: Built-in HTTP proxy server for handling notifications
|
|
10
|
-
- **QR Code Support**: Generate QR codes for easy tunnel URL sharing
|
|
3
|
+
Mobile push notifications for OpenCode via Expo. Connect your phone to receive notifications when OpenCode generates responses, even when you're away from your computer.
|
|
11
4
|
|
|
12
5
|
## Prerequisites
|
|
13
6
|
|
|
14
|
-
- [
|
|
15
|
-
-
|
|
16
|
-
-
|
|
7
|
+
- [OpenCode CLI](https://opencode.ai) installed and configured
|
|
8
|
+
- Node.js or Bun runtime
|
|
9
|
+
- Mobile device with OpenCode Mobile app (or Expo Go)
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
### Step 1: Install the Plugin
|
|
19
14
|
|
|
20
15
|
```bash
|
|
21
|
-
|
|
22
|
-
bun install
|
|
16
|
+
npx opencode-mobile install
|
|
23
17
|
```
|
|
24
18
|
|
|
25
|
-
|
|
19
|
+
**What this does:**
|
|
20
|
+
- Installs `opencode-mobile@latest` plugin to your global OpenCode config
|
|
21
|
+
- Creates the `/mobile` command (available in all projects)
|
|
22
|
+
- Sets up tunnel provider configuration for mobile connectivity
|
|
26
23
|
|
|
27
|
-
|
|
24
|
+
**Expected output:**
|
|
25
|
+
```
|
|
26
|
+
✅ Updated ~/.config/opencode/opencode.json
|
|
27
|
+
plugin: ["opencode-mobile@latest"]
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
✅ Created /mobile command at ~/.config/opencode/commands/mobile.md
|
|
30
|
+
|
|
31
|
+
🚀 Setting up tunnel provider for mobile notifications...
|
|
32
|
+
|
|
33
|
+
🎉 Installation complete!
|
|
34
|
+
Restart OpenCode (run `opencode`) to load the plugin.
|
|
35
|
+
Use `/mobile` in any project to access mobile features.
|
|
31
36
|
```
|
|
32
37
|
|
|
33
|
-
###
|
|
38
|
+
### Step 2: Start OpenCode
|
|
34
39
|
|
|
35
40
|
```bash
|
|
36
|
-
|
|
41
|
+
opencode attach
|
|
37
42
|
```
|
|
38
43
|
|
|
39
|
-
|
|
44
|
+
Or start a new session:
|
|
40
45
|
|
|
41
46
|
```bash
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
opencode serve
|
|
48
|
+
```
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
**What you'll see:**
|
|
51
|
+
```
|
|
52
|
+
[opencode-mobile] v1.3.2
|
|
53
|
+
[PushPlugin][Mobile] Entry loaded: index.ts
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
Connecting to OpenCode...
|
|
56
|
+
Connected! Session ID: abc123
|
|
57
|
+
|
|
58
|
+
>
|
|
50
59
|
```
|
|
51
60
|
|
|
52
|
-
###
|
|
61
|
+
### Step 3: Get Your QR Code
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
Inside OpenCode, type:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
/mobile
|
|
56
67
|
```
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
**What you'll see:**
|
|
70
|
+
```
|
|
71
|
+
> /mobile
|
|
59
72
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
┌─────────────────┐
|
|
74
|
+
│ █▀▀▀▀▀█ ▀▄▀▄▀▄ │
|
|
75
|
+
│ █ ███ █ ▄▀ ▄▀ │
|
|
76
|
+
│ █ ▀▀▀ █ ▀▄▀▄▀▄ │
|
|
77
|
+
│ ▀▀▀▀▀▀▀ ▀▄█▄▀▄ │
|
|
78
|
+
│ ▀▄▀▄▀▄▀ █▄▀▄▀▄ │
|
|
79
|
+
└─────────────────┘
|
|
80
|
+
|
|
81
|
+
https://your-tunnel-url.ngrok.io
|
|
64
82
|
```
|
|
65
83
|
|
|
66
|
-
|
|
84
|
+
### Step 4: Connect Your Phone
|
|
85
|
+
|
|
86
|
+
1. **Install the OpenCode Mobile app** (or use Expo Go)
|
|
87
|
+
2. **Open the app** and look for the QR scanner
|
|
88
|
+
3. **Scan the QR code** displayed in Step 3
|
|
89
|
+
4. **Done!** Your device is now registered for push notifications
|
|
90
|
+
|
|
91
|
+
## How It Works
|
|
67
92
|
|
|
68
93
|
```
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
├── reverse-proxy.ts # HTTP proxy server
|
|
74
|
-
├── hello-world.ts # Example plugin
|
|
75
|
-
├── tsconfig.json # TypeScript configuration
|
|
76
|
-
├── package.json # Dependencies and scripts
|
|
77
|
-
├── AGENTS.md # Agent instructions and project guidelines
|
|
78
|
-
└── dist/ # Compiled output
|
|
94
|
+
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
|
|
95
|
+
│ OpenCode │──────▶│ Tunnel │──────▶│ Mobile Device │
|
|
96
|
+
│ Server │ │ (ngrok/etc) │ │ (Push Notify) │
|
|
97
|
+
└─────────────┘ └──────────────┘ └─────────────────┘
|
|
79
98
|
```
|
|
80
99
|
|
|
81
|
-
|
|
100
|
+
1. **Tunnel**: Creates a secure public URL that your phone can reach
|
|
101
|
+
2. **QR Code**: Encodes the tunnel URL for easy scanning
|
|
102
|
+
3. **Push Token**: Your phone registers its Expo push token with the plugin
|
|
103
|
+
4. **Notifications**: OpenCode events trigger push notifications to your device
|
|
82
104
|
|
|
83
|
-
|
|
105
|
+
## Available Commands
|
|
84
106
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
107
|
+
| Command | Description |
|
|
108
|
+
|---------|-------------|
|
|
109
|
+
| `/mobile` | Display QR code for mobile connection |
|
|
110
|
+
| `/mobile ExponentPushToken[xxx]` | Manually register a push token |
|
|
111
|
+
| `npx opencode-mobile qr <tunnels.json>` | Show QR from tunnel file |
|
|
112
|
+
| `npx opencode-mobile audit` | Run endpoint audit |
|
|
113
|
+
| `npx opencode-mobile uninstall` | Remove plugin globally |
|
|
88
114
|
|
|
89
|
-
|
|
115
|
+
## Configuration
|
|
90
116
|
|
|
91
|
-
|
|
117
|
+
### Environment Variables
|
|
92
118
|
|
|
93
|
-
|
|
94
|
-
|
|
119
|
+
| Variable | Description | Default |
|
|
120
|
+
|----------|-------------|---------|
|
|
121
|
+
| `TUNNEL_PROVIDER` | Tunnel provider (`auto`, `ngrok`, `cloudflare`, `localtunnel`) | `auto` |
|
|
122
|
+
| `OPENCODE_MOBILE_DEBUG` | Enable debug logging (`1` to enable) | disabled |
|
|
123
|
+
| `OPENCODE_PORT` | Local server port | `3000` |
|
|
95
124
|
|
|
96
|
-
|
|
125
|
+
### Tunnel Providers
|
|
97
126
|
|
|
98
|
-
|
|
127
|
+
The plugin automatically tries providers in this order:
|
|
99
128
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
import * as path from "path";
|
|
129
|
+
1. **ngrok** - Popular tunnel service (requires auth token)
|
|
130
|
+
2. **Cloudflare** - Zero-config tunnel via cloudflared
|
|
131
|
+
3. **Localtunnel** - Simple, free tunnel option
|
|
104
132
|
|
|
105
|
-
|
|
106
|
-
import ngrok from "ngrok";
|
|
107
|
-
import qrcode from "qrcode";
|
|
133
|
+
### Installing ngrok (Optional)
|
|
108
134
|
|
|
109
|
-
|
|
110
|
-
import type { Plugin } from "@opencode-ai/plugin";
|
|
111
|
-
import type { TunnelConfig } from "./tunnel-manager";
|
|
135
|
+
For the best experience with stable URLs:
|
|
112
136
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
import * as path from "path";
|
|
117
|
-
import { startTunnel } from "./tunnel-manager";
|
|
118
|
-
```
|
|
137
|
+
```bash
|
|
138
|
+
# macOS
|
|
139
|
+
brew install ngrok
|
|
119
140
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
- **2 spaces** for indentation
|
|
123
|
-
- **Single quotes** for strings
|
|
124
|
-
- **Semicolons** at end of statements
|
|
125
|
-
- **Trailing commas** in multi-line objects/arrays
|
|
126
|
-
- **Max line length**: ~100 characters (soft limit)
|
|
127
|
-
|
|
128
|
-
### Types
|
|
129
|
-
|
|
130
|
-
```typescript
|
|
131
|
-
// Use interfaces for object shapes
|
|
132
|
-
interface PushToken {
|
|
133
|
-
token: string;
|
|
134
|
-
platform: "ios" | "android";
|
|
135
|
-
deviceId: string;
|
|
136
|
-
registeredAt: string;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Use type aliases for unions/primitives
|
|
140
|
-
type NotificationHandler = (notification: Notification) => Promise<void>;
|
|
141
|
-
|
|
142
|
-
// Explicit return types for public functions
|
|
143
|
-
function loadTokens(): PushToken[] {
|
|
144
|
-
// ...
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Avoid `any` - use `unknown` with type guards when uncertain
|
|
148
|
-
function safeParse(data: unknown): Record<string, any> {
|
|
149
|
-
if (typeof data === "string") {
|
|
150
|
-
try {
|
|
151
|
-
return JSON.parse(data);
|
|
152
|
-
} catch {
|
|
153
|
-
return {};
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return data as Record<string, any>;
|
|
157
|
-
}
|
|
141
|
+
# Get your authtoken from https://dashboard.ngrok.com
|
|
142
|
+
ngrok config add-authtoken YOUR_TOKEN
|
|
158
143
|
```
|
|
159
144
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
| Pattern | Convention | Example |
|
|
163
|
-
|---------|------------|---------|
|
|
164
|
-
| Constants | UPPER_SNAKE_CASE | `TOKEN_FILE`, `BUN_SERVER_PORT` |
|
|
165
|
-
| Functions/variables | camelCase | `loadTokens`, `startTunnel` |
|
|
166
|
-
| Interfaces/classes | PascalCase | `PushToken`, `TunnelConfig` |
|
|
167
|
-
| Private/internal | prefix with `_` | `_bunServer`, `_pluginInitialized` |
|
|
168
|
-
| Booleans | prefix with `is`, `has`, `should` | `isRunning`, `hasStarted` |
|
|
169
|
-
|
|
170
|
-
### Error Handling
|
|
171
|
-
|
|
172
|
-
```typescript
|
|
173
|
-
// Always wrap async operations in try-catch
|
|
174
|
-
try {
|
|
175
|
-
await someAsyncOperation();
|
|
176
|
-
} catch (error: any) {
|
|
177
|
-
// Log errors with module prefix
|
|
178
|
-
console.error("[ModuleName] Error message:", error.message);
|
|
179
|
-
|
|
180
|
-
// Provide context in error messages
|
|
181
|
-
if (error.message?.includes("specific case")) {
|
|
182
|
-
console.error("[PushPlugin] Handle specific error:", error.message);
|
|
183
|
-
} else {
|
|
184
|
-
console.error("[PushPlugin] Unexpected error:", error.message);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// Handle specific error types when possible
|
|
189
|
-
if (error instanceof ValidationError) {
|
|
190
|
-
// Handle validation errors
|
|
191
|
-
}
|
|
192
|
-
```
|
|
145
|
+
## Troubleshooting
|
|
193
146
|
|
|
194
|
-
###
|
|
147
|
+
### "No tunnel URL found"
|
|
195
148
|
|
|
196
|
-
|
|
197
|
-
- Use **emojis** for status indicators: `✅`, `❌`, `💡`, `ℹ️`
|
|
198
|
-
- Log important steps and results
|
|
149
|
+
**Problem**: Tunnel failed to start
|
|
199
150
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
151
|
+
**Solutions:**
|
|
152
|
+
```bash
|
|
153
|
+
# Check tunnel provider is installed
|
|
154
|
+
which ngrok
|
|
155
|
+
which cloudflared
|
|
156
|
+
|
|
157
|
+
# Run tunnel setup manually
|
|
158
|
+
npx opencode-mobile tunnel-setup
|
|
207
159
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
// Use async/await over raw promises
|
|
212
|
-
async function startServer(): Promise<void> {
|
|
213
|
-
try {
|
|
214
|
-
await startProxy();
|
|
215
|
-
await startTunnel();
|
|
216
|
-
} catch (error) {
|
|
217
|
-
// handle error
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Never leave promises unhandled
|
|
222
|
-
// Use Promise.all() for parallel operations
|
|
223
|
-
const [result1, result2] = await Promise.all([
|
|
224
|
-
operation1(),
|
|
225
|
-
operation2(),
|
|
226
|
-
]);
|
|
160
|
+
# Or skip tunnel setup during install
|
|
161
|
+
npx opencode-mobile install --skip-tunnel-setup
|
|
227
162
|
```
|
|
228
163
|
|
|
229
|
-
|
|
164
|
+
### "Push token not registering"
|
|
230
165
|
|
|
231
|
-
|
|
166
|
+
**Problem**: Device can't reach the plugin server
|
|
232
167
|
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
168
|
+
**Solutions:**
|
|
169
|
+
- Ensure your phone and computer are on the same network (for LAN mode)
|
|
170
|
+
- Check that the tunnel URL is accessible from your phone's browser
|
|
171
|
+
- Verify the QR code scanned correctly (compare the URL)
|
|
236
172
|
|
|
237
|
-
### Plugin
|
|
173
|
+
### Plugin not loading
|
|
238
174
|
|
|
239
|
-
|
|
175
|
+
**Problem**: OpenCode doesn't recognize the plugin
|
|
240
176
|
|
|
241
|
-
|
|
242
|
-
|
|
177
|
+
**Solutions:**
|
|
178
|
+
```bash
|
|
179
|
+
# Verify installation
|
|
180
|
+
npx opencode-mobile --help
|
|
243
181
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
return {
|
|
247
|
-
event: async ({ event }) => {
|
|
248
|
-
// Handle event
|
|
249
|
-
},
|
|
250
|
-
};
|
|
251
|
-
};
|
|
182
|
+
# Check global config
|
|
183
|
+
cat ~/.config/opencode/opencode.json
|
|
252
184
|
|
|
253
|
-
|
|
185
|
+
# Reinstall
|
|
186
|
+
npx opencode-mobile uninstall --yes
|
|
187
|
+
npx opencode-mobile install
|
|
254
188
|
```
|
|
255
189
|
|
|
256
|
-
###
|
|
257
|
-
|
|
258
|
-
```typescript
|
|
259
|
-
// Handle process signals for graceful shutdown
|
|
260
|
-
const signals = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
261
|
-
signals.forEach((signal) => {
|
|
262
|
-
process.on(signal, async () => {
|
|
263
|
-
await gracefulShutdown();
|
|
264
|
-
process.exit(0);
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
```
|
|
190
|
+
### Reset Everything
|
|
268
191
|
|
|
269
|
-
|
|
192
|
+
```bash
|
|
193
|
+
# Uninstall plugin
|
|
194
|
+
npx opencode-mobile uninstall --yes
|
|
270
195
|
|
|
271
|
-
|
|
272
|
-
-
|
|
273
|
-
- `cloudflared`: Cloudflare tunnel provider
|
|
274
|
-
- `qrcode`: QR code generation
|
|
275
|
-
- `bun`: Runtime environment
|
|
196
|
+
# Clear stored tokens
|
|
197
|
+
rm ~/.config/opencode/mobile-tokens.json
|
|
276
198
|
|
|
277
|
-
|
|
199
|
+
# Reinstall
|
|
200
|
+
npx opencode-mobile install
|
|
201
|
+
```
|
|
278
202
|
|
|
279
|
-
|
|
203
|
+
## Project Structure
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
opencode-mobile/
|
|
207
|
+
├── index.ts # Main plugin entry point
|
|
208
|
+
├── src/
|
|
209
|
+
│ ├── tunnel/ # Tunnel providers (ngrok, cloudflare, localtunnel)
|
|
210
|
+
│ ├── push/ # Push notification logic
|
|
211
|
+
│ └── cli/ # CLI commands (install, qr, audit, etc.)
|
|
212
|
+
├── bin/ # CLI entry points
|
|
213
|
+
├── dist/ # Compiled output
|
|
214
|
+
└── package.json
|
|
215
|
+
```
|
|
280
216
|
|
|
281
217
|
## Contributing
|
|
282
218
|
|
|
283
|
-
|
|
284
|
-
2. Create a feature branch
|
|
285
|
-
3. Make your changes following the code style guidelines
|
|
286
|
-
4. Run linting and tests
|
|
287
|
-
5. Submit a pull request
|
|
219
|
+
See [AGENTS.md](./AGENTS.md) for development guidelines and project structure.
|
|
288
220
|
|
|
289
|
-
##
|
|
221
|
+
## License
|
|
290
222
|
|
|
291
|
-
|
|
223
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
package/bin/audit
CHANGED
|
@@ -9,6 +9,7 @@ import { main as auditMain } from "../dist/src/cli/index.js";
|
|
|
9
9
|
import { main as qrMain } from "../dist/src/cli/qr.js";
|
|
10
10
|
import { main as installMain } from "../dist/src/cli/install.js";
|
|
11
11
|
import { main as uninstallMain } from "../dist/src/cli/uninstall.js";
|
|
12
|
+
import { main as updateMain } from "../dist/src/cli/update.js";
|
|
12
13
|
|
|
13
14
|
const args = process.argv.slice(2);
|
|
14
15
|
const subcommand = args[0];
|
|
@@ -34,7 +35,11 @@ const run = async () => {
|
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
if (subcommand === "update") {
|
|
39
|
+
await updateMain(args.slice(1));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
if (subcommand === "--help" || subcommand === "-h" || !subcommand) {
|
|
39
44
|
console.log(`
|
|
40
45
|
OpenCode Mobile Plugin
|
|
@@ -45,11 +50,13 @@ USAGE:
|
|
|
45
50
|
COMMANDS:
|
|
46
51
|
install Install the plugin globally
|
|
47
52
|
uninstall Remove the plugin globally
|
|
53
|
+
update Update to the latest version
|
|
48
54
|
audit Run endpoint audit
|
|
49
55
|
qr Show QR code for mobile connection
|
|
50
56
|
|
|
51
57
|
EXAMPLES:
|
|
52
58
|
npx opencode-mobile install
|
|
59
|
+
npx opencode-mobile update
|
|
53
60
|
npx opencode-mobile uninstall --yes
|
|
54
61
|
npx opencode-mobile audit --tunnel-only
|
|
55
62
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAgIA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDhF"}
|
package/dist/src/cli/install.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { installPluginToGlobalOpenCodeConfig, installGlobalCommand } from "./opencode-config.js";
|
|
2
2
|
import { MOBILE_COMMAND_NAME, getMobileCommandMarkdown } from "./mobile-command.js";
|
|
3
|
+
import { checkForUpdates, executeUpdate } from "./version-check.js";
|
|
3
4
|
import { spawn } from "child_process";
|
|
4
5
|
import * as path from "path";
|
|
5
6
|
import * as url from "url";
|
|
7
|
+
import { createInterface } from "readline";
|
|
6
8
|
const PLUGIN_SPEC = "opencode-mobile@latest";
|
|
7
9
|
function parseArgs(args) {
|
|
8
10
|
const options = {
|
|
@@ -71,12 +73,50 @@ async function runTunnelSetup() {
|
|
|
71
73
|
});
|
|
72
74
|
});
|
|
73
75
|
}
|
|
76
|
+
function prompt(question) {
|
|
77
|
+
const rl = createInterface({
|
|
78
|
+
input: process.stdin,
|
|
79
|
+
output: process.stdout,
|
|
80
|
+
});
|
|
81
|
+
return new Promise((resolve) => {
|
|
82
|
+
rl.question(question, (answer) => {
|
|
83
|
+
rl.close();
|
|
84
|
+
resolve(answer.trim());
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async function checkVersionAndPrompt() {
|
|
89
|
+
try {
|
|
90
|
+
console.log("🔍 Checking for updates...\n");
|
|
91
|
+
const versionInfo = await checkForUpdates();
|
|
92
|
+
if (versionInfo.updateAvailable) {
|
|
93
|
+
console.log(`📦 A new version is available!`);
|
|
94
|
+
console.log(` Your version: ${versionInfo.currentVersion}`);
|
|
95
|
+
console.log(` Latest: ${versionInfo.latestVersion}\n`);
|
|
96
|
+
const answer = await prompt("Would you like to update? (y/n): ");
|
|
97
|
+
if (answer.toLowerCase() === "y" || answer.toLowerCase() === "yes") {
|
|
98
|
+
console.log("\n📥 Updating...\n");
|
|
99
|
+
const success = await executeUpdate();
|
|
100
|
+
return success;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log("\n⏩ Continuing with current version...\n");
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch { }
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
74
111
|
export async function main(args = process.argv.slice(2)) {
|
|
75
112
|
const options = parseArgs(args);
|
|
76
113
|
if (options.help) {
|
|
77
114
|
showHelp();
|
|
78
115
|
return;
|
|
79
116
|
}
|
|
117
|
+
if (!options.dryRun) {
|
|
118
|
+
await checkVersionAndPrompt();
|
|
119
|
+
}
|
|
80
120
|
const prefix = options.dryRun ? "[Dry Run] " : "";
|
|
81
121
|
// Install plugin to global config
|
|
82
122
|
const result = installPluginToGlobalOpenCodeConfig(PLUGIN_SPEC, { dryRun: options.dryRun });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -241,16 +241,15 @@ async function setupCloudflare(options) {
|
|
|
241
241
|
console.log("\n☁️ Cloudflare Tunnel Setup\n");
|
|
242
242
|
if (!isCloudflaredInstalled()) {
|
|
243
243
|
console.log("⚠️ cloudflared is not installed.");
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
console.log("\n❌ cloudflared is required. Setup cancelled.");
|
|
244
|
+
console.log("📦 Attempting automatic installation...\n");
|
|
245
|
+
const success = await installCloudflared();
|
|
246
|
+
if (!success) {
|
|
247
|
+
console.log("\n❌ Automatic installation failed.");
|
|
248
|
+
console.log(" Please install cloudflared manually:");
|
|
249
|
+
console.log(" macOS: brew install cloudflared");
|
|
250
|
+
console.log(" Linux: curl -L --output /tmp/cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i /tmp/cloudflared.deb");
|
|
251
|
+
console.log(" Windows: Download from https://github.com/cloudflare/cloudflared/releases");
|
|
252
|
+
console.log("\n After installation, run: npx opencode-mobile tunnel-setup\n");
|
|
254
253
|
return;
|
|
255
254
|
}
|
|
256
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-setup.js","sourceRoot":"","sources":["../../../src/cli/tunnel-setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tunnel-setup.js","sourceRoot":"","sources":["../../../src/cli/tunnel-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/update.ts"],"names":[],"mappings":"AA+CA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { checkForUpdates, executeUpdate, getUpdateCommand } from "./version-check.js";
|
|
2
|
+
function parseArgs(args) {
|
|
3
|
+
const options = {
|
|
4
|
+
help: false,
|
|
5
|
+
checkOnly: false,
|
|
6
|
+
};
|
|
7
|
+
for (const arg of args) {
|
|
8
|
+
if (arg === "--help" || arg === "-h") {
|
|
9
|
+
options.help = true;
|
|
10
|
+
}
|
|
11
|
+
else if (arg === "--check" || arg === "-c") {
|
|
12
|
+
options.checkOnly = true;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return options;
|
|
16
|
+
}
|
|
17
|
+
function showHelp() {
|
|
18
|
+
console.log(`
|
|
19
|
+
OpenCode Mobile Plugin - Update
|
|
20
|
+
|
|
21
|
+
USAGE:
|
|
22
|
+
npx opencode-mobile update [OPTIONS]
|
|
23
|
+
|
|
24
|
+
OPTIONS:
|
|
25
|
+
-c, --check Check for updates without installing
|
|
26
|
+
-h, --help Show this help message
|
|
27
|
+
|
|
28
|
+
DESCRIPTION:
|
|
29
|
+
Updates the opencode-mobile plugin to the latest version from npm.
|
|
30
|
+
|
|
31
|
+
By default, this command checks for updates and installs the latest
|
|
32
|
+
version if available. Use --check to only check without installing.
|
|
33
|
+
|
|
34
|
+
EXAMPLES:
|
|
35
|
+
npx opencode-mobile update # Check and install updates
|
|
36
|
+
npx opencode-mobile update --check # Only check for updates
|
|
37
|
+
`);
|
|
38
|
+
}
|
|
39
|
+
export async function main(args = process.argv.slice(2)) {
|
|
40
|
+
const options = parseArgs(args);
|
|
41
|
+
if (options.help) {
|
|
42
|
+
showHelp();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
console.log("🔍 Checking for updates...\n");
|
|
46
|
+
try {
|
|
47
|
+
const versionInfo = await checkForUpdates();
|
|
48
|
+
console.log(`Current version: ${versionInfo.currentVersion}`);
|
|
49
|
+
console.log(`Latest version: ${versionInfo.latestVersion}`);
|
|
50
|
+
if (!versionInfo.updateAvailable) {
|
|
51
|
+
console.log("\n✅ You are already on the latest version!");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
console.log(`\n📦 Update available: ${versionInfo.currentVersion} → ${versionInfo.latestVersion}`);
|
|
55
|
+
if (options.checkOnly) {
|
|
56
|
+
console.log("\nTo update, run:");
|
|
57
|
+
console.log(` ${getUpdateCommand()}`);
|
|
58
|
+
console.log("\nOr simply:");
|
|
59
|
+
console.log(" npx opencode-mobile update");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
console.log("\n📥 Installing update...\n");
|
|
63
|
+
const success = await executeUpdate();
|
|
64
|
+
if (!success) {
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error("\n❌ Failed to check for updates:", error instanceof Error ? error.message : String(error));
|
|
70
|
+
console.error("\nPlease check your internet connection and try again.");
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAqB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOzG,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAqB;QAChC,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,CAAC,cAAc,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QAEnG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface VersionInfo {
|
|
2
|
+
currentVersion: string;
|
|
3
|
+
latestVersion: string;
|
|
4
|
+
isOutdated: boolean;
|
|
5
|
+
updateAvailable: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function getCurrentVersion(): string;
|
|
8
|
+
/**
|
|
9
|
+
* Fetch the latest version from npm registry
|
|
10
|
+
*/
|
|
11
|
+
export declare function getLatestVersion(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Compare two semantic versions
|
|
14
|
+
* Returns:
|
|
15
|
+
* - negative if v1 < v2
|
|
16
|
+
* - 0 if v1 === v2
|
|
17
|
+
* - positive if v1 > v2
|
|
18
|
+
*/
|
|
19
|
+
export declare function compareVersions(v1: string, v2: string): number;
|
|
20
|
+
/**
|
|
21
|
+
* Check if an update is available
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkForUpdates(): Promise<VersionInfo>;
|
|
24
|
+
/**
|
|
25
|
+
* Get the install command to update to latest version
|
|
26
|
+
*/
|
|
27
|
+
export declare function getUpdateCommand(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Execute the update command
|
|
30
|
+
*/
|
|
31
|
+
export declare function executeUpdate(): Promise<boolean>;
|
|
32
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/cli/version-check.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBxD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAW9D;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAY5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CA6BtD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import * as url from "url";
|
|
4
|
+
const NPM_REGISTRY_URL = "https://registry.npmjs.org/opencode-mobile/latest";
|
|
5
|
+
const PACKAGE_NAME = "opencode-mobile";
|
|
6
|
+
export function getCurrentVersion() {
|
|
7
|
+
try {
|
|
8
|
+
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
9
|
+
const packageJsonPath = path.resolve(__dirname, "..", "..", "..", "package.json");
|
|
10
|
+
const raw = fs.readFileSync(packageJsonPath, "utf-8");
|
|
11
|
+
const data = JSON.parse(raw);
|
|
12
|
+
return data.version || "unknown";
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return "unknown";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Fetch the latest version from npm registry
|
|
20
|
+
*/
|
|
21
|
+
export async function getLatestVersion() {
|
|
22
|
+
try {
|
|
23
|
+
const response = await fetch(NPM_REGISTRY_URL, {
|
|
24
|
+
headers: {
|
|
25
|
+
Accept: "application/json",
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new Error(`HTTP ${response.status}`);
|
|
30
|
+
}
|
|
31
|
+
const data = (await response.json());
|
|
32
|
+
return data.version || "unknown";
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
throw new Error(`Failed to fetch latest version: ${error instanceof Error ? error.message : String(error)}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Compare two semantic versions
|
|
40
|
+
* Returns:
|
|
41
|
+
* - negative if v1 < v2
|
|
42
|
+
* - 0 if v1 === v2
|
|
43
|
+
* - positive if v1 > v2
|
|
44
|
+
*/
|
|
45
|
+
export function compareVersions(v1, v2) {
|
|
46
|
+
const parts1 = v1.replace(/^v/, "").split(".").map(Number);
|
|
47
|
+
const parts2 = v2.replace(/^v/, "").split(".").map(Number);
|
|
48
|
+
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
49
|
+
const p1 = parts1[i] || 0;
|
|
50
|
+
const p2 = parts2[i] || 0;
|
|
51
|
+
if (p1 < p2)
|
|
52
|
+
return -1;
|
|
53
|
+
if (p1 > p2)
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if an update is available
|
|
60
|
+
*/
|
|
61
|
+
export async function checkForUpdates() {
|
|
62
|
+
const currentVersion = getCurrentVersion();
|
|
63
|
+
const latestVersion = await getLatestVersion();
|
|
64
|
+
const comparison = compareVersions(currentVersion, latestVersion);
|
|
65
|
+
return {
|
|
66
|
+
currentVersion,
|
|
67
|
+
latestVersion,
|
|
68
|
+
isOutdated: comparison < 0,
|
|
69
|
+
updateAvailable: comparison < 0,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the install command to update to latest version
|
|
74
|
+
*/
|
|
75
|
+
export function getUpdateCommand() {
|
|
76
|
+
return `npm install -g ${PACKAGE_NAME}@latest`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Execute the update command
|
|
80
|
+
*/
|
|
81
|
+
export async function executeUpdate() {
|
|
82
|
+
const { spawn } = await import("child_process");
|
|
83
|
+
return new Promise((resolve) => {
|
|
84
|
+
console.log(`📦 Installing ${PACKAGE_NAME}@latest...`);
|
|
85
|
+
const child = spawn("npm", ["install", "-g", `${PACKAGE_NAME}@latest`], {
|
|
86
|
+
stdio: "inherit",
|
|
87
|
+
shell: true,
|
|
88
|
+
});
|
|
89
|
+
child.on("close", (code) => {
|
|
90
|
+
if (code === 0) {
|
|
91
|
+
console.log("✅ Update completed successfully!");
|
|
92
|
+
console.log(" Restart OpenCode to use the new version.");
|
|
93
|
+
resolve(true);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.error(`❌ Update failed with exit code ${code}`);
|
|
97
|
+
console.error(" Try running manually:");
|
|
98
|
+
console.error(` ${getUpdateCommand()}`);
|
|
99
|
+
resolve(false);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
child.on("error", (error) => {
|
|
103
|
+
console.error("❌ Failed to execute update:", error.message);
|
|
104
|
+
resolve(false);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/cli/version-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,6 @@ export declare function startCloudflareTunnel(config: TunnelConfig): Promise<Tun
|
|
|
27
27
|
* Stop the Cloudflare tunnel
|
|
28
28
|
*/
|
|
29
29
|
export declare function stopCloudflareTunnel(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Check if cloudflared is installed
|
|
32
|
-
*/
|
|
33
30
|
export declare function isCloudflareInstalled(): Promise<boolean>;
|
|
34
31
|
/**
|
|
35
32
|
* Get the current Cloudflare tunnel URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAY,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGxD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAczC;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACrC,MAAM,GAAG,IAAI,CAUf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,OAAO,KAAK,EACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACxC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,UAAU,CAAC,CAwErB;AAgBD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAErF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM1D;AAWD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAGjC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Port validation
|
|
8
8
|
* - Clean separation of concerns
|
|
9
9
|
*/
|
|
10
|
-
import { spawn } from "child_process";
|
|
10
|
+
import { spawn, execSync } from "child_process";
|
|
11
11
|
// Module-level state (for backward compatibility)
|
|
12
12
|
let _process = null;
|
|
13
13
|
let _url = null;
|
|
@@ -42,15 +42,10 @@ export function createCloudflareTunnel(config, spawnFn, existsSyncFn, onUrl) {
|
|
|
42
42
|
if (!config.port || typeof config.port !== "number") {
|
|
43
43
|
return Promise.reject(new Error("Invalid port: must be a number"));
|
|
44
44
|
}
|
|
45
|
-
// Find cloudflared
|
|
46
|
-
const cloudflaredPath = findCloudflareD(CLOUDFLARED_PATHS, existsSyncFn);
|
|
47
|
-
if (!cloudflaredPath) {
|
|
48
|
-
return Promise.reject(new Error("cloudflared not found. Install from https://github.com/cloudflare/cloudflared"));
|
|
49
|
-
}
|
|
50
45
|
const spawnModule = spawnFn || spawn;
|
|
51
46
|
return new Promise((resolve, reject) => {
|
|
52
47
|
const timeout = setTimeout(() => reject(new Error("Timeout waiting for cloudflared URL (60s)")), 60000);
|
|
53
|
-
const process = spawnModule(
|
|
48
|
+
const process = spawnModule("cloudflared", [
|
|
54
49
|
"tunnel",
|
|
55
50
|
"--url",
|
|
56
51
|
`http://127.0.0.1:${config.port}`,
|
|
@@ -131,11 +126,17 @@ export async function stopCloudflareTunnel() {
|
|
|
131
126
|
}
|
|
132
127
|
_url = null;
|
|
133
128
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
129
|
+
function isCloudflaredInPath() {
|
|
130
|
+
try {
|
|
131
|
+
execSync("which cloudflared", { stdio: "ignore" });
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
137
138
|
export async function isCloudflareInstalled() {
|
|
138
|
-
return findCloudflared() !== null;
|
|
139
|
+
return findCloudflared() !== null || isCloudflaredInPath();
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
142
|
* Get the current Cloudflare tunnel URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-mobile",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"description": "Mobile push notification plugin for OpenCode - enables push notifications via Expo for mobile devices",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
"import": "./dist/src/cli/install.js",
|
|
29
29
|
"types": "./dist/src/cli/install.d.ts"
|
|
30
30
|
},
|
|
31
|
+
"./update": {
|
|
32
|
+
"import": "./dist/src/cli/update.js",
|
|
33
|
+
"types": "./dist/src/cli/update.d.ts"
|
|
34
|
+
},
|
|
31
35
|
"./tunnel-setup": {
|
|
32
36
|
"import": "./dist/src/cli/tunnel-setup.js",
|
|
33
37
|
"types": "./dist/src/cli/tunnel-setup.d.ts"
|