@kb-labs/core-config 1.0.0 → 1.2.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 (173) hide show
  1. package/dist/__tests__/cache.spec.d.ts +6 -0
  2. package/dist/__tests__/cache.spec.d.ts.map +1 -0
  3. package/dist/__tests__/cache.spec.js +87 -0
  4. package/dist/__tests__/cache.spec.js.map +1 -0
  5. package/dist/__tests__/fs-atomic.spec.d.ts +6 -0
  6. package/dist/__tests__/fs-atomic.spec.d.ts.map +1 -0
  7. package/dist/__tests__/fs-atomic.spec.js +153 -0
  8. package/dist/__tests__/fs-atomic.spec.js.map +1 -0
  9. package/dist/__tests__/get-product-config-edge-cases.spec.d.ts +6 -0
  10. package/dist/__tests__/get-product-config-edge-cases.spec.d.ts.map +1 -0
  11. package/dist/__tests__/get-product-config-edge-cases.spec.js +334 -0
  12. package/dist/__tests__/get-product-config-edge-cases.spec.js.map +1 -0
  13. package/dist/__tests__/init-workspace.spec.d.ts +6 -0
  14. package/dist/__tests__/init-workspace.spec.d.ts.map +1 -0
  15. package/dist/__tests__/init-workspace.spec.js +101 -0
  16. package/dist/__tests__/init-workspace.spec.js.map +1 -0
  17. package/dist/__tests__/kb-error.spec.d.ts +6 -0
  18. package/dist/__tests__/kb-error.spec.d.ts.map +1 -0
  19. package/dist/__tests__/kb-error.spec.js +193 -0
  20. package/dist/__tests__/kb-error.spec.js.map +1 -0
  21. package/dist/__tests__/preset-lockfile.spec.d.ts +6 -0
  22. package/dist/__tests__/preset-lockfile.spec.d.ts.map +1 -0
  23. package/dist/__tests__/preset-lockfile.spec.js +142 -0
  24. package/dist/__tests__/preset-lockfile.spec.js.map +1 -0
  25. package/dist/__tests__/product-config-profiles.spec.d.ts +6 -0
  26. package/dist/__tests__/product-config-profiles.spec.d.ts.map +1 -0
  27. package/dist/__tests__/product-config-profiles.spec.js +82 -0
  28. package/dist/__tests__/product-config-profiles.spec.js.map +1 -0
  29. package/dist/__tests__/product-config.spec.d.ts +6 -0
  30. package/dist/__tests__/product-config.spec.d.ts.map +1 -0
  31. package/dist/__tests__/product-config.spec.js +304 -0
  32. package/dist/__tests__/product-config.spec.js.map +1 -0
  33. package/dist/__tests__/profiles-demo.d.ts +11 -0
  34. package/dist/__tests__/profiles-demo.d.ts.map +1 -0
  35. package/dist/__tests__/profiles-demo.js +173 -0
  36. package/dist/__tests__/profiles-demo.js.map +1 -0
  37. package/dist/__tests__/profiles-resolver.spec.d.ts +2 -0
  38. package/dist/__tests__/profiles-resolver.spec.d.ts.map +1 -0
  39. package/dist/__tests__/profiles-resolver.spec.js +114 -0
  40. package/dist/__tests__/profiles-resolver.spec.js.map +1 -0
  41. package/dist/__tests__/profiles-section.spec.d.ts +2 -0
  42. package/dist/__tests__/profiles-section.spec.d.ts.map +1 -0
  43. package/dist/__tests__/profiles-section.spec.js +50 -0
  44. package/dist/__tests__/profiles-section.spec.js.map +1 -0
  45. package/dist/__tests__/runtime.spec.d.ts +2 -0
  46. package/dist/__tests__/runtime.spec.d.ts.map +1 -0
  47. package/dist/__tests__/runtime.spec.js +170 -0
  48. package/dist/__tests__/runtime.spec.js.map +1 -0
  49. package/dist/__tests__/upsert-lockfile.spec.d.ts +1 -0
  50. package/dist/__tests__/upsert-lockfile.spec.d.ts.map +1 -0
  51. package/dist/__tests__/upsert-lockfile.spec.js +2 -0
  52. package/dist/__tests__/upsert-lockfile.spec.js.map +1 -0
  53. package/dist/__tests__/validate-config.spec.d.ts +2 -0
  54. package/dist/__tests__/validate-config.spec.d.ts.map +1 -0
  55. package/dist/__tests__/validate-config.spec.js +14 -0
  56. package/dist/__tests__/validate-config.spec.js.map +1 -0
  57. package/dist/api/init-workspace.d.ts +10 -0
  58. package/dist/api/init-workspace.d.ts.map +1 -0
  59. package/dist/api/init-workspace.js +186 -0
  60. package/dist/api/init-workspace.js.map +1 -0
  61. package/dist/api/product-config.d.ts +20 -0
  62. package/dist/api/product-config.d.ts.map +1 -0
  63. package/dist/api/product-config.js +236 -0
  64. package/dist/api/product-config.js.map +1 -0
  65. package/dist/api/read-config.d.ts +22 -0
  66. package/dist/api/read-config.d.ts.map +1 -0
  67. package/dist/api/read-config.js +112 -0
  68. package/dist/api/read-config.js.map +1 -0
  69. package/dist/api/read-kb-config.d.ts +12 -0
  70. package/dist/api/read-kb-config.d.ts.map +1 -0
  71. package/dist/api/read-kb-config.js +47 -0
  72. package/dist/api/read-kb-config.js.map +1 -0
  73. package/dist/api/upsert-lockfile.d.ts +10 -0
  74. package/dist/api/upsert-lockfile.d.ts.map +1 -0
  75. package/dist/api/upsert-lockfile.js +63 -0
  76. package/dist/api/upsert-lockfile.js.map +1 -0
  77. package/dist/cache/fs-cache.d.ts +38 -0
  78. package/dist/cache/fs-cache.d.ts.map +1 -0
  79. package/dist/cache/fs-cache.js +142 -0
  80. package/dist/cache/fs-cache.js.map +1 -0
  81. package/dist/errors/kb-error.d.ts +35 -0
  82. package/dist/errors/kb-error.d.ts.map +1 -0
  83. package/dist/errors/kb-error.js +57 -0
  84. package/dist/errors/kb-error.js.map +1 -0
  85. package/dist/hash/config-hash.d.ts +17 -0
  86. package/dist/hash/config-hash.d.ts.map +1 -0
  87. package/dist/hash/config-hash.js +55 -0
  88. package/dist/hash/config-hash.js.map +1 -0
  89. package/dist/index.d.ts +25 -1016
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +29 -1533
  92. package/dist/index.js.map +1 -1
  93. package/dist/lockfile/lockfile.d.ts +53 -0
  94. package/dist/lockfile/lockfile.d.ts.map +1 -0
  95. package/dist/lockfile/lockfile.js +142 -0
  96. package/dist/lockfile/lockfile.js.map +1 -0
  97. package/dist/merge/layered-merge.d.ts +16 -0
  98. package/dist/merge/layered-merge.d.ts.map +1 -0
  99. package/dist/merge/layered-merge.js +87 -0
  100. package/dist/merge/layered-merge.js.map +1 -0
  101. package/dist/preset/resolve-preset.d.ts +28 -0
  102. package/dist/preset/resolve-preset.d.ts.map +1 -0
  103. package/dist/preset/resolve-preset.js +104 -0
  104. package/dist/preset/resolve-preset.js.map +1 -0
  105. package/dist/profiles/loader.d.ts +12 -0
  106. package/dist/profiles/loader.d.ts.map +1 -0
  107. package/dist/profiles/loader.js +34 -0
  108. package/dist/profiles/loader.js.map +1 -0
  109. package/dist/profiles/resolver.d.ts +11 -0
  110. package/dist/profiles/resolver.d.ts.map +1 -0
  111. package/dist/profiles/resolver.js +252 -0
  112. package/dist/profiles/resolver.js.map +1 -0
  113. package/dist/profiles/scope-selector.d.ts +19 -0
  114. package/dist/profiles/scope-selector.d.ts.map +1 -0
  115. package/dist/profiles/scope-selector.js +64 -0
  116. package/dist/profiles/scope-selector.js.map +1 -0
  117. package/dist/profiles/types.d.ts +462 -0
  118. package/dist/profiles/types.d.ts.map +1 -0
  119. package/dist/profiles/types.js +68 -0
  120. package/dist/profiles/types.js.map +1 -0
  121. package/dist/runtime/index.d.ts +2 -0
  122. package/dist/runtime/index.d.ts.map +1 -0
  123. package/dist/runtime/index.js +2 -0
  124. package/dist/runtime/index.js.map +1 -0
  125. package/dist/runtime/runtime.d.ts +46 -0
  126. package/dist/runtime/runtime.d.ts.map +1 -0
  127. package/dist/runtime/runtime.js +126 -0
  128. package/dist/runtime/runtime.js.map +1 -0
  129. package/dist/types/index.d.ts +2 -0
  130. package/dist/types/index.d.ts.map +1 -0
  131. package/dist/types/index.js +2 -0
  132. package/dist/types/index.js.map +1 -0
  133. package/dist/types/init.d.ts +33 -0
  134. package/dist/types/init.d.ts.map +1 -0
  135. package/dist/types/init.js +6 -0
  136. package/dist/types/init.js.map +1 -0
  137. package/dist/types/preset.d.ts +27 -0
  138. package/dist/types/preset.d.ts.map +1 -0
  139. package/dist/types/preset.js +6 -0
  140. package/dist/types/preset.js.map +1 -0
  141. package/dist/types/types.d.ts +70 -0
  142. package/dist/types/types.d.ts.map +1 -0
  143. package/dist/types/types.js +2 -0
  144. package/dist/types/types.js.map +1 -0
  145. package/dist/utils/__tests__/env.spec.d.ts +2 -0
  146. package/dist/utils/__tests__/env.spec.d.ts.map +1 -0
  147. package/dist/utils/__tests__/env.spec.js +33 -0
  148. package/dist/utils/__tests__/env.spec.js.map +1 -0
  149. package/dist/utils/env.d.ts +7 -0
  150. package/dist/utils/env.d.ts.map +1 -0
  151. package/dist/utils/env.js +25 -0
  152. package/dist/utils/env.js.map +1 -0
  153. package/dist/utils/fs-atomic.d.ts +15 -0
  154. package/dist/utils/fs-atomic.d.ts.map +1 -0
  155. package/dist/utils/fs-atomic.js +46 -0
  156. package/dist/utils/fs-atomic.js.map +1 -0
  157. package/dist/utils/index.d.ts +3 -0
  158. package/dist/utils/index.d.ts.map +1 -0
  159. package/dist/utils/index.js +3 -0
  160. package/dist/utils/index.js.map +1 -0
  161. package/dist/utils/paths.d.ts +21 -0
  162. package/dist/utils/paths.d.ts.map +1 -0
  163. package/dist/utils/paths.js +32 -0
  164. package/dist/utils/paths.js.map +1 -0
  165. package/dist/utils/product-normalize.d.ts +25 -0
  166. package/dist/utils/product-normalize.d.ts.map +1 -0
  167. package/dist/utils/product-normalize.js +48 -0
  168. package/dist/utils/product-normalize.js.map +1 -0
  169. package/dist/validation/validate-config.d.ts +10 -0
  170. package/dist/validation/validate-config.d.ts.map +1 -0
  171. package/dist/validation/validate-config.js +21 -0
  172. package/dist/validation/validate-config.js.map +1 -0
  173. package/package.json +13 -13
@@ -0,0 +1,462 @@
1
+ /**
2
+ * @module @kb-labs/core-config/profiles/types
3
+ * Shared ProfileV2 + BundleProfile types and Zod schemas.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const ScopeV2Schema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ label: z.ZodOptional<z.ZodString>;
9
+ description: z.ZodOptional<z.ZodString>;
10
+ include: z.ZodArray<z.ZodString, "many">;
11
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
13
+ default: z.ZodOptional<z.ZodBoolean>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ id: string;
16
+ include: string[];
17
+ default?: boolean | undefined;
18
+ products?: Record<string, Record<string, unknown>> | undefined;
19
+ label?: string | undefined;
20
+ description?: string | undefined;
21
+ exclude?: string[] | undefined;
22
+ }, {
23
+ id: string;
24
+ include: string[];
25
+ default?: boolean | undefined;
26
+ products?: Record<string, Record<string, unknown>> | undefined;
27
+ label?: string | undefined;
28
+ description?: string | undefined;
29
+ exclude?: string[] | undefined;
30
+ }>;
31
+ export type ScopeV2 = z.infer<typeof ScopeV2Schema>;
32
+ export declare const ProfileMetaSchema: z.ZodObject<{
33
+ version: z.ZodOptional<z.ZodString>;
34
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
35
+ deprecated: z.ZodOptional<z.ZodBoolean>;
36
+ owner: z.ZodOptional<z.ZodString>;
37
+ }, "strict", z.ZodTypeAny, {
38
+ version?: string | undefined;
39
+ tags?: string[] | undefined;
40
+ deprecated?: boolean | undefined;
41
+ owner?: string | undefined;
42
+ }, {
43
+ version?: string | undefined;
44
+ tags?: string[] | undefined;
45
+ deprecated?: boolean | undefined;
46
+ owner?: string | undefined;
47
+ }>;
48
+ export type ProfileMeta = z.infer<typeof ProfileMetaSchema>;
49
+ export declare const ProfileV2Schema: z.ZodObject<{
50
+ id: z.ZodString;
51
+ label: z.ZodOptional<z.ZodString>;
52
+ description: z.ZodOptional<z.ZodString>;
53
+ extends: z.ZodOptional<z.ZodString>;
54
+ scopes: z.ZodOptional<z.ZodArray<z.ZodObject<{
55
+ id: z.ZodString;
56
+ label: z.ZodOptional<z.ZodString>;
57
+ description: z.ZodOptional<z.ZodString>;
58
+ include: z.ZodArray<z.ZodString, "many">;
59
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
60
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
61
+ default: z.ZodOptional<z.ZodBoolean>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ id: string;
64
+ include: string[];
65
+ default?: boolean | undefined;
66
+ products?: Record<string, Record<string, unknown>> | undefined;
67
+ label?: string | undefined;
68
+ description?: string | undefined;
69
+ exclude?: string[] | undefined;
70
+ }, {
71
+ id: string;
72
+ include: string[];
73
+ default?: boolean | undefined;
74
+ products?: Record<string, Record<string, unknown>> | undefined;
75
+ label?: string | undefined;
76
+ description?: string | undefined;
77
+ exclude?: string[] | undefined;
78
+ }>, "many">>;
79
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
80
+ meta: z.ZodOptional<z.ZodObject<{
81
+ version: z.ZodOptional<z.ZodString>;
82
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
83
+ deprecated: z.ZodOptional<z.ZodBoolean>;
84
+ owner: z.ZodOptional<z.ZodString>;
85
+ }, "strict", z.ZodTypeAny, {
86
+ version?: string | undefined;
87
+ tags?: string[] | undefined;
88
+ deprecated?: boolean | undefined;
89
+ owner?: string | undefined;
90
+ }, {
91
+ version?: string | undefined;
92
+ tags?: string[] | undefined;
93
+ deprecated?: boolean | undefined;
94
+ owner?: string | undefined;
95
+ }>>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ id: string;
98
+ products?: Record<string, Record<string, unknown>> | undefined;
99
+ label?: string | undefined;
100
+ description?: string | undefined;
101
+ extends?: string | undefined;
102
+ scopes?: {
103
+ id: string;
104
+ include: string[];
105
+ default?: boolean | undefined;
106
+ products?: Record<string, Record<string, unknown>> | undefined;
107
+ label?: string | undefined;
108
+ description?: string | undefined;
109
+ exclude?: string[] | undefined;
110
+ }[] | undefined;
111
+ meta?: {
112
+ version?: string | undefined;
113
+ tags?: string[] | undefined;
114
+ deprecated?: boolean | undefined;
115
+ owner?: string | undefined;
116
+ } | undefined;
117
+ }, {
118
+ id: string;
119
+ products?: Record<string, Record<string, unknown>> | undefined;
120
+ label?: string | undefined;
121
+ description?: string | undefined;
122
+ extends?: string | undefined;
123
+ scopes?: {
124
+ id: string;
125
+ include: string[];
126
+ default?: boolean | undefined;
127
+ products?: Record<string, Record<string, unknown>> | undefined;
128
+ label?: string | undefined;
129
+ description?: string | undefined;
130
+ exclude?: string[] | undefined;
131
+ }[] | undefined;
132
+ meta?: {
133
+ version?: string | undefined;
134
+ tags?: string[] | undefined;
135
+ deprecated?: boolean | undefined;
136
+ owner?: string | undefined;
137
+ } | undefined;
138
+ }>;
139
+ export type ProfileV2 = z.infer<typeof ProfileV2Schema>;
140
+ export declare const ProfilesV2Schema: z.ZodArray<z.ZodObject<{
141
+ id: z.ZodString;
142
+ label: z.ZodOptional<z.ZodString>;
143
+ description: z.ZodOptional<z.ZodString>;
144
+ extends: z.ZodOptional<z.ZodString>;
145
+ scopes: z.ZodOptional<z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ label: z.ZodOptional<z.ZodString>;
148
+ description: z.ZodOptional<z.ZodString>;
149
+ include: z.ZodArray<z.ZodString, "many">;
150
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
151
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
152
+ default: z.ZodOptional<z.ZodBoolean>;
153
+ }, "strip", z.ZodTypeAny, {
154
+ id: string;
155
+ include: string[];
156
+ default?: boolean | undefined;
157
+ products?: Record<string, Record<string, unknown>> | undefined;
158
+ label?: string | undefined;
159
+ description?: string | undefined;
160
+ exclude?: string[] | undefined;
161
+ }, {
162
+ id: string;
163
+ include: string[];
164
+ default?: boolean | undefined;
165
+ products?: Record<string, Record<string, unknown>> | undefined;
166
+ label?: string | undefined;
167
+ description?: string | undefined;
168
+ exclude?: string[] | undefined;
169
+ }>, "many">>;
170
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
171
+ meta: z.ZodOptional<z.ZodObject<{
172
+ version: z.ZodOptional<z.ZodString>;
173
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
174
+ deprecated: z.ZodOptional<z.ZodBoolean>;
175
+ owner: z.ZodOptional<z.ZodString>;
176
+ }, "strict", z.ZodTypeAny, {
177
+ version?: string | undefined;
178
+ tags?: string[] | undefined;
179
+ deprecated?: boolean | undefined;
180
+ owner?: string | undefined;
181
+ }, {
182
+ version?: string | undefined;
183
+ tags?: string[] | undefined;
184
+ deprecated?: boolean | undefined;
185
+ owner?: string | undefined;
186
+ }>>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ id: string;
189
+ products?: Record<string, Record<string, unknown>> | undefined;
190
+ label?: string | undefined;
191
+ description?: string | undefined;
192
+ extends?: string | undefined;
193
+ scopes?: {
194
+ id: string;
195
+ include: string[];
196
+ default?: boolean | undefined;
197
+ products?: Record<string, Record<string, unknown>> | undefined;
198
+ label?: string | undefined;
199
+ description?: string | undefined;
200
+ exclude?: string[] | undefined;
201
+ }[] | undefined;
202
+ meta?: {
203
+ version?: string | undefined;
204
+ tags?: string[] | undefined;
205
+ deprecated?: boolean | undefined;
206
+ owner?: string | undefined;
207
+ } | undefined;
208
+ }, {
209
+ id: string;
210
+ products?: Record<string, Record<string, unknown>> | undefined;
211
+ label?: string | undefined;
212
+ description?: string | undefined;
213
+ extends?: string | undefined;
214
+ scopes?: {
215
+ id: string;
216
+ include: string[];
217
+ default?: boolean | undefined;
218
+ products?: Record<string, Record<string, unknown>> | undefined;
219
+ label?: string | undefined;
220
+ description?: string | undefined;
221
+ exclude?: string[] | undefined;
222
+ }[] | undefined;
223
+ meta?: {
224
+ version?: string | undefined;
225
+ tags?: string[] | undefined;
226
+ deprecated?: boolean | undefined;
227
+ owner?: string | undefined;
228
+ } | undefined;
229
+ }>, "many">;
230
+ export declare const ResolvedScopeSchema: z.ZodObject<{
231
+ id: z.ZodString;
232
+ label: z.ZodOptional<z.ZodString>;
233
+ description: z.ZodOptional<z.ZodString>;
234
+ include: z.ZodArray<z.ZodString, "many">;
235
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
236
+ isDefault: z.ZodBoolean;
237
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ id: string;
240
+ include: string[];
241
+ isDefault: boolean;
242
+ products?: Record<string, Record<string, unknown>> | undefined;
243
+ label?: string | undefined;
244
+ description?: string | undefined;
245
+ exclude?: string[] | undefined;
246
+ }, {
247
+ id: string;
248
+ include: string[];
249
+ isDefault: boolean;
250
+ products?: Record<string, Record<string, unknown>> | undefined;
251
+ label?: string | undefined;
252
+ description?: string | undefined;
253
+ exclude?: string[] | undefined;
254
+ }>;
255
+ export type ResolvedScope = z.infer<typeof ResolvedScopeSchema>;
256
+ export declare const BundleProfileSourceSchema: z.ZodEnum<["workspace", "preset", "npm", "implicit"]>;
257
+ export type BundleProfileSource = z.infer<typeof BundleProfileSourceSchema>;
258
+ export declare const ProfileTraceSchema: z.ZodObject<{
259
+ extends: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
260
+ overrides: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
261
+ }, "strip", z.ZodTypeAny, {
262
+ extends?: string[] | undefined;
263
+ overrides?: string[] | undefined;
264
+ }, {
265
+ extends?: string[] | undefined;
266
+ overrides?: string[] | undefined;
267
+ }>;
268
+ export type ProfileTrace = z.infer<typeof ProfileTraceSchema>;
269
+ export declare const ScopeSelectionSchema: z.ZodObject<{
270
+ strategy: z.ZodEnum<["explicit", "default", "auto", "none"]>;
271
+ path: z.ZodOptional<z.ZodString>;
272
+ }, "strip", z.ZodTypeAny, {
273
+ strategy: "default" | "auto" | "explicit" | "none";
274
+ path?: string | undefined;
275
+ }, {
276
+ strategy: "default" | "auto" | "explicit" | "none";
277
+ path?: string | undefined;
278
+ }>;
279
+ export type ScopeSelection = z.infer<typeof ScopeSelectionSchema>;
280
+ export declare const BundleProfileSchema: z.ZodObject<{
281
+ id: z.ZodString;
282
+ key: z.ZodOptional<z.ZodString>;
283
+ label: z.ZodOptional<z.ZodString>;
284
+ name: z.ZodOptional<z.ZodString>;
285
+ version: z.ZodOptional<z.ZodString>;
286
+ source: z.ZodEnum<["workspace", "preset", "npm", "implicit"]>;
287
+ scopes: z.ZodArray<z.ZodObject<{
288
+ id: z.ZodString;
289
+ label: z.ZodOptional<z.ZodString>;
290
+ description: z.ZodOptional<z.ZodString>;
291
+ include: z.ZodArray<z.ZodString, "many">;
292
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
293
+ isDefault: z.ZodBoolean;
294
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ id: string;
297
+ include: string[];
298
+ isDefault: boolean;
299
+ products?: Record<string, Record<string, unknown>> | undefined;
300
+ label?: string | undefined;
301
+ description?: string | undefined;
302
+ exclude?: string[] | undefined;
303
+ }, {
304
+ id: string;
305
+ include: string[];
306
+ isDefault: boolean;
307
+ products?: Record<string, Record<string, unknown>> | undefined;
308
+ label?: string | undefined;
309
+ description?: string | undefined;
310
+ exclude?: string[] | undefined;
311
+ }>, "many">;
312
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
313
+ trace: z.ZodOptional<z.ZodObject<{
314
+ extends: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
315
+ overrides: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
316
+ }, "strip", z.ZodTypeAny, {
317
+ extends?: string[] | undefined;
318
+ overrides?: string[] | undefined;
319
+ }, {
320
+ extends?: string[] | undefined;
321
+ overrides?: string[] | undefined;
322
+ }>>;
323
+ meta: z.ZodOptional<z.ZodObject<{
324
+ version: z.ZodOptional<z.ZodString>;
325
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
326
+ deprecated: z.ZodOptional<z.ZodBoolean>;
327
+ owner: z.ZodOptional<z.ZodString>;
328
+ }, "strict", z.ZodTypeAny, {
329
+ version?: string | undefined;
330
+ tags?: string[] | undefined;
331
+ deprecated?: boolean | undefined;
332
+ owner?: string | undefined;
333
+ }, {
334
+ version?: string | undefined;
335
+ tags?: string[] | undefined;
336
+ deprecated?: boolean | undefined;
337
+ owner?: string | undefined;
338
+ }>>;
339
+ productsByScope: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
340
+ activeScopeId: z.ZodOptional<z.ZodString>;
341
+ activeScope: z.ZodOptional<z.ZodObject<{
342
+ id: z.ZodString;
343
+ label: z.ZodOptional<z.ZodString>;
344
+ description: z.ZodOptional<z.ZodString>;
345
+ include: z.ZodArray<z.ZodString, "many">;
346
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
347
+ isDefault: z.ZodBoolean;
348
+ products: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ id: string;
351
+ include: string[];
352
+ isDefault: boolean;
353
+ products?: Record<string, Record<string, unknown>> | undefined;
354
+ label?: string | undefined;
355
+ description?: string | undefined;
356
+ exclude?: string[] | undefined;
357
+ }, {
358
+ id: string;
359
+ include: string[];
360
+ isDefault: boolean;
361
+ products?: Record<string, Record<string, unknown>> | undefined;
362
+ label?: string | undefined;
363
+ description?: string | undefined;
364
+ exclude?: string[] | undefined;
365
+ }>>;
366
+ scopeSelection: z.ZodOptional<z.ZodObject<{
367
+ strategy: z.ZodEnum<["explicit", "default", "auto", "none"]>;
368
+ path: z.ZodOptional<z.ZodString>;
369
+ }, "strip", z.ZodTypeAny, {
370
+ strategy: "default" | "auto" | "explicit" | "none";
371
+ path?: string | undefined;
372
+ }, {
373
+ strategy: "default" | "auto" | "explicit" | "none";
374
+ path?: string | undefined;
375
+ }>>;
376
+ }, "strip", z.ZodTypeAny, {
377
+ id: string;
378
+ scopes: {
379
+ id: string;
380
+ include: string[];
381
+ isDefault: boolean;
382
+ products?: Record<string, Record<string, unknown>> | undefined;
383
+ label?: string | undefined;
384
+ description?: string | undefined;
385
+ exclude?: string[] | undefined;
386
+ }[];
387
+ source: "preset" | "workspace" | "npm" | "implicit";
388
+ key?: string | undefined;
389
+ name?: string | undefined;
390
+ version?: string | undefined;
391
+ products?: Record<string, Record<string, unknown>> | undefined;
392
+ trace?: {
393
+ extends?: string[] | undefined;
394
+ overrides?: string[] | undefined;
395
+ } | undefined;
396
+ label?: string | undefined;
397
+ meta?: {
398
+ version?: string | undefined;
399
+ tags?: string[] | undefined;
400
+ deprecated?: boolean | undefined;
401
+ owner?: string | undefined;
402
+ } | undefined;
403
+ productsByScope?: Record<string, Record<string, Record<string, unknown>>> | undefined;
404
+ activeScopeId?: string | undefined;
405
+ activeScope?: {
406
+ id: string;
407
+ include: string[];
408
+ isDefault: boolean;
409
+ products?: Record<string, Record<string, unknown>> | undefined;
410
+ label?: string | undefined;
411
+ description?: string | undefined;
412
+ exclude?: string[] | undefined;
413
+ } | undefined;
414
+ scopeSelection?: {
415
+ strategy: "default" | "auto" | "explicit" | "none";
416
+ path?: string | undefined;
417
+ } | undefined;
418
+ }, {
419
+ id: string;
420
+ scopes: {
421
+ id: string;
422
+ include: string[];
423
+ isDefault: boolean;
424
+ products?: Record<string, Record<string, unknown>> | undefined;
425
+ label?: string | undefined;
426
+ description?: string | undefined;
427
+ exclude?: string[] | undefined;
428
+ }[];
429
+ source: "preset" | "workspace" | "npm" | "implicit";
430
+ key?: string | undefined;
431
+ name?: string | undefined;
432
+ version?: string | undefined;
433
+ products?: Record<string, Record<string, unknown>> | undefined;
434
+ trace?: {
435
+ extends?: string[] | undefined;
436
+ overrides?: string[] | undefined;
437
+ } | undefined;
438
+ label?: string | undefined;
439
+ meta?: {
440
+ version?: string | undefined;
441
+ tags?: string[] | undefined;
442
+ deprecated?: boolean | undefined;
443
+ owner?: string | undefined;
444
+ } | undefined;
445
+ productsByScope?: Record<string, Record<string, Record<string, unknown>>> | undefined;
446
+ activeScopeId?: string | undefined;
447
+ activeScope?: {
448
+ id: string;
449
+ include: string[];
450
+ isDefault: boolean;
451
+ products?: Record<string, Record<string, unknown>> | undefined;
452
+ label?: string | undefined;
453
+ description?: string | undefined;
454
+ exclude?: string[] | undefined;
455
+ } | undefined;
456
+ scopeSelection?: {
457
+ strategy: "default" | "auto" | "explicit" | "none";
458
+ path?: string | undefined;
459
+ } | undefined;
460
+ }>;
461
+ export type BundleProfile = z.infer<typeof BundleProfileSchema>;
462
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profiles/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAKnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAA2B,CAAC;AAEzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,yBAAyB,uDAAqD,CAAC;AAC5F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @module @kb-labs/core-config/profiles/types
3
+ * Shared ProfileV2 + BundleProfile types and Zod schemas.
4
+ */
5
+ import { z } from 'zod';
6
+ const GlobSchema = z.string().min(1, 'Glob pattern must be a non-empty string');
7
+ const ProductOverridesSchema = z.record(z.string(), z.unknown());
8
+ const ProductsMapSchema = z.record(z.string(), ProductOverridesSchema);
9
+ export const ScopeV2Schema = z.object({
10
+ id: z.string().min(1, 'Scope id is required'),
11
+ label: z.string().optional(),
12
+ description: z.string().optional(),
13
+ include: z.array(GlobSchema).min(1, 'include requires at least one glob'),
14
+ exclude: z.array(GlobSchema).optional(),
15
+ products: ProductsMapSchema.optional(),
16
+ default: z.boolean().optional(),
17
+ });
18
+ export const ProfileMetaSchema = z.object({
19
+ version: z.string().optional(),
20
+ tags: z.array(z.string()).optional(),
21
+ deprecated: z.boolean().optional(),
22
+ owner: z.string().optional(),
23
+ }).strict();
24
+ export const ProfileV2Schema = z.object({
25
+ id: z.string().min(1, 'Profile id is required'),
26
+ label: z.string().optional(),
27
+ description: z.string().optional(),
28
+ extends: z.string().min(1, 'extends must reference another profile id or preset').optional(),
29
+ scopes: z.array(ScopeV2Schema).optional(),
30
+ products: ProductsMapSchema.optional(),
31
+ meta: ProfileMetaSchema.optional(),
32
+ });
33
+ export const ProfilesV2Schema = z.array(ProfileV2Schema);
34
+ export const ResolvedScopeSchema = z.object({
35
+ id: z.string(),
36
+ label: z.string().optional(),
37
+ description: z.string().optional(),
38
+ include: z.array(z.string()),
39
+ exclude: z.array(z.string()).optional(),
40
+ isDefault: z.boolean(),
41
+ products: ProductsMapSchema.optional(),
42
+ });
43
+ export const BundleProfileSourceSchema = z.enum(['workspace', 'preset', 'npm', 'implicit']);
44
+ export const ProfileTraceSchema = z.object({
45
+ extends: z.array(z.string()).optional(),
46
+ overrides: z.array(z.string()).optional(),
47
+ });
48
+ export const ScopeSelectionSchema = z.object({
49
+ strategy: z.enum(['explicit', 'default', 'auto', 'none']),
50
+ path: z.string().optional(),
51
+ });
52
+ export const BundleProfileSchema = z.object({
53
+ id: z.string(),
54
+ key: z.string().optional(),
55
+ label: z.string().optional(),
56
+ name: z.string().optional(),
57
+ version: z.string().optional(),
58
+ source: BundleProfileSourceSchema,
59
+ scopes: z.array(ResolvedScopeSchema),
60
+ products: ProductsMapSchema.optional(),
61
+ trace: ProfileTraceSchema.optional(),
62
+ meta: ProfileMetaSchema.optional(),
63
+ productsByScope: z.record(z.string(), ProductsMapSchema).optional(),
64
+ activeScopeId: z.string().optional(),
65
+ activeScope: ResolvedScopeSchema.optional(),
66
+ scopeSelection: ScopeSelectionSchema.optional(),
67
+ });
68
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profiles/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yCAAyC,CAAC,CAAC;AAChF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;IACzE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qDAAqD,CAAC,CAAC,QAAQ,EAAE;IAC5F,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAG5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACpC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IACnE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC3C,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './runtime';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './runtime';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @module @kb-labs/core/config/runtime
3
+ * Infrastructure-only config pipeline (no domain keys).
4
+ * Provides: nearest config discovery, safe JSON read with diagnostics,
5
+ * deep merge that ignores `undefined`, and a generic resolver (defaults→file→env→cli).
6
+ */
7
+ import type { Diagnostic, FindNearestConfigOpts, JsonReadResult, ProfilesConfig, KBConfig } from "../types";
8
+ /** Find nearest config file walking up from startDir until stopDir or FS root. */
9
+ export declare function findNearestConfig(opts: FindNearestConfigOpts): Promise<{
10
+ path: string | null;
11
+ tried: string[];
12
+ }>;
13
+ /** Read JSON with explicit diagnostics (no silent nulls). */
14
+ export declare function readJsonWithDiagnostics<T = unknown>(p: string): Promise<JsonReadResult<T>>;
15
+ /** Shallow pick of defined fields only. */
16
+ export declare function pickDefined<T extends Record<string, any>>(obj: T | undefined): Partial<T>;
17
+ /** Deep merge (objects/arrays), ignoring `undefined` on the overlay. */
18
+ export declare function mergeDefined<T>(base: T, over?: Partial<T>): T;
19
+ declare const SYSTEM_DEFAULTS: {
20
+ readonly profiles: {
21
+ readonly rootDir: ".kb/profiles";
22
+ readonly defaultName: "default";
23
+ readonly strict: true;
24
+ };
25
+ };
26
+ export interface ResolveConfigArgs<TConfig, _TEnvMap = unknown> {
27
+ defaults: TConfig;
28
+ fileConfig?: Partial<TConfig>;
29
+ envMapper?: (env: NodeJS.ProcessEnv) => Partial<TConfig> | undefined;
30
+ cliOverrides?: Partial<TConfig>;
31
+ validate?: (cfg: TConfig) => {
32
+ ok: boolean;
33
+ diagnostics?: Diagnostic[];
34
+ };
35
+ }
36
+ /**
37
+ * Generic resolver: defaults → fileConfig → envMapper(process.env) → cliOverrides.
38
+ * No domain keys inside; mapping/validation provided by the product/shared layer.
39
+ */
40
+ export declare function resolveConfig<TConfig>(args: ResolveConfigArgs<TConfig>): {
41
+ value: TConfig;
42
+ diagnostics: Diagnostic[];
43
+ };
44
+ export { SYSTEM_DEFAULTS };
45
+ export type { ProfilesConfig, KBConfig };
46
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5G,kFAAkF;AAClF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsBtH;AAED,6DAA6D;AAC7D,wBAAsB,uBAAuB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAehG;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAOzF;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAqB7D;AAMD,QAAA,MAAM,eAAe;;;;;;CAEX,CAAC;AAEX,MAAM,WAAW,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAC1D,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;CAC5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAuBtH;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC"}