@capgo/cli 8.37.4 → 8.41.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.js +862 -700
- package/dist/package.json +11 -7
- package/dist/src/analytics/track.d.ts +0 -1
- package/dist/src/app/debug.d.ts +1 -1
- package/dist/src/app/list.d.ts +17 -2
- package/dist/src/build/android-version.d.ts +12 -0
- package/dist/src/build/onboarding/command.d.ts +9 -0
- package/dist/src/build/onboarding/project-discovery.d.ts +15 -0
- package/dist/src/build/onboarding/project-selection.d.ts +7 -0
- package/dist/src/build/onboarding/ui/platform-picker.d.ts +2 -0
- package/dist/src/build/onboarding/ui/project-discovery.d.ts +27 -0
- package/dist/src/config/index.d.ts +2 -1
- package/dist/src/init/browser-login.d.ts +26 -0
- package/dist/src/init/command.d.ts +1 -0
- package/dist/src/init/prompts.d.ts +1 -0
- package/dist/src/init/runtime.d.ts +2 -1
- package/dist/src/init/telemetry.d.ts +2 -2
- package/dist/src/login.d.ts +13 -0
- package/dist/src/runner-command.d.ts +3 -0
- package/dist/src/schemas/build.d.ts +1 -0
- package/dist/src/schemas/bundle.d.ts +1 -0
- package/dist/src/schemas/onboarding.d.ts +2 -2
- package/dist/src/sdk.js +312 -301
- package/dist/src/types/supabase.types.d.ts +0 -4
- package/dist/src/utils.d.ts +33 -33
- package/package.json +11 -7
- package/skills/_artifacts/domain_map.yaml +32 -0
- package/skills/_artifacts/skill_spec.md +30 -0
- package/skills/_artifacts/skill_tree.yaml +17 -0
- package/skills/native-builds/SKILL.md +1 -0
- package/skills/release-management/SKILL.md +2 -0
- package/skills/usage/SKILL.md +2 -1
package/dist/src/utils.d.ts
CHANGED
|
@@ -47,9 +47,8 @@ export declare function check2FAAccessForOrg(supabase: SupabaseClient<Database>,
|
|
|
47
47
|
type TagKey = Lowercase<string>;
|
|
48
48
|
/** Tag Type */
|
|
49
49
|
type Tags = Record<TagKey, string | number | boolean>;
|
|
50
|
-
type Parser = 'markdown' | 'text';
|
|
51
50
|
/**
|
|
52
|
-
* Options for publishing
|
|
51
|
+
* Options for publishing analytics events
|
|
53
52
|
*/
|
|
54
53
|
interface TrackOptions {
|
|
55
54
|
/**
|
|
@@ -80,25 +79,11 @@ interface TrackOptions {
|
|
|
80
79
|
* Tracking payload contract version.
|
|
81
80
|
*/
|
|
82
81
|
tracking_version?: number;
|
|
83
|
-
/**
|
|
84
|
-
* Event icon (emoji)
|
|
85
|
-
* must be a single emoji
|
|
86
|
-
* example: "🎉"
|
|
87
|
-
*/
|
|
88
|
-
icon?: string;
|
|
89
82
|
/**
|
|
90
83
|
* Event tags
|
|
91
84
|
* example: { username: "mattie" }
|
|
92
85
|
*/
|
|
93
86
|
tags?: Tags;
|
|
94
|
-
/**
|
|
95
|
-
* Send push notification
|
|
96
|
-
*/
|
|
97
|
-
notify?: boolean;
|
|
98
|
-
/**
|
|
99
|
-
* Parser for description
|
|
100
|
-
*/
|
|
101
|
-
parser?: Parser;
|
|
102
87
|
/**
|
|
103
88
|
* Event timestamp
|
|
104
89
|
*/
|
|
@@ -112,6 +97,17 @@ interface PromptInteractivityOptions {
|
|
|
112
97
|
ci?: boolean;
|
|
113
98
|
}
|
|
114
99
|
export declare function canPromptInteractively({ silent, stdinIsTTY, stdoutIsTTY, ci, }?: PromptInteractivityOptions): boolean;
|
|
100
|
+
interface CanOpenExternalUrlOptions {
|
|
101
|
+
ci?: boolean;
|
|
102
|
+
stdinIsTTY?: boolean;
|
|
103
|
+
stdoutIsTTY?: boolean;
|
|
104
|
+
display?: string | undefined;
|
|
105
|
+
platform?: NodeJS.Platform;
|
|
106
|
+
}
|
|
107
|
+
/** Whether the CLI may spawn a desktop browser for upgrade/docs links. */
|
|
108
|
+
export declare function canOpenExternalUrl(options?: CanOpenExternalUrlOptions): boolean;
|
|
109
|
+
/** Best-effort browser open; skipped in CI/headless and when xdg-open is missing. */
|
|
110
|
+
export declare function openExternalUrl(url: string): Promise<void>;
|
|
115
111
|
export declare function projectIsMonorepo(dir: string): boolean;
|
|
116
112
|
export declare function findRoot(dir: string): string;
|
|
117
113
|
export declare function getPackageScripts(f?: string, file?: string | undefined): Record<string, string>;
|
|
@@ -505,9 +501,14 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
505
501
|
channel_device_count?: number;
|
|
506
502
|
created_at?: string | null;
|
|
507
503
|
created_from_onboarding?: boolean;
|
|
508
|
-
default_upload_channel
|
|
504
|
+
default_upload_channel? /**
|
|
505
|
+
* User ID
|
|
506
|
+
* example: "user-123"
|
|
507
|
+
*/: string;
|
|
509
508
|
existing_app?: boolean;
|
|
510
|
-
expose_metadata
|
|
509
|
+
expose_metadata? /**
|
|
510
|
+
* Organization ID for actor-scoped tracking.
|
|
511
|
+
*/: boolean;
|
|
511
512
|
icon_url: string;
|
|
512
513
|
id?: string | null;
|
|
513
514
|
ios_store_url?: string | null;
|
|
@@ -3079,13 +3080,7 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
3079
3080
|
created_at?: string;
|
|
3080
3081
|
credit_step_id?: number | null;
|
|
3081
3082
|
credits_debited?: number;
|
|
3082
|
-
credits_estimated
|
|
3083
|
-
/**
|
|
3084
|
-
* Check if a package is compatible and return detailed reasons if not
|
|
3085
|
-
*/
|
|
3086
|
-
? /**
|
|
3087
|
-
* Check if a package is compatible and return detailed reasons if not
|
|
3088
|
-
*/: number;
|
|
3083
|
+
credits_estimated?: number;
|
|
3089
3084
|
details?: import("./types/supabase.types").Json | null;
|
|
3090
3085
|
id?: string;
|
|
3091
3086
|
metric?: Database["public"]["Enums"]["credit_metric_type"];
|
|
@@ -4763,10 +4758,6 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
4763
4758
|
};
|
|
4764
4759
|
Returns: boolean;
|
|
4765
4760
|
};
|
|
4766
|
-
is_rbac_enabled_globally: {
|
|
4767
|
-
Args: never;
|
|
4768
|
-
Returns: boolean;
|
|
4769
|
-
};
|
|
4770
4761
|
is_recent_email_otp_verified: {
|
|
4771
4762
|
Args: {
|
|
4772
4763
|
user_id: string;
|
|
@@ -5725,11 +5716,14 @@ export declare function shouldWarnTrialExpiry(options: {
|
|
|
5725
5716
|
export declare function isAllowedActionOrg(supabase: SupabaseClient<Database>, orgId: string): Promise<boolean>;
|
|
5726
5717
|
/** Validate metered plan actions while preserving app-scoped RBAC context when available. */
|
|
5727
5718
|
export declare function isAllowedPlanActions(supabase: SupabaseClient<Database>, orgId: string, actions: Database['public']['Enums']['action_type'][], appId?: string): Promise<boolean>;
|
|
5719
|
+
export type MeteredPlanCheckResult = 'allowed' | 'billing_denied' | 'permission_denied';
|
|
5720
|
+
/** Distinguish RBAC denials on app-scoped plan RPCs from real billing limits. */
|
|
5721
|
+
export declare function resolveMeteredPlanAllowed(supabase: SupabaseClient<Database>, orgId: string, actions: Database['public']['Enums']['action_type'][], appId?: string): Promise<MeteredPlanCheckResult>;
|
|
5728
5722
|
export declare function checkRemoteCliMessages(supabase: SupabaseClient<Database>, orgId: string, cliVersion: string): Promise<void>;
|
|
5729
5723
|
export declare function checkPlanValid(supabase: SupabaseClient<Database>, orgId: string, appId?: string, warning?: boolean): Promise<void>;
|
|
5730
5724
|
export declare function checkPlanValidUpload(supabase: SupabaseClient<Database>, orgId: string, appId?: string, warning?: boolean): Promise<void>;
|
|
5731
5725
|
export declare function findSavedKeySilent(): string | undefined;
|
|
5732
|
-
export declare function findSavedKey(quiet?: boolean): string;
|
|
5726
|
+
export declare function findSavedKey(quiet?: boolean, report?: (message: string) => void): string;
|
|
5733
5727
|
export declare function getContentType(filename: string): string;
|
|
5734
5728
|
export declare function findProjectType(options?: {
|
|
5735
5729
|
quiet?: boolean;
|
|
@@ -5815,10 +5809,16 @@ export declare function updateOrCreateChannel(supabase: SupabaseClient<Database>
|
|
|
5815
5809
|
updated_at: string;
|
|
5816
5810
|
version: number | null;
|
|
5817
5811
|
}>>;
|
|
5818
|
-
|
|
5819
|
-
notifyConsole?: boolean;
|
|
5812
|
+
type SendEventPayload = TrackOptions & {
|
|
5820
5813
|
nonPersonTags?: Record<string, string | number | boolean>;
|
|
5821
|
-
}
|
|
5814
|
+
} & ({
|
|
5815
|
+
notifyConsole: true;
|
|
5816
|
+
icon?: string;
|
|
5817
|
+
} | {
|
|
5818
|
+
notifyConsole?: false;
|
|
5819
|
+
icon?: never;
|
|
5820
|
+
});
|
|
5821
|
+
export declare function sendEvent(capgkey: string, payload: SendEventPayload, verbose?: boolean, signal?: AbortSignal): Promise<void>;
|
|
5822
5822
|
export declare function show2FADeniedError(organizationName?: string): never;
|
|
5823
5823
|
export declare function filterOrgsByPermission(supabase: SupabaseClient<Database>, apikey: string, orgs: Organization[], permissionKey: string): Promise<Organization[]>;
|
|
5824
5824
|
export declare function getOrganizationListWithPermission(supabase: SupabaseClient<Database>, apikey: string, permissionKey: string): Promise<{
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capgo/cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.41.3",
|
|
5
5
|
"description": "A CLI to upload to capgo servers",
|
|
6
6
|
"author": "Martin martin@capgo.app",
|
|
7
7
|
"license": "Apache 2.0",
|
|
8
8
|
"homepage": "https://github.com/Cap-go/capgo/tree/main/cli#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "
|
|
11
|
+
"url": "https://github.com/Cap-go/capgo.app",
|
|
12
12
|
"directory": "cli"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
@@ -105,6 +105,7 @@
|
|
|
105
105
|
"test:mcp-build-job": "bun test/test-mcp-build-job.mjs",
|
|
106
106
|
"test:mcp-build-tools": "bun test/test-mcp-build-tools.mjs",
|
|
107
107
|
"test:app-created-source": "bun test/test-app-created-source.mjs",
|
|
108
|
+
"test:app-list-output-text": "bun test/test-app-list-output-text.mjs",
|
|
108
109
|
"test:doctor-analytics": "bun test/test-doctor-analytics.mjs",
|
|
109
110
|
"test:posthog-exception": "bun test/test-posthog-exception.mjs",
|
|
110
111
|
"test:onboarding-recovery": "bun test/test-onboarding-recovery.mjs",
|
|
@@ -162,10 +163,12 @@
|
|
|
162
163
|
"test:ios-updater-sync-validation": "bun test/test-ios-updater-sync-validation.mjs",
|
|
163
164
|
"test:ios-verify-app": "bun test/test-ios-verify-app.mjs",
|
|
164
165
|
"test:ios-marketing-version": "bun test/test-ios-marketing-version.mjs",
|
|
166
|
+
"test:android-version": "bun test/test-android-version.mjs",
|
|
165
167
|
"test:platform-flow-contract": "bun test/test-platform-flow-contract.mjs",
|
|
166
168
|
"test:tail-engine-shared": "bun test/test-tail-engine-shared.mjs",
|
|
167
|
-
"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: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: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",
|
|
169
|
+
"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: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-list-output-text && bun run test:doctor-analytics && bun run test:posthog-exception && 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: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-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",
|
|
168
170
|
"test:build-platform-selection": "bun test/test-build-platform-selection.mjs",
|
|
171
|
+
"test:builder-project-discovery": "bun test/test-builder-project-discovery.mjs",
|
|
169
172
|
"test:ai-log-capture": "bun test/test-ai-log-capture.mjs",
|
|
170
173
|
"test:ai-analyze-flow": "bun test/test-ai-analyze-flow.mjs",
|
|
171
174
|
"test:cicd-failure-help": "bun test/test-cicd-failure-help.mjs",
|
|
@@ -192,7 +195,7 @@
|
|
|
192
195
|
"test:support-upload-prompt": "bun test/test-support-upload-prompt.mjs",
|
|
193
196
|
"test:support-bundle-files": "bun test/test-support-bundle-files.mjs",
|
|
194
197
|
"test:mcp-live-update-onboarding": "bun test/test-mcp-live-update-onboarding.mjs",
|
|
195
|
-
"test:app-set-options": "bun test/test-app-set-options.mjs",
|
|
198
|
+
"test:app-set-options": "bun test/test-app-set-options.mjs && bun test/test-app-list-options.mjs",
|
|
196
199
|
"test:android-reporting-api": "bun test/test-android-reporting-api.mjs",
|
|
197
200
|
"test:android-app-verification": "bun test/test-android-app-verification.mjs",
|
|
198
201
|
"test:android-rename": "bun test/test-android-rename.mjs",
|
|
@@ -214,7 +217,9 @@
|
|
|
214
217
|
},
|
|
215
218
|
"dependencies": {
|
|
216
219
|
"@inkjs/ui": "^2.0.0",
|
|
220
|
+
"@manypkg/tools": "^2.1.2",
|
|
217
221
|
"@rrweb/types": "^2.1.1",
|
|
222
|
+
"@standard-schema/spec": "^1.1.0",
|
|
218
223
|
"@xmldom/xmldom": "^0.9.10",
|
|
219
224
|
"@xterm/addon-serialize": "^0.14.0",
|
|
220
225
|
"@xterm/headless": "^6.0.0",
|
|
@@ -227,8 +232,8 @@
|
|
|
227
232
|
"react": "^19.2.8",
|
|
228
233
|
"rrweb-snapshot": "^2.1.1",
|
|
229
234
|
"string-width": "^8.2.2",
|
|
230
|
-
"
|
|
231
|
-
"
|
|
235
|
+
"typescript": "6.0.3",
|
|
236
|
+
"zod": "^4.4.3"
|
|
232
237
|
},
|
|
233
238
|
"optionalDependencies": {
|
|
234
239
|
"@capgo/cli-helper-darwin-arm64": "^1.1.1",
|
|
@@ -273,7 +278,6 @@
|
|
|
273
278
|
"prettyjson": "^1.2.5",
|
|
274
279
|
"tmp": "^0.2.7",
|
|
275
280
|
"tus-js-client": "^4.3.1",
|
|
276
|
-
"typescript": "6.0.3",
|
|
277
281
|
"ws": "^8.21.1"
|
|
278
282
|
}
|
|
279
283
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
domains:
|
|
2
|
+
- name: cli-usage
|
|
3
|
+
summary: High-level command routing, setup, diagnostics, app management, docs generation, MCP, and GitHub support commands.
|
|
4
|
+
primary_sources:
|
|
5
|
+
- webdocs/init.mdx
|
|
6
|
+
- webdocs/doctor.mdx
|
|
7
|
+
- webdocs/login.mdx
|
|
8
|
+
- webdocs/app.mdx
|
|
9
|
+
- webdocs/account.mdx
|
|
10
|
+
- webdocs/probe.mdx
|
|
11
|
+
- webdocs/star.mdx
|
|
12
|
+
- webdocs/star-all.mdx
|
|
13
|
+
- src/index.ts
|
|
14
|
+
- name: ota-release-management
|
|
15
|
+
summary: OTA bundle uploads, channel operations, preview QR codes, compatibility checks, cleanup, and encryption-key workflows.
|
|
16
|
+
primary_sources:
|
|
17
|
+
- webdocs/bundle.mdx
|
|
18
|
+
- webdocs/channel.mdx
|
|
19
|
+
- webdocs/key.mdx
|
|
20
|
+
- src/index.ts
|
|
21
|
+
- name: native-builds
|
|
22
|
+
summary: Native cloud build requests and local build credential management for iOS and Android.
|
|
23
|
+
primary_sources:
|
|
24
|
+
- webdocs/build.mdx
|
|
25
|
+
- src/index.ts
|
|
26
|
+
- name: organization-management
|
|
27
|
+
summary: Account lookup, organization administration, and deprecated organisation aliases.
|
|
28
|
+
primary_sources:
|
|
29
|
+
- webdocs/account.mdx
|
|
30
|
+
- webdocs/organization.mdx
|
|
31
|
+
- webdocs/organisation.mdx
|
|
32
|
+
- src/index.ts
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Capgo CLI skill spec
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Provide a small Capgo CLI skill set that helps an agent choose and invoke the correct CLI commands for app setup, OTA release operations, organization administration, MCP setup, GitHub support commands, and native cloud builds without exceeding TanStack Intent size limits.
|
|
6
|
+
|
|
7
|
+
## Sources
|
|
8
|
+
|
|
9
|
+
- `webdocs/*.mdx` for published command descriptions, examples, and option tables.
|
|
10
|
+
- `src/index.ts` for the currently registered commands, aliases, and flags that may not yet be fully reflected in the web docs.
|
|
11
|
+
- `AGENTS.md` for repository-specific maintenance requirements.
|
|
12
|
+
|
|
13
|
+
## Skill set
|
|
14
|
+
|
|
15
|
+
- `usage`: routing, setup, diagnostics, app commands, docs generation, MCP, and GitHub support commands.
|
|
16
|
+
- `release-management`: bundle, channel, compatibility, cleanup, and encryption-key workflows.
|
|
17
|
+
- `native-builds`: native cloud build requests and build credential storage/update flows.
|
|
18
|
+
- `organization-management`: account ID lookup, organization admin flows, and deprecated `organisation` aliases.
|
|
19
|
+
|
|
20
|
+
## Scope
|
|
21
|
+
|
|
22
|
+
- Include the documented command purpose, invocation patterns, key options, and important caveats.
|
|
23
|
+
- Prefer the public user-facing examples already used by the project.
|
|
24
|
+
- Keep the skills aligned with the published docs and current CLI registration.
|
|
25
|
+
|
|
26
|
+
## Maintenance rules
|
|
27
|
+
|
|
28
|
+
- Any CLI command or option change should update the relevant `skills/*/SKILL.md` file in the same pull request.
|
|
29
|
+
- Use `webdocs/` as the primary wording source and `src/index.ts` as the completeness check.
|
|
30
|
+
- Validate the skills with `bunx @tanstack/intent@latest validate` before release.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
skills:
|
|
2
|
+
- name: usage
|
|
3
|
+
path: skills/usage/SKILL.md
|
|
4
|
+
domain: cli-usage
|
|
5
|
+
focus: High-level routing and shared invocation rules.
|
|
6
|
+
- name: release-management
|
|
7
|
+
path: skills/release-management/SKILL.md
|
|
8
|
+
domain: ota-release-management
|
|
9
|
+
focus: OTA bundle, channel, compatibility, cleanup, and encryption workflows.
|
|
10
|
+
- name: native-builds
|
|
11
|
+
path: skills/native-builds/SKILL.md
|
|
12
|
+
domain: native-builds
|
|
13
|
+
focus: Native build request flows and local build credential management.
|
|
14
|
+
- name: organization-management
|
|
15
|
+
path: skills/organization-management/SKILL.md
|
|
16
|
+
domain: organization-management
|
|
17
|
+
focus: Account and organization administration commands, including deprecated aliases.
|
|
@@ -143,6 +143,7 @@ interface BuildLogger {
|
|
|
143
143
|
- `--keystore-store-password <password>`
|
|
144
144
|
- `--play-config-json <json>`
|
|
145
145
|
- `--android-flavor <flavor>`
|
|
146
|
+
- `--sync-android-version`: before upload, replace a standalone quoted `versionName` literal in `android/app/build.gradle` with the `package.json` version. The request fails before submission if the file is missing or `versionName` is computed, interpolated, concatenated, or otherwise not a standalone quoted string literal.
|
|
146
147
|
- `--in-app-update-priority <0-5>`: Google Play in-app update priority (higher = more urgent)
|
|
147
148
|
|
|
148
149
|
#### Output behavior options
|
|
@@ -39,6 +39,7 @@ Use this skill for OTA update workflows in Capgo Cloud.
|
|
|
39
39
|
- Alias: `u`
|
|
40
40
|
- Example: `npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production,beta`
|
|
41
41
|
- Progressive rollout example: `npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production --rollout 10`
|
|
42
|
+
- Advance an existing rollout: `npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production --rollout-advance`
|
|
42
43
|
- Key behavior:
|
|
43
44
|
- Bundle version must be greater than `0.0.0` and unique.
|
|
44
45
|
- Deleted versions cannot be reused.
|
|
@@ -55,6 +56,7 @@ Use this skill for OTA update workflows in Capgo Cloud.
|
|
|
55
56
|
- `-c, --channel <channel[,channel...]>`
|
|
56
57
|
- `--rollout <percentage>`
|
|
57
58
|
- `--rollout-percentage-bps <basisPoints>`
|
|
59
|
+
- `--rollout-advance` (promote the current rollout target to stable, then set the uploaded bundle as the new rollout; reuses the previous percentage unless `--rollout` or `--rollout-percentage-bps` is also set)
|
|
58
60
|
- `--rollout-cache-ttl-seconds <seconds>`
|
|
59
61
|
- `-e, --external <url>`
|
|
60
62
|
- `--iv-session-key <key>`
|
package/skills/usage/SKILL.md
CHANGED
|
@@ -35,7 +35,7 @@ TanStack Intent skills should stay focused and under the validator line limit, s
|
|
|
35
35
|
### App-level operations
|
|
36
36
|
|
|
37
37
|
- `app add [appId]`: create an app in Capgo Cloud.
|
|
38
|
-
- `app list`: list apps under the current account.
|
|
38
|
+
- `app list`: list apps under the current account. Pass `--filter-by-org-id <orgId>` to list only apps from one organization, `--show-org` to include organization names, and `--show-org-id` to include organization IDs. The CLI warns that the filter can hide other accessible apps. Use `npx @capgo/cli@latest app list --output-text` for plain status text with an embedded CSV app table and no interactive terminal formatting.
|
|
39
39
|
- `app delete [appId]`: remove an app.
|
|
40
40
|
- `app set [appId]`: update app settings such as name, icon, retention, metadata exposure, and preview access with `--preview` or `--no-preview`.
|
|
41
41
|
- `app setting [path]`: update Capacitor config values programmatically.
|
|
@@ -91,6 +91,7 @@ npx @capgo/cli@latest login YOUR_API_KEY
|
|
|
91
91
|
npx @capgo/cli@latest doctor
|
|
92
92
|
npx @capgo/cli@latest probe --platform ios
|
|
93
93
|
npx @capgo/cli@latest app add com.example.app --name "My App"
|
|
94
|
+
npx @capgo/cli@latest app list --filter-by-org-id YOUR_ORG_ID --show-org --show-org-id
|
|
94
95
|
npx @capgo/cli@latest get-qr com.example.app --channel production
|
|
95
96
|
npx @capgo/cli@latest star-all
|
|
96
97
|
```
|