opencode-mobile 1.2.13 → 1.3.1

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/bin/audit CHANGED
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * OpenCode Mobile Plugin - Endpoint Audit Utility
5
- * Run with: npx opencode-mobile audit
4
+ * OpenCode Mobile Plugin - CLI Entry Point
5
+ * Run with: npx opencode-mobile [COMMAND]
6
6
  */
7
7
 
8
8
  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
+ import { main as uninstallMain } from "../dist/src/cli/uninstall.js";
11
12
 
12
13
  const args = process.argv.slice(2);
13
14
  const subcommand = args[0];
@@ -28,7 +29,36 @@ const run = async () => {
28
29
  return;
29
30
  }
30
31
 
31
- await auditMain(args);
32
+ if (subcommand === "uninstall") {
33
+ await uninstallMain(args.slice(1));
34
+ return;
35
+ }
36
+
37
+ // Show help for unknown commands or no command
38
+ if (subcommand === "--help" || subcommand === "-h" || !subcommand) {
39
+ console.log(`
40
+ OpenCode Mobile Plugin
41
+
42
+ USAGE:
43
+ npx opencode-mobile <command> [options]
44
+
45
+ COMMANDS:
46
+ install Install the plugin globally
47
+ uninstall Remove the plugin globally
48
+ audit Run endpoint audit
49
+ qr Show QR code for mobile connection
50
+
51
+ EXAMPLES:
52
+ npx opencode-mobile install
53
+ npx opencode-mobile uninstall --yes
54
+ npx opencode-mobile audit --tunnel-only
55
+ `);
56
+ return;
57
+ }
58
+
59
+ console.error(`Unknown command: ${subcommand}`);
60
+ console.error("Run 'npx opencode-mobile --help' for usage.");
61
+ process.exit(1);
32
62
  };
33
63
 
34
64
  run().catch((error) => {
package/bin/uninstall ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * OpenCode Mobile Plugin - Uninstall Entry Point
5
+ * Run with: npx opencode-mobile-uninstall
6
+ */
7
+
8
+ import { main } from "../dist/src/cli/uninstall.js";
9
+
10
+ main().catch((error) => {
11
+ console.error("Fatal error:", error instanceof Error ? error.message : String(error));
12
+ process.exit(1);
13
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkCH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2pBlD,eAAO,MAAM,sBAAsB,EAAE,MA+JpC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkCH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6qBlD,eAAO,MAAM,sBAAsB,EAAE,MAwIpC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -30,7 +30,6 @@ const debugLog = (...args) => {
30
30
  debugLog("\n=== opencode-mobile DEV ===");
31
31
  debugLog("LAN-only architecture: plugin handles push tokens, tunnel goes to OpenCode directly");
32
32
  debugLog("[PushPlugin][Mobile] Entry loaded: index.ts");
33
- import * as path from "path";
34
33
  import http from "http";
35
34
  import { tool } from "@opencode-ai/plugin";
36
35
  import { formatNotification } from "./src/push/formatter";
@@ -38,7 +37,8 @@ import { sendPush } from "./src/push/sender";
38
37
  import { loadTokens, saveTokens } from "./src/push/token-store";
39
38
  import { startLocaltunnel, stopLocaltunnel, getLocaltunnelUrl } from "./src/tunnel/localtunnel";
40
39
  import { displayQRCode, generateQRCodeAscii, generateQRCodeAsciiPlain } from "./src/tunnel/qrcode";
41
- import { startNgrokTunnel, stopNgrokTunnel } from "./src/tunnel/ngrok";
40
+ import { startNgrokTunnel, stopNgrokTunnel, isNgrokInstalled } from "./src/tunnel/ngrok";
41
+ import { startCloudflareTunnel, stopCloudflareTunnel, getCloudflareUrl, isCloudflareInstalled } from "./src/tunnel/cloudflare";
42
42
  import { updateTunnelMetadata, clearTunnelMetadata, loadTunnelMetadata } from "./src/tunnel/metadata";
43
43
  function logPluginVersion(ctx) {
44
44
  const client = ctx?.client;
@@ -66,6 +66,92 @@ function logPluginVersion(ctx) {
66
66
  // Server state
67
67
  let httpServer = null;
68
68
  let activeTunnel = null;
69
+ // Tunnel provider configuration
70
+ const VALID_PROVIDERS = ["cloudflare", "ngrok", "localtunnel", "auto"];
71
+ /**
72
+ * Get the configured tunnel provider from environment variable
73
+ * Defaults to 'auto' if not set or invalid
74
+ */
75
+ function getTunnelProvider() {
76
+ const provider = process.env.TUNNEL_PROVIDER?.toLowerCase();
77
+ if (VALID_PROVIDERS.includes(provider)) {
78
+ return provider;
79
+ }
80
+ return "auto";
81
+ }
82
+ /**
83
+ * Start a tunnel with fallback logic based on TUNNEL_PROVIDER env var
84
+ * - 'auto': Try cloudflare → ngrok → localtunnel (in order of trustworthiness)
85
+ * - Specific provider: Try only that provider
86
+ */
87
+ async function startTunnelWithFallback(port) {
88
+ const provider = getTunnelProvider();
89
+ if (provider === "auto") {
90
+ console.log("[Tunnel] Auto mode: selecting provider in order of security (cloudflare → ngrok → localtunnel)...");
91
+ // Try Cloudflare first (most secure)
92
+ if (await isCloudflareInstalled()) {
93
+ try {
94
+ console.log("[Tunnel] Auto-selecting Cloudflare (most secure)...");
95
+ const tunnel = await startCloudflareTunnel({ port });
96
+ console.log("[Tunnel] Cloudflare started:", tunnel.url);
97
+ return tunnel;
98
+ }
99
+ catch (error) {
100
+ console.log("[Tunnel] Cloudflare failed:", error.message);
101
+ }
102
+ }
103
+ else {
104
+ console.log("[Tunnel] Cloudflare not installed, skipping...");
105
+ }
106
+ // Try Ngrok second
107
+ if (await isNgrokInstalled()) {
108
+ try {
109
+ console.log("[Tunnel] Auto-selecting Ngrok...");
110
+ const tunnel = await startNgrokTunnel({ port });
111
+ console.log("[Tunnel] Ngrok started:", tunnel.url);
112
+ return tunnel;
113
+ }
114
+ catch (error) {
115
+ console.log("[Tunnel] Ngrok failed:", error.message);
116
+ }
117
+ }
118
+ else {
119
+ console.log("[Tunnel] Ngrok not installed, skipping...");
120
+ }
121
+ // Fall back to Localtunnel (always available, least secure)
122
+ console.log("[Tunnel] Auto-selecting Localtunnel (fallback - always available)...");
123
+ const tunnel = await startLocaltunnel({ port });
124
+ console.log("[Tunnel] Localtunnel started:", tunnel.url);
125
+ return tunnel;
126
+ }
127
+ // Specific provider requested
128
+ console.log(`[Tunnel] Using specific provider: ${provider}`);
129
+ switch (provider) {
130
+ case "cloudflare": {
131
+ if (!(await isCloudflareInstalled())) {
132
+ throw new Error("Cloudflare tunnel requested but cloudflared is not installed. Install from https://github.com/cloudflare/cloudflared");
133
+ }
134
+ const tunnel = await startCloudflareTunnel({ port });
135
+ console.log("[Tunnel] Cloudflare started:", tunnel.url);
136
+ return tunnel;
137
+ }
138
+ case "ngrok": {
139
+ if (!(await isNgrokInstalled())) {
140
+ throw new Error("Ngrok tunnel requested but @ngrok/ngrok is not installed. Run: npm install @ngrok/ngrok");
141
+ }
142
+ const tunnel = await startNgrokTunnel({ port });
143
+ console.log("[Tunnel] Ngrok started:", tunnel.url);
144
+ return tunnel;
145
+ }
146
+ case "localtunnel": {
147
+ const tunnel = await startLocaltunnel({ port });
148
+ console.log("[Tunnel] Localtunnel started:", tunnel.url);
149
+ return tunnel;
150
+ }
151
+ default:
152
+ throw new Error(`Unknown tunnel provider: ${provider}. Valid options: ${VALID_PROVIDERS.join(", ")}`);
153
+ }
154
+ }
69
155
  function getOpenCodeBaseUrl(ctx) {
70
156
  const serverUrl = ctx?.serverUrl;
71
157
  if (serverUrl instanceof URL) {
@@ -209,83 +295,7 @@ const cors = {
209
295
  "Access-Control-Allow-Methods": "GET, POST, DELETE, OPTIONS",
210
296
  "Access-Control-Allow-Headers": "Content-Type",
211
297
  };
212
- const MOBILE_COMMAND = "mobile";
213
298
  const TEST_PUSH_ENABLED = process.env.OPENCODE_MOBILE_TEST_PUSH === "1";
214
- function getMobileCommandMarkdown() {
215
- return [
216
- "---",
217
- "description: OpenCode Mobile (QR + push token)",
218
- "---",
219
- "Call the `mobile` tool.",
220
- "",
221
- "Command arguments: $ARGUMENTS",
222
- "",
223
- "- If $ARGUMENTS is non-empty, call the tool with { token: \"$ARGUMENTS\" }.",
224
- "- If $ARGUMENTS is empty, call the tool with no args to print the QR.",
225
- "",
226
- "Token format:",
227
- "- `ExponentPushToken[xxxxxxxxxxxxxx]` - Register push token only",
228
- "- `ExponentPushToken[xxx] ServerUrl[http://...]` - Register with custom server URL",
229
- "",
230
- "When to use ServerUrl:",
231
- "- Use when the mobile app is connected directly to a local server",
232
- "- The serverUrl will be used for notification deep links instead of tunnel",
233
- "- Omit when using tunnel connection (default behavior)",
234
- "",
235
- "Important:",
236
- "- Do not output analysis/thoughts.",
237
- "- Only call the tool; return no extra text.",
238
- "",
239
- "Examples:",
240
- "- `/mobile` - Show QR code for tunnel connection",
241
- "- `/mobile ExponentPushToken[xxxxxxxxxxxxxx]` - Register token",
242
- "- `/mobile ExponentPushToken[xxx] ServerUrl[http://192.168.1.100:4096]` - Register with custom URL",
243
- ].join("\n");
244
- }
245
- async function ensureMobileCommandExists(ctx) {
246
- const rawCtx = ctx;
247
- const directory = rawCtx?.directory ?? rawCtx?.worktree;
248
- if (!directory) {
249
- return;
250
- }
251
- // Guard: In some OpenCode execution contexts, directory can be `/`.
252
- // Never attempt to write `/.opencode/...` (will throw EROFS).
253
- if (directory === path.parse(directory).root) {
254
- return;
255
- }
256
- // Skip Command.list API - it's unreliable and times out frequently.
257
- // Use filesystem check directly, which is faster and more reliable.
258
- try {
259
- const commandsDir = path.join(directory, ".opencode", "commands");
260
- const commandPath = path.join(commandsDir, `${MOBILE_COMMAND}.md`);
261
- const exists = await fs.promises
262
- .access(commandPath)
263
- .then(() => true)
264
- .catch(() => false);
265
- if (exists) {
266
- // Best-effort auto-update for our own generated command.
267
- try {
268
- const current = await fs.promises.readFile(commandPath, "utf-8");
269
- const next = getMobileCommandMarkdown();
270
- const looksLikeOurs = current.includes("description: OpenCode Mobile (QR + push token)");
271
- if (looksLikeOurs && current.trim() !== next.trim()) {
272
- await fs.promises.writeFile(commandPath, next, "utf-8");
273
- console.log(`[PushPlugin] Updated /${MOBILE_COMMAND} command at ${commandPath}`);
274
- }
275
- }
276
- catch {
277
- // Ignore; command file may be locked or user-managed.
278
- }
279
- return;
280
- }
281
- await fs.promises.mkdir(commandsDir, { recursive: true });
282
- await fs.promises.writeFile(commandPath, getMobileCommandMarkdown(), "utf-8");
283
- console.log(`[PushPlugin] Installed /${MOBILE_COMMAND} command at ${commandPath}`);
284
- }
285
- catch (error) {
286
- console.error(`[PushPlugin] Failed to install /${MOBILE_COMMAND} command:`, error);
287
- }
288
- }
289
299
  function formatMobileQrMessage(url, qr) {
290
300
  if (!qr) {
291
301
  return url;
@@ -471,16 +481,7 @@ async function handleTunnel(req, res, openCodePort) {
471
481
  const data = JSON.parse(body);
472
482
  const targetPort = data.port || openCodePort;
473
483
  console.log("[Tunnel] Starting to port:", targetPort);
474
- let tunnel;
475
- try {
476
- tunnel = await startNgrokTunnel({ port: targetPort });
477
- console.log("[Tunnel] Ngrok started:", tunnel.url);
478
- }
479
- catch (ngrokError) {
480
- console.log("[Tunnel] Ngrok failed, trying localtunnel...");
481
- tunnel = await startLocaltunnel({ port: targetPort });
482
- console.log("[Tunnel] Localtunnel started:", tunnel.url);
483
- }
484
+ const tunnel = await startTunnelWithFallback(targetPort);
484
485
  activeTunnel = tunnel;
485
486
  await displayQRCode(tunnel.url);
486
487
  // Save tunnel metadata to .config/opencode/tunnel.json
@@ -506,7 +507,10 @@ async function handleTunnel(req, res, openCodePort) {
506
507
  }
507
508
  if (req.url === "/tunnel" && req.method === "DELETE") {
508
509
  try {
509
- if (activeTunnel?.provider === "ngrok") {
510
+ if (activeTunnel?.provider === "cloudflare") {
511
+ await stopCloudflareTunnel();
512
+ }
513
+ else if (activeTunnel?.provider === "ngrok") {
510
514
  await stopNgrokTunnel();
511
515
  }
512
516
  else {
@@ -541,6 +545,17 @@ async function handleTunnel(req, res, openCodePort) {
541
545
  }));
542
546
  return;
543
547
  }
548
+ const cloudflareUrl = getCloudflareUrl();
549
+ if (cloudflareUrl) {
550
+ res.writeHead(200, { ...cors, "Content-Type": "application/json" });
551
+ res.end(JSON.stringify({
552
+ type: "cloudflare",
553
+ url: cloudflareUrl,
554
+ tunnelId: cloudflareUrl.split("//")[1]?.split(".")[0] || "cloudflare",
555
+ metadata: storedMetadata
556
+ }));
557
+ return;
558
+ }
544
559
  const localtunnelUrl = getLocaltunnelUrl();
545
560
  if (localtunnelUrl) {
546
561
  res.writeHead(200, { ...cors, "Content-Type": "application/json" });
@@ -631,11 +646,6 @@ export const PushNotificationPlugin = async (ctx) => {
631
646
  debugLog("[PushPlugin] isAttachMode:", isAttachMode);
632
647
  debugLog("[PushPlugin] isServeMode:", isServeMode);
633
648
  debugLog("[PushPlugin] process.argv:", process.argv.join(", "));
634
- // Never block plugin init on filesystem operations.
635
- // This can hang on slow or flaky mounts (eg network filesystems).
636
- setTimeout(() => {
637
- void ensureMobileCommandExists(ctx);
638
- }, 0);
639
649
  if (!isServeMode) {
640
650
  console.log("[opencode-mobile] Plugin init OK; skipping (not in 'serve' mode). " +
641
651
  "Run: opencode serve ...");
@@ -668,26 +678,15 @@ export const PushNotificationPlugin = async (ctx) => {
668
678
  // Auto-start tunnel pointing to OpenCode DIRECTLY (not through plugin!)
669
679
  debugLog("[DEV] Auto-starting tunnel...");
670
680
  try {
671
- const tunnel = await startNgrokTunnel({ port: openCodePort });
681
+ const tunnel = await startTunnelWithFallback(openCodePort);
672
682
  debugLog("[DEV] Tunnel started:", tunnel.url);
673
683
  activeTunnel = tunnel;
674
684
  await displayQRCode(tunnel.url);
675
685
  // Save tunnel metadata to .config/opencode/tunnel.json
676
686
  updateTunnelMetadata(tunnel.url, tunnel.tunnelId, tunnel.provider, tunnel.port, openCodePort);
677
687
  }
678
- catch (ngrokError) {
679
- debugLog("[DEV] Ngrok failed, trying localtunnel...");
680
- try {
681
- const tunnel = await startLocaltunnel({ port: openCodePort });
682
- debugLog("[DEV] Tunnel started:", tunnel.url);
683
- activeTunnel = tunnel;
684
- await displayQRCode(tunnel.url);
685
- // Save tunnel metadata to .config/opencode/tunnel.json
686
- updateTunnelMetadata(tunnel.url, tunnel.tunnelId, tunnel.provider, tunnel.port, openCodePort);
687
- }
688
- catch (localError) {
689
- console.error("[DEV] All tunnels failed:", localError.message);
690
- }
688
+ catch (tunnelError) {
689
+ console.error("[DEV] Failed to start tunnel:", tunnelError.message);
691
690
  }
692
691
  return {
693
692
  tool: {
@@ -723,7 +722,7 @@ export const PushNotificationPlugin = async (ctx) => {
723
722
  debugLog("[PushPlugin] command.executed payload:", JSON.stringify(event.properties));
724
723
  const props = event.properties ?? {};
725
724
  if (TEST_PUSH_ENABLED &&
726
- props?.name === MOBILE_COMMAND &&
725
+ props?.name === "mobile" &&
727
726
  typeof props?.arguments === "string") {
728
727
  void sendPush({
729
728
  title: "OpenCode Mobile",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,2 @@
1
- /**
2
- * CLI install command - register plugin in global OpenCode config
3
- */
4
1
  export declare function main(args?: string[]): Promise<void>;
5
2
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6CH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhF"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAiFA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChF"}
@@ -1,12 +1,13 @@
1
- /**
2
- * CLI install command - register plugin in global OpenCode config
3
- */
4
- import { installPluginToGlobalOpenCodeConfig } from "./opencode-config.js";
1
+ import { installPluginToGlobalOpenCodeConfig, installGlobalCommand } from "./opencode-config.js";
2
+ import { MOBILE_COMMAND_NAME, getMobileCommandMarkdown } from "./mobile-command.js";
3
+ import { spawn } from "child_process";
5
4
  const PLUGIN_SPEC = "opencode-mobile@latest";
6
5
  function parseArgs(args) {
7
6
  const options = {
8
7
  help: false,
9
8
  dryRun: false,
9
+ skipTunnelSetup: false,
10
+ skipCommandInstall: false,
10
11
  };
11
12
  for (const arg of args) {
12
13
  if (arg === "--help" || arg === "-h") {
@@ -15,6 +16,12 @@ function parseArgs(args) {
15
16
  else if (arg === "--dry-run") {
16
17
  options.dryRun = true;
17
18
  }
19
+ else if (arg === "--skip-tunnel-setup") {
20
+ options.skipTunnelSetup = true;
21
+ }
22
+ else if (arg === "--skip-command-install") {
23
+ options.skipCommandInstall = true;
24
+ }
18
25
  }
19
26
  return options;
20
27
  }
@@ -26,33 +33,81 @@ USAGE:
26
33
  npx opencode-mobile install [OPTIONS]
27
34
 
28
35
  OPTIONS:
29
- --dry-run Print changes without writing files
30
- -h, --help Show this help message
36
+ --dry-run Print changes without writing files
37
+ --skip-tunnel-setup Skip tunnel provider setup
38
+ --skip-command-install Skip installing the /mobile command globally
39
+ -h, --help Show this help message
31
40
 
32
41
  WHAT IT DOES:
33
- Adds "${PLUGIN_SPEC}" to the "plugin" array in your global OpenCode config:
42
+ 1. Adds "${PLUGIN_SPEC}" to the "plugin" array in your global OpenCode config
43
+ 2. Installs the "/mobile" command globally (available in all projects)
44
+ 3. (Optional) Runs tunnel provider setup for mobile push notifications
45
+
46
+ CONFIG LOCATION:
34
47
  ~/.config/opencode/opencode.json (or opencode.jsonc)
48
+
49
+ COMMAND LOCATION:
50
+ ~/.config/opencode/commands/mobile.md
35
51
  `);
36
52
  }
53
+ async function runTunnelSetup() {
54
+ return new Promise((resolve) => {
55
+ console.log("\nšŸš€ Setting up tunnel provider for mobile notifications...\n");
56
+ const child = spawn("node", ["./dist/src/cli/tunnel-setup.js"], {
57
+ stdio: "inherit",
58
+ cwd: process.cwd(),
59
+ });
60
+ child.on("close", (code) => {
61
+ if (code !== 0) {
62
+ console.log("\nāš ļø Tunnel setup exited with code", code);
63
+ console.log(" You can run it later with: npx opencode-mobile tunnel-setup\n");
64
+ }
65
+ resolve();
66
+ });
67
+ });
68
+ }
37
69
  export async function main(args = process.argv.slice(2)) {
38
70
  const options = parseArgs(args);
39
71
  if (options.help) {
40
72
  showHelp();
41
73
  return;
42
74
  }
43
- const result = installPluginToGlobalOpenCodeConfig(PLUGIN_SPEC, { dryRun: options.dryRun });
44
75
  const prefix = options.dryRun ? "[Dry Run] " : "";
76
+ // Install plugin to global config
77
+ const result = installPluginToGlobalOpenCodeConfig(PLUGIN_SPEC, { dryRun: options.dryRun });
45
78
  if (result.action === "noop") {
46
79
  console.log(`${prefix}āœ… ${PLUGIN_SPEC} already present in ${result.configPath}`);
47
- return;
48
80
  }
49
- if (result.action === "created") {
81
+ else if (result.action === "created") {
50
82
  console.log(`${prefix}āœ… Created ${result.configPath}`);
83
+ console.log(`${prefix} plugin: ${JSON.stringify(result.pluginsAfter)}`);
51
84
  }
52
85
  else {
53
86
  console.log(`${prefix}āœ… Updated ${result.configPath}`);
87
+ console.log(`${prefix} plugin: ${JSON.stringify(result.pluginsAfter)}`);
88
+ }
89
+ // Install global command
90
+ if (!options.skipCommandInstall) {
91
+ const commandContent = getMobileCommandMarkdown();
92
+ const commandResult = installGlobalCommand(MOBILE_COMMAND_NAME, commandContent, {
93
+ dryRun: options.dryRun,
94
+ });
95
+ if (commandResult.action === "created") {
96
+ console.log(`${prefix}āœ… Created /${MOBILE_COMMAND_NAME} command at ${commandResult.commandPath}`);
97
+ }
98
+ else if (commandResult.action === "updated") {
99
+ console.log(`${prefix}āœ… Updated /${MOBILE_COMMAND_NAME} command at ${commandResult.commandPath}`);
100
+ }
101
+ else {
102
+ console.log(`${prefix}āœ… /${MOBILE_COMMAND_NAME} command already up to date`);
103
+ }
104
+ }
105
+ // Run tunnel setup
106
+ if (!options.dryRun && !options.skipTunnelSetup) {
107
+ await runTunnelSetup();
54
108
  }
55
- console.log(`${prefix} plugin: ${JSON.stringify(result.pluginsAfter)}`);
56
- console.log(`${prefix}Next: restart OpenCode (run \`opencode\`) to load/install plugins.`);
109
+ console.log(`${prefix}\nšŸŽ‰ Installation complete!`);
110
+ console.log(`${prefix} Restart OpenCode (run \`opencode\`) to load the plugin.`);
111
+ console.log(`${prefix} Use \`/mobile\` in any project to access mobile features.`);
57
112
  }
58
113
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAO7C,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;KACd,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,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;UAWJ,WAAW;;CAEpB,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;IAChC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,mCAAmC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAElD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,WAAW,uBAAuB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,oEAAoE,CAAC,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared utility for the mobile command
3
+ * Contains the command definition and helper functions
4
+ */
5
+ export declare const MOBILE_COMMAND_NAME = "mobile";
6
+ export declare function getMobileCommandMarkdown(): string;
7
+ //# sourceMappingURL=mobile-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-command.d.ts","sourceRoot":"","sources":["../../../src/cli/mobile-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,wBAAgB,wBAAwB,IAAI,MAAM,CA8BjD"}