@kb-labs/devkit 1.4.0 → 2.9.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.
Files changed (231) hide show
  1. package/assets/claude/CLAUDE.md.snippet +30 -0
  2. package/assets/claude/manifest.json +47 -0
  3. package/assets/claude/skills/kb-labs-create-plugin/SKILL.md +144 -0
  4. package/assets/claude/skills/kb-labs-create-product/SKILL.md +144 -0
  5. package/assets/claude/skills/kb-labs-explore/SKILL.md +119 -0
  6. package/assets/claude/skills/kb-labs-quickstart/SKILL.md +72 -0
  7. package/assets/claude/skills/kb-labs-troubleshoot/SKILL.md +150 -0
  8. package/assets/claude/skills/kb-labs-update/SKILL.md +89 -0
  9. package/package.json +29 -29
  10. package/tsconfig/spa.json +7 -0
  11. package/vitest/node.js +8 -2
  12. package/vitest/react.js +8 -2
  13. package/.cursorrules +0 -32
  14. package/.github/CODEOWNERS +0 -2
  15. package/.github/actions/setup-node-pnpm/action.yml +0 -47
  16. package/.github/workflow-templates/ci.yml +0 -13
  17. package/.github/workflow-templates/deploy.yml +0 -28
  18. package/.github/workflow-templates/docker-build.yml +0 -25
  19. package/.github/workflow-templates/drift-check.yml +0 -10
  20. package/.github/workflow-templates/profiles-validate.yml +0 -16
  21. package/.github/workflow-templates/release.yml +0 -8
  22. package/.github/workflows/ci-reusable.yml +0 -131
  23. package/.github/workflows/deploy-reusable.yml +0 -110
  24. package/.github/workflows/docker-build-reusable.yml +0 -110
  25. package/.github/workflows/drift-check-reusable.yml +0 -23
  26. package/.github/workflows/fixtures.yml +0 -74
  27. package/.github/workflows/profiles-validate-reusable.yml +0 -67
  28. package/.github/workflows/release-reusable.yml +0 -50
  29. package/.vscode/settings.json +0 -23
  30. package/tsconfig/dist/__tests__/cache.spec.d.ts +0 -6
  31. package/tsconfig/dist/__tests__/cache.spec.d.ts.map +0 -1
  32. package/tsconfig/dist/__tests__/cache.spec.js +0 -85
  33. package/tsconfig/dist/__tests__/cache.spec.js.map +0 -1
  34. package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts +0 -6
  35. package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts.map +0 -1
  36. package/tsconfig/dist/__tests__/fs-atomic.spec.js +0 -153
  37. package/tsconfig/dist/__tests__/fs-atomic.spec.js.map +0 -1
  38. package/tsconfig/dist/__tests__/init-workspace.spec.d.ts +0 -6
  39. package/tsconfig/dist/__tests__/init-workspace.spec.d.ts.map +0 -1
  40. package/tsconfig/dist/__tests__/init-workspace.spec.js +0 -99
  41. package/tsconfig/dist/__tests__/init-workspace.spec.js.map +0 -1
  42. package/tsconfig/dist/__tests__/kb-error.spec.d.ts +0 -6
  43. package/tsconfig/dist/__tests__/kb-error.spec.d.ts.map +0 -1
  44. package/tsconfig/dist/__tests__/kb-error.spec.js +0 -190
  45. package/tsconfig/dist/__tests__/kb-error.spec.js.map +0 -1
  46. package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts +0 -6
  47. package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts.map +0 -1
  48. package/tsconfig/dist/__tests__/preset-lockfile.spec.js +0 -142
  49. package/tsconfig/dist/__tests__/preset-lockfile.spec.js.map +0 -1
  50. package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts +0 -6
  51. package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts.map +0 -1
  52. package/tsconfig/dist/__tests__/product-config-profiles.spec.js +0 -100
  53. package/tsconfig/dist/__tests__/product-config-profiles.spec.js.map +0 -1
  54. package/tsconfig/dist/__tests__/product-config.spec.d.ts +0 -6
  55. package/tsconfig/dist/__tests__/product-config.spec.d.ts.map +0 -1
  56. package/tsconfig/dist/__tests__/product-config.spec.js +0 -298
  57. package/tsconfig/dist/__tests__/product-config.spec.js.map +0 -1
  58. package/tsconfig/dist/__tests__/runtime.spec.d.ts +0 -2
  59. package/tsconfig/dist/__tests__/runtime.spec.d.ts.map +0 -1
  60. package/tsconfig/dist/__tests__/runtime.spec.js +0 -127
  61. package/tsconfig/dist/__tests__/runtime.spec.js.map +0 -1
  62. package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts +0 -6
  63. package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts.map +0 -1
  64. package/tsconfig/dist/__tests__/upsert-lockfile.spec.js +0 -251
  65. package/tsconfig/dist/__tests__/upsert-lockfile.spec.js.map +0 -1
  66. package/tsconfig/dist/__tests__/validate-config.spec.d.ts +0 -2
  67. package/tsconfig/dist/__tests__/validate-config.spec.d.ts.map +0 -1
  68. package/tsconfig/dist/__tests__/validate-config.spec.js +0 -14
  69. package/tsconfig/dist/__tests__/validate-config.spec.js.map +0 -1
  70. package/tsconfig/dist/api/init-workspace.d.ts +0 -10
  71. package/tsconfig/dist/api/init-workspace.d.ts.map +0 -1
  72. package/tsconfig/dist/api/init-workspace.js +0 -191
  73. package/tsconfig/dist/api/init-workspace.js.map +0 -1
  74. package/tsconfig/dist/api/product-config.d.ts +0 -21
  75. package/tsconfig/dist/api/product-config.d.ts.map +0 -1
  76. package/tsconfig/dist/api/product-config.js +0 -192
  77. package/tsconfig/dist/api/product-config.js.map +0 -1
  78. package/tsconfig/dist/api/read-config.d.ts +0 -22
  79. package/tsconfig/dist/api/read-config.d.ts.map +0 -1
  80. package/tsconfig/dist/api/read-config.js +0 -105
  81. package/tsconfig/dist/api/read-config.js.map +0 -1
  82. package/tsconfig/dist/api/upsert-lockfile.d.ts +0 -10
  83. package/tsconfig/dist/api/upsert-lockfile.d.ts.map +0 -1
  84. package/tsconfig/dist/api/upsert-lockfile.js +0 -63
  85. package/tsconfig/dist/api/upsert-lockfile.js.map +0 -1
  86. package/tsconfig/dist/cache/fs-cache.d.ts +0 -38
  87. package/tsconfig/dist/cache/fs-cache.d.ts.map +0 -1
  88. package/tsconfig/dist/cache/fs-cache.js +0 -142
  89. package/tsconfig/dist/cache/fs-cache.js.map +0 -1
  90. package/tsconfig/dist/errors/kb-error.d.ts +0 -32
  91. package/tsconfig/dist/errors/kb-error.d.ts.map +0 -1
  92. package/tsconfig/dist/errors/kb-error.js +0 -54
  93. package/tsconfig/dist/errors/kb-error.js.map +0 -1
  94. package/tsconfig/dist/fs/__tests__/fs.spec.d.ts +0 -2
  95. package/tsconfig/dist/fs/__tests__/fs.spec.d.ts.map +0 -1
  96. package/tsconfig/dist/fs/__tests__/fs.spec.js +0 -22
  97. package/tsconfig/dist/fs/__tests__/fs.spec.js.map +0 -1
  98. package/tsconfig/dist/fs/fs.d.ts +0 -6
  99. package/tsconfig/dist/fs/fs.d.ts.map +0 -1
  100. package/tsconfig/dist/fs/fs.js +0 -12
  101. package/tsconfig/dist/fs/fs.js.map +0 -1
  102. package/tsconfig/dist/fs/index.d.ts +0 -2
  103. package/tsconfig/dist/fs/index.d.ts.map +0 -1
  104. package/tsconfig/dist/fs/index.js +0 -2
  105. package/tsconfig/dist/fs/index.js.map +0 -1
  106. package/tsconfig/dist/hash/config-hash.d.ts +0 -17
  107. package/tsconfig/dist/hash/config-hash.d.ts.map +0 -1
  108. package/tsconfig/dist/hash/config-hash.js +0 -55
  109. package/tsconfig/dist/hash/config-hash.js.map +0 -1
  110. package/tsconfig/dist/index.d.ts +0 -5
  111. package/tsconfig/dist/index.d.ts.map +0 -1
  112. package/tsconfig/dist/index.js +0 -5
  113. package/tsconfig/dist/index.js.map +0 -1
  114. package/tsconfig/dist/lockfile/lockfile.d.ts +0 -54
  115. package/tsconfig/dist/lockfile/lockfile.d.ts.map +0 -1
  116. package/tsconfig/dist/lockfile/lockfile.js +0 -141
  117. package/tsconfig/dist/lockfile/lockfile.js.map +0 -1
  118. package/tsconfig/dist/logging/__tests__/logger.spec.d.ts +0 -2
  119. package/tsconfig/dist/logging/__tests__/logger.spec.d.ts.map +0 -1
  120. package/tsconfig/dist/logging/__tests__/logger.spec.js +0 -65
  121. package/tsconfig/dist/logging/__tests__/logger.spec.js.map +0 -1
  122. package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts +0 -2
  123. package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts.map +0 -1
  124. package/tsconfig/dist/logging/__tests__/redaction.spec.js +0 -34
  125. package/tsconfig/dist/logging/__tests__/redaction.spec.js.map +0 -1
  126. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts +0 -2
  127. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts.map +0 -1
  128. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js +0 -90
  129. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js.map +0 -1
  130. package/tsconfig/dist/logging/index.d.ts +0 -6
  131. package/tsconfig/dist/logging/index.d.ts.map +0 -1
  132. package/tsconfig/dist/logging/index.js +0 -6
  133. package/tsconfig/dist/logging/index.js.map +0 -1
  134. package/tsconfig/dist/logging/logger.d.ts +0 -9
  135. package/tsconfig/dist/logging/logger.d.ts.map +0 -1
  136. package/tsconfig/dist/logging/logger.js +0 -101
  137. package/tsconfig/dist/logging/logger.js.map +0 -1
  138. package/tsconfig/dist/logging/redaction.d.ts +0 -7
  139. package/tsconfig/dist/logging/redaction.d.ts.map +0 -1
  140. package/tsconfig/dist/logging/redaction.js +0 -23
  141. package/tsconfig/dist/logging/redaction.js.map +0 -1
  142. package/tsconfig/dist/logging/sinks/json.d.ts +0 -4
  143. package/tsconfig/dist/logging/sinks/json.d.ts.map +0 -1
  144. package/tsconfig/dist/logging/sinks/json.js +0 -23
  145. package/tsconfig/dist/logging/sinks/json.js.map +0 -1
  146. package/tsconfig/dist/logging/sinks/stdout.d.ts +0 -3
  147. package/tsconfig/dist/logging/sinks/stdout.d.ts.map +0 -1
  148. package/tsconfig/dist/logging/sinks/stdout.js +0 -24
  149. package/tsconfig/dist/logging/sinks/stdout.js.map +0 -1
  150. package/tsconfig/dist/logging/types/index.d.ts +0 -2
  151. package/tsconfig/dist/logging/types/index.d.ts.map +0 -1
  152. package/tsconfig/dist/logging/types/index.js +0 -2
  153. package/tsconfig/dist/logging/types/index.js.map +0 -1
  154. package/tsconfig/dist/logging/types/types.d.ts +0 -37
  155. package/tsconfig/dist/logging/types/types.d.ts.map +0 -1
  156. package/tsconfig/dist/logging/types/types.js +0 -2
  157. package/tsconfig/dist/logging/types/types.js.map +0 -1
  158. package/tsconfig/dist/merge/layered-merge.d.ts +0 -16
  159. package/tsconfig/dist/merge/layered-merge.d.ts.map +0 -1
  160. package/tsconfig/dist/merge/layered-merge.js +0 -97
  161. package/tsconfig/dist/merge/layered-merge.js.map +0 -1
  162. package/tsconfig/dist/preset/resolve-preset.d.ts +0 -29
  163. package/tsconfig/dist/preset/resolve-preset.d.ts.map +0 -1
  164. package/tsconfig/dist/preset/resolve-preset.js +0 -104
  165. package/tsconfig/dist/preset/resolve-preset.js.map +0 -1
  166. package/tsconfig/dist/repo/__tests__/repo.spec.d.ts +0 -2
  167. package/tsconfig/dist/repo/__tests__/repo.spec.d.ts.map +0 -1
  168. package/tsconfig/dist/repo/__tests__/repo.spec.js +0 -25
  169. package/tsconfig/dist/repo/__tests__/repo.spec.js.map +0 -1
  170. package/tsconfig/dist/repo/index.d.ts +0 -2
  171. package/tsconfig/dist/repo/index.d.ts.map +0 -1
  172. package/tsconfig/dist/repo/index.js +0 -2
  173. package/tsconfig/dist/repo/index.js.map +0 -1
  174. package/tsconfig/dist/repo/repo.d.ts +0 -6
  175. package/tsconfig/dist/repo/repo.d.ts.map +0 -1
  176. package/tsconfig/dist/repo/repo.js +0 -25
  177. package/tsconfig/dist/repo/repo.js.map +0 -1
  178. package/tsconfig/dist/runtime/index.d.ts +0 -2
  179. package/tsconfig/dist/runtime/index.d.ts.map +0 -1
  180. package/tsconfig/dist/runtime/index.js +0 -2
  181. package/tsconfig/dist/runtime/index.js.map +0 -1
  182. package/tsconfig/dist/runtime/runtime.d.ts +0 -46
  183. package/tsconfig/dist/runtime/runtime.d.ts.map +0 -1
  184. package/tsconfig/dist/runtime/runtime.js +0 -126
  185. package/tsconfig/dist/runtime/runtime.js.map +0 -1
  186. package/tsconfig/dist/tsconfig.tools.tsbuildinfo +0 -1
  187. package/tsconfig/dist/tsconfig.tsbuildinfo +0 -1
  188. package/tsconfig/dist/types/index.d.ts +0 -2
  189. package/tsconfig/dist/types/index.d.ts.map +0 -1
  190. package/tsconfig/dist/types/index.js +0 -2
  191. package/tsconfig/dist/types/index.js.map +0 -1
  192. package/tsconfig/dist/types/init.d.ts +0 -34
  193. package/tsconfig/dist/types/init.d.ts.map +0 -1
  194. package/tsconfig/dist/types/init.js +0 -6
  195. package/tsconfig/dist/types/init.js.map +0 -1
  196. package/tsconfig/dist/types/preset.d.ts +0 -27
  197. package/tsconfig/dist/types/preset.d.ts.map +0 -1
  198. package/tsconfig/dist/types/preset.js +0 -6
  199. package/tsconfig/dist/types/preset.js.map +0 -1
  200. package/tsconfig/dist/types/types.d.ts +0 -6
  201. package/tsconfig/dist/types/types.d.ts.map +0 -1
  202. package/tsconfig/dist/types/types.js +0 -2
  203. package/tsconfig/dist/types/types.js.map +0 -1
  204. package/tsconfig/dist/utils/__tests__/env.spec.d.ts +0 -2
  205. package/tsconfig/dist/utils/__tests__/env.spec.d.ts.map +0 -1
  206. package/tsconfig/dist/utils/__tests__/env.spec.js +0 -33
  207. package/tsconfig/dist/utils/__tests__/env.spec.js.map +0 -1
  208. package/tsconfig/dist/utils/env.d.ts +0 -7
  209. package/tsconfig/dist/utils/env.d.ts.map +0 -1
  210. package/tsconfig/dist/utils/env.js +0 -25
  211. package/tsconfig/dist/utils/env.js.map +0 -1
  212. package/tsconfig/dist/utils/fs-atomic.d.ts +0 -15
  213. package/tsconfig/dist/utils/fs-atomic.d.ts.map +0 -1
  214. package/tsconfig/dist/utils/fs-atomic.js +0 -45
  215. package/tsconfig/dist/utils/fs-atomic.js.map +0 -1
  216. package/tsconfig/dist/utils/index.d.ts +0 -3
  217. package/tsconfig/dist/utils/index.d.ts.map +0 -1
  218. package/tsconfig/dist/utils/index.js +0 -3
  219. package/tsconfig/dist/utils/index.js.map +0 -1
  220. package/tsconfig/dist/utils/paths.d.ts +0 -21
  221. package/tsconfig/dist/utils/paths.d.ts.map +0 -1
  222. package/tsconfig/dist/utils/paths.js +0 -32
  223. package/tsconfig/dist/utils/paths.js.map +0 -1
  224. package/tsconfig/dist/utils/product-normalize.d.ts +0 -27
  225. package/tsconfig/dist/utils/product-normalize.d.ts.map +0 -1
  226. package/tsconfig/dist/utils/product-normalize.js +0 -45
  227. package/tsconfig/dist/utils/product-normalize.js.map +0 -1
  228. package/tsconfig/dist/validation/validate-config.d.ts +0 -7
  229. package/tsconfig/dist/validation/validate-config.d.ts.map +0 -1
  230. package/tsconfig/dist/validation/validate-config.js +0 -22
  231. package/tsconfig/dist/validation/validate-config.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"init-workspace.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/init-workspace.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/product-config
3
- * High-level product configuration resolver with layered merge
4
- */
5
- import type { ResolveOptions, ProductConfigResult } from '../types';
6
- import type { ProfileInfo } from '@kb-labs/core-profiles';
7
- /**
8
- * Get product configuration with layered merge and trace
9
- */
10
- export declare function getProductConfig<T>(opts: ResolveOptions, schema: any, profileInfo?: ProfileInfo): Promise<ProductConfigResult<T>>;
11
- /**
12
- * Explain product configuration (trace only)
13
- */
14
- export declare function explainProductConfig(opts: Omit<ResolveOptions, 'writeFinal'>, schema: any, profileInfo?: ProfileInfo): Promise<{
15
- trace: any[];
16
- }>;
17
- /**
18
- * Get configuration hash for lockfile
19
- */
20
- export declare function getConfigHash(config: any): string;
21
- //# sourceMappingURL=product-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-config.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/product-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAa,cAAc,EAAE,mBAAmB,EAAe,MAAM,UAAU,CAAC;AAI5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,GAAG,EACX,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAqIjC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,EACxC,MAAM,EAAE,GAAG,EACX,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CAG3B;AAoDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAEjD"}
@@ -1,192 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/product-config
3
- * High-level product configuration resolver with layered merge
4
- */
5
- import { promises as fsp } from 'node:fs';
6
- import path from 'node:path';
7
- import { readWorkspaceConfig } from './read-config';
8
- import { layeredMergeWithTrace } from '../merge/layered-merge';
9
- import { toFsProduct } from '../utils/product-normalize';
10
- import { computeConfigHash } from '../hash/config-hash';
11
- import { resolvePreset, getPresetConfigForProduct } from '../preset/resolve-preset';
12
- import { updateLockfile } from '../lockfile/lockfile';
13
- import { getProductDefaults } from '@kb-labs/core-profiles';
14
- /**
15
- * Get product configuration with layered merge and trace
16
- */
17
- export async function getProductConfig(opts, schema, profileInfo) {
18
- const { cwd, product, cli = {}, writeFinal = false } = opts;
19
- const fsProduct = toFsProduct(product);
20
- // Read workspace configuration
21
- const workspaceConfig = await readWorkspaceConfig(cwd);
22
- // Build configuration layers
23
- const layers = [];
24
- // 1. Runtime defaults
25
- layers.push({
26
- label: 'runtime',
27
- value: getRuntimeDefaults(product),
28
- source: 'runtime:defaults',
29
- });
30
- // 2. Profile defaults
31
- let profileDefaults = {};
32
- if (profileInfo) {
33
- try {
34
- profileDefaults = await getProductDefaults(profileInfo, toFsProduct(product), schema);
35
- }
36
- catch (error) {
37
- // Profile defaults failed, continue without them
38
- console.warn('Warning: Could not load profile defaults:', error);
39
- }
40
- }
41
- layers.push({
42
- label: 'profile',
43
- value: profileDefaults,
44
- source: profileInfo
45
- ? `profile:${profileInfo.name}@${profileInfo.version}`
46
- : 'profile:none',
47
- });
48
- // 3. Preset defaults (resolve org preset if configured)
49
- let presetConfig = {};
50
- if (workspaceConfig?.data) {
51
- const workspaceData = workspaceConfig.data;
52
- if (workspaceData.$extends) {
53
- try {
54
- const preset = await resolvePreset(workspaceData.$extends, cwd);
55
- presetConfig = getPresetConfigForProduct(preset, product);
56
- layers.push({
57
- label: 'preset',
58
- value: presetConfig,
59
- source: `preset:${workspaceData.$extends}`,
60
- });
61
- }
62
- catch (error) {
63
- // Preset resolution failed, continue without preset
64
- console.warn(`Warning: Could not resolve preset ${workspaceData.$extends}:`, error);
65
- }
66
- }
67
- }
68
- if (Object.keys(presetConfig).length === 0) {
69
- layers.push({
70
- label: 'preset',
71
- value: {},
72
- source: 'preset:none',
73
- });
74
- }
75
- // 4. Workspace config
76
- if (workspaceConfig?.data) {
77
- const workspaceData = workspaceConfig.data?.products?.[fsProduct] || {};
78
- layers.push({
79
- label: 'workspace',
80
- value: workspaceData,
81
- source: 'workspace:kb-labs.config',
82
- });
83
- }
84
- // 5. Local config (.kb/<product>/<product>.config.json)
85
- const localConfigPath = path.join(cwd, '.kb', fsProduct, `${fsProduct}.config.json`);
86
- try {
87
- const localConfig = await fsp.readFile(localConfigPath, 'utf-8');
88
- const localData = JSON.parse(localConfig);
89
- layers.push({
90
- label: 'local',
91
- value: localData,
92
- source: `local:.kb/${fsProduct}/${fsProduct}.config.json`,
93
- });
94
- }
95
- catch {
96
- // Local config is optional
97
- }
98
- // 6. CLI overrides
99
- if (Object.keys(cli).length > 0) {
100
- layers.push({
101
- label: 'cli',
102
- value: cli,
103
- source: 'cli:overrides',
104
- });
105
- }
106
- // Merge all layers
107
- const { merged, trace } = layeredMergeWithTrace(layers);
108
- // Validate against schema if provided
109
- if (schema) {
110
- // Schema validation will be implemented with AJV
111
- // For now, we'll skip validation
112
- }
113
- // Write final config if requested
114
- if (writeFinal) {
115
- await writeFinalConfig(cwd, fsProduct, merged);
116
- }
117
- // Update lockfile with config hash
118
- try {
119
- const configHash = computeConfigHash(merged);
120
- const configHashes = {};
121
- configHashes[product] = configHash;
122
- await updateLockfile(cwd, {
123
- configHashes
124
- });
125
- }
126
- catch (error) {
127
- // Lockfile update is optional, don't fail the config resolution
128
- console.warn('Warning: Could not update lockfile:', error);
129
- }
130
- return {
131
- config: merged,
132
- trace,
133
- };
134
- }
135
- /**
136
- * Explain product configuration (trace only)
137
- */
138
- export async function explainProductConfig(opts, schema, profileInfo) {
139
- const result = await getProductConfig(opts, schema, profileInfo);
140
- return { trace: result.trace };
141
- }
142
- /**
143
- * Get runtime defaults for a product
144
- */
145
- function getRuntimeDefaults(product) {
146
- const defaults = {
147
- devlink: {
148
- watch: true,
149
- build: true,
150
- },
151
- release: {
152
- version: '1.0.0',
153
- publish: false,
154
- },
155
- aiReview: {
156
- enabled: true,
157
- rules: [],
158
- },
159
- aiDocs: {
160
- enabled: true,
161
- templates: [],
162
- },
163
- devkit: {
164
- sync: true,
165
- check: true,
166
- },
167
- };
168
- return defaults[product] || {};
169
- }
170
- /**
171
- * Write final configuration to .kb/<product>/<product>.config.json
172
- */
173
- async function writeFinalConfig(cwd, fsProduct, config) {
174
- const configDir = path.join(cwd, '.kb', fsProduct);
175
- const configPath = path.join(configDir, `${fsProduct}.config.json`);
176
- // Ensure directory exists
177
- await fsp.mkdir(configDir, { recursive: true });
178
- // Write config with schema version
179
- const finalConfig = {
180
- $schema: 'https://schemas.kb-labs.dev/config.schema.json',
181
- schemaVersion: '1.0',
182
- ...config,
183
- };
184
- await fsp.writeFile(configPath, JSON.stringify(finalConfig, null, 2));
185
- }
186
- /**
187
- * Get configuration hash for lockfile
188
- */
189
- export function getConfigHash(config) {
190
- return computeConfigHash(config);
191
- }
192
- //# sourceMappingURL=product-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-config.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/product-config.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/read-config
3
- * Enhanced config file reading with YAML support and find-up
4
- */
5
- export interface ConfigFileResult {
6
- data: unknown;
7
- format: 'json' | 'yaml';
8
- path: string;
9
- }
10
- /**
11
- * Read config file with format detection and caching
12
- */
13
- export declare function readConfigFile(filePath: string): Promise<ConfigFileResult>;
14
- /**
15
- * Find git root directory
16
- */
17
- export declare function findGitRoot(startDir: string): Promise<string | null>;
18
- /**
19
- * Read workspace config with find-up to git root
20
- */
21
- export declare function readWorkspaceConfig(cwd: string): Promise<ConfigFileResult | null>;
22
- //# sourceMappingURL=read-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-config.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/read-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+ChF;AAqCD;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB1E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CASvF"}
@@ -1,105 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/read-config
3
- * Enhanced config file reading with YAML support and find-up
4
- */
5
- import { promises as fsp } from 'node:fs';
6
- import path from 'node:path';
7
- import { extname } from 'node:path';
8
- import YAML from 'yaml';
9
- import { KbError, ERROR_HINTS } from '../errors/kb-error';
10
- import { fsCache } from '../cache/fs-cache';
11
- /**
12
- * Read config file with format detection and caching
13
- */
14
- export async function readConfigFile(filePath) {
15
- const absPath = path.resolve(filePath);
16
- // Check cache first
17
- const cached = await fsCache.get(absPath);
18
- if (cached !== null) {
19
- return cached;
20
- }
21
- try {
22
- const raw = await fsp.readFile(absPath, 'utf-8');
23
- const ext = extname(absPath).toLowerCase();
24
- let data;
25
- let format;
26
- if (ext === '.yaml' || ext === '.yml') {
27
- data = YAML.parse(raw);
28
- format = 'yaml';
29
- }
30
- else {
31
- data = JSON.parse(raw);
32
- format = 'json';
33
- }
34
- const result = { data, format, path: absPath };
35
- // Cache the result
36
- await fsCache.set(absPath, result);
37
- return result;
38
- }
39
- catch (error) {
40
- if (error instanceof SyntaxError) {
41
- throw new KbError('ERR_CONFIG_INVALID', `Failed to parse config file: ${filePath}`, ERROR_HINTS.ERR_CONFIG_INVALID, { filePath, error: error.message });
42
- }
43
- throw new KbError('ERR_CONFIG_NOT_FOUND', `Config file not found: ${filePath}`, ERROR_HINTS.ERR_CONFIG_NOT_FOUND, { filePath, error: error instanceof Error ? error.message : String(error) });
44
- }
45
- }
46
- /**
47
- * Find nearest config file walking up from startDir to git root
48
- */
49
- async function findNearestConfig(startDir, filenames = ['kb-labs.config.json', 'kb-labs.config.yaml', 'kb-labs.config.yml']) {
50
- const start = path.resolve(startDir);
51
- const tried = [];
52
- let dir = start;
53
- while (true) {
54
- for (const filename of filenames) {
55
- const candidate = path.join(dir, filename);
56
- tried.push(candidate);
57
- try {
58
- await fsp.access(candidate);
59
- return { path: candidate, tried };
60
- }
61
- catch {
62
- // Continue to next filename
63
- }
64
- }
65
- const parent = path.dirname(dir);
66
- if (parent === dir) {
67
- // Reached filesystem root
68
- break;
69
- }
70
- dir = parent;
71
- }
72
- return { path: null, tried };
73
- }
74
- /**
75
- * Find git root directory
76
- */
77
- export async function findGitRoot(startDir) {
78
- let dir = path.resolve(startDir);
79
- while (true) {
80
- try {
81
- await fsp.access(path.join(dir, '.git'));
82
- return dir;
83
- }
84
- catch {
85
- const parent = path.dirname(dir);
86
- if (parent === dir) {
87
- break;
88
- }
89
- dir = parent;
90
- }
91
- }
92
- return null;
93
- }
94
- /**
95
- * Read workspace config with find-up to git root
96
- */
97
- export async function readWorkspaceConfig(cwd) {
98
- const filenames = ['kb-labs.config.json', 'kb-labs.config.yaml', 'kb-labs.config.yml'];
99
- const { path: configPath } = await findNearestConfig(cwd, filenames);
100
- if (!configPath) {
101
- return null;
102
- }
103
- return readConfigFile(configPath);
104
- }
105
- //# sourceMappingURL=read-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-config.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/read-config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/upsert-lockfile
3
- * Upsert lockfile operations
4
- */
5
- import type { UpsertLockfileOptions, InitResult } from '../types/init';
6
- /**
7
- * Upsert lockfile with new references
8
- */
9
- export declare function upsertLockfile(opts: UpsertLockfileOptions): Promise<InitResult>;
10
- //# sourceMappingURL=upsert-lockfile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upsert-lockfile.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/upsert-lockfile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEvE;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
@@ -1,63 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/api/upsert-lockfile
3
- * Upsert lockfile operations
4
- */
5
- import path from 'node:path';
6
- import { promises as fs } from 'node:fs';
7
- import { readLockfile, writeLockfile } from '../lockfile/lockfile';
8
- import { ensureWithinWorkspace } from '../utils/fs-atomic';
9
- /**
10
- * Upsert lockfile with new references
11
- */
12
- export async function upsertLockfile(opts) {
13
- const cwd = path.resolve(opts.cwd);
14
- const lockfilePath = path.join(cwd, '.kb', 'lock.json');
15
- const oldLockfilePath = path.join(cwd, '.kb', 'lockfile.json');
16
- const result = {
17
- actions: [],
18
- created: [],
19
- updated: [],
20
- skipped: [],
21
- warnings: [],
22
- };
23
- // Ensure we're writing within workspace
24
- ensureWithinWorkspace(lockfilePath, cwd);
25
- // Check for deprecated lockfile location
26
- try {
27
- await fs.access(oldLockfilePath);
28
- result.warnings.push('Deprecated lockfile found at .kb/lockfile.json, please migrate to .kb/lock.json');
29
- }
30
- catch {
31
- // No old lockfile, that's fine
32
- }
33
- // Read existing lockfile
34
- const existing = await readLockfile(cwd);
35
- // Build lockfile data
36
- const lockfileData = {
37
- $schema: 'https://schemas.kb-labs.dev/lockfile.schema.json',
38
- schemaVersion: '1.0',
39
- orgPreset: opts.presetRef !== undefined ? opts.presetRef || undefined : existing?.orgPreset,
40
- profile: opts.profileRef !== undefined ? opts.profileRef || undefined : existing?.profile,
41
- policyBundle: opts.policyBundle !== undefined ? opts.policyBundle || undefined : existing?.policyBundle,
42
- hashes: existing?.hashes || {},
43
- generatedAt: new Date().toISOString(),
44
- };
45
- if (!existing) {
46
- // Creating new lockfile
47
- if (!opts.dryRun) {
48
- await writeLockfile(cwd, lockfileData);
49
- }
50
- result.actions.push({ kind: 'write', path: lockfilePath });
51
- result.created.push(lockfilePath);
52
- }
53
- else {
54
- // Updating existing lockfile
55
- if (!opts.dryRun) {
56
- await writeLockfile(cwd, lockfileData);
57
- }
58
- result.actions.push({ kind: 'update', path: lockfilePath });
59
- result.updated.push(lockfilePath);
60
- }
61
- return result;
62
- }
63
- //# sourceMappingURL=upsert-lockfile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upsert-lockfile.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/api/upsert-lockfile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAe;QACzB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,wCAAwC;IACxC,qBAAqB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAEzC,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,sBAAsB;IACtB,MAAM,YAAY,GAAiB;QACjC,OAAO,EAAE,kDAAkD;QAC3D,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS;QAC3F,OAAO,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO;QACzF,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY;QACvG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE;QAC9B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/cache/fs-cache
3
- * LRU cache for filesystem reads with clearCaches() support
4
- */
5
- declare class FSCache {
6
- private cache;
7
- private keyCache;
8
- /**
9
- * Generate cache key from file path, mtime, and size
10
- */
11
- private getCacheKey;
12
- /**
13
- * Get cached file data if available and not stale
14
- */
15
- get(absPath: string): Promise<any | null>;
16
- /**
17
- * Cache file data
18
- */
19
- set(absPath: string, data: any): Promise<void>;
20
- /**
21
- * Clear all caches
22
- */
23
- clearCaches(): void;
24
- /**
25
- * Get cache statistics
26
- */
27
- getStats(): {
28
- size: number;
29
- keySize: number;
30
- };
31
- }
32
- declare const fsCache: FSCache;
33
- export { fsCache, FSCache };
34
- /**
35
- * Clear all filesystem caches
36
- */
37
- export declare function clearCaches(): void;
38
- //# sourceMappingURL=fs-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-cache.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/cache/fs-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8DH,cAAM,OAAO;IACX,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;OAEG;YACW,WAAW;IAsBzB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAiC/C;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAM9C;AAGD,QAAA,MAAM,OAAO,SAAgB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAE5B;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -1,142 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/cache/fs-cache
3
- * LRU cache for filesystem reads with clearCaches() support
4
- */
5
- import { promises as fsp } from 'node:fs';
6
- class LRUCache {
7
- cache = new Map();
8
- maxSize;
9
- constructor(maxSize = 100) {
10
- this.maxSize = maxSize;
11
- }
12
- get(key) {
13
- const value = this.cache.get(key);
14
- if (value !== undefined) {
15
- // Move to end (most recently used)
16
- this.cache.delete(key);
17
- this.cache.set(key, value);
18
- }
19
- return value;
20
- }
21
- set(key, value) {
22
- if (this.cache.has(key)) {
23
- this.cache.delete(key);
24
- }
25
- else if (this.cache.size >= this.maxSize) {
26
- // Remove least recently used (first item)
27
- const firstKey = this.cache.keys().next().value;
28
- if (firstKey !== undefined) {
29
- this.cache.delete(firstKey);
30
- }
31
- }
32
- this.cache.set(key, value);
33
- }
34
- delete(key) {
35
- return this.cache.delete(key);
36
- }
37
- clear() {
38
- this.cache.clear();
39
- }
40
- size() {
41
- return this.cache.size;
42
- }
43
- }
44
- class FSCache {
45
- cache = new LRUCache(100);
46
- keyCache = new LRUCache(100);
47
- /**
48
- * Generate cache key from file path, mtime, and size
49
- */
50
- async getCacheKey(absPath) {
51
- const keyStr = `key:${absPath}`;
52
- let key = this.keyCache.get(keyStr);
53
- if (!key) {
54
- try {
55
- const stats = await fsp.stat(absPath);
56
- key = {
57
- absPath,
58
- mtime: stats.mtime.getTime(),
59
- size: stats.size,
60
- };
61
- this.keyCache.set(keyStr, key);
62
- }
63
- catch {
64
- // File doesn't exist or can't be read
65
- return { absPath, mtime: 0, size: 0 };
66
- }
67
- }
68
- return key;
69
- }
70
- /**
71
- * Get cached file data if available and not stale
72
- */
73
- async get(absPath) {
74
- const key = await this.getCacheKey(absPath);
75
- const cacheKey = `${key.absPath}|${key.mtime}|${key.size}`;
76
- const entry = this.cache.get(cacheKey);
77
- if (!entry) {
78
- return null;
79
- }
80
- // Check if file has been modified since cache
81
- try {
82
- const stats = await fsp.stat(absPath);
83
- if (stats.mtime.getTime() !== key.mtime || stats.size !== key.size) {
84
- // File changed, remove from cache and update key cache
85
- this.cache.delete(cacheKey);
86
- // Update the key cache with new stats
87
- const newKey = {
88
- absPath,
89
- mtime: stats.mtime.getTime(),
90
- size: stats.size,
91
- };
92
- this.keyCache.set(`key:${absPath}`, newKey);
93
- return null;
94
- }
95
- }
96
- catch {
97
- // File no longer exists
98
- this.cache.delete(cacheKey);
99
- return null;
100
- }
101
- return entry.data;
102
- }
103
- /**
104
- * Cache file data
105
- */
106
- async set(absPath, data) {
107
- const key = await this.getCacheKey(absPath);
108
- const cacheKey = `${key.absPath}|${key.mtime}|${key.size}`;
109
- this.cache.set(cacheKey, {
110
- data,
111
- mtime: key.mtime,
112
- size: key.size,
113
- timestamp: Date.now(),
114
- });
115
- }
116
- /**
117
- * Clear all caches
118
- */
119
- clearCaches() {
120
- this.cache.clear();
121
- this.keyCache.clear();
122
- }
123
- /**
124
- * Get cache statistics
125
- */
126
- getStats() {
127
- return {
128
- size: this.cache.size(),
129
- keySize: this.keyCache.size(),
130
- };
131
- }
132
- }
133
- // Singleton instance
134
- const fsCache = new FSCache();
135
- export { fsCache, FSCache };
136
- /**
137
- * Clear all filesystem caches
138
- */
139
- export function clearCaches() {
140
- fsCache.clearCaches();
141
- }
142
- //# sourceMappingURL=fs-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-cache.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/cache/fs-cache.ts"],"names":[],"mappings":"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"}