claudekit-cli 3.40.2 → 3.40.3-dev.2

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
@@ -42376,7 +42376,7 @@ function normalizeCkConfigInput(value) {
42376
42376
  }
42377
42377
  return normalized;
42378
42378
  }
42379
- var PlanValidationModeSchema, PlanFocusAreaSchema, PlanResolutionOrderSchema, ProjectTypeSchema, PackageManagerSchema, FrameworkSchema, GEMINI_MODEL_VALUES, LEGACY_GEMINI_MODEL_ALIASES, GeminiModelSchema, StatuslineModeSchema, CodingLevelSchema, PlanResolutionSchema, PlanValidationSchema, CkPlanConfigSchema, CkDocsConfigSchema, CkPathsConfigSchema, CkLocaleConfigSchema, CkTrustConfigSchema, CkProjectConfigSchema, CkGeminiConfigSchema, CkSkillsConfigSchema, UpdatePipelineSchema, ResolvedModelConfigSchema, ModelTierMapSchema, CkModelTaxonomySchema, CkAssertionSchema, CkHooksConfigSchema, CkConfigSchema, DEFAULT_CK_CONFIG, CK_HOOK_NAMES;
42379
+ var PlanValidationModeSchema, PlanFocusAreaSchema, PlanResolutionOrderSchema, ProjectTypeSchema, PackageManagerSchema, FrameworkSchema, GEMINI_MODEL_VALUES, LEGACY_GEMINI_MODEL_ALIASES, GeminiModelSchema, StatuslineModeSchema, StatuslineSectionIdSchema, StatuslineSectionConfigSchema, StatuslineThemeSchema, StatuslineLayoutSchema, CodingLevelSchema, PlanResolutionSchema, PlanValidationSchema, CkPlanConfigSchema, CkDocsConfigSchema, CkPathsConfigSchema, CkLocaleConfigSchema, CkTrustConfigSchema, CkProjectConfigSchema, CkGeminiConfigSchema, CkSkillsConfigSchema, UpdatePipelineSchema, ResolvedModelConfigSchema, ModelTierMapSchema, CkModelTaxonomySchema, CkAssertionSchema, CkHooksConfigSchema, CkConfigSchema, DEFAULT_CK_CONFIG, CK_HOOK_NAMES;
42380
42380
  var init_ck_config = __esm(() => {
42381
42381
  init_zod();
42382
42382
  PlanValidationModeSchema = exports_external.enum(["prompt", "auto", "strict", "none"]);
@@ -42429,6 +42429,41 @@ var init_ck_config = __esm(() => {
42429
42429
  };
42430
42430
  GeminiModelSchema = exports_external.enum(GEMINI_MODEL_VALUES);
42431
42431
  StatuslineModeSchema = exports_external.enum(["full", "compact", "minimal", "none"]);
42432
+ StatuslineSectionIdSchema = exports_external.enum([
42433
+ "model",
42434
+ "context",
42435
+ "quota",
42436
+ "directory",
42437
+ "git",
42438
+ "cost",
42439
+ "changes",
42440
+ "agents",
42441
+ "todos"
42442
+ ]);
42443
+ StatuslineSectionConfigSchema = exports_external.object({
42444
+ icon: exports_external.string().max(20).optional(),
42445
+ label: exports_external.string().max(50).optional(),
42446
+ color: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).optional(),
42447
+ maxWidth: exports_external.number().int().min(10).max(500).optional()
42448
+ });
42449
+ StatuslineThemeSchema = exports_external.object({
42450
+ name: exports_external.string().max(50).optional(),
42451
+ contextLow: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("green"),
42452
+ contextMid: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("yellow"),
42453
+ contextHigh: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("red"),
42454
+ accent: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("cyan"),
42455
+ muted: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("dim"),
42456
+ separator: exports_external.string().max(30).regex(/^[a-zA-Z]+$/).default("dim")
42457
+ });
42458
+ StatuslineLayoutSchema = exports_external.object({
42459
+ baseMode: StatuslineModeSchema.default("full"),
42460
+ lines: exports_external.array(exports_external.array(StatuslineSectionIdSchema)).max(10).optional(),
42461
+ sectionConfig: exports_external.record(exports_external.string(), StatuslineSectionConfigSchema).optional(),
42462
+ theme: StatuslineThemeSchema.optional(),
42463
+ responsiveBreakpoint: exports_external.number().min(0.5).max(1).default(0.85),
42464
+ maxAgentRows: exports_external.number().int().min(1).max(10).default(4),
42465
+ todoTruncation: exports_external.number().int().min(20).max(100).default(50)
42466
+ });
42432
42467
  CodingLevelSchema = exports_external.number().int().min(-1).max(5);
42433
42468
  PlanResolutionSchema = exports_external.object({
42434
42469
  order: exports_external.array(PlanResolutionOrderSchema).optional(),
@@ -42513,6 +42548,7 @@ var init_ck_config = __esm(() => {
42513
42548
  statusline: StatuslineModeSchema.optional(),
42514
42549
  statuslineColors: exports_external.boolean().optional(),
42515
42550
  statuslineQuota: exports_external.boolean().optional(),
42551
+ statuslineLayout: StatuslineLayoutSchema.optional(),
42516
42552
  privacyBlock: exports_external.boolean().optional(),
42517
42553
  docs: CkDocsConfigSchema.optional(),
42518
42554
  plan: CkPlanConfigSchema.optional(),
@@ -42532,6 +42568,7 @@ var init_ck_config = __esm(() => {
42532
42568
  statusline: "full",
42533
42569
  statuslineColors: true,
42534
42570
  statuslineQuota: true,
42571
+ statuslineLayout: undefined,
42535
42572
  privacyBlock: true,
42536
42573
  docs: {
42537
42574
  maxLoc: 800
@@ -42608,6 +42645,48 @@ var init_ck_config = __esm(() => {
42608
42645
  ];
42609
42646
  });
42610
42647
 
42648
+ // src/types/statusline-section-defaults.ts
42649
+ var DEFAULT_STATUSLINE_LINES, DEFAULT_SECTION_CONFIG, SECTION_LABELS, SECTION_DESCRIPTIONS;
42650
+ var init_statusline_section_defaults = __esm(() => {
42651
+ DEFAULT_STATUSLINE_LINES = [
42652
+ ["model", "context", "quota"],
42653
+ ["directory", "git", "cost", "changes"],
42654
+ ["agents", "todos"]
42655
+ ];
42656
+ DEFAULT_SECTION_CONFIG = {
42657
+ model: { icon: "\uD83E\uDD16" },
42658
+ quota: { icon: "⌛" },
42659
+ directory: { icon: "\uD83D\uDCC1" },
42660
+ git: { icon: "\uD83C\uDF3F" },
42661
+ cost: { icon: "\uD83D\uDCB0" },
42662
+ changes: { icon: "\uD83D\uDCDD" },
42663
+ agents: { icon: "\uD83D\uDD04" },
42664
+ todos: { icon: "✅" }
42665
+ };
42666
+ SECTION_LABELS = {
42667
+ model: "Model",
42668
+ context: "Context Window",
42669
+ quota: "Usage Quota",
42670
+ directory: "Directory",
42671
+ git: "Git Status",
42672
+ cost: "Cost",
42673
+ changes: "Changes",
42674
+ agents: "Agents",
42675
+ todos: "Tasks"
42676
+ };
42677
+ SECTION_DESCRIPTIONS = {
42678
+ model: "AI model name and provider",
42679
+ context: "Context window usage bar",
42680
+ quota: "5-hour and weekly usage quota",
42681
+ directory: "Current working directory",
42682
+ git: "Git branch, staged/unstaged changes",
42683
+ cost: "Session cost estimate",
42684
+ changes: "Lines added and removed",
42685
+ agents: "Recent agent activity",
42686
+ todos: "Current task progress"
42687
+ };
42688
+ });
42689
+
42611
42690
  // src/types/index.ts
42612
42691
  var exports_types = {};
42613
42692
  __export(exports_types, {
@@ -42622,11 +42701,17 @@ __export(exports_types, {
42622
42701
  UninstallCommandOptionsSchema: () => UninstallCommandOptionsSchema,
42623
42702
  USER_CONFIG_PATTERNS: () => USER_CONFIG_PATTERNS,
42624
42703
  TrackedFileSchema: () => TrackedFileSchema,
42704
+ StatuslineThemeSchema: () => StatuslineThemeSchema,
42705
+ StatuslineSectionIdSchema: () => StatuslineSectionIdSchema,
42706
+ StatuslineSectionConfigSchema: () => StatuslineSectionConfigSchema,
42625
42707
  StatuslineModeSchema: () => StatuslineModeSchema,
42708
+ StatuslineLayoutSchema: () => StatuslineLayoutSchema,
42626
42709
  SkillsMigrationError: () => SkillsMigrationError,
42627
42710
  SkillsManifestSchema: () => SkillsManifestSchema,
42628
42711
  ServicesListSchema: () => ServicesListSchema,
42629
42712
  ServiceSchema: () => ServiceSchema,
42713
+ SECTION_LABELS: () => SECTION_LABELS,
42714
+ SECTION_DESCRIPTIONS: () => SECTION_DESCRIPTIONS,
42630
42715
  ReviewwebOptionsSchema: () => ReviewwebOptionsSchema,
42631
42716
  RegisteredProjectSchema: () => RegisteredProjectSchema,
42632
42717
  RateLimitInfoSchema: () => RateLimitInfoSchema,
@@ -42659,6 +42744,8 @@ __export(exports_types, {
42659
42744
  ExtractionError: () => ExtractionError,
42660
42745
  ExcludePatternSchema: () => ExcludePatternSchema,
42661
42746
  DownloadError: () => DownloadError,
42747
+ DEFAULT_STATUSLINE_LINES: () => DEFAULT_STATUSLINE_LINES,
42748
+ DEFAULT_SECTION_CONFIG: () => DEFAULT_SECTION_CONFIG,
42662
42749
  DEFAULT_PROJECTS_REGISTRY: () => DEFAULT_PROJECTS_REGISTRY,
42663
42750
  DEFAULT_FOLDERS: () => DEFAULT_FOLDERS,
42664
42751
  DEFAULT_CK_CONFIG: () => DEFAULT_CK_CONFIG,
@@ -42695,6 +42782,7 @@ var init_types3 = __esm(() => {
42695
42782
  init_claudekit_data();
42696
42783
  init_claudekit_api();
42697
42784
  init_ck_config();
42785
+ init_statusline_section_defaults();
42698
42786
  });
42699
42787
 
42700
42788
  // src/domains/config/config-manager.ts
@@ -48554,6 +48642,148 @@ var init_ck_config_schema = __esm(() => {
48554
48642
  default: true,
48555
48643
  description: "Show the cosmetic 5h / wk quota chips in the statusline. Disable to keep the statusline layout without usage-window percentages."
48556
48644
  },
48645
+ statuslineLayout: {
48646
+ type: "object",
48647
+ description: "Advanced statusline layout config for the visual builder. When absent, uses hardcoded defaults (backward compatible). Takes precedence over the statusline field when both are set.",
48648
+ properties: {
48649
+ baseMode: {
48650
+ type: "string",
48651
+ enum: ["full", "compact", "minimal", "none"],
48652
+ default: "full",
48653
+ description: "Starting template mode for the layout"
48654
+ },
48655
+ lines: {
48656
+ type: "array",
48657
+ description: "Layout lines. Each inner array is one terminal row containing section IDs in left-to-right order. Sections not listed in any line are hidden.",
48658
+ items: {
48659
+ type: "array",
48660
+ items: {
48661
+ type: "string",
48662
+ enum: [
48663
+ "model",
48664
+ "context",
48665
+ "quota",
48666
+ "directory",
48667
+ "git",
48668
+ "cost",
48669
+ "changes",
48670
+ "agents",
48671
+ "todos"
48672
+ ]
48673
+ }
48674
+ },
48675
+ maxItems: 10
48676
+ },
48677
+ sectionConfig: {
48678
+ type: "object",
48679
+ description: "Per-section visual customization keyed by section ID.",
48680
+ additionalProperties: {
48681
+ type: "object",
48682
+ properties: {
48683
+ icon: {
48684
+ type: "string",
48685
+ description: "Custom emoji/icon override",
48686
+ maxLength: 20
48687
+ },
48688
+ label: {
48689
+ type: "string",
48690
+ description: "Custom label override",
48691
+ maxLength: 50
48692
+ },
48693
+ color: {
48694
+ type: "string",
48695
+ description: "ANSI named color (e.g. red, cyan, green). Hex codes not supported.",
48696
+ maxLength: 30,
48697
+ pattern: "^[a-zA-Z]+$"
48698
+ },
48699
+ maxWidth: {
48700
+ type: "integer",
48701
+ minimum: 10,
48702
+ description: "Maximum character width for this section",
48703
+ maximum: 500
48704
+ }
48705
+ },
48706
+ additionalProperties: false
48707
+ }
48708
+ },
48709
+ theme: {
48710
+ type: "object",
48711
+ description: "Color theme overrides",
48712
+ properties: {
48713
+ name: {
48714
+ type: "string",
48715
+ description: "Theme name (informational)",
48716
+ maxLength: 50
48717
+ },
48718
+ contextLow: {
48719
+ type: "string",
48720
+ default: "green",
48721
+ description: "Context bar color when usage <50%",
48722
+ maxLength: 30,
48723
+ pattern: "^[a-zA-Z]+$"
48724
+ },
48725
+ contextMid: {
48726
+ type: "string",
48727
+ default: "yellow",
48728
+ description: "Context bar color when usage 50-75%",
48729
+ maxLength: 30,
48730
+ pattern: "^[a-zA-Z]+$"
48731
+ },
48732
+ contextHigh: {
48733
+ type: "string",
48734
+ default: "red",
48735
+ description: "Context bar color when usage >75%",
48736
+ maxLength: 30,
48737
+ pattern: "^[a-zA-Z]+$"
48738
+ },
48739
+ accent: {
48740
+ type: "string",
48741
+ default: "cyan",
48742
+ description: "Accent color for highlights",
48743
+ maxLength: 30,
48744
+ pattern: "^[a-zA-Z]+$"
48745
+ },
48746
+ muted: {
48747
+ type: "string",
48748
+ default: "dim",
48749
+ description: "Muted text color",
48750
+ maxLength: 30,
48751
+ pattern: "^[a-zA-Z]+$"
48752
+ },
48753
+ separator: {
48754
+ type: "string",
48755
+ default: "dim",
48756
+ description: "Separator color",
48757
+ maxLength: 30,
48758
+ pattern: "^[a-zA-Z]+$"
48759
+ }
48760
+ },
48761
+ additionalProperties: false
48762
+ },
48763
+ responsiveBreakpoint: {
48764
+ type: "number",
48765
+ minimum: 0.5,
48766
+ maximum: 1,
48767
+ default: 0.85,
48768
+ description: "Terminal width fraction at which compact mode activates"
48769
+ },
48770
+ maxAgentRows: {
48771
+ type: "integer",
48772
+ minimum: 1,
48773
+ maximum: 10,
48774
+ default: 4,
48775
+ description: "Maximum rows to show in agents section"
48776
+ },
48777
+ todoTruncation: {
48778
+ type: "integer",
48779
+ minimum: 20,
48780
+ maximum: 100,
48781
+ default: 50,
48782
+ description: "Max characters before truncating todo text"
48783
+ }
48784
+ },
48785
+ additionalProperties: false
48786
+ },
48557
48787
  hooks: {
48558
48788
  type: "object",
48559
48789
  description: "Toggle individual hooks on/off. Default: all enabled.",
@@ -48622,8 +48852,16 @@ var init_ck_config_schema = __esm(() => {
48622
48852
  },
48623
48853
  migrateProviders: {
48624
48854
  oneOf: [
48625
- { type: "string", const: "auto" },
48626
- { type: "array", items: { type: "string" } }
48855
+ {
48856
+ type: "string",
48857
+ const: "auto"
48858
+ },
48859
+ {
48860
+ type: "array",
48861
+ items: {
48862
+ type: "string"
48863
+ }
48864
+ }
48627
48865
  ],
48628
48866
  default: "auto",
48629
48867
  description: "Which providers to auto-migrate. 'auto' scans filesystem."
@@ -48640,7 +48878,10 @@ var init_ck_config_schema = __esm(() => {
48640
48878
  heavy: {
48641
48879
  type: "object",
48642
48880
  properties: {
48643
- model: { type: "string", description: "Target model name" },
48881
+ model: {
48882
+ type: "string",
48883
+ description: "Target model name"
48884
+ },
48644
48885
  effort: {
48645
48886
  type: "string",
48646
48887
  description: "Effort/reasoning level (provider-specific)"
@@ -48651,7 +48892,10 @@ var init_ck_config_schema = __esm(() => {
48651
48892
  balanced: {
48652
48893
  type: "object",
48653
48894
  properties: {
48654
- model: { type: "string", description: "Target model name" },
48895
+ model: {
48896
+ type: "string",
48897
+ description: "Target model name"
48898
+ },
48655
48899
  effort: {
48656
48900
  type: "string",
48657
48901
  description: "Effort/reasoning level (provider-specific)"
@@ -48662,7 +48906,10 @@ var init_ck_config_schema = __esm(() => {
48662
48906
  light: {
48663
48907
  type: "object",
48664
48908
  properties: {
48665
- model: { type: "string", description: "Target model name" },
48909
+ model: {
48910
+ type: "string",
48911
+ description: "Target model name"
48912
+ },
48666
48913
  effort: {
48667
48914
  type: "string",
48668
48915
  description: "Effort/reasoning level (provider-specific)"
@@ -48813,6 +49060,10 @@ function registerCkConfigRoutes(app) {
48813
49060
  await CkConfigManager.updateField(fieldPath, value, scope, projectDir);
48814
49061
  res.json({ success: true, fieldPath, value, scope });
48815
49062
  } catch (error) {
49063
+ if (error instanceof ZodError) {
49064
+ res.status(400).json({ error: "Validation failed", issues: error.issues });
49065
+ return;
49066
+ }
48816
49067
  logger.error(`Failed to update ck-config field: ${error}`);
48817
49068
  res.status(500).json({ error: "Failed to update field" });
48818
49069
  }
@@ -48842,6 +49093,7 @@ var init_ck_config_routes = __esm(() => {
48842
49093
  init_logger();
48843
49094
  init_path_resolver();
48844
49095
  init_types3();
49096
+ init_zod();
48845
49097
  });
48846
49098
 
48847
49099
  // src/domains/web-server/routes/health-routes.ts
@@ -57329,7 +57581,7 @@ var package_default;
57329
57581
  var init_package = __esm(() => {
57330
57582
  package_default = {
57331
57583
  name: "claudekit-cli",
57332
- version: "3.40.1-dev.1",
57584
+ version: "3.40.3-dev.2",
57333
57585
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
57334
57586
  type: "module",
57335
57587
  repository: {