@capgo/cli 8.50.2 → 8.51.0

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.
@@ -5252,6 +5252,29 @@ export type Database = {
5252
5252
  version_build: string;
5253
5253
  }[];
5254
5254
  };
5255
+ read_native_active_devices_summary: {
5256
+ Args: {
5257
+ p_app_id: string;
5258
+ p_period_end: string;
5259
+ p_period_start: string;
5260
+ };
5261
+ Returns: {
5262
+ devices: number;
5263
+ platform: string;
5264
+ }[];
5265
+ };
5266
+ read_native_daily_platform_active: {
5267
+ Args: {
5268
+ p_app_id: string;
5269
+ p_period_end: string;
5270
+ p_period_start: string;
5271
+ };
5272
+ Returns: {
5273
+ date: string;
5274
+ devices: number;
5275
+ platform: string;
5276
+ }[];
5277
+ };
5255
5278
  read_storage_usage: {
5256
5279
  Args: {
5257
5280
  p_app_id: string;
@@ -5311,6 +5311,29 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
5311
5311
  version_build: string;
5312
5312
  }[];
5313
5313
  };
5314
+ read_native_active_devices_summary: {
5315
+ Args: {
5316
+ p_app_id: string;
5317
+ p_period_end: string;
5318
+ p_period_start: string;
5319
+ };
5320
+ Returns: {
5321
+ devices: number;
5322
+ platform: string;
5323
+ }[];
5324
+ };
5325
+ read_native_daily_platform_active: {
5326
+ Args: {
5327
+ p_app_id: string;
5328
+ p_period_end: string;
5329
+ p_period_start: string;
5330
+ };
5331
+ Returns: {
5332
+ date: string;
5333
+ devices: number;
5334
+ platform: string;
5335
+ }[];
5336
+ };
5314
5337
  read_storage_usage: {
5315
5338
  Args: {
5316
5339
  p_app_id: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "8.50.2",
4
+ "version": "8.51.0",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
@@ -83,6 +83,7 @@
83
83
  "test:build-zip-filter": "bun test/test-build-zip-filter.mjs",
84
84
  "test:checksum": "bun test/test-checksum-algorithm.mjs",
85
85
  "test:build-needed": "bun test/test-build-needed.mjs",
86
+ "test:cli-help": "bun test/test-cli-help.mjs",
86
87
  "test:build-cache-payload": "bun test/test-build-cache-payload.mjs",
87
88
  "test:build-cancellation": "bun test/test-build-cancellation.mjs",
88
89
  "test:ci-prompts": "bun test/test-ci-prompts.mjs",
@@ -125,11 +126,14 @@
125
126
  "test:channel-add-exists": "bun test/test-channel-add-exists.mjs",
126
127
  "test:wait-log": "bun test/test-wait-log.mjs",
127
128
  "test:init-guardrails": "bun test/test-init-guardrails.mjs",
129
+ "test:init-upload-recovery": "bun test/test-init-upload-error-gate.mjs && bun test/test-init-upload-monorepo-recovery.mjs",
128
130
  "test:init-replay": "bun test/test-init-replay.mjs",
129
131
  "test:init-telemetry": "bun test/test-init-telemetry.mjs",
130
132
  "test:capacitor-config-target": "bun test/test-capacitor-config-target.mjs",
133
+ "test:capacitor-config-typescript7": "bun test/test-capacitor-config-typescript7.mjs",
134
+ "test:capacitor-config-native-import": "bun test/test-capacitor-config-native-import.mjs",
131
135
  "test:cli-user-error-config": "bun test/test-cli-user-error-config.mjs",
132
- "test:init-monorepo-targeting": "bun run test:capacitor-config-target && bun run test:cli-user-error-config && bun test/test-init-monorepo-targeting.mjs",
136
+ "test:init-monorepo-targeting": "bun run test:capacitor-config-target && bun run test:capacitor-config-typescript7 && bun run test:capacitor-config-native-import && bun run test:cli-user-error-config && bun test/test-init-monorepo-targeting.mjs",
133
137
  "test:prompt-preferences": "bun test/test-prompt-preferences.mjs",
134
138
  "test:esm-sdk": "node test/test-sdk-esm.mjs",
135
139
  "test:auth-session": "bun test/test-auth-session.mjs",
@@ -177,7 +181,7 @@
177
181
  "test:android-version": "bun test/test-android-version.mjs",
178
182
  "test:platform-flow-contract": "bun test/test-platform-flow-contract.mjs",
179
183
  "test:tail-engine-shared": "bun test/test-tail-engine-shared.mjs",
180
- "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && bun run test:bundle-validation && bun run test:functional && bun run test:semver && bun run test:auto-bump-version && bun run test:auto-bump-ai-diff && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:native-dependencies && bun run test:package-json-guard && bun run test:credentials && bun run test:credentials-export && bun run test:ios-provisioning-map && bun run test:ios-provisioning-command && bun run test:credentials-validation && bun run test:android-service-account-validation && bun run test:build-zip-filter && bun run test:checksum && bun run test:build-needed && bun run test:build-cache-payload && bun run test:build-cancellation && bun run test:ci-prompts && bun run test:ci-secrets && bun run test:android-onboarding-progress && bun run test:onboarding-telemetry && bun run test:v2-event-migration && bun run test:analytics && bun run test:cli-headers && bun run test:min-cli-version && bun run test:authenticated-command-invocation && bun run test:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:preview-qr && bun run test:app-set-options && bun run test:mcp-analytics && bun run test:mcp-instructions && bun run test:mcp-live-update-onboarding && bun run test:mcp-stdout-guard && bun run test:mcp-platform-select && bun run test:mcp-explain-scopes && bun run test:mcp-oauth-reopen && bun run test:mcp-broker-oauth && bun run test:mcp-broker-session && bun run test:mcp-credentials-manage && bun run test:mcp-resume-prompt && bun run test:mcp-build-job && bun run test:mcp-build-tools && bun run test:app-created-source && bun run test:app-add-exists && bun run test:app-list-output-text && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:cli-recovery && bun run test:create-supabase-client && bun run test:build-platform-selection && bun run test:builder-project-discovery && bun run test:onboarding-recovery && bun run test:onboarding-progress && bun run test:onboarding-run-targets && bun run test:run-device-command && bun run test:init-monorepo-targeting && bun run test:init-app-conflict && bun run test:channel-add-exists && bun run test:wait-log && bun run test:init-guardrails && bun run test:init-replay && bun run test:init-telemetry && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:mcp-no-key-handshake && bun run test:auth-session && bun run test:version-detection && bun run test:platform-paths && bun run test:project-type-detection && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:asc-key-protocol && bun run test:apple-api-import-helpers && bun run test:apple-api-verify-key && bun run test:bundle-id-detector && bun run test:apple-api-app-list && bun run test:app-verification && bun run test:pbxproj-parser && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:cicd-failure-help && bun run test:ai-sse-parser && bun run test:ai-render-markdown && bun run test:ai-stream-markdown && bun run test:ai-onboarding-mode && bun run test:ai-fit && bun run test:platform-layout && bun run test:frame-fit && bun run test:onboarding-min-size && bun run test:min-size-gate && bun run test:shell-size-gate && bun run test:build-log-sanitize && bun run test:build-output-viewport && bun run test:diff-viewer-viewport && bun run test:build-complete-exit && bun run test:ai-analyze-stream && bun run test:support-mailto && bun run test:support-redact && bun run test:support-internal-log && bun run test:support-help-menu && bun run test:support-contact && bun run test:support-upload-prompt && bun run test:support-bundle-files && bun run test:self-update && bun run test:update-prompt && bun run test:apple-api-cert-create && bun run test:android-tail-engine && bun run test:android-tail-render && bun run test:android-tail-routing && bun run test:dev-gate-stripped && bun run test:frame-fit-ios-shared && bun run test:ios-confirm-app-id && bun run test:ios-create-new && bun run test:ios-e2e && bun run test:ios-flow-contract && bun run test:ios-import-discovery && bun run test:ios-import-export && bun run test:ios-import-pickers && bun run test:ios-import-recovery && bun run test:ios-recovery && bun run test:ios-resume && bun run test:ios-tail-handoff && bun run test:ios-tui-render && bun run test:p8-error && bun run test:ios-tui-routing && bun run test:ios-updater-sync-validation && bun run test:ios-verify-app && bun run test:ios-marketing-version && bun run test:android-version && bun run test:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && bun run test:android-gcp && bun run test:android-app-verification && bun run test:android-rename && bun run test:appflow-auth && bun run test:appflow-api-map && bun run test:appflow-validate && bun run test:appflow-flow && bun run test:appflow-gapfill && bun run test:appflow-engine && bun run test:appflow-tail && bun run test:appflow-fetch && bun run test:appflow-sa-decode && bun run test:app-permission-helper && bun run test:2fa-compliance-network && bun run test:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation",
184
+ "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && bun run test:bundle-validation && bun run test:functional && bun run test:semver && bun run test:auto-bump-version && bun run test:auto-bump-ai-diff && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:fail-on-incompatible && bun run test:native-dependencies && bun run test:package-json-guard && bun run test:credentials && bun run test:credentials-export && bun run test:ios-provisioning-map && bun run test:ios-provisioning-command && bun run test:credentials-validation && bun run test:android-service-account-validation && bun run test:build-zip-filter && bun run test:checksum && bun run test:build-needed && bun run test:cli-help && bun run test:build-cache-payload && bun run test:build-cancellation && bun run test:ci-prompts && bun run test:ci-secrets && bun run test:android-onboarding-progress && bun run test:onboarding-telemetry && bun run test:v2-event-migration && bun run test:analytics && bun run test:cli-headers && bun run test:min-cli-version && bun run test:authenticated-command-invocation && bun run test:analytics-error-category && bun run test:analytics-org-resolver && bun run test:supabase-perf && bun run test:preview-qr && bun run test:app-set-options && bun run test:mcp-analytics && bun run test:mcp-instructions && bun run test:mcp-live-update-onboarding && bun run test:mcp-stdout-guard && bun run test:mcp-platform-select && bun run test:mcp-explain-scopes && bun run test:mcp-oauth-reopen && bun run test:mcp-broker-oauth && bun run test:mcp-broker-session && bun run test:mcp-credentials-manage && bun run test:mcp-resume-prompt && bun run test:mcp-build-job && bun run test:mcp-build-tools && bun run test:app-created-source && bun run test:app-add-exists && bun run test:app-list-output-text && bun run test:doctor-analytics && bun run test:posthog-exception && bun run test:cli-recovery && bun run test:create-supabase-client && bun run test:build-platform-selection && bun run test:builder-project-discovery && bun run test:onboarding-recovery && bun run test:onboarding-progress && bun run test:onboarding-run-targets && bun run test:run-device-command && bun run test:init-monorepo-targeting && bun run test:init-app-conflict && bun run test:channel-add-exists && bun run test:wait-log && bun run test:init-guardrails && bun run test:init-upload-recovery && bun run test:init-replay && bun run test:init-telemetry && bun run test:prompt-preferences && bun run test:esm-sdk && bun run test:mcp && bun run test:mcp-no-key-handshake && bun run test:auth-session && bun run test:version-detection && bun run test:platform-paths && bun run test:project-type-detection && bun run test:payload-split && bun run test:manifest-path-encoding && bun run test:macos-signing && bun run test:asc-key-protocol && bun run test:apple-api-import-helpers && bun run test:apple-api-verify-key && bun run test:bundle-id-detector && bun run test:apple-api-app-list && bun run test:app-verification && bun run test:pbxproj-parser && bun run test:ai-log-capture && bun run test:ai-analyze-flow && bun run test:cicd-failure-help && bun run test:ai-sse-parser && bun run test:ai-render-markdown && bun run test:ai-stream-markdown && bun run test:ai-onboarding-mode && bun run test:ai-fit && bun run test:platform-layout && bun run test:frame-fit && bun run test:onboarding-min-size && bun run test:min-size-gate && bun run test:shell-size-gate && bun run test:build-log-sanitize && bun run test:build-output-viewport && bun run test:diff-viewer-viewport && bun run test:build-complete-exit && bun run test:ai-analyze-stream && bun run test:support-mailto && bun run test:support-redact && bun run test:support-internal-log && bun run test:support-help-menu && bun run test:support-contact && bun run test:support-upload-prompt && bun run test:support-bundle-files && bun run test:self-update && bun run test:update-prompt && bun run test:apple-api-cert-create && bun run test:android-tail-engine && bun run test:android-tail-render && bun run test:android-tail-routing && bun run test:dev-gate-stripped && bun run test:frame-fit-ios-shared && bun run test:ios-confirm-app-id && bun run test:ios-create-new && bun run test:ios-e2e && bun run test:ios-flow-contract && bun run test:ios-import-discovery && bun run test:ios-import-export && bun run test:ios-import-pickers && bun run test:ios-import-recovery && bun run test:ios-recovery && bun run test:ios-resume && bun run test:ios-tail-handoff && bun run test:ios-tui-render && bun run test:p8-error && bun run test:ios-tui-routing && bun run test:ios-updater-sync-validation && bun run test:ios-verify-app && bun run test:ios-marketing-version && bun run test:android-version && bun run test:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && bun run test:android-gcp && bun run test:android-app-verification && bun run test:android-rename && bun run test:appflow-auth && bun run test:appflow-api-map && bun run test:appflow-validate && bun run test:appflow-flow && bun run test:appflow-gapfill && bun run test:appflow-engine && bun run test:appflow-tail && bun run test:appflow-fetch && bun run test:appflow-sa-decode && bun run test:app-permission-helper && bun run test:2fa-compliance-network && bun run test:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation",
181
185
  "test:build-platform-selection": "bun test/test-build-platform-selection.mjs",
182
186
  "test:builder-project-discovery": "bun test/test-builder-project-discovery.mjs",
183
187
  "test:ai-log-capture": "bun test/test-ai-log-capture.mjs",
@@ -174,7 +174,7 @@ Credentials are stored locally, either globally in `~/.capgo-credentials/credent
174
174
  - Example iOS flow:
175
175
 
176
176
  ```bash
177
- npx @capgo/cli build credentials save --platform ios \
177
+ npx @capgo/cli@latest build credentials save --platform ios \
178
178
  --certificate ./cert.p12 --p12-password "password" \
179
179
  --ios-provisioning-profile ./profile.mobileprovision \
180
180
  --apple-key ./AuthKey.p8 --apple-key-id "KEY123" \
@@ -184,7 +184,7 @@ npx @capgo/cli build credentials save --platform ios \
184
184
  - Example multi-target iOS flow:
185
185
 
186
186
  ```bash
187
- npx @capgo/cli build credentials save --platform ios \
187
+ npx @capgo/cli@latest build credentials save --platform ios \
188
188
  --ios-provisioning-profile ./App.mobileprovision \
189
189
  --ios-provisioning-profile com.example.widget=./Widget.mobileprovision
190
190
  ```
@@ -192,7 +192,7 @@ npx @capgo/cli build credentials save --platform ios \
192
192
  - Example Android flow:
193
193
 
194
194
  ```bash
195
- npx @capgo/cli build credentials save --platform android \
195
+ npx @capgo/cli@latest build credentials save --platform android \
196
196
  --keystore ./release.keystore --keystore-alias "my-key" \
197
197
  --keystore-key-password "key-pass" \
198
198
  --play-config ./service-account.json
@@ -231,8 +231,8 @@ npx @capgo/cli build credentials save --platform android \
231
231
  ### `build credentials list`
232
232
 
233
233
  - Examples:
234
- - `npx @capgo/cli build credentials list`
235
- - `npx @capgo/cli build credentials list --appId com.example.app`
234
+ - `npx @capgo/cli@latest build credentials list`
235
+ - `npx @capgo/cli@latest build credentials list --appId com.example.app`
236
236
  - Options:
237
237
  - `--appId <appId>`
238
238
  - `--local`
@@ -240,9 +240,9 @@ npx @capgo/cli build credentials save --platform android \
240
240
  ### `build credentials clear`
241
241
 
242
242
  - Examples:
243
- - `npx @capgo/cli build credentials clear`
244
- - `npx @capgo/cli build credentials clear --local`
245
- - `npx @capgo/cli build credentials clear --appId com.example.app --platform ios`
243
+ - `npx @capgo/cli@latest build credentials clear`
244
+ - `npx @capgo/cli@latest build credentials clear --local`
245
+ - `npx @capgo/cli@latest build credentials clear --appId com.example.app --platform ios`
246
246
  - Options:
247
247
  - `--appId <appId>`
248
248
  - `--platform <platform>`
@@ -253,8 +253,8 @@ npx @capgo/cli build credentials save --platform android \
253
253
  - Use to update specific credential fields without re-entering all data.
254
254
  - Platform is auto-detected from the supplied options.
255
255
  - Examples:
256
- - `npx @capgo/cli build credentials update --ios-provisioning-profile ./new-profile.mobileprovision`
257
- - `npx @capgo/cli build credentials update --local --keystore ./new-keystore.jks`
256
+ - `npx @capgo/cli@latest build credentials update --ios-provisioning-profile ./new-profile.mobileprovision`
257
+ - `npx @capgo/cli@latest build credentials update --local --keystore ./new-keystore.jks`
258
258
  - Core options:
259
259
  - `--appId <appId>`
260
260
  - `--platform <platform>`
@@ -296,7 +296,7 @@ npx @capgo/cli@latest build credentials export ANDROID_KEYSTORE_FILE \
296
296
 
297
297
  ### `build credentials migrate`
298
298
 
299
- - Example: `npx @capgo/cli build credentials migrate --platform ios`
299
+ - Example: `npx @capgo/cli@latest build credentials migrate --platform ios`
300
300
  - Notes:
301
301
  - Converts `BUILD_PROVISION_PROFILE_BASE64` to `CAPGO_IOS_PROVISIONING_MAP`.
302
302
  - Discovers the main bundle ID from the Xcode project automatically.
@@ -26,7 +26,7 @@ TanStack Intent skills should stay focused and under the validator line limit, s
26
26
 
27
27
  ### Project setup and diagnostics
28
28
 
29
- - `init [apikey] [appId]`: guided first-time setup for Capgo in a Capacitor app. The interactive flow now runs as a real Ink-based fullscreen onboarding so it uses the same UI stack as `build init` (alias: `build onboarding`), with a persistent dashboard, phase roadmap, progress cards, shared log area, and resume support. At startup, onboarding still recommends a clean git worktree before file edits; dirty repos show `Check again` first and also offer a non-recommended `Continue anyway` override. When dependency auto-detection fails on macOS, the flow opens a native file picker for `package.json` before falling back to manual path entry. If the local bundle ID already exists in the selected Capgo account, onboarding offers to reuse that app, then offers to delete and recreate it, then falls back to alternate bundle ID suggestions. If the user reuses a pending app that was already created in the web onboarding flow, the CLI syncs that selected dashboard app ID back into `capacitor.config.*` before the remaining steps continue. Outside that reused pending-app path, the CLI keeps using the local Capacitor app ID. It writes the new `autoUpdate` policy modes into config: `"atBackground"` for the default flow and `"always"` for instant updates. It can also offer a final `npx skills add https://github.com/Cap-go/capgo-skills -g -y` install step before the GitHub support prompt; if accepted, the support menu includes `Cap-go/capgo-skills` alongside the updater-only and all-Capgo choices. If native platforms are missing, the onboarding can offer to run `cap add` for you. The updater step now verifies that `@capgo/capacitor-updater` is both declared in the selected `package.json` and resolvable from `node_modules`; if automatic install or later build/sync fails, onboarding prints the manual command, waits for the user to type `ready`, re-checks, and only then continues. If the user enables instant updates, onboarding requires `@capacitor/splash-screen` for `autoSplashscreen`, offers to install it with the same auto-install/retry flow, and waits until it is declared and resolvable before writing config. During the iOS run-on-device step, onboarding asks whether to use a physical iPhone/iPad or a simulator; for physical devices, it asks the user to connect and unlock the device, then offers a check-again loop before launching with the detected target. If iOS sync validation fails during onboarding, the CLI can offer to run a one-line native reset command, wait for you to type `ready` after a manual fix, surface `doctor`, and save a support bundle before you leave the flow.
29
+ - `init [apikey] [appId]`: guided first-time setup for Capgo in a Capacitor app. The interactive flow now runs as a real Ink-based fullscreen onboarding so it uses the same UI stack as `build init` (alias: `build onboarding`), with a persistent dashboard, phase roadmap, progress cards, shared log area, and resume support. At startup, onboarding still recommends a clean git worktree before file edits; dirty repos show `Check again` first and also offer a non-recommended `Continue anyway` override. When dependency auto-detection fails on macOS, the flow opens a native file picker for `package.json` before falling back to manual path entry. If the onboarding bundle upload fails, recovery can retry immediately or ask for the monorepo/workspace root `package.json` and hoisted `node_modules` paths (not the app package folder) and then retry. If the local bundle ID already exists in the selected Capgo account, onboarding offers to reuse that app, then offers to delete and recreate it, then falls back to alternate bundle ID suggestions. If the user reuses a pending app that was already created in the web onboarding flow, the CLI syncs that selected dashboard app ID back into `capacitor.config.*` before the remaining steps continue. Outside that reused pending-app path, the CLI keeps using the local Capacitor app ID. It writes the new `autoUpdate` policy modes into config: `"atBackground"` for the default flow and `"always"` for instant updates. It can also offer a final `npx skills add https://github.com/Cap-go/capgo-skills -g -y` install step before the GitHub support prompt; if accepted, the support menu includes `Cap-go/capgo-skills` alongside the updater-only and all-Capgo choices. If native platforms are missing, the onboarding can offer to run `cap add` for you. The updater step now verifies that `@capgo/capacitor-updater` is both declared in the selected `package.json` and resolvable from `node_modules`; if automatic install or later build/sync fails, onboarding prints the manual command, waits for the user to type `ready`, re-checks, and only then continues. If the user enables instant updates, onboarding requires `@capacitor/splash-screen` for `autoSplashscreen`, offers to install it with the same auto-install/retry flow, and waits until it is declared and resolvable before writing config. During the iOS run-on-device step, onboarding asks whether to use a physical iPhone/iPad or a simulator; for physical devices, it asks the user to connect and unlock the device, then offers a check-again loop before launching with the detected target. If iOS sync validation fails during onboarding, the CLI can offer to run a one-line native reset command, wait for you to type `ready` after a manual fix, surface `doctor`, and save a support bundle before you leave the flow.
30
30
  - `init --no-analytics`: disables init onboarding analytics and terminal replay for that run.
31
31
  - `run device [platform]`: run a Capacitor app on a connected device or simulator. In an interactive terminal, omitting `[platform]` asks whether to start on iOS or Android. The command lists available devices and simulators, includes a reload option, and resolves the `cap run` command. Use `npx @capgo/cli@latest run device ios --no-launch` to exercise iOS physical/simulator target selection and print the resolved command without launching the app.
32
32
  - `login [apikey]`: store an API key locally.