claudekit-cli 3.36.0-dev.25 → 3.36.0-dev.26
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
|
@@ -6905,6 +6905,65 @@ var init_checksum_utils = __esm(() => {
|
|
|
6905
6905
|
BINARY_DETECTION_SAMPLE_BYTES = 8 * 1024;
|
|
6906
6906
|
});
|
|
6907
6907
|
|
|
6908
|
+
// src/commands/portable/model-taxonomy.ts
|
|
6909
|
+
function setTaxonomyOverrides(overrides) {
|
|
6910
|
+
userOverrides = overrides;
|
|
6911
|
+
}
|
|
6912
|
+
function resolveModel(sourceModel, targetProvider) {
|
|
6913
|
+
if (sourceModel === undefined || sourceModel === null) {
|
|
6914
|
+
return { resolved: null };
|
|
6915
|
+
}
|
|
6916
|
+
if (typeof sourceModel !== "string") {
|
|
6917
|
+
return {
|
|
6918
|
+
resolved: null,
|
|
6919
|
+
warning: `Ignored non-string model frontmatter (${typeof sourceModel})`
|
|
6920
|
+
};
|
|
6921
|
+
}
|
|
6922
|
+
const trimmed = sourceModel.trim();
|
|
6923
|
+
if (!trimmed || trimmed === "inherit") {
|
|
6924
|
+
return { resolved: null };
|
|
6925
|
+
}
|
|
6926
|
+
const tier = SOURCE_TIER_MAP[trimmed];
|
|
6927
|
+
if (!tier) {
|
|
6928
|
+
return {
|
|
6929
|
+
resolved: null,
|
|
6930
|
+
warning: `Unknown model "${trimmed}" — not in taxonomy, commented out`
|
|
6931
|
+
};
|
|
6932
|
+
}
|
|
6933
|
+
const overrideMap = userOverrides?.[targetProvider];
|
|
6934
|
+
if (overrideMap) {
|
|
6935
|
+
const override = overrideMap[tier];
|
|
6936
|
+
if (override) {
|
|
6937
|
+
return { resolved: override };
|
|
6938
|
+
}
|
|
6939
|
+
}
|
|
6940
|
+
const providerMap = DEFAULT_PROVIDER_MODEL_MAP[targetProvider];
|
|
6941
|
+
if (!providerMap) {
|
|
6942
|
+
return { resolved: null };
|
|
6943
|
+
}
|
|
6944
|
+
return { resolved: providerMap[tier] };
|
|
6945
|
+
}
|
|
6946
|
+
var SOURCE_TIER_MAP, DEFAULT_PROVIDER_MODEL_MAP, userOverrides;
|
|
6947
|
+
var init_model_taxonomy = __esm(() => {
|
|
6948
|
+
SOURCE_TIER_MAP = {
|
|
6949
|
+
opus: "heavy",
|
|
6950
|
+
sonnet: "balanced",
|
|
6951
|
+
haiku: "light"
|
|
6952
|
+
};
|
|
6953
|
+
DEFAULT_PROVIDER_MODEL_MAP = {
|
|
6954
|
+
codex: {
|
|
6955
|
+
heavy: { model: "gpt-5.4", effort: "xhigh" },
|
|
6956
|
+
balanced: { model: "gpt-5.4", effort: "high" },
|
|
6957
|
+
light: { model: "gpt-5.4-mini", effort: "medium" }
|
|
6958
|
+
},
|
|
6959
|
+
"gemini-cli": {
|
|
6960
|
+
heavy: { model: "gemini-3.1-pro-preview" },
|
|
6961
|
+
balanced: { model: "gemini-3.1-pro-preview" },
|
|
6962
|
+
light: { model: "gemini-3-flash-preview" }
|
|
6963
|
+
}
|
|
6964
|
+
};
|
|
6965
|
+
});
|
|
6966
|
+
|
|
6908
6967
|
// src/commands/portable/converters/md-to-toml.ts
|
|
6909
6968
|
function escapeTomlMultiline(str2) {
|
|
6910
6969
|
let escaped = str2.replace(/\\/g, "\\\\");
|
|
@@ -6987,12 +7046,17 @@ function convertFmToCodexToml(item) {
|
|
|
6987
7046
|
const warnings = [];
|
|
6988
7047
|
const slug = toCodexSlug(item.name);
|
|
6989
7048
|
const lines = [];
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6993
|
-
|
|
6994
|
-
|
|
7049
|
+
const modelResult = resolveModel(item.frontmatter.model, "codex");
|
|
7050
|
+
if (modelResult.warning) {
|
|
7051
|
+
warnings.push(modelResult.warning);
|
|
7052
|
+
}
|
|
7053
|
+
if (modelResult.resolved) {
|
|
7054
|
+
lines.push(`model = ${JSON.stringify(modelResult.resolved.model)}`);
|
|
7055
|
+
if (modelResult.resolved.effort) {
|
|
7056
|
+
lines.push(`effort = ${JSON.stringify(modelResult.resolved.effort)}`);
|
|
6995
7057
|
}
|
|
7058
|
+
} else if (typeof item.frontmatter.model === "string" && item.frontmatter.model.trim().length > 0 && item.frontmatter.model.trim() !== "inherit") {
|
|
7059
|
+
lines.push(`# model = ${JSON.stringify(item.frontmatter.model.trim())}`);
|
|
6996
7060
|
}
|
|
6997
7061
|
const sandboxResult = deriveSandboxMode(item.frontmatter.tools);
|
|
6998
7062
|
if (sandboxResult.warning) {
|
|
@@ -7030,7 +7094,9 @@ function buildCodexConfigEntry(name, description) {
|
|
|
7030
7094
|
`);
|
|
7031
7095
|
}
|
|
7032
7096
|
var MAX_CODEX_SLUG_LENGTH = 96;
|
|
7033
|
-
var init_fm_to_codex_toml = () => {
|
|
7097
|
+
var init_fm_to_codex_toml = __esm(() => {
|
|
7098
|
+
init_model_taxonomy();
|
|
7099
|
+
});
|
|
7034
7100
|
|
|
7035
7101
|
// node_modules/kind-of/index.js
|
|
7036
7102
|
var require_kind_of = __commonJS((exports, module) => {
|
|
@@ -38991,7 +39057,7 @@ var init_claudekit_data = __esm(() => {
|
|
|
38991
39057
|
});
|
|
38992
39058
|
|
|
38993
39059
|
// src/types/ck-config.ts
|
|
38994
|
-
var PlanValidationModeSchema, PlanFocusAreaSchema, PlanResolutionOrderSchema, ProjectTypeSchema, PackageManagerSchema, FrameworkSchema, GeminiModelSchema, StatuslineModeSchema, CodingLevelSchema, PlanResolutionSchema, PlanValidationSchema, CkPlanConfigSchema, CkDocsConfigSchema, CkPathsConfigSchema, CkLocaleConfigSchema, CkTrustConfigSchema, CkProjectConfigSchema, CkGeminiConfigSchema, CkSkillsConfigSchema, CkAssertionSchema, CkHooksConfigSchema, CkConfigSchema, DEFAULT_CK_CONFIG, CK_HOOK_NAMES;
|
|
39060
|
+
var PlanValidationModeSchema, PlanFocusAreaSchema, PlanResolutionOrderSchema, ProjectTypeSchema, PackageManagerSchema, FrameworkSchema, GeminiModelSchema, StatuslineModeSchema, CodingLevelSchema, PlanResolutionSchema, PlanValidationSchema, CkPlanConfigSchema, CkDocsConfigSchema, CkPathsConfigSchema, CkLocaleConfigSchema, CkTrustConfigSchema, CkProjectConfigSchema, CkGeminiConfigSchema, CkSkillsConfigSchema, ResolvedModelConfigSchema, ModelTierMapSchema, CkModelTaxonomySchema, CkAssertionSchema, CkHooksConfigSchema, CkConfigSchema, DEFAULT_CK_CONFIG, CK_HOOK_NAMES;
|
|
38995
39061
|
var init_ck_config = __esm(() => {
|
|
38996
39062
|
init_zod();
|
|
38997
39063
|
PlanValidationModeSchema = exports_external.enum(["prompt", "auto", "strict", "none"]);
|
|
@@ -39084,6 +39150,16 @@ var init_ck_config = __esm(() => {
|
|
|
39084
39150
|
useGemini: exports_external.boolean().optional()
|
|
39085
39151
|
}).passthrough().optional()
|
|
39086
39152
|
}).passthrough();
|
|
39153
|
+
ResolvedModelConfigSchema = exports_external.object({
|
|
39154
|
+
model: exports_external.string(),
|
|
39155
|
+
effort: exports_external.string().optional()
|
|
39156
|
+
});
|
|
39157
|
+
ModelTierMapSchema = exports_external.object({
|
|
39158
|
+
heavy: ResolvedModelConfigSchema.optional(),
|
|
39159
|
+
balanced: ResolvedModelConfigSchema.optional(),
|
|
39160
|
+
light: ResolvedModelConfigSchema.optional()
|
|
39161
|
+
});
|
|
39162
|
+
CkModelTaxonomySchema = exports_external.record(exports_external.string(), ModelTierMapSchema);
|
|
39087
39163
|
CkAssertionSchema = exports_external.object({
|
|
39088
39164
|
pattern: exports_external.string().optional(),
|
|
39089
39165
|
rule: exports_external.string().optional(),
|
|
@@ -39115,7 +39191,8 @@ var init_ck_config = __esm(() => {
|
|
|
39115
39191
|
gemini: CkGeminiConfigSchema.optional(),
|
|
39116
39192
|
skills: CkSkillsConfigSchema.optional(),
|
|
39117
39193
|
assertions: exports_external.array(CkAssertionSchema).optional(),
|
|
39118
|
-
hooks: CkHooksConfigSchema.optional()
|
|
39194
|
+
hooks: CkHooksConfigSchema.optional(),
|
|
39195
|
+
modelTaxonomy: CkModelTaxonomySchema.optional()
|
|
39119
39196
|
}).passthrough();
|
|
39120
39197
|
DEFAULT_CK_CONFIG = {
|
|
39121
39198
|
codingLevel: -1,
|
|
@@ -39447,6 +39524,10 @@ var init_config_manager = __esm(() => {
|
|
|
39447
39524
|
});
|
|
39448
39525
|
|
|
39449
39526
|
// src/domains/config/ck-config-manager.ts
|
|
39527
|
+
var exports_ck_config_manager = {};
|
|
39528
|
+
__export(exports_ck_config_manager, {
|
|
39529
|
+
CkConfigManager: () => CkConfigManager
|
|
39530
|
+
});
|
|
39450
39531
|
import { existsSync as existsSync11 } from "node:fs";
|
|
39451
39532
|
import { mkdir as mkdir5, readFile as readFile8, writeFile as writeFile6 } from "node:fs/promises";
|
|
39452
39533
|
import { homedir as homedir9 } from "node:os";
|
|
@@ -48138,6 +48219,48 @@ var init_ck_config_schema = __esm(() => {
|
|
|
48138
48219
|
}
|
|
48139
48220
|
},
|
|
48140
48221
|
additionalProperties: false
|
|
48222
|
+
},
|
|
48223
|
+
modelTaxonomy: {
|
|
48224
|
+
type: "object",
|
|
48225
|
+
description: "Custom model mappings for portable migration. Keys are provider names (e.g., 'codex', 'gemini-cli'), values map tiers to model config.",
|
|
48226
|
+
additionalProperties: {
|
|
48227
|
+
type: "object",
|
|
48228
|
+
properties: {
|
|
48229
|
+
heavy: {
|
|
48230
|
+
type: "object",
|
|
48231
|
+
properties: {
|
|
48232
|
+
model: { type: "string", description: "Target model name" },
|
|
48233
|
+
effort: {
|
|
48234
|
+
type: "string",
|
|
48235
|
+
description: "Effort/reasoning level (provider-specific)"
|
|
48236
|
+
}
|
|
48237
|
+
},
|
|
48238
|
+
required: ["model"]
|
|
48239
|
+
},
|
|
48240
|
+
balanced: {
|
|
48241
|
+
type: "object",
|
|
48242
|
+
properties: {
|
|
48243
|
+
model: { type: "string", description: "Target model name" },
|
|
48244
|
+
effort: {
|
|
48245
|
+
type: "string",
|
|
48246
|
+
description: "Effort/reasoning level (provider-specific)"
|
|
48247
|
+
}
|
|
48248
|
+
},
|
|
48249
|
+
required: ["model"]
|
|
48250
|
+
},
|
|
48251
|
+
light: {
|
|
48252
|
+
type: "object",
|
|
48253
|
+
properties: {
|
|
48254
|
+
model: { type: "string", description: "Target model name" },
|
|
48255
|
+
effort: {
|
|
48256
|
+
type: "string",
|
|
48257
|
+
description: "Effort/reasoning level (provider-specific)"
|
|
48258
|
+
}
|
|
48259
|
+
},
|
|
48260
|
+
required: ["model"]
|
|
48261
|
+
}
|
|
48262
|
+
}
|
|
48263
|
+
}
|
|
48141
48264
|
}
|
|
48142
48265
|
},
|
|
48143
48266
|
additionalProperties: true
|
|
@@ -56416,7 +56539,7 @@ var package_default;
|
|
|
56416
56539
|
var init_package = __esm(() => {
|
|
56417
56540
|
package_default = {
|
|
56418
56541
|
name: "claudekit-cli",
|
|
56419
|
-
version: "3.36.0-dev.
|
|
56542
|
+
version: "3.36.0-dev.26",
|
|
56420
56543
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
56421
56544
|
type: "module",
|
|
56422
56545
|
repository: {
|
|
@@ -92908,6 +93031,7 @@ async function resolveConflict(action, options2) {
|
|
|
92908
93031
|
// src/commands/migrate/migrate-command.ts
|
|
92909
93032
|
init_converters();
|
|
92910
93033
|
init_hooks_settings_merger();
|
|
93034
|
+
init_model_taxonomy();
|
|
92911
93035
|
|
|
92912
93036
|
// src/commands/portable/plan-display.ts
|
|
92913
93037
|
var import_picocolors24 = __toESM(require_picocolors(), 1);
|
|
@@ -93404,6 +93528,9 @@ async function migrateCommand(options2) {
|
|
|
93404
93528
|
if (hookItems.length > 0 && unsupportedHooks.length > 0) {
|
|
93405
93529
|
f2.info(import_picocolors25.default.dim(` [i] Hooks skipped for: ${unsupportedHooks.map((pv) => providers[pv].displayName).join(", ")} (unsupported)`));
|
|
93406
93530
|
}
|
|
93531
|
+
const { CkConfigManager: CkConfigManager2 } = await Promise.resolve().then(() => (init_ck_config_manager(), exports_ck_config_manager));
|
|
93532
|
+
const ckConfigResult = await CkConfigManager2.loadFull(process.cwd());
|
|
93533
|
+
setTaxonomyOverrides(ckConfigResult.config.modelTaxonomy);
|
|
93407
93534
|
const reconcileSpinner = de();
|
|
93408
93535
|
reconcileSpinner.start("Computing migration plan...");
|
|
93409
93536
|
const sourceStates = await computeSourceStates({
|