tapflow 0.8.0-next.0 → 0.8.0-next.2

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.
@@ -1,4 +1,5 @@
1
1
  export declare function cmdDoctor(opts?: {
2
2
  json?: boolean;
3
+ platform?: string;
3
4
  }): Promise<void>;
4
5
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAuBA,wBAAsB,SAAS,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC5E"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAuBA,wBAAsB,SAAS,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC/F"}
@@ -1,5 +1,5 @@
1
1
  import { runDoctorChecks } from '../lib/doctor.js';
2
- import { banner, step, GREEN, RED, YELLOW, BOLD, DIM, R } from '../lib/print.js';
2
+ import { banner, step, warn, GREEN, RED, YELLOW, BOLD, DIM, R } from '../lib/print.js';
3
3
  function printChecks(checks) {
4
4
  for (const check of checks) {
5
5
  if (check.ok) {
@@ -23,7 +23,11 @@ function hasFailures(result) {
23
23
  return all.some((c) => !c.ok && !c.warn);
24
24
  }
25
25
  export async function cmdDoctor(opts = {}) {
26
- const result = await runDoctorChecks();
26
+ if (opts.platform && opts.platform !== 'ios' && opts.platform !== 'android') {
27
+ warn(`Unknown platform: ${opts.platform}. Supported: ios, android`);
28
+ process.exit(1);
29
+ }
30
+ const result = await runDoctorChecks(opts.platform);
27
31
  if (opts.json) {
28
32
  const ok = !hasFailures(result);
29
33
  console.log(JSON.stringify({ ok, common: result.common, ios: result.ios, android: result.android }, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAgCA,wBAAsB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/D"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAuCA,wBAAsB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC/D"}
@@ -1,17 +1,25 @@
1
+ import { confirm, isCancel } from '@clack/prompts';
1
2
  import { runSetupAndroid, runSetupIos } from '../lib/setup.js';
2
3
  import { resolveAdb } from '../lib/doctor.js';
3
- import { warn, BOLD, GREEN, RED, YELLOW, DIM, R } from '../lib/print.js';
4
+ import { warn, banner, BOLD, GREEN, RED, YELLOW, DIM, R } from '../lib/print.js';
4
5
  const RUNNERS = {
5
6
  ios: runSetupIos,
6
7
  android: runSetupAndroid,
7
8
  };
8
9
  // 인자 없이 실행 시 환경을 보고 가능한 플랫폼을 고른다.
9
- function detectPlatforms() {
10
+ // macOS면 iOS, adb가 있으면 Android 자동. adb가 없어도 TTY면 Android 세팅 의향을 묻는다.
11
+ async function detectPlatforms() {
10
12
  const platforms = [];
11
13
  if (process.platform === 'darwin')
12
14
  platforms.push('ios');
13
- if (resolveAdb() !== null)
15
+ if (resolveAdb() !== null) {
14
16
  platforms.push('android');
17
+ }
18
+ else if (process.platform === 'darwin' && process.stdout.isTTY) {
19
+ const also = await confirm({ message: 'Also set up Android? (adb not found)' });
20
+ if (!isCancel(also) && also)
21
+ platforms.push('android');
22
+ }
15
23
  return platforms;
16
24
  }
17
25
  function printResults(results) {
@@ -43,16 +51,28 @@ export async function cmdSetup(platform) {
43
51
  targets = [platform];
44
52
  }
45
53
  else {
46
- targets = detectPlatforms();
54
+ targets = await detectPlatforms();
47
55
  if (targets.length === 0) {
48
56
  warn('No supported platform detected. Run: tapflow setup ios | android');
49
57
  return;
50
58
  }
51
59
  }
60
+ // 각 플랫폼 실행 후, 마지막에 relay/agent READY 톤의 요약 배너로 준비 상태를 알린다.
61
+ const summary = [];
62
+ let allReady = true;
52
63
  for (const t of targets) {
53
64
  console.log(`\n${BOLD}tapflow setup ${t}${R}\n`);
54
- printResults(await RUNNERS[t]());
65
+ const results = await RUNNERS[t]();
66
+ printResults(results);
67
+ const pending = results.filter((r) => !r.ok);
68
+ if (pending.length === 0) {
69
+ summary.push(`${t}: ready`);
70
+ }
71
+ else {
72
+ allReady = false;
73
+ summary.push(`${t}: incomplete — ${pending.map((r) => r.label).join(', ')}`);
74
+ }
55
75
  }
56
- console.log();
76
+ banner(allReady ? 'success' : 'error', allReady ? 'SETUP COMPLETE' : 'SETUP INCOMPLETE', summary);
57
77
  }
58
78
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAwB,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAExE,MAAM,OAAO,GAAqD;IAChE,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;CACzB,CAAA;AAED,kCAAkC;AAClC,SAAS,eAAe;IACtB,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,UAAU,EAAE,KAAK,IAAI;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,OAA0B;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC1C,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YACxC,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAiB;IAC9C,IAAI,OAAiB,CAAA;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,oCAAoC,QAAQ,2BAA2B,CAAC,CAAA;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAAe,EAAE,CAAA;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,kEAAkE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChD,YAAY,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAwB,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAEhF,MAAM,OAAO,GAAqD;IAChE,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;CACzB,CAAA;AAED,kCAAkC;AAClC,qEAAqE;AACrE,KAAK,UAAU,eAAe;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAA;QAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,OAA0B;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC1C,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YACxC,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAiB;IAC9C,IAAI,OAAiB,CAAA;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,oCAAoC,QAAQ,2BAA2B,CAAC,CAAA;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,eAAe,EAAE,CAAA;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,kEAAkE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAClC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,KAAK,CAAA;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;AACnG,CAAC"}
package/dist/index.js CHANGED
@@ -36,9 +36,9 @@ cli
36
36
  process.exit(1);
37
37
  });
38
38
  cli
39
- .command('doctor', 'Check system prerequisites')
39
+ .command('doctor [platform]', 'Check system prerequisites (ios | android; omit for all)')
40
40
  .option('--json', 'Output machine-readable JSON')
41
- .action((opts) => cmdDoctor(opts));
41
+ .action((platform, opts) => cmdDoctor({ ...opts, platform }));
42
42
  cli
43
43
  .command('setup [platform]', 'Set up the environment (ios | android; omit to auto-detect)')
44
44
  .action((platform) => cmdSetup(platform));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface DoctorResult {
9
9
  ios: DoctorCheck[] | null;
10
10
  android: DoctorCheck[] | null;
11
11
  }
12
- export declare function runDoctorChecks(): Promise<DoctorResult>;
12
+ export declare function runDoctorChecks(platform?: string): Promise<DoctorResult>;
13
13
  export interface AdbResolution {
14
14
  path: string;
15
15
  inPath: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;CAC9B;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAS7D;AAkFD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,UAAU,IAAI,aAAa,GAAG,IAAI,CAWjD"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;CAC9B;AAGD,wBAAsB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAU9E;AAoHD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,UAAU,IAAI,aAAa,GAAG,IAAI,CAWjD"}
@@ -2,29 +2,62 @@ import { execSync } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
4
  import { join } from 'node:path';
5
- export async function runDoctorChecks() {
5
+ // platform: 'ios' | 'android' 지정 시 해당 플랫폼만. 없으면 자동(iOS는 macOS에서만, Android은 항상).
6
+ export async function runDoctorChecks(platform) {
6
7
  const isMac = process.platform === 'darwin';
7
- const adb = resolveAdb();
8
+ const wantIos = platform === 'ios' || (!platform && isMac);
9
+ const wantAndroid = platform === 'android' || !platform;
8
10
  return {
9
11
  common: [checkNodeVersion()],
10
- ios: isMac ? [checkXcode(), checkSimctl(), checkBootedSimulator()] : null,
11
- android: adb !== null ? buildAndroidChecks(adb) : null,
12
+ ios: wantIos ? buildIosChecks(isMac) : null,
13
+ android: wantAndroid ? buildAndroidChecks(resolveAdb()) : null,
12
14
  };
13
15
  }
16
+ function buildIosChecks(isMac) {
17
+ if (!isMac) {
18
+ return [{ label: 'iOS', ok: false, warn: true, detail: 'iOS testing requires macOS.' }];
19
+ }
20
+ return [checkXcode(), checkSimctl(), checkBootedSimulator()];
21
+ }
22
+ // adb가 없어도 섹션을 숨기지 않고 진단을 노출한다(Android를 세팅하려는 사용자가 볼 수 있도록).
23
+ // iOS(Xcode / simctl / Simulator)와 대칭: Android SDK / adb / AVD.
14
24
  function buildAndroidChecks(adb) {
15
- // adb가 PATH에 있으면 명령은 그대로 'adb', 표준 위치 fallback이면 절대경로로 실행
25
+ return [checkAndroidSdk(), checkAdbStatus(adb), checkAvdAvailable()];
26
+ }
27
+ function androidSdkDir() {
28
+ const candidates = [
29
+ process.env.ANDROID_HOME,
30
+ process.env.ANDROID_SDK_ROOT,
31
+ join(homedir(), 'Library', 'Android', 'sdk'), // macOS
32
+ join(homedir(), 'Android', 'Sdk'), // Linux
33
+ ];
34
+ for (const c of candidates) {
35
+ if (c && existsSync(join(c, 'cmdline-tools', 'latest', 'bin', 'sdkmanager')))
36
+ return c;
37
+ }
38
+ return null;
39
+ }
40
+ function checkAndroidSdk() {
41
+ const dir = androidSdkDir();
42
+ if (dir) {
43
+ return { label: `Android SDK: ${dir}`, ok: true };
44
+ }
45
+ return { label: 'Android SDK', ok: false, detail: 'Android SDK not found. Run: tapflow setup android' };
46
+ }
47
+ function checkAdbStatus(adb) {
48
+ if (!adb) {
49
+ // 미설치는 iOS(Xcode)와 동일하게 fail(✗)로 — setup으로 해결 가능함을 안내.
50
+ return { label: 'adb', ok: false, detail: 'adb not found. Run: tapflow setup android' };
51
+ }
16
52
  if (adb.inPath) {
17
- return [checkAdb(adb.path), checkBootedAvd('adb')];
53
+ return checkAdb(adb.path);
18
54
  }
19
- return [
20
- {
21
- label: 'adb (not in PATH)',
22
- ok: false,
23
- warn: true,
24
- detail: `adb found at ${adb.path} but not in PATH. Run: tapflow setup android`,
25
- },
26
- checkBootedAvd(adb.path),
27
- ];
55
+ return {
56
+ label: 'adb (not in PATH)',
57
+ ok: false,
58
+ warn: true,
59
+ detail: `adb found at ${adb.path} but not in PATH. Run: tapflow setup android`,
60
+ };
28
61
  }
29
62
  function checkXcode() {
30
63
  try {
@@ -60,20 +93,20 @@ function checkSimctl() {
60
93
  };
61
94
  }
62
95
  }
96
+ // 부팅은 QA Session 접속 시 relay가 on-demand로 한다 — 미부팅은 정상, 디바이스 존재만 확인.
63
97
  function checkBootedSimulator() {
64
98
  try {
65
99
  const raw = execSync('xcrun simctl list devices --json', { encoding: 'utf8', stdio: 'pipe' });
66
100
  const data = JSON.parse(raw);
67
101
  const allDevices = Object.values(data.devices).flat();
68
- const booted = allDevices.find((d) => d.state === 'Booted');
69
- if (booted) {
70
- return { label: `Simulator booted: ${booted.name}`, ok: true };
102
+ if (allDevices.length === 0) {
103
+ return { label: 'Simulator', ok: false, warn: true, detail: 'No simulator available. Run: tapflow setup ios' };
71
104
  }
72
- const available = allDevices.find((d) => d.state === 'Shutdown');
73
- const hint = available
74
- ? `No simulator is running. Run: tapflow boot "${available.name}"`
75
- : 'No simulator is running. Run: tapflow devices to see available simulators, then: tapflow boot "<name>"';
76
- return { label: 'Simulator', ok: false, warn: true, detail: hint };
105
+ const booted = allDevices.find((d) => d.state === 'Booted');
106
+ return {
107
+ label: booted ? `Simulator: ${booted.name} (booted)` : `Simulator available (${allDevices.length})`,
108
+ ok: true,
109
+ };
77
110
  }
78
111
  catch {
79
112
  return { label: 'Simulator', ok: false, detail: 'Could not query simulators. Is Xcode installed?' };
@@ -118,44 +151,18 @@ function standardAdbPaths() {
118
151
  function checkAdb(path) {
119
152
  return { label: `adb found: ${path}`, ok: true };
120
153
  }
121
- function checkBootedAvd(adbCmd) {
122
- try {
123
- const out = execSync(`${adbCmd} devices`, { encoding: 'utf8', stdio: 'pipe' });
124
- const lines = out.trim().split('\n').slice(1).filter(Boolean);
125
- const emulator = lines.find((l) => l.startsWith('emulator-'));
126
- if (!emulator) {
127
- const hint = listAvdHint();
128
- return {
129
- label: 'AVD',
130
- ok: false,
131
- warn: true,
132
- detail: hint
133
- ? `No running emulator. Run: emulator @${hint}`
134
- : 'No running emulator. Start an AVD from Android Studio > Device Manager.',
135
- };
136
- }
137
- const serial = emulator.split('\t')[0]?.trim() ?? '';
138
- try {
139
- const avdName = execSync(`${adbCmd} -s ${serial} emu avd name`, { encoding: 'utf8', stdio: 'pipe' })
140
- .split('\n')[0]
141
- ?.trim() ?? serial;
142
- return { label: `AVD: ${avdName}`, ok: true };
143
- }
144
- catch {
145
- return { label: `AVD: ${serial}`, ok: true };
146
- }
147
- }
148
- catch {
149
- return { label: 'AVD', ok: false, detail: 'Could not query running emulators.' };
150
- }
151
- }
152
- function listAvdHint() {
154
+ // 부팅은 relay on-demand가 한다 — AVD가 하나라도 존재하면 ok.
155
+ function checkAvdAvailable() {
153
156
  try {
154
157
  const out = execSync('emulator -list-avds', { encoding: 'utf8', stdio: 'pipe' }).trim();
155
- return out.split('\n')[0]?.trim() || null;
158
+ const avds = out ? out.split('\n').map((l) => l.trim()).filter(Boolean) : [];
159
+ if (avds.length > 0) {
160
+ return { label: `AVD available: ${avds[0]}`, ok: true };
161
+ }
156
162
  }
157
163
  catch {
158
- return null;
164
+ // emulator 미설치/조회 실패 — 아래 안내
159
165
  }
166
+ return { label: 'AVD', ok: false, warn: true, detail: 'No AVD found. Run: tapflow setup android' };
160
167
  }
161
168
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAehC,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiB;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAA;IAC3C,MAAM,OAAO,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAA;IAC1D,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAA;IAEvD,OAAO;QACL,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAC/D,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED,6DAA6D;AAC7D,gEAAgE;AAChE,SAAS,kBAAkB,CAAC,GAAyB;IACnD,OAAO,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY;QACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ;QACtD,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ;KAC5C,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAA;IAC3B,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mDAAmD,EAAE,CAAA;AACzG,CAAC;AAED,SAAS,cAAc,CAAC,GAAyB;IAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,uDAAuD;QACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAA;IACzF,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO;QACL,KAAK,EAAE,mBAAmB;QAC1B,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,gBAAgB,GAAG,CAAC,IAAI,8CAA8C;KAC/E,CAAA;AACH,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAClG,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;QAC/D,OAAO,EAAE,KAAK,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC1C,OAAO;gBACL,KAAK,EAAE,OAAO;gBACd,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,6HAA6H;aACtI,CAAA;QACH,CAAC;QACD,OAAO;YACL,KAAK,EAAE,OAAO;YACd,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,6EAA6E;SACtF,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,QAAQ,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACvD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,6BAA6B;SACtC,CAAA;IACH,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsF,CAAA;QACjH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAA;QAChH,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAA;QAC3D,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,wBAAwB,UAAU,CAAC,MAAM,GAAG;YACnG,EAAE,EAAE,IAAI;SACT,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAA;IACrG,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAChD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC9B,OAAO;QACL,KAAK,EAAE,QAAQ,OAAO,EAAE;QACxB,EAAE;QACF,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sDAAsD;KAChF,CAAA;AACH,CAAC;AAOD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/E,IAAI,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACtE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAA;IACjG,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAA;IACzG,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAA,CAAC,QAAQ;IACrF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAA,CAAC,QAAQ;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,EAAE,KAAK,EAAE,cAAc,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AAClD,CAAC;AAED,+CAA+C;AAC/C,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACvF,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACzD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAA;AACpG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAK1D,MAAM,MAAM,eAAe,GAAG,WAAW,CAAA;AASzC,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAQlE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAQ9D"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAK9C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAA;AA0DzC,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAUlE;AAgCD,wBAAsB,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAQ9D"}
package/dist/lib/setup.js CHANGED
@@ -1,32 +1,108 @@
1
1
  import { execSync, spawnSync } from 'node:child_process';
2
2
  import { existsSync, readFileSync, appendFileSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
- import { dirname, join } from 'node:path';
4
+ import { join } from 'node:path';
5
5
  import { confirm, text, isCancel } from '@clack/prompts';
6
- import { resolveAdb } from './doctor.js';
7
- import { createSpinner, step } from './print.js';
6
+ import { step } from './print.js';
8
7
  const PATH_MARKER_START = '# >>> tapflow android sdk >>>';
9
8
  const PATH_MARKER_END = '# <<< tapflow android sdk <<<';
10
- const STUDIO_APP = '/Applications/Android Studio.app';
9
+ // SDK를 표준 경로에 자기완결로 고정한다(cmdline-tools·platform-tools·emulator·system-image 모두 이 아래).
10
+ const ANDROID_SDK_DIR = join(homedir(), 'Library', 'Android', 'sdk');
11
11
  const XCODE_APP = '/Applications/Xcode.app';
12
12
  const XCODE_APPSTORE = 'https://apps.apple.com/app/xcode/id497799835';
13
13
  const XCODE_DEVELOPER_DIR = '/Applications/Xcode.app/Contents/Developer';
14
+ // Play Store 이미지는 crash 이슈가 있어 google_apis(non-playstore)를 쓴다.
15
+ const AVD_IMAGE_API = 'android-35';
16
+ // 폼팩터별로 해상도가 골고루 분포하도록 4종. device id는 SDK마다 다르므로 후보 중 가용한 첫 id 선택.
17
+ const AVD_SPECS = [
18
+ { name: 'tapflow-compact', deviceCandidates: ['pixel_5', 'pixel_4a', 'pixel_4'] },
19
+ { name: 'tapflow-phone', deviceCandidates: ['pixel_7', 'pixel_6', 'pixel'] },
20
+ { name: 'tapflow-large', deviceCandidates: ['pixel_7_pro', 'pixel_6_pro', 'pixel_4_xl'] },
21
+ { name: 'tapflow-tablet', deviceCandidates: ['pixel_tablet', 'pixel_c', 'Nexus 10'] },
22
+ ];
23
+ function androidSystemImage() {
24
+ const abi = process.arch === 'arm64' ? 'arm64-v8a' : 'x86_64';
25
+ return `system-images;${AVD_IMAGE_API};google_apis;${abi}`;
26
+ }
27
+ // 디바이스 부팅은 하지 않는다 — QA Session 접속 시 relay가 on-demand로 부팅한다.
28
+ // setup은 "부팅 가능한 디바이스/AVD가 준비된 상태"까지만 보장한다.
29
+ // confirm 후 sudo 명령들을 순차 실행(stdio 상속 → sudo가 비번 프롬프트를 직접 처리).
30
+ async function runSudo(message, commands) {
31
+ const proceed = await confirm({ message });
32
+ if (isCancel(proceed) || !proceed)
33
+ return false;
34
+ console.log();
35
+ for (const args of commands) {
36
+ const r = spawnSync('sudo', args, { stdio: 'inherit' });
37
+ if (r.status !== 0)
38
+ return false;
39
+ }
40
+ return true;
41
+ }
42
+ function isXcodeReady() {
43
+ try {
44
+ execSync('xcodebuild -version', { stdio: 'pipe' });
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ function hasIosDevice() {
52
+ try {
53
+ const raw = execSync('xcrun simctl list devices --json', { encoding: 'utf8', stdio: 'pipe' });
54
+ const data = JSON.parse(raw);
55
+ return Object.values(data.devices).some((arr) => arr.length > 0);
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ }
14
61
  export async function runSetupAndroid() {
15
62
  const results = [];
16
63
  const brew = await checkAndFixHomebrew();
17
64
  results.push(brew);
18
- results.push(checkAndFixAdb(brew.ok));
19
- results.push(await checkAndFixAndroidStudio(brew.ok));
20
- results.push(checkAndFixEmulator());
65
+ const jdk = await checkAndFixJdk(brew.ok);
66
+ results.push(jdk);
67
+ const sdk = await checkAndFixAndroidSdk(brew.ok, jdk.ok);
68
+ results.push(sdk);
69
+ results.push(await checkAndFixAvd(sdk.ok));
21
70
  return results;
22
71
  }
72
+ // sdkmanager/avdmanager는 SDK 위치를 ANDROID_HOME으로 알아야 한다(자기완결 SDK 기준).
73
+ function androidEnv() {
74
+ return { ...process.env, ANDROID_HOME: ANDROID_SDK_DIR, ANDROID_SDK_ROOT: ANDROID_SDK_DIR };
75
+ }
76
+ const SDK_CMDLINE_BIN = join(ANDROID_SDK_DIR, 'cmdline-tools', 'latest', 'bin');
77
+ // cmdline-tools가 SDK 안에 있고 platform-tools(adb)까지 갖춘 자기완결 상태인지.
78
+ function sdkSelfContained() {
79
+ return existsSync(join(SDK_CMDLINE_BIN, 'sdkmanager')) && existsSync(join(ANDROID_SDK_DIR, 'platform-tools', 'adb'));
80
+ }
81
+ function hasJava() {
82
+ try {
83
+ execSync('/usr/libexec/java_home', { stdio: 'pipe' });
84
+ return true;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ function whichSdkmanager() {
91
+ try {
92
+ const p = execSync('which sdkmanager', { encoding: 'utf8', stdio: 'pipe' }).trim();
93
+ return p || null;
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
23
99
  export async function runSetupIos() {
24
100
  const results = [];
25
101
  results.push(await checkAndFixHomebrew());
26
102
  const xcode = await checkAndFixXcode();
27
103
  results.push(xcode);
28
- results.push(checkXcodeActivation(xcode.ok));
29
- results.push(checkAndFixSimulator());
104
+ results.push(await checkXcodeActivation(xcode.ok));
105
+ results.push(await checkAndFixSimulator());
30
106
  return results;
31
107
  }
32
108
  async function checkAndFixXcode() {
@@ -72,70 +148,67 @@ async function checkAndFixXcode() {
72
148
  detail: 'Xcode not detected yet. Re-run `tapflow setup ios` after installing.',
73
149
  };
74
150
  }
75
- // 설치됨 ≠ 사용 가능: active developer dir / 라이선스 / first-launch 점검(sudo 작업은 안내만).
76
- function checkXcodeActivation(xcodeInstalled) {
151
+ // 설치됨 ≠ 사용 가능: active developer dir / 라이선스 / first-launch. sudo 조치를 동의 후 직접 실행.
152
+ async function checkXcodeActivation(xcodeInstalled) {
77
153
  if (!xcodeInstalled) {
78
154
  return { label: 'Xcode activation', ok: false, warn: true, detail: 'Install Xcode first.' };
79
155
  }
156
+ const selectHint = `Run: sudo xcode-select -s ${XCODE_DEVELOPER_DIR}`;
157
+ // 1. active developer dir이 Xcode를 가리키게
80
158
  let dir = '';
81
159
  try {
82
160
  dir = execSync('xcode-select -p', { encoding: 'utf8', stdio: 'pipe' }).trim();
83
161
  }
84
162
  catch {
85
- // active dir 미설정 — 아래 안내
163
+ // 미설정 — 아래에서 조치
86
164
  }
87
165
  if (!dir.includes('Xcode.app')) {
88
- return {
89
- label: 'Xcode command-line tools',
90
- ok: false,
91
- warn: true,
92
- detail: `Active developer dir points away from Xcode. Run: sudo xcode-select -s ${XCODE_DEVELOPER_DIR}`,
93
- };
166
+ if (!process.stdout.isTTY) {
167
+ return { label: 'Xcode command-line tools', ok: false, warn: true, detail: selectHint };
168
+ }
169
+ const ok = await runSudo('Set Xcode as the active developer directory (needs sudo)?', [
170
+ ['xcode-select', '-s', XCODE_DEVELOPER_DIR],
171
+ ]);
172
+ if (!ok) {
173
+ return { label: 'Xcode command-line tools', ok: false, warn: true, detail: selectHint };
174
+ }
94
175
  }
95
- try {
96
- execSync('xcodebuild -version', { stdio: 'pipe' });
176
+ // 2. license / first-launch
177
+ if (isXcodeReady()) {
97
178
  return { label: 'Xcode ready', ok: true };
98
179
  }
99
- catch {
100
- return {
101
- label: 'Xcode setup',
102
- ok: false,
103
- warn: true,
104
- detail: 'Finish Xcode setup: sudo xcodebuild -license accept && sudo xcodebuild -runFirstLaunch',
105
- };
180
+ const finishHint = 'Finish Xcode setup: sudo xcodebuild -license accept && sudo xcodebuild -runFirstLaunch';
181
+ if (!process.stdout.isTTY) {
182
+ return { label: 'Xcode setup', ok: false, warn: true, detail: finishHint };
183
+ }
184
+ const ok = await runSudo('Accept the Xcode license and run first launch (needs sudo)?', [
185
+ ['xcodebuild', '-license', 'accept'],
186
+ ['xcodebuild', '-runFirstLaunch'],
187
+ ]);
188
+ if (ok && isXcodeReady()) {
189
+ return { label: 'Xcode ready', ok: true };
106
190
  }
191
+ return { label: 'Xcode setup', ok: false, warn: true, detail: finishHint };
107
192
  }
108
- function checkAndFixSimulator() {
109
- try {
110
- const raw = execSync('xcrun simctl list devices --json', { encoding: 'utf8', stdio: 'pipe' });
111
- const data = JSON.parse(raw);
112
- const all = Object.values(data.devices).flat();
113
- const booted = all.find((d) => d.state === 'Booted');
114
- if (booted) {
115
- return { label: `Simulator booted: ${booted.name}`, ok: true };
116
- }
117
- const candidate = all.find((d) => d.state === 'Shutdown');
118
- if (candidate) {
119
- const boot = spawnSync('xcrun', ['simctl', 'boot', candidate.udid], { stdio: 'pipe' });
120
- if (boot.status !== 0)
121
- throw new Error('simctl boot failed');
122
- return { label: `Simulator booted: ${candidate.name}`, ok: true };
123
- }
124
- return {
125
- label: 'Simulator',
126
- ok: false,
127
- warn: true,
128
- detail: 'No simulators available. Open Xcode to install a simulator runtime.',
129
- };
193
+ // 부팅하지 않는다 — 시뮬 런타임/디바이스가 준비됐는지만 보장(없으면 런타임 설치).
194
+ async function checkAndFixSimulator() {
195
+ if (hasIosDevice()) {
196
+ return { label: 'Simulator ready', ok: true };
130
197
  }
131
- catch {
132
- return {
133
- label: 'Simulator',
134
- ok: false,
135
- warn: true,
136
- detail: 'Could not query simulators. Finish Xcode setup first.',
137
- };
198
+ const hint = 'No simulator runtime. Run: xcodebuild -downloadPlatform iOS (or install one in Xcode).';
199
+ if (!process.stdout.isTTY) {
200
+ return { label: 'Simulator', ok: false, warn: true, detail: hint };
138
201
  }
202
+ const proceed = await confirm({ message: 'No iOS simulator found. Download the iOS simulator runtime?' });
203
+ if (isCancel(proceed) || !proceed) {
204
+ return { label: 'Simulator', ok: false, warn: true, detail: `Skipped. ${hint}` };
205
+ }
206
+ console.log();
207
+ const r = spawnSync('xcodebuild', ['-downloadPlatform', 'iOS'], { stdio: 'inherit' });
208
+ if (r.status === 0 && hasIosDevice()) {
209
+ return { label: 'Simulator runtime installed', ok: true };
210
+ }
211
+ return { label: 'Simulator', ok: false, warn: true, detail: 'Could not prepare a simulator. Open Xcode to install a runtime.' };
139
212
  }
140
213
  // eval "$(...)"로 감싸 명령 치환 결과(설치 스크립트)가 word splitting 없이 단일 평가되게 한다.
141
214
  const HOMEBREW_INSTALL = 'eval "$(/usr/bin/curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"';
@@ -179,139 +252,153 @@ async function checkAndFixHomebrew() {
179
252
  detail: 'Homebrew install failed. Install manually: https://brew.sh',
180
253
  };
181
254
  }
182
- function checkAndFixAdb(brewAvailable) {
183
- const adb = resolveAdb();
184
- // 1. PATH에 있음
185
- if (adb?.inPath) {
186
- return { label: `adb in PATH: ${adb.path}`, ok: true };
187
- }
188
- // 2. 표준 SDK 위치엔 있지만 PATH에 없음 → shell rc에 등록
189
- if (adb) {
190
- const platformTools = dirname(adb.path);
191
- const registered = registerPathInShellRc(platformTools);
192
- if (!registered) {
193
- return {
194
- label: 'adb (not in PATH)',
195
- ok: false,
196
- warn: true,
197
- detail: `adb found at ${adb.path} but your shell ($SHELL) isn't auto-configurable. Add to your shell config: export PATH="${platformTools}:$PATH"`,
198
- };
199
- }
200
- if (registered.added) {
201
- return {
202
- label: 'adb added to PATH',
203
- ok: true,
204
- detail: `Added ${platformTools} to PATH in ${registered.file}. Restart your shell or run: source ${registered.file}`,
205
- };
206
- }
207
- return {
208
- label: 'adb PATH already configured',
209
- ok: true,
210
- detail: `${platformTools} already registered in ${registered.file}`,
211
- };
255
+ // sdkmanager/avdmanager 실행에 JDK가 필요하다(없으면 'Unable to locate a Java Runtime').
256
+ async function checkAndFixJdk(brewAvailable) {
257
+ if (hasJava()) {
258
+ return { label: 'Java (JDK)', ok: true };
212
259
  }
213
- // 3. 어디에도 없음 → brew 설치
214
260
  if (!brewAvailable) {
261
+ return { label: 'Java (JDK)', ok: false, detail: 'Install Homebrew first, then: brew install --cask temurin' };
262
+ }
263
+ if (!process.stdout.isTTY) {
264
+ return { label: 'Java (JDK)', ok: false, warn: true, detail: 'Run: brew install --cask temurin (skipped in non-interactive mode)' };
265
+ }
266
+ const proceed = await confirm({
267
+ message: 'A JDK is required for the Android SDK tools. Install Temurin now? (may prompt for sudo)',
268
+ });
269
+ if (isCancel(proceed) || !proceed) {
270
+ return { label: 'Java (JDK)', ok: false, warn: true, detail: 'Skipped. Install: brew install --cask temurin' };
271
+ }
272
+ console.log();
273
+ const r = spawnSync('brew', ['install', '--cask', 'temurin'], { stdio: 'inherit' });
274
+ if (r.status === 0 && hasJava()) {
275
+ return { label: 'Java (JDK) installed', ok: true };
276
+ }
277
+ return { label: 'Java (JDK)', ok: false, detail: 'JDK install failed. Install manually: brew install --cask temurin' };
278
+ }
279
+ // Android SDK를 ~/Library/Android/sdk에 자기완결로 구성한다(Android Studio GUI 불필요).
280
+ async function checkAndFixAndroidSdk(brewAvailable, javaOk) {
281
+ if (sdkSelfContained()) {
282
+ const reg = registerAndroidEnv();
215
283
  return {
216
- label: 'adb',
217
- ok: false,
218
- warn: true,
219
- detail: 'Install Homebrew first, then: brew install android-platform-tools',
284
+ label: 'Android SDK ready',
285
+ ok: true,
286
+ detail: reg?.added ? `Registered ANDROID_HOME/PATH in ${reg.file}.` : undefined,
220
287
  };
221
288
  }
222
- const spinner = createSpinner('Installing android-platform-tools via Homebrew…');
223
- spinner.start();
224
- const r = spawnSync('brew', ['install', 'android-platform-tools'], { stdio: 'pipe' });
225
- spinner.stop(r.status === 0);
226
- if (r.status === 0) {
227
- return { label: 'adb installed via Homebrew', ok: true };
289
+ if (!javaOk) {
290
+ return { label: 'Android SDK', ok: false, detail: 'Install a JDK first (Android SDK tools need Java).' };
228
291
  }
292
+ // 부트스트랩 sdkmanager 확보: SDK 내부 → PATH(brew) → brew 설치
293
+ let bootSdkmanager = existsSync(join(SDK_CMDLINE_BIN, 'sdkmanager'))
294
+ ? join(SDK_CMDLINE_BIN, 'sdkmanager')
295
+ : whichSdkmanager();
296
+ if (!bootSdkmanager) {
297
+ if (!brewAvailable) {
298
+ return { label: 'Android SDK', ok: false, detail: 'Install Homebrew first, then: brew install --cask android-commandlinetools' };
299
+ }
300
+ if (!process.stdout.isTTY) {
301
+ return { label: 'Android SDK', ok: false, warn: true, detail: 'Run: brew install --cask android-commandlinetools (skipped in non-interactive mode)' };
302
+ }
303
+ console.log();
304
+ const b = spawnSync('brew', ['install', '--cask', 'android-commandlinetools'], { stdio: 'inherit' });
305
+ if (b.status !== 0) {
306
+ return { label: 'Android SDK', ok: false, detail: 'Failed to install android-commandlinetools.' };
307
+ }
308
+ bootSdkmanager = whichSdkmanager() ?? 'sdkmanager';
309
+ }
310
+ if (!process.stdout.isTTY) {
311
+ return { label: 'Android SDK', ok: false, warn: true, detail: 'Android SDK not installed (skipped in non-interactive mode).' };
312
+ }
313
+ // 자기완결 SDK 구성: cmdline-tools를 SDK 안에 넣어 이후 SDK 내부 바이너리만 쓰게 한다.
314
+ console.log();
315
+ const root = `--sdk_root=${ANDROID_SDK_DIR}`;
316
+ const licenseInput = 'y\n'.repeat(50);
317
+ spawnSync(bootSdkmanager, [root, '--licenses'], { stdio: ['pipe', 'inherit', 'inherit'], input: licenseInput });
318
+ const inst = spawnSync(bootSdkmanager, [root, 'cmdline-tools;latest', 'platform-tools', 'emulator', androidSystemImage()], { stdio: ['pipe', 'inherit', 'inherit'], input: licenseInput });
319
+ if (inst.status !== 0 || !sdkSelfContained()) {
320
+ return { label: 'Android SDK', ok: false, detail: 'Failed to set up the Android SDK.' };
321
+ }
322
+ const reg = registerAndroidEnv();
229
323
  return {
230
- label: 'adb',
231
- ok: false,
232
- warn: true,
233
- detail: 'brew install android-platform-tools failed. Install manually.',
324
+ label: 'Android SDK installed',
325
+ ok: true,
326
+ detail: `SDK at ${ANDROID_SDK_DIR}.${reg?.added ? ` Restart your shell to pick up ANDROID_HOME/PATH (${reg.file}).` : ''}`,
234
327
  };
235
328
  }
236
- async function checkAndFixAndroidStudio(brewAvailable) {
237
- if (existsSync(STUDIO_APP)) {
238
- return { label: 'Android Studio installed', ok: true };
329
+ // 부팅하지 않는다 — AVD가 준비됐는지만 보장(없으면 폼팩터별 AVD 생성). 시스템 이미지는 SDK 단계에서 설치됨.
330
+ async function checkAndFixAvd(sdkOk) {
331
+ if (!sdkOk) {
332
+ return { label: 'AVD', ok: false, detail: 'Set up the Android SDK first.' };
239
333
  }
240
- if (!brewAvailable) {
241
- return {
242
- label: 'Android Studio',
243
- ok: false,
244
- warn: true,
245
- detail: 'Install from https://developer.android.com/studio',
246
- };
334
+ const avds = listAvds();
335
+ if (avds.length > 0) {
336
+ return { label: `AVD ready: ${avds.length} device(s)`, ok: true };
247
337
  }
248
- // 대용량(~1GB+)이라 확인 설치. 비대화형이면 안내만.
338
+ const manualHint = 'Create an AVD with avdmanager (see Android docs).';
249
339
  if (!process.stdout.isTTY) {
250
- return {
251
- label: 'Android Studio',
252
- ok: false,
253
- warn: true,
254
- detail: 'Run: brew install --cask android-studio (skipped in non-interactive mode)',
255
- };
340
+ return { label: 'AVD', ok: false, warn: true, detail: `No AVD found. ${manualHint}` };
256
341
  }
257
- const proceed = await confirm({ message: 'Install Android Studio (~1GB) via Homebrew?' });
342
+ const proceed = await confirm({ message: 'No Android Virtual Device found. Create a set of AVDs now?' });
258
343
  if (isCancel(proceed) || !proceed) {
259
- return {
260
- label: 'Android Studio',
261
- ok: false,
262
- warn: true,
263
- detail: 'Skipped. Run: brew install --cask android-studio',
264
- };
344
+ return { label: 'AVD', ok: false, warn: true, detail: `Skipped. ${manualHint}` };
265
345
  }
266
- const spinner = createSpinner('Installing Android Studio via Homebrew…');
267
- spinner.start();
268
- const r = spawnSync('brew', ['install', '--cask', 'android-studio'], { stdio: 'pipe' });
269
- spinner.stop(r.status === 0);
270
- if (r.status === 0) {
271
- return { label: 'Android Studio installed via Homebrew', ok: true };
346
+ const result = createAvds();
347
+ if (result.ok) {
348
+ return { label: `AVDs created: ${result.created.join(', ')}`, ok: true };
272
349
  }
273
- return {
274
- label: 'Android Studio',
275
- ok: false,
276
- warn: true,
277
- detail: 'brew install --cask android-studio failed. Install manually.',
278
- };
350
+ return { label: 'AVD', ok: false, warn: true, detail: result.detail ?? manualHint };
279
351
  }
280
- function checkAndFixEmulator() {
281
- // resolveAdb()로 해석한 경로를 쓴다. 직전 단계에서 PATH에 등록했어도 현재 프로세스
282
- // PATH엔 반영되지 않으므로 'adb'를 그대로 부르면 오탐이 난다.
283
- const adb = resolveAdb();
284
- if (!adb) {
285
- return {
286
- label: 'No running emulator',
287
- ok: false,
288
- warn: true,
289
- detail: 'adb not found. Install/configure adb first, then start an AVD.',
290
- };
291
- }
352
+ function listAvds() {
353
+ const emulator = join(ANDROID_SDK_DIR, 'emulator', 'emulator');
354
+ if (!existsSync(emulator))
355
+ return [];
292
356
  try {
293
- const out = execSync(`"${adb.path}" devices`, { encoding: 'utf8', stdio: 'pipe' });
294
- const lines = out.trim().split('\n').slice(1).filter(Boolean);
295
- if (lines.some((l) => l.startsWith('emulator-'))) {
296
- return { label: 'Emulator running', ok: true };
297
- }
357
+ const r = spawnSync(emulator, ['-list-avds'], { encoding: 'utf8', env: androidEnv() });
358
+ const out = (r.stdout ?? '').trim();
359
+ return out ? out.split('\n').map((l) => l.trim()).filter(Boolean) : [];
298
360
  }
299
361
  catch {
300
- // adb 실행 실패 — 아래 힌트로
362
+ return [];
301
363
  }
302
- let hint = 'Start an AVD from Android Studio > Device Manager';
364
+ }
365
+ function createAvds() {
366
+ const avdmanager = join(SDK_CMDLINE_BIN, 'avdmanager');
367
+ if (!existsSync(avdmanager)) {
368
+ return { ok: false, created: [], detail: 'Android cmdline-tools not found in the SDK.' };
369
+ }
370
+ const image = androidSystemImage();
371
+ // 폼팩터별로 가용한 device id를 골라 AVD 생성. ('custom hardware profile?'에 'no')
372
+ const available = listDeviceIds(avdmanager);
373
+ const created = [];
374
+ console.log();
375
+ for (const spec of AVD_SPECS) {
376
+ const device = spec.deviceCandidates.find((d) => available.includes(d));
377
+ if (!device)
378
+ continue;
379
+ const r = spawnSync(avdmanager, ['create', 'avd', '-n', spec.name, '-k', image, '-d', device, '--force'], { stdio: ['pipe', 'inherit', 'inherit'], input: 'no\n', env: androidEnv() });
380
+ if (r.status === 0)
381
+ created.push(spec.name);
382
+ }
383
+ if (created.length === 0) {
384
+ return { ok: false, created, detail: 'Could not create any AVD.' };
385
+ }
386
+ return { ok: true, created };
387
+ }
388
+ function listDeviceIds(avdmanager) {
303
389
  try {
304
- const first = execSync('emulator -list-avds', { encoding: 'utf8', stdio: 'pipe' })
305
- .trim()
306
- .split('\n')[0]
307
- ?.trim();
308
- if (first)
309
- hint = `Start an AVD: emulator @${first} (or Android Studio > Device Manager)`;
390
+ const r = spawnSync(avdmanager, ['list', 'device'], { encoding: 'utf8', env: androidEnv() });
391
+ const out = r.stdout ?? '';
392
+ const ids = [];
393
+ for (const m of out.matchAll(/id:\s*\d+\s+or\s+"([^"]+)"/g)) {
394
+ if (m[1])
395
+ ids.push(m[1]);
396
+ }
397
+ return ids;
310
398
  }
311
399
  catch {
312
- // emulator 미설치 — 일반 힌트 유지
400
+ return [];
313
401
  }
314
- return { label: 'No running emulator', ok: false, warn: true, detail: hint };
315
402
  }
316
403
  // 자동 등록을 지원하는 셸의 rc 경로. 그 외 셸은 null(수동 안내).
317
404
  function shellRcPath() {
@@ -323,7 +410,8 @@ function shellRcPath() {
323
410
  return join(home, '.bashrc');
324
411
  return null;
325
412
  }
326
- function registerPathInShellRc(platformTools) {
413
+ // ANDROID_HOME + platform-tools/emulator PATH를 rc에 멱등 등록(마커 블록).
414
+ function registerAndroidEnv() {
327
415
  const file = shellRcPath();
328
416
  if (!file)
329
417
  return null;
@@ -331,7 +419,10 @@ function registerPathInShellRc(platformTools) {
331
419
  if (existing.includes(PATH_MARKER_START)) {
332
420
  return { added: false, file };
333
421
  }
334
- const block = `\n${PATH_MARKER_START}\nexport PATH="${platformTools}:$PATH"\n${PATH_MARKER_END}\n`;
422
+ const block = `\n${PATH_MARKER_START}\n` +
423
+ `export ANDROID_HOME="${ANDROID_SDK_DIR}"\n` +
424
+ `export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"\n` +
425
+ `${PATH_MARKER_END}\n`;
335
426
  appendFileSync(file, block);
336
427
  return { added: true, file };
337
428
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tapflow",
3
- "version": "0.8.0-next.0",
3
+ "version": "0.8.0-next.2",
4
4
  "description": "Self-hosted iOS/Android simulator streaming for the whole team",
5
5
  "keywords": [
6
6
  "ios",
@@ -47,10 +47,10 @@
47
47
  "cac": "^6.7.14",
48
48
  "ws": "^8.0.0",
49
49
  "zod": "^4.4.3",
50
- "@tapflowio/agent-core": "0.8.0-next.0",
51
- "@tapflowio/android-agent": "0.8.0-next.0",
52
- "@tapflowio/ios-agent": "0.8.0-next.0",
53
- "@tapflowio/relay": "0.8.0-next.0"
50
+ "@tapflowio/agent-core": "0.8.0-next.2",
51
+ "@tapflowio/android-agent": "0.8.0-next.2",
52
+ "@tapflowio/ios-agent": "0.8.0-next.2",
53
+ "@tapflowio/relay": "0.8.0-next.2"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/node": "^20.0.0",