claudekit-cli 3.38.0-dev.5 → 3.38.0-dev.6
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/index.js
CHANGED
|
@@ -12214,18 +12214,6 @@ function isUnknownChecksum(checksum) {
|
|
|
12214
12214
|
var UNKNOWN_CHECKSUM = "unknown";
|
|
12215
12215
|
|
|
12216
12216
|
// src/commands/portable/portable-registry.ts
|
|
12217
|
-
var exports_portable_registry = {};
|
|
12218
|
-
__export(exports_portable_registry, {
|
|
12219
|
-
writePortableRegistry: () => writePortableRegistry,
|
|
12220
|
-
updateAppliedManifestVersion: () => updateAppliedManifestVersion,
|
|
12221
|
-
syncPortableRegistry: () => syncPortableRegistry,
|
|
12222
|
-
removePortableInstallation: () => removePortableInstallation,
|
|
12223
|
-
removeInstallationsByFilter: () => removeInstallationsByFilter,
|
|
12224
|
-
readPortableRegistry: () => readPortableRegistry,
|
|
12225
|
-
getInstallationsByType: () => getInstallationsByType,
|
|
12226
|
-
findPortableInstallations: () => findPortableInstallations,
|
|
12227
|
-
addPortableInstallation: () => addPortableInstallation
|
|
12228
|
-
});
|
|
12229
12217
|
import { existsSync as existsSync2 } from "node:fs";
|
|
12230
12218
|
import { mkdir, readFile as readFile2, rename, unlink, writeFile } from "node:fs/promises";
|
|
12231
12219
|
import { homedir as homedir3 } from "node:os";
|
|
@@ -12485,9 +12473,6 @@ function findPortableInstallations(registry, item, type, provider, global2) {
|
|
|
12485
12473
|
return true;
|
|
12486
12474
|
});
|
|
12487
12475
|
}
|
|
12488
|
-
function getInstallationsByType(registry, type) {
|
|
12489
|
-
return registry.installations.filter((i) => i.type === type);
|
|
12490
|
-
}
|
|
12491
12476
|
async function updateAppliedManifestVersion(version) {
|
|
12492
12477
|
await withRegistryLock(async () => {
|
|
12493
12478
|
const registry = await readPortableRegistry();
|
|
@@ -42433,7 +42418,7 @@ var init_ck_config = __esm(() => {
|
|
|
42433
42418
|
}).passthrough();
|
|
42434
42419
|
UpdatePipelineSchema = exports_external.object({
|
|
42435
42420
|
autoInitAfterUpdate: exports_external.boolean().default(false),
|
|
42436
|
-
|
|
42421
|
+
autoMigrateAfterUpdate: exports_external.boolean().default(false),
|
|
42437
42422
|
migrateProviders: exports_external.union([exports_external.literal("auto"), exports_external.array(exports_external.string())]).default("auto")
|
|
42438
42423
|
});
|
|
42439
42424
|
ResolvedModelConfigSchema = exports_external.object({
|
|
@@ -42544,7 +42529,7 @@ var init_ck_config = __esm(() => {
|
|
|
42544
42529
|
},
|
|
42545
42530
|
updatePipeline: {
|
|
42546
42531
|
autoInitAfterUpdate: false,
|
|
42547
|
-
|
|
42532
|
+
autoMigrateAfterUpdate: false,
|
|
42548
42533
|
migrateProviders: "auto"
|
|
42549
42534
|
}
|
|
42550
42535
|
};
|
|
@@ -48552,17 +48537,17 @@ var init_ck_config_schema = __esm(() => {
|
|
|
48552
48537
|
},
|
|
48553
48538
|
updatePipeline: {
|
|
48554
48539
|
type: "object",
|
|
48555
|
-
description: "
|
|
48540
|
+
description: "3-step update pipeline: CLI update -> kit init -> provider migrate (each independent)",
|
|
48556
48541
|
properties: {
|
|
48557
48542
|
autoInitAfterUpdate: {
|
|
48558
48543
|
type: "boolean",
|
|
48559
48544
|
default: false,
|
|
48560
48545
|
description: "Automatically run ck init after ck update when kit has new version"
|
|
48561
48546
|
},
|
|
48562
|
-
|
|
48547
|
+
autoMigrateAfterUpdate: {
|
|
48563
48548
|
type: "boolean",
|
|
48564
48549
|
default: false,
|
|
48565
|
-
description: "Automatically run ck migrate after ck
|
|
48550
|
+
description: "Automatically run ck migrate after ck update for detected providers (independent of init)"
|
|
48566
48551
|
},
|
|
48567
48552
|
migrateProviders: {
|
|
48568
48553
|
oneOf: [
|
|
@@ -57259,7 +57244,7 @@ var package_default;
|
|
|
57259
57244
|
var init_package = __esm(() => {
|
|
57260
57245
|
package_default = {
|
|
57261
57246
|
name: "claudekit-cli",
|
|
57262
|
-
version: "3.38.0-dev.
|
|
57247
|
+
version: "3.38.0-dev.6",
|
|
57263
57248
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
57264
57249
|
type: "module",
|
|
57265
57250
|
repository: {
|
|
@@ -58554,7 +58539,8 @@ function getDefaultUpdateCliCommandDeps() {
|
|
|
58554
58539
|
execAsyncFn: execAsync2,
|
|
58555
58540
|
packageManagerDetector: PackageManagerDetector,
|
|
58556
58541
|
npmRegistryClient: NpmRegistryClient,
|
|
58557
|
-
promptKitUpdateFn: promptKitUpdate
|
|
58542
|
+
promptKitUpdateFn: promptKitUpdate,
|
|
58543
|
+
promptMigrateUpdateFn: promptMigrateUpdate
|
|
58558
58544
|
};
|
|
58559
58545
|
}
|
|
58560
58546
|
function extractCommandStdout(result) {
|
|
@@ -58679,14 +58665,14 @@ async function promptKitUpdate(beta, yes, deps) {
|
|
|
58679
58665
|
if (selection.kit && kitVersion) {
|
|
58680
58666
|
logger.info(`Current kit version: ${selection.kit}@${kitVersion}`);
|
|
58681
58667
|
}
|
|
58668
|
+
let alreadyAtLatest = false;
|
|
58682
58669
|
if (yes && selection.kit && kitVersion) {
|
|
58683
58670
|
const getTagFn = deps?.getLatestReleaseTagFn ?? fetchLatestReleaseTag;
|
|
58684
58671
|
const latestTag = await getTagFn(selection.kit, beta || isBetaInstalled);
|
|
58685
58672
|
if (latestTag && versionsMatch(kitVersion, latestTag)) {
|
|
58686
58673
|
logger.success(`Already at latest version (${selection.kit}@${kitVersion}), skipping reinstall`);
|
|
58687
|
-
|
|
58688
|
-
}
|
|
58689
|
-
if (latestTag) {
|
|
58674
|
+
alreadyAtLatest = true;
|
|
58675
|
+
} else if (latestTag) {
|
|
58690
58676
|
logger.info(`Kit update available: ${kitVersion} -> ${latestTag}`);
|
|
58691
58677
|
}
|
|
58692
58678
|
}
|
|
@@ -58695,6 +58681,9 @@ async function promptKitUpdate(beta, yes, deps) {
|
|
|
58695
58681
|
const ckConfig = await loadFullConfigFn(null);
|
|
58696
58682
|
autoInit = ckConfig.config.updatePipeline?.autoInitAfterUpdate ?? false;
|
|
58697
58683
|
} catch {}
|
|
58684
|
+
if (alreadyAtLatest && !autoInit) {
|
|
58685
|
+
return;
|
|
58686
|
+
}
|
|
58698
58687
|
if (!yes && !autoInit) {
|
|
58699
58688
|
logger.info("");
|
|
58700
58689
|
const shouldUpdate = await confirmFn({
|
|
@@ -58743,6 +58732,77 @@ async function promptKitUpdate(beta, yes, deps) {
|
|
|
58743
58732
|
logger.verbose(`Failed to prompt for kit update: ${error instanceof Error ? error.message : "unknown error"}`);
|
|
58744
58733
|
}
|
|
58745
58734
|
}
|
|
58735
|
+
async function promptMigrateUpdate(deps) {
|
|
58736
|
+
try {
|
|
58737
|
+
const providerRegistry = deps?.detectInstalledProvidersFn && deps?.getProviderConfigFn ? null : await Promise.resolve().then(() => (init_provider_registry(), exports_provider_registry));
|
|
58738
|
+
const detectFn = deps?.detectInstalledProvidersFn ?? providerRegistry?.detectInstalledProviders;
|
|
58739
|
+
const getConfigFn = deps?.getProviderConfigFn ?? providerRegistry?.getProviderConfig;
|
|
58740
|
+
const getSetupFn = deps?.getSetupFn ?? getClaudeKitSetup;
|
|
58741
|
+
const loadFullConfigFn = deps?.loadFullConfigFn ?? CkConfigManager.loadFull;
|
|
58742
|
+
const execFn = deps?.execAsyncFn ?? execAsync2;
|
|
58743
|
+
if (!detectFn || !getConfigFn)
|
|
58744
|
+
return;
|
|
58745
|
+
const allProviders = await detectFn();
|
|
58746
|
+
const targets = allProviders.filter((p) => p !== "claude-code");
|
|
58747
|
+
if (targets.length === 0) {
|
|
58748
|
+
logger.verbose("No migration targets detected, skipping migrate step");
|
|
58749
|
+
return;
|
|
58750
|
+
}
|
|
58751
|
+
let autoMigrate = false;
|
|
58752
|
+
let migrateProviders = "auto";
|
|
58753
|
+
try {
|
|
58754
|
+
const ckConfig = await loadFullConfigFn(null);
|
|
58755
|
+
const pipeline = ckConfig.config.updatePipeline;
|
|
58756
|
+
autoMigrate = pipeline?.autoMigrateAfterUpdate ?? false;
|
|
58757
|
+
migrateProviders = pipeline?.migrateProviders ?? "auto";
|
|
58758
|
+
} catch {}
|
|
58759
|
+
if (!autoMigrate)
|
|
58760
|
+
return;
|
|
58761
|
+
let providers2;
|
|
58762
|
+
if (migrateProviders === "auto") {
|
|
58763
|
+
providers2 = targets;
|
|
58764
|
+
} else if (Array.isArray(migrateProviders)) {
|
|
58765
|
+
const invalid = migrateProviders.filter((p) => !targets.includes(p));
|
|
58766
|
+
if (invalid.length > 0) {
|
|
58767
|
+
logger.warning(`Unknown/uninstalled providers in migrateProviders: ${invalid.join(", ")}`);
|
|
58768
|
+
}
|
|
58769
|
+
providers2 = migrateProviders.filter((p) => targets.includes(p));
|
|
58770
|
+
} else {
|
|
58771
|
+
return;
|
|
58772
|
+
}
|
|
58773
|
+
if (providers2.length === 0)
|
|
58774
|
+
return;
|
|
58775
|
+
const safeProviders = providers2.filter((p) => SAFE_PROVIDER_NAME.test(p));
|
|
58776
|
+
if (safeProviders.length !== providers2.length) {
|
|
58777
|
+
logger.warning("Some provider names contain invalid characters and were skipped");
|
|
58778
|
+
}
|
|
58779
|
+
if (safeProviders.length === 0)
|
|
58780
|
+
return;
|
|
58781
|
+
let isGlobal = false;
|
|
58782
|
+
try {
|
|
58783
|
+
const setup = await getSetupFn();
|
|
58784
|
+
isGlobal = !!setup.global.metadata && !setup.project.metadata;
|
|
58785
|
+
} catch {}
|
|
58786
|
+
const providerNames = safeProviders.map((p) => getConfigFn(p).displayName).join(", ");
|
|
58787
|
+
const parts = ["ck", "migrate"];
|
|
58788
|
+
if (isGlobal)
|
|
58789
|
+
parts.push("-g");
|
|
58790
|
+
for (const p of safeProviders) {
|
|
58791
|
+
parts.push("--agent", p);
|
|
58792
|
+
}
|
|
58793
|
+
parts.push("--yes");
|
|
58794
|
+
const cmd = parts.join(" ");
|
|
58795
|
+
logger.info(`Auto-migrating to: ${providerNames}`);
|
|
58796
|
+
try {
|
|
58797
|
+
await execFn(cmd, { timeout: 300000 });
|
|
58798
|
+
logger.success("Auto-migration complete");
|
|
58799
|
+
} catch (error) {
|
|
58800
|
+
logger.warning(`Auto-migration failed: ${error instanceof Error ? error.message : "unknown"}. Run \`ck migrate\` manually to retry.`);
|
|
58801
|
+
}
|
|
58802
|
+
} catch (error) {
|
|
58803
|
+
logger.verbose(`Migrate step skipped: ${error instanceof Error ? error.message : "unknown"}`);
|
|
58804
|
+
}
|
|
58805
|
+
}
|
|
58746
58806
|
async function updateCliCommand(options2, deps = getDefaultUpdateCliCommandDeps()) {
|
|
58747
58807
|
const s = de();
|
|
58748
58808
|
intro("[>] ClaudeKit CLI - Update");
|
|
@@ -58752,7 +58812,8 @@ async function updateCliCommand(options2, deps = getDefaultUpdateCliCommandDeps(
|
|
|
58752
58812
|
execAsyncFn,
|
|
58753
58813
|
packageManagerDetector,
|
|
58754
58814
|
npmRegistryClient,
|
|
58755
|
-
promptKitUpdateFn
|
|
58815
|
+
promptKitUpdateFn,
|
|
58816
|
+
promptMigrateUpdateFn
|
|
58756
58817
|
} = deps;
|
|
58757
58818
|
const opts = UpdateCliOptionsSchema.parse(options2);
|
|
58758
58819
|
logger.info(`Current CLI version: ${currentVersion}`);
|
|
@@ -58813,12 +58874,14 @@ async function updateCliCommand(options2, deps = getDefaultUpdateCliCommandDeps(
|
|
|
58813
58874
|
if (comparison === 0) {
|
|
58814
58875
|
outro(`[+] Already on the latest CLI version (${currentVersion})`);
|
|
58815
58876
|
await promptKitUpdateFn(targetIsPrerelease, opts.yes);
|
|
58877
|
+
await promptMigrateUpdateFn();
|
|
58816
58878
|
return;
|
|
58817
58879
|
}
|
|
58818
58880
|
const isDevChannelSwitch = (opts.dev || opts.beta) && isBetaVersion(targetVersion) && !isBetaVersion(currentVersion);
|
|
58819
58881
|
if (comparison > 0 && !opts.release && !isDevChannelSwitch) {
|
|
58820
58882
|
outro(`[+] Current version (${currentVersion}) is newer than latest (${targetVersion})`);
|
|
58821
58883
|
await promptKitUpdateFn(targetIsPrerelease, opts.yes);
|
|
58884
|
+
await promptMigrateUpdateFn();
|
|
58822
58885
|
return;
|
|
58823
58886
|
}
|
|
58824
58887
|
const isUpgrade = comparison < 0 || isDevChannelSwitch;
|
|
@@ -58829,6 +58892,7 @@ async function updateCliCommand(options2, deps = getDefaultUpdateCliCommandDeps(
|
|
|
58829
58892
|
|
|
58830
58893
|
Run 'ck update' to install`, "Update Check");
|
|
58831
58894
|
await promptKitUpdateFn(targetIsPrerelease, opts.yes);
|
|
58895
|
+
await promptMigrateUpdateFn();
|
|
58832
58896
|
outro("Check complete");
|
|
58833
58897
|
return;
|
|
58834
58898
|
}
|
|
@@ -58895,6 +58959,7 @@ Run '${redactCommandForLog(updateCmd)}' manually, restart terminal, then check c
|
|
|
58895
58959
|
}
|
|
58896
58960
|
outro(`[+] Successfully updated ClaudeKit CLI to ${activeVersion}`);
|
|
58897
58961
|
await promptKitUpdateFn(targetIsPrerelease, opts.yes);
|
|
58962
|
+
await promptMigrateUpdateFn();
|
|
58898
58963
|
} catch (error) {
|
|
58899
58964
|
if (error instanceof CliUpdateError) {
|
|
58900
58965
|
throw error;
|
|
@@ -58916,7 +58981,7 @@ Manual update: ${redactCommandForLog(updateCmd)}`;
|
|
|
58916
58981
|
throw new CliUpdateError(errorMessage);
|
|
58917
58982
|
}
|
|
58918
58983
|
}
|
|
58919
|
-
var import_compare_versions3, import_fs_extra5, execAsync2, CliUpdateError;
|
|
58984
|
+
var import_compare_versions3, import_fs_extra5, execAsync2, CliUpdateError, SAFE_PROVIDER_NAME;
|
|
58920
58985
|
var init_update_cli = __esm(() => {
|
|
58921
58986
|
init_ck_config_manager();
|
|
58922
58987
|
init_npm_registry();
|
|
@@ -58939,6 +59004,7 @@ var init_update_cli = __esm(() => {
|
|
|
58939
59004
|
this.name = "CliUpdateError";
|
|
58940
59005
|
}
|
|
58941
59006
|
};
|
|
59007
|
+
SAFE_PROVIDER_NAME = /^[a-z0-9-]+$/;
|
|
58942
59008
|
});
|
|
58943
59009
|
|
|
58944
59010
|
// src/domains/versioning/version-cache.ts
|
|
@@ -96121,116 +96187,6 @@ import { join as join109 } from "node:path";
|
|
|
96121
96187
|
init_logger();
|
|
96122
96188
|
init_path_resolver();
|
|
96123
96189
|
var import_fs_extra30 = __toESM(require_lib3(), 1);
|
|
96124
|
-
|
|
96125
|
-
// src/commands/init/phases/post-init-migrate-nudge.ts
|
|
96126
|
-
init_ck_config_manager();
|
|
96127
|
-
init_logger();
|
|
96128
|
-
init_safe_prompts();
|
|
96129
|
-
import { exec as exec8 } from "node:child_process";
|
|
96130
|
-
import { promisify as promisify14 } from "node:util";
|
|
96131
|
-
var execAsync8 = promisify14(exec8);
|
|
96132
|
-
var SAFE_PROVIDER_NAME = /^[a-z0-9-]+$/;
|
|
96133
|
-
async function maybePostInitMigrate(ctx, deps) {
|
|
96134
|
-
if (ctx.cancelled || !ctx.resolvedDir)
|
|
96135
|
-
return;
|
|
96136
|
-
try {
|
|
96137
|
-
const providerRegistry = deps?.detectInstalledProvidersFn && deps?.getProviderConfigFn ? null : await Promise.resolve().then(() => (init_provider_registry(), exports_provider_registry));
|
|
96138
|
-
const portableRegistry = deps?.readPortableRegistryFn ? null : await Promise.resolve().then(() => (init_portable_registry(), exports_portable_registry));
|
|
96139
|
-
const detectInstalledProvidersFn = deps?.detectInstalledProvidersFn ?? providerRegistry?.detectInstalledProviders;
|
|
96140
|
-
const getProviderConfigFn = deps?.getProviderConfigFn ?? providerRegistry?.getProviderConfig;
|
|
96141
|
-
const readPortableRegistryFn = deps?.readPortableRegistryFn ?? portableRegistry?.readPortableRegistry;
|
|
96142
|
-
const loadFullConfigFn = deps?.loadFullConfigFn ?? CkConfigManager.loadFull;
|
|
96143
|
-
if (!detectInstalledProvidersFn || !getProviderConfigFn || !readPortableRegistryFn) {
|
|
96144
|
-
return;
|
|
96145
|
-
}
|
|
96146
|
-
const allProviders = await detectInstalledProvidersFn();
|
|
96147
|
-
const targets = allProviders.filter((p) => p !== "claude-code");
|
|
96148
|
-
if (targets.length === 0)
|
|
96149
|
-
return;
|
|
96150
|
-
const providerNames = targets.map((p) => getProviderConfigFn(p).displayName).join(", ");
|
|
96151
|
-
const registry = await readPortableRegistryFn();
|
|
96152
|
-
const hasHistory = registry.installations.some((i) => i.provider !== "claude-code");
|
|
96153
|
-
const ckConfig = await loadFullConfigFn(ctx.options.global ? null : ctx.resolvedDir);
|
|
96154
|
-
const pipeline = ckConfig.config.updatePipeline;
|
|
96155
|
-
const autoMigrate = pipeline?.autoMigrateAfterInit ?? false;
|
|
96156
|
-
if (autoMigrate) {
|
|
96157
|
-
await runAutoMigrate(ctx, pipeline, targets, providerNames, deps);
|
|
96158
|
-
} else if (!hasHistory && !ctx.isNonInteractive) {
|
|
96159
|
-
await showNudge(ctx, providerNames, deps);
|
|
96160
|
-
}
|
|
96161
|
-
} catch (error) {
|
|
96162
|
-
logger.debug(`Post-init migrate check skipped: ${error instanceof Error ? error.message : "unknown"}`);
|
|
96163
|
-
}
|
|
96164
|
-
}
|
|
96165
|
-
async function showNudge(ctx, providerNames, deps) {
|
|
96166
|
-
const noteFn = deps?.noteFn ?? note;
|
|
96167
|
-
const confirmFn = deps?.confirmFn ?? se;
|
|
96168
|
-
const isCancelFn = deps?.isCancelFn ?? lD;
|
|
96169
|
-
const execAsyncFn = deps?.execAsyncFn ?? execAsync8;
|
|
96170
|
-
noteFn([
|
|
96171
|
-
`Detected providers: ${providerNames}`,
|
|
96172
|
-
"Run `ck migrate` to sync your kit to these providers.",
|
|
96173
|
-
"Set `autoMigrateAfterInit: true` in .ck.json to auto-sync on future updates."
|
|
96174
|
-
].join(`
|
|
96175
|
-
`), "[i] Provider Sync Available");
|
|
96176
|
-
const shouldMigrate = await confirmFn({
|
|
96177
|
-
message: "Run ck migrate now?"
|
|
96178
|
-
});
|
|
96179
|
-
if (isCancelFn(shouldMigrate) || !shouldMigrate)
|
|
96180
|
-
return;
|
|
96181
|
-
const parts = ["ck", "migrate"];
|
|
96182
|
-
if (ctx.options.global)
|
|
96183
|
-
parts.push("-g");
|
|
96184
|
-
parts.push("--yes");
|
|
96185
|
-
const cmd = parts.join(" ");
|
|
96186
|
-
try {
|
|
96187
|
-
logger.info(`Running: ${cmd}`);
|
|
96188
|
-
await execAsyncFn(cmd, { timeout: 300000 });
|
|
96189
|
-
logger.success("Migration complete");
|
|
96190
|
-
} catch (error) {
|
|
96191
|
-
logger.warning(`Migration failed: ${error instanceof Error ? error.message : "unknown"}. Run \`ck migrate\` manually to retry.`);
|
|
96192
|
-
}
|
|
96193
|
-
}
|
|
96194
|
-
async function runAutoMigrate(ctx, pipeline, detectedTargets, providerNames, deps) {
|
|
96195
|
-
const execAsyncFn = deps?.execAsyncFn ?? execAsync8;
|
|
96196
|
-
let providers2;
|
|
96197
|
-
if (!pipeline?.migrateProviders || pipeline.migrateProviders === "auto") {
|
|
96198
|
-
providers2 = detectedTargets;
|
|
96199
|
-
} else if (Array.isArray(pipeline.migrateProviders)) {
|
|
96200
|
-
const invalid = pipeline.migrateProviders.filter((p) => !detectedTargets.includes(p));
|
|
96201
|
-
if (invalid.length > 0) {
|
|
96202
|
-
logger.warning(`Unknown/uninstalled providers in migrateProviders: ${invalid.join(", ")}`);
|
|
96203
|
-
}
|
|
96204
|
-
providers2 = pipeline.migrateProviders.filter((p) => detectedTargets.includes(p));
|
|
96205
|
-
} else {
|
|
96206
|
-
return;
|
|
96207
|
-
}
|
|
96208
|
-
if (providers2.length === 0)
|
|
96209
|
-
return;
|
|
96210
|
-
const safeProviders = providers2.filter((p) => SAFE_PROVIDER_NAME.test(p));
|
|
96211
|
-
if (safeProviders.length !== providers2.length) {
|
|
96212
|
-
logger.warning("Some provider names contain invalid characters and were skipped");
|
|
96213
|
-
}
|
|
96214
|
-
if (safeProviders.length === 0)
|
|
96215
|
-
return;
|
|
96216
|
-
const parts = ["ck", "migrate"];
|
|
96217
|
-
if (ctx.options.global)
|
|
96218
|
-
parts.push("-g");
|
|
96219
|
-
for (const p of safeProviders) {
|
|
96220
|
-
parts.push("--agent", p);
|
|
96221
|
-
}
|
|
96222
|
-
parts.push("--yes");
|
|
96223
|
-
const cmd = parts.join(" ");
|
|
96224
|
-
logger.info(`Auto-migrating to: ${providerNames}`);
|
|
96225
|
-
try {
|
|
96226
|
-
await execAsyncFn(cmd, { timeout: 300000 });
|
|
96227
|
-
logger.success("Auto-migration complete");
|
|
96228
|
-
} catch (error) {
|
|
96229
|
-
logger.warning(`Auto-migration failed: ${error instanceof Error ? error.message : "unknown"}. Run \`ck migrate\` manually to retry.`);
|
|
96230
|
-
}
|
|
96231
|
-
}
|
|
96232
|
-
|
|
96233
|
-
// src/commands/init/phases/post-install-handler.ts
|
|
96234
96190
|
async function handlePostInstall(ctx) {
|
|
96235
96191
|
if (ctx.cancelled || !ctx.extractDir || !ctx.resolvedDir || !ctx.claudeDir) {
|
|
96236
96192
|
return ctx;
|
|
@@ -96300,7 +96256,6 @@ async function handlePostInstall(ctx) {
|
|
|
96300
96256
|
logger.debug(`Project auto-registration skipped: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
96301
96257
|
}
|
|
96302
96258
|
}
|
|
96303
|
-
await maybePostInitMigrate(ctx);
|
|
96304
96259
|
return {
|
|
96305
96260
|
...ctx,
|
|
96306
96261
|
installSkills
|
|
@@ -96341,9 +96296,9 @@ async function detectAccessibleKits() {
|
|
|
96341
96296
|
|
|
96342
96297
|
// src/domains/github/preflight-checker.ts
|
|
96343
96298
|
init_logger();
|
|
96344
|
-
import { exec as
|
|
96345
|
-
import { promisify as
|
|
96346
|
-
var
|
|
96299
|
+
import { exec as exec8 } from "node:child_process";
|
|
96300
|
+
import { promisify as promisify14 } from "node:util";
|
|
96301
|
+
var execAsync8 = promisify14(exec8);
|
|
96347
96302
|
function createSuccessfulPreflightResult() {
|
|
96348
96303
|
return {
|
|
96349
96304
|
success: true,
|
|
@@ -96376,7 +96331,7 @@ async function runPreflightChecks() {
|
|
|
96376
96331
|
errorLines: []
|
|
96377
96332
|
};
|
|
96378
96333
|
try {
|
|
96379
|
-
const { stdout: stdout2 } = await
|
|
96334
|
+
const { stdout: stdout2 } = await execAsync8("gh --version", { timeout: GH_COMMAND_TIMEOUT_MS });
|
|
96380
96335
|
const match2 = stdout2.match(/(\d+\.\d+\.\d+)/);
|
|
96381
96336
|
if (!match2) {
|
|
96382
96337
|
logger.debug(`GitHub CLI version not detected from output: ${stdout2.trim()}`);
|
|
@@ -96414,7 +96369,7 @@ async function runPreflightChecks() {
|
|
|
96414
96369
|
}
|
|
96415
96370
|
}
|
|
96416
96371
|
try {
|
|
96417
|
-
await
|
|
96372
|
+
await execAsync8("gh auth status -h github.com", {
|
|
96418
96373
|
timeout: GH_COMMAND_TIMEOUT_MS,
|
|
96419
96374
|
env: { ...process.env, GH_NO_UPDATE_NOTIFIER: "1" }
|
|
96420
96375
|
});
|