@capgo/cli 8.35.0 → 8.37.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.
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "8.35.0",
4
+ "version": "8.37.0",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
@@ -114,6 +114,7 @@
114
114
  "test:wait-log": "bun test/test-wait-log.mjs",
115
115
  "test:init-guardrails": "bun test/test-init-guardrails.mjs",
116
116
  "test:init-replay": "bun test/test-init-replay.mjs",
117
+ "test:init-telemetry": "bun test/test-init-telemetry.mjs",
117
118
  "test:capacitor-config-target": "bun test/test-capacitor-config-target.mjs",
118
119
  "test:init-monorepo-targeting": "bun run test:capacitor-config-target && bun test/test-init-monorepo-targeting.mjs",
119
120
  "test:prompt-preferences": "bun test/test-prompt-preferences.mjs",
@@ -162,7 +163,7 @@
162
163
  "test:ios-marketing-version": "bun test/test-ios-marketing-version.mjs",
163
164
  "test:platform-flow-contract": "bun test/test-platform-flow-contract.mjs",
164
165
  "test:tail-engine-shared": "bun test/test-tail-engine-shared.mjs",
165
- "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && 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-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: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: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:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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:wait-log && bun run test:init-guardrails && bun run test:init-replay && 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:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && 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:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation",
166
+ "test": "bun run build && bun run test:helper-dce && bun run test:version-detection:setup && bun run test:bundle && 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-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: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: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:doctor-analytics && bun run test:posthog-exception && bun run test:build-platform-selection && 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: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:platform-flow-contract && bun run test:tail-engine-shared && bun run test:prescan && bun run test:android-reporting-api && 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:organization-set-api-host && bun run test:trial-warning && bun run test:plan-validation",
166
167
  "test:build-platform-selection": "bun test/test-build-platform-selection.mjs",
167
168
  "test:ai-log-capture": "bun test/test-ai-log-capture.mjs",
168
169
  "test:ai-analyze-flow": "bun test/test-ai-analyze-flow.mjs",
@@ -18,6 +18,18 @@ export declare function completePendingOnboardingApp(_supabase: SupabaseClient<D
18
18
  supaHost?: string;
19
19
  supaAnon?: string;
20
20
  }): Promise<void>;
21
+ export interface AppOnboardingProgressPatch {
22
+ source?: 'manual' | 'cli' | 'mcp' | 'ai';
23
+ outcome?: 'in_progress' | 'completed' | 'skipped' | 'switched_to_manual';
24
+ steps?: Record<string, {
25
+ status: 'done' | 'skipped';
26
+ at?: string;
27
+ }>;
28
+ }
29
+ export declare function reportAppOnboardingProgress(apikey: string, appId: string, onboarding: AppOnboardingProgressPatch, options?: {
30
+ supaHost?: string;
31
+ supaAnon?: string;
32
+ }): Promise<void>;
21
33
  /**
22
34
  * Check multiple app IDs at once for batch validation (e.g., for suggestions)
23
35
  */
@@ -62,6 +62,7 @@ export interface EngineDeps {
62
62
  cwd?: string;
63
63
  };
64
64
  getGitStatus: (cwd?: string) => GitRepoStatus;
65
+ reportOnboardingStep?: (appId: string, stepDone: number) => void;
65
66
  }
66
67
  export interface LiveUpdateFacts {
67
68
  capacitorProject: boolean;
@@ -0,0 +1,13 @@
1
+ import type { InitOnboardingStepId } from './onboarding-steps';
2
+ export declare function reportInitOnboardingStep(apikey: string, appId: string | undefined, stepNumber: number, status?: 'done' | 'skipped', options?: {
3
+ supaHost?: string;
4
+ supaAnon?: string;
5
+ outcome?: 'completed' | 'skipped' | 'in_progress';
6
+ }): Promise<void>;
7
+ export declare function reportInitOnboarding(apikey: string, appId: string, steps: Partial<Record<InitOnboardingStepId, {
8
+ status: 'done' | 'skipped';
9
+ }>>, options?: {
10
+ supaHost?: string;
11
+ supaAnon?: string;
12
+ outcome?: 'completed' | 'skipped' | 'in_progress' | 'switched_to_manual';
13
+ }): Promise<void>;
@@ -0,0 +1,3 @@
1
+ export type ReportedOnboardingSource = 'cli' | 'mcp' | 'ai';
2
+ export declare function detectOnboardingSource(): ReportedOnboardingSource;
3
+ export declare function isAiAgentEnvironment(environment?: NodeJS.ProcessEnv): boolean;
@@ -0,0 +1,9 @@
1
+ export declare const INIT_ONBOARDING_STEP_IDS: readonly ["add_app", "add_channel", "add_updater", "add_code", "add_encryption", "select_platform", "build_project", "run_device", "add_code_change", "upload_bundle", "test_update", "completion"];
2
+ export type InitOnboardingStepId = typeof INIT_ONBOARDING_STEP_IDS[number];
3
+ export interface InitOnboardingStepDefinition {
4
+ id: InitOnboardingStepId;
5
+ title: string;
6
+ summary: string;
7
+ phase: string;
8
+ }
9
+ export declare const initOnboardingSteps: InitOnboardingStepDefinition[];
@@ -0,0 +1,36 @@
1
+ type TelemetryValue = string | number | boolean;
2
+ type TelemetryProperties = Record<string, TelemetryValue>;
3
+ export interface InitProgressTelemetry {
4
+ journey_id: string;
5
+ last_run_id?: string;
6
+ }
7
+ export interface InitTelemetryOptions {
8
+ capture?: (event: string, properties: TelemetryProperties, icon: string, appId?: string) => Promise<void> | void;
9
+ enabled?: boolean;
10
+ replaySessionId?: () => string | undefined;
11
+ }
12
+ export declare function parseInitProgressTelemetry(progress: unknown): InitProgressTelemetry | undefined;
13
+ export declare function mergeInitProgressTelemetry<T extends Record<string, unknown>>(progress: T, telemetry?: InitProgressTelemetry): T | (T & {
14
+ telemetry: InitProgressTelemetry;
15
+ });
16
+ export declare function createInitTelemetry(options?: InitTelemetryOptions): {
17
+ readonly journeyId: string;
18
+ readonly runId: string;
19
+ clearScope(): void;
20
+ getLegacyBackfillMetadata: () => {
21
+ journey_id: string;
22
+ } | undefined;
23
+ getProgressMetadata: () => InitProgressTelemetry | undefined;
24
+ prepareResumeCandidate: (saved?: InitProgressTelemetry, savedStep?: number, totalSteps?: number) => {
25
+ last_run_id?: string | undefined;
26
+ journey_id: string;
27
+ } | undefined;
28
+ recordMilestone: (event: string, extra?: TelemetryProperties, icon?: string, eventAppId?: string | null) => Promise<void>;
29
+ recordResumeDecision: (nextChoice: "continue" | "restart") => Promise<void>;
30
+ recordResumePromptViewed: () => Promise<void>;
31
+ recordRunEnded: (outcome: "completed" | "cancelled" | "failed", exitCode: number) => Promise<void>;
32
+ recordRunStarted: () => Promise<void>;
33
+ setAuth: (orgId: string, apikey: string) => void;
34
+ setScope: (nextAppId?: string) => void;
35
+ };
36
+ export {};
@@ -1,9 +1,5 @@
1
- export interface InitOnboardingStepDefinition {
2
- title: string;
3
- summary: string;
4
- phase: string;
5
- }
6
- export declare const initOnboardingSteps: InitOnboardingStepDefinition[];
1
+ import { initOnboardingSteps } from './onboarding-steps';
2
+ export { initOnboardingSteps };
7
3
  export declare function renderInitOnboardingWelcome(totalSteps: number, analyticsEnabled?: boolean): void;
8
4
  export declare function renderInitOnboardingFrame(currentStepNumber: number, totalSteps: number, options?: {
9
5
  resumed?: boolean;
@@ -72,8 +72,8 @@ export declare const buildRequestOptionsSchema: z.ZodObject<{
72
72
  production: "production";
73
73
  }>>;
74
74
  androidReleaseStatus: z.ZodOptional<z.ZodEnum<{
75
- draft: "draft";
76
75
  completed: "completed";
76
+ draft: "draft";
77
77
  inProgress: "inProgress";
78
78
  halted: "halted";
79
79
  }>>;
@@ -70,8 +70,8 @@ export declare const uploadOptionsSchema: z.ZodObject<{
70
70
  minor: "minor";
71
71
  patch: "patch";
72
72
  metadata: "metadata";
73
- fix: "fix";
74
73
  ai: "ai";
74
+ fix: "fix";
75
75
  }>]>>;
76
76
  selfAssign: z.ZodOptional<z.ZodBoolean>;
77
77
  packageJsonPaths: z.ZodOptional<z.ZodString>;
@@ -384,8 +384,8 @@ export declare const requestBuildOptionsSchema: z.ZodObject<{
384
384
  production: "production";
385
385
  }>>;
386
386
  androidReleaseStatus: z.ZodOptional<z.ZodEnum<{
387
- draft: "draft";
388
387
  completed: "completed";
388
+ draft: "draft";
389
389
  inProgress: "inProgress";
390
390
  halted: "halted";
391
391
  }>>;