@kb-labs/core-config 1.2.0 → 1.4.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.
- package/dist/index.d.ts +1016 -25
- package/dist/index.js +1533 -29
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/__tests__/cache.spec.d.ts +0 -6
- package/dist/__tests__/cache.spec.d.ts.map +0 -1
- package/dist/__tests__/cache.spec.js +0 -87
- package/dist/__tests__/cache.spec.js.map +0 -1
- package/dist/__tests__/fs-atomic.spec.d.ts +0 -6
- package/dist/__tests__/fs-atomic.spec.d.ts.map +0 -1
- package/dist/__tests__/fs-atomic.spec.js +0 -153
- package/dist/__tests__/fs-atomic.spec.js.map +0 -1
- package/dist/__tests__/get-product-config-edge-cases.spec.d.ts +0 -6
- package/dist/__tests__/get-product-config-edge-cases.spec.d.ts.map +0 -1
- package/dist/__tests__/get-product-config-edge-cases.spec.js +0 -334
- package/dist/__tests__/get-product-config-edge-cases.spec.js.map +0 -1
- package/dist/__tests__/init-workspace.spec.d.ts +0 -6
- package/dist/__tests__/init-workspace.spec.d.ts.map +0 -1
- package/dist/__tests__/init-workspace.spec.js +0 -101
- package/dist/__tests__/init-workspace.spec.js.map +0 -1
- package/dist/__tests__/kb-error.spec.d.ts +0 -6
- package/dist/__tests__/kb-error.spec.d.ts.map +0 -1
- package/dist/__tests__/kb-error.spec.js +0 -193
- package/dist/__tests__/kb-error.spec.js.map +0 -1
- package/dist/__tests__/preset-lockfile.spec.d.ts +0 -6
- package/dist/__tests__/preset-lockfile.spec.d.ts.map +0 -1
- package/dist/__tests__/preset-lockfile.spec.js +0 -142
- package/dist/__tests__/preset-lockfile.spec.js.map +0 -1
- package/dist/__tests__/product-config-profiles.spec.d.ts +0 -6
- package/dist/__tests__/product-config-profiles.spec.d.ts.map +0 -1
- package/dist/__tests__/product-config-profiles.spec.js +0 -82
- package/dist/__tests__/product-config-profiles.spec.js.map +0 -1
- package/dist/__tests__/product-config.spec.d.ts +0 -6
- package/dist/__tests__/product-config.spec.d.ts.map +0 -1
- package/dist/__tests__/product-config.spec.js +0 -304
- package/dist/__tests__/product-config.spec.js.map +0 -1
- package/dist/__tests__/profiles-demo.d.ts +0 -11
- package/dist/__tests__/profiles-demo.d.ts.map +0 -1
- package/dist/__tests__/profiles-demo.js +0 -173
- package/dist/__tests__/profiles-demo.js.map +0 -1
- package/dist/__tests__/profiles-resolver.spec.d.ts +0 -2
- package/dist/__tests__/profiles-resolver.spec.d.ts.map +0 -1
- package/dist/__tests__/profiles-resolver.spec.js +0 -114
- package/dist/__tests__/profiles-resolver.spec.js.map +0 -1
- package/dist/__tests__/profiles-section.spec.d.ts +0 -2
- package/dist/__tests__/profiles-section.spec.d.ts.map +0 -1
- package/dist/__tests__/profiles-section.spec.js +0 -50
- package/dist/__tests__/profiles-section.spec.js.map +0 -1
- package/dist/__tests__/runtime.spec.d.ts +0 -2
- package/dist/__tests__/runtime.spec.d.ts.map +0 -1
- package/dist/__tests__/runtime.spec.js +0 -170
- package/dist/__tests__/runtime.spec.js.map +0 -1
- package/dist/__tests__/upsert-lockfile.spec.d.ts +0 -1
- package/dist/__tests__/upsert-lockfile.spec.d.ts.map +0 -1
- package/dist/__tests__/upsert-lockfile.spec.js +0 -2
- package/dist/__tests__/upsert-lockfile.spec.js.map +0 -1
- package/dist/__tests__/validate-config.spec.d.ts +0 -2
- package/dist/__tests__/validate-config.spec.d.ts.map +0 -1
- package/dist/__tests__/validate-config.spec.js +0 -14
- package/dist/__tests__/validate-config.spec.js.map +0 -1
- package/dist/api/init-workspace.d.ts +0 -10
- package/dist/api/init-workspace.d.ts.map +0 -1
- package/dist/api/init-workspace.js +0 -186
- package/dist/api/init-workspace.js.map +0 -1
- package/dist/api/product-config.d.ts +0 -20
- package/dist/api/product-config.d.ts.map +0 -1
- package/dist/api/product-config.js +0 -236
- package/dist/api/product-config.js.map +0 -1
- package/dist/api/read-config.d.ts +0 -22
- package/dist/api/read-config.d.ts.map +0 -1
- package/dist/api/read-config.js +0 -112
- package/dist/api/read-config.js.map +0 -1
- package/dist/api/read-kb-config.d.ts +0 -12
- package/dist/api/read-kb-config.d.ts.map +0 -1
- package/dist/api/read-kb-config.js +0 -47
- package/dist/api/read-kb-config.js.map +0 -1
- package/dist/api/upsert-lockfile.d.ts +0 -10
- package/dist/api/upsert-lockfile.d.ts.map +0 -1
- package/dist/api/upsert-lockfile.js +0 -63
- package/dist/api/upsert-lockfile.js.map +0 -1
- package/dist/cache/fs-cache.d.ts +0 -38
- package/dist/cache/fs-cache.d.ts.map +0 -1
- package/dist/cache/fs-cache.js +0 -142
- package/dist/cache/fs-cache.js.map +0 -1
- package/dist/errors/kb-error.d.ts +0 -35
- package/dist/errors/kb-error.d.ts.map +0 -1
- package/dist/errors/kb-error.js +0 -57
- package/dist/errors/kb-error.js.map +0 -1
- package/dist/hash/config-hash.d.ts +0 -17
- package/dist/hash/config-hash.d.ts.map +0 -1
- package/dist/hash/config-hash.js +0 -55
- package/dist/hash/config-hash.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lockfile/lockfile.d.ts +0 -53
- package/dist/lockfile/lockfile.d.ts.map +0 -1
- package/dist/lockfile/lockfile.js +0 -142
- package/dist/lockfile/lockfile.js.map +0 -1
- package/dist/merge/layered-merge.d.ts +0 -16
- package/dist/merge/layered-merge.d.ts.map +0 -1
- package/dist/merge/layered-merge.js +0 -87
- package/dist/merge/layered-merge.js.map +0 -1
- package/dist/preset/resolve-preset.d.ts +0 -28
- package/dist/preset/resolve-preset.d.ts.map +0 -1
- package/dist/preset/resolve-preset.js +0 -104
- package/dist/preset/resolve-preset.js.map +0 -1
- package/dist/profiles/loader.d.ts +0 -12
- package/dist/profiles/loader.d.ts.map +0 -1
- package/dist/profiles/loader.js +0 -34
- package/dist/profiles/loader.js.map +0 -1
- package/dist/profiles/resolver.d.ts +0 -11
- package/dist/profiles/resolver.d.ts.map +0 -1
- package/dist/profiles/resolver.js +0 -252
- package/dist/profiles/resolver.js.map +0 -1
- package/dist/profiles/scope-selector.d.ts +0 -19
- package/dist/profiles/scope-selector.d.ts.map +0 -1
- package/dist/profiles/scope-selector.js +0 -64
- package/dist/profiles/scope-selector.js.map +0 -1
- package/dist/profiles/types.d.ts +0 -462
- package/dist/profiles/types.d.ts.map +0 -1
- package/dist/profiles/types.js +0 -68
- package/dist/profiles/types.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -2
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -2
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/runtime.d.ts +0 -46
- package/dist/runtime/runtime.d.ts.map +0 -1
- package/dist/runtime/runtime.js +0 -126
- package/dist/runtime/runtime.js.map +0 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/init.d.ts +0 -33
- package/dist/types/init.d.ts.map +0 -1
- package/dist/types/init.js +0 -6
- package/dist/types/init.js.map +0 -1
- package/dist/types/preset.d.ts +0 -27
- package/dist/types/preset.d.ts.map +0 -1
- package/dist/types/preset.js +0 -6
- package/dist/types/preset.js.map +0 -1
- package/dist/types/types.d.ts +0 -70
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -2
- package/dist/types/types.js.map +0 -1
- package/dist/utils/__tests__/env.spec.d.ts +0 -2
- package/dist/utils/__tests__/env.spec.d.ts.map +0 -1
- package/dist/utils/__tests__/env.spec.js +0 -33
- package/dist/utils/__tests__/env.spec.js.map +0 -1
- package/dist/utils/env.d.ts +0 -7
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -25
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/fs-atomic.d.ts +0 -15
- package/dist/utils/fs-atomic.d.ts.map +0 -1
- package/dist/utils/fs-atomic.js +0 -46
- package/dist/utils/fs-atomic.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -21
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -32
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/product-normalize.d.ts +0 -25
- package/dist/utils/product-normalize.d.ts.map +0 -1
- package/dist/utils/product-normalize.js +0 -48
- package/dist/utils/product-normalize.js.map +0 -1
- package/dist/validation/validate-config.d.ts +0 -10
- package/dist/validation/validate-config.d.ts.map +0 -1
- package/dist/validation/validate-config.js +0 -21
- package/dist/validation/validate-config.js.map +0 -1
package/dist/runtime/runtime.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
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 { promises as fsp } from "node:fs";
|
|
8
|
-
import path from "node:path";
|
|
9
|
-
/** Find nearest config file walking up from startDir until stopDir or FS root. */
|
|
10
|
-
export async function findNearestConfig(opts) {
|
|
11
|
-
const start = path.resolve(opts.startDir ?? process.cwd());
|
|
12
|
-
const stop = opts.stopDir ? path.resolve(opts.stopDir) : null;
|
|
13
|
-
const tried = [];
|
|
14
|
-
let dir = start;
|
|
15
|
-
while (true) {
|
|
16
|
-
for (const name of opts.filenames) {
|
|
17
|
-
const candidate = path.join(dir, name);
|
|
18
|
-
tried.push(candidate);
|
|
19
|
-
try {
|
|
20
|
-
await fsp.access(candidate);
|
|
21
|
-
return { path: candidate, tried };
|
|
22
|
-
}
|
|
23
|
-
catch { /* continue */ }
|
|
24
|
-
}
|
|
25
|
-
const parent = path.dirname(dir);
|
|
26
|
-
if (parent === dir) {
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
if (stop && (dir === stop || parent === stop)) {
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
dir = parent;
|
|
33
|
-
}
|
|
34
|
-
return { path: null, tried };
|
|
35
|
-
}
|
|
36
|
-
/** Read JSON with explicit diagnostics (no silent nulls). */
|
|
37
|
-
export async function readJsonWithDiagnostics(p) {
|
|
38
|
-
const diagnostics = [];
|
|
39
|
-
try {
|
|
40
|
-
const raw = await fsp.readFile(p, "utf8");
|
|
41
|
-
try {
|
|
42
|
-
const data = JSON.parse(raw);
|
|
43
|
-
return { ok: true, data, diagnostics };
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
diagnostics.push({ level: "error", code: "JSON_PARSE_FAILED", message: `Failed to parse JSON: ${p}`, detail: String(e) });
|
|
47
|
-
return { ok: false, diagnostics };
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
diagnostics.push({ level: "error", code: "FILE_READ_FAILED", message: `Failed to read file: ${p}`, detail: String(e) });
|
|
52
|
-
return { ok: false, diagnostics };
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/** Shallow pick of defined fields only. */
|
|
56
|
-
export function pickDefined(obj) {
|
|
57
|
-
if (!obj) {
|
|
58
|
-
return {};
|
|
59
|
-
}
|
|
60
|
-
const out = {};
|
|
61
|
-
for (const [k, v] of Object.entries(obj)) {
|
|
62
|
-
if (v !== undefined) {
|
|
63
|
-
out[k] = v;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return out;
|
|
67
|
-
}
|
|
68
|
-
/** Deep merge (objects/arrays), ignoring `undefined` on the overlay. */
|
|
69
|
-
export function mergeDefined(base, over) {
|
|
70
|
-
if (!over) {
|
|
71
|
-
return base;
|
|
72
|
-
}
|
|
73
|
-
if (Array.isArray(base) && Array.isArray(over)) {
|
|
74
|
-
return [...base, ...over.filter(v => v !== undefined)];
|
|
75
|
-
}
|
|
76
|
-
if (isPlainObject(base) && isPlainObject(over)) {
|
|
77
|
-
const out = { ...base };
|
|
78
|
-
for (const [k, v] of Object.entries(over)) {
|
|
79
|
-
if (v === undefined) {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (isPlainObject(base[k]) && isPlainObject(v)) {
|
|
83
|
-
out[k] = mergeDefined(base[k], v);
|
|
84
|
-
}
|
|
85
|
-
else if (Array.isArray(base[k]) && Array.isArray(v)) {
|
|
86
|
-
out[k] = mergeDefined(base[k], v);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
out[k] = v;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return out;
|
|
93
|
-
}
|
|
94
|
-
// Different types → overlay wins if defined
|
|
95
|
-
return over ?? base;
|
|
96
|
-
}
|
|
97
|
-
function isPlainObject(v) {
|
|
98
|
-
return typeof v === "object" && v !== null && Object.getPrototypeOf(v) === Object.prototype;
|
|
99
|
-
}
|
|
100
|
-
const SYSTEM_DEFAULTS = {
|
|
101
|
-
profiles: { rootDir: '.kb/profiles', defaultName: 'default', strict: true }
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Generic resolver: defaults → fileConfig → envMapper(process.env) → cliOverrides.
|
|
105
|
-
* No domain keys inside; mapping/validation provided by the product/shared layer.
|
|
106
|
-
*/
|
|
107
|
-
export function resolveConfig(args) {
|
|
108
|
-
const diagnostics = [];
|
|
109
|
-
const envPart = args.envMapper?.(process.env) ?? {};
|
|
110
|
-
const merged = mergeDefined(mergeDefined(mergeDefined(mergeDefined(structuredClone(SYSTEM_DEFAULTS), structuredClone(args.defaults)), args.fileConfig), envPart), args.cliOverrides);
|
|
111
|
-
if (args.validate) {
|
|
112
|
-
const res = args.validate(merged);
|
|
113
|
-
if (!res.ok) {
|
|
114
|
-
diagnostics.push({ level: "error", code: "CONFIG_VALIDATION_FAILED", message: "Configuration did not pass validation." });
|
|
115
|
-
if (res.diagnostics) {
|
|
116
|
-
diagnostics.push(...res.diagnostics);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else if (res.diagnostics?.length) {
|
|
120
|
-
diagnostics.push(...res.diagnostics);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return { value: merged, diagnostics };
|
|
124
|
-
}
|
|
125
|
-
export { SYSTEM_DEFAULTS };
|
|
126
|
-
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,GAAG,KAAK,CAAC;IAEhB,OAAO,IAAI,EAAE,CAAC;QACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,IAAI,CAAC;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAAC,MAAM;QAAC,CAAC;QAC9B,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM;QAAC,CAAC;QACzD,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAc,CAAS;IAChE,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,yBAAyB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1H,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACtC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACtC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAgC,GAAkB;IACzE,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IACxB,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAAE,GAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAAI,IAAO,EAAE,IAAiB;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAiB,CAAC;IAC3E,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAClC,IAAI,aAAa,CAAE,IAAY,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAE,IAAY,CAAC,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAE,IAAY,CAAC,CAAC,CAAC,EAAE,CAAQ,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,4CAA4C;IAC5C,OAAQ,IAAU,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC7B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;AAChG,CAAC;AAED,MAAM,eAAe,GAAG;IACpB,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;CACrE,CAAC;AAUX;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAU,IAAgC;IACnE,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAEpD,MAAM,MAAM,GAAG,YAAY,CACvB,YAAY,CACR,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,eAAe,CAAgC,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAC5I,OAAO,CACV,EACD,IAAI,CAAC,YAAY,CACT,CAAC;IAEb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;YAC1H,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;YAAC,CAAC;QAClE,CAAC;aAAM,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/types/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
package/dist/types/index.js
DELETED
package/dist/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
package/dist/types/init.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/types/init
|
|
3
|
-
* Types for init operations
|
|
4
|
-
*/
|
|
5
|
-
export interface InitWorkspaceOptions {
|
|
6
|
-
cwd: string;
|
|
7
|
-
format?: 'yaml' | 'json';
|
|
8
|
-
presetRef?: string | null;
|
|
9
|
-
profiles?: Record<string, string>;
|
|
10
|
-
products?: string[];
|
|
11
|
-
dryRun?: boolean;
|
|
12
|
-
force?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface InitAction {
|
|
15
|
-
kind: 'write' | 'append' | 'update' | 'skip' | 'conflict';
|
|
16
|
-
path: string;
|
|
17
|
-
previewDiff?: string;
|
|
18
|
-
}
|
|
19
|
-
export interface InitResult {
|
|
20
|
-
actions: InitAction[];
|
|
21
|
-
created: string[];
|
|
22
|
-
updated: string[];
|
|
23
|
-
skipped: string[];
|
|
24
|
-
warnings: string[];
|
|
25
|
-
}
|
|
26
|
-
export interface UpsertLockfileOptions {
|
|
27
|
-
cwd: string;
|
|
28
|
-
presetRef?: string | null;
|
|
29
|
-
profileRef?: string | null;
|
|
30
|
-
policyBundle?: string | null;
|
|
31
|
-
dryRun?: boolean;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=init.d.ts.map
|
package/dist/types/init.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/types/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
package/dist/types/init.js
DELETED
package/dist/types/init.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/types/init.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/types/preset.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/types/preset
|
|
3
|
-
* Preset-related types
|
|
4
|
-
*/
|
|
5
|
-
export interface PresetConfig {
|
|
6
|
-
products: Record<string, any>;
|
|
7
|
-
metadata?: {
|
|
8
|
-
name: string;
|
|
9
|
-
version: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export interface PresetResolutionOptions {
|
|
14
|
-
cwd: string;
|
|
15
|
-
presetRef: string;
|
|
16
|
-
offline?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export interface PresetResolutionResult {
|
|
19
|
-
preset: {
|
|
20
|
-
name: string;
|
|
21
|
-
version: string;
|
|
22
|
-
path: string;
|
|
23
|
-
config: PresetConfig;
|
|
24
|
-
};
|
|
25
|
-
resolvedAt: string;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=preset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/types/preset.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types/preset.js
DELETED
package/dist/types/preset.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/types/preset.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/types/types.d.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export type Diagnostic = {
|
|
2
|
-
level: "warn" | "error";
|
|
3
|
-
code: string;
|
|
4
|
-
message: string;
|
|
5
|
-
detail?: unknown;
|
|
6
|
-
} | {
|
|
7
|
-
level: "info";
|
|
8
|
-
code: string;
|
|
9
|
-
message: string;
|
|
10
|
-
};
|
|
11
|
-
export type JsonReadResult<T = unknown> = {
|
|
12
|
-
ok: true;
|
|
13
|
-
data: T;
|
|
14
|
-
diagnostics: Diagnostic[];
|
|
15
|
-
} | {
|
|
16
|
-
ok: false;
|
|
17
|
-
diagnostics: Diagnostic[];
|
|
18
|
-
};
|
|
19
|
-
export interface FindNearestConfigOpts {
|
|
20
|
-
startDir?: string;
|
|
21
|
-
stopDir?: string;
|
|
22
|
-
filenames: string[];
|
|
23
|
-
}
|
|
24
|
-
export interface ProfilesConfig {
|
|
25
|
-
rootDir?: string;
|
|
26
|
-
defaultName?: string;
|
|
27
|
-
strict?: boolean;
|
|
28
|
-
}
|
|
29
|
-
export interface KBConfig {
|
|
30
|
-
profiles?: ProfilesConfig;
|
|
31
|
-
}
|
|
32
|
-
export interface MergeTrace {
|
|
33
|
-
path: string;
|
|
34
|
-
source: string;
|
|
35
|
-
type: 'set' | 'overwriteArray';
|
|
36
|
-
layer: string;
|
|
37
|
-
profileRef?: string;
|
|
38
|
-
presetRef?: string;
|
|
39
|
-
version?: string;
|
|
40
|
-
}
|
|
41
|
-
export interface ProfileLayerInput {
|
|
42
|
-
profileId: string;
|
|
43
|
-
source: string;
|
|
44
|
-
products?: Record<string, unknown>;
|
|
45
|
-
scope?: {
|
|
46
|
-
id: string;
|
|
47
|
-
source: string;
|
|
48
|
-
products?: Record<string, unknown>;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export interface ResolveOptions {
|
|
52
|
-
cwd: string;
|
|
53
|
-
/**
|
|
54
|
-
* Product identifier (e.g., 'mind', 'aiReview', 'workflow')
|
|
55
|
-
*/
|
|
56
|
-
product: string;
|
|
57
|
-
cli?: Record<string, unknown>;
|
|
58
|
-
writeFinal?: boolean;
|
|
59
|
-
profileLayer?: ProfileLayerInput;
|
|
60
|
-
}
|
|
61
|
-
export interface ConfigLayer {
|
|
62
|
-
label: string;
|
|
63
|
-
value: any;
|
|
64
|
-
source: string;
|
|
65
|
-
}
|
|
66
|
-
export interface ProductConfigResult<T = Record<string, any>> {
|
|
67
|
-
config: T;
|
|
68
|
-
trace: MergeTrace[];
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAChB;IAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5E;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,GAChD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC7B;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB"}
|
package/dist/types/types.js
DELETED
package/dist/types/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.spec.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/env.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { toBool, toInt } from '../env';
|
|
3
|
-
describe('toBool', () => {
|
|
4
|
-
it('parses truthy values', () => {
|
|
5
|
-
for (const v of ['1', 'true', 'yes', 'on', ' TRUE ', 'Yes']) {
|
|
6
|
-
expect(toBool(v)).toBe(true);
|
|
7
|
-
}
|
|
8
|
-
});
|
|
9
|
-
it('parses falsy values', () => {
|
|
10
|
-
for (const v of ['0', 'false', 'no', 'off', ' False ']) {
|
|
11
|
-
expect(toBool(v)).toBe(false);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
it('returns undefined for unknown or undefined', () => {
|
|
15
|
-
expect(toBool('maybe')).toBeUndefined();
|
|
16
|
-
expect(toBool(undefined)).toBeUndefined();
|
|
17
|
-
expect(toBool('')).toBeUndefined();
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe('toInt', () => {
|
|
21
|
-
it('parses valid integers', () => {
|
|
22
|
-
expect(toInt('0')).toBe(0);
|
|
23
|
-
expect(toInt('42')).toBe(42);
|
|
24
|
-
expect(toInt(' 7 ')).toBe(7);
|
|
25
|
-
});
|
|
26
|
-
it('returns undefined for invalid numbers or undefined', () => {
|
|
27
|
-
expect(toInt('abc')).toBeUndefined();
|
|
28
|
-
expect(toInt('NaN')).toBeUndefined();
|
|
29
|
-
expect(toInt(undefined)).toBeUndefined();
|
|
30
|
-
expect(toInt('')).toBe(0); // Number('') === 0 → considered valid
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=env.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.spec.js","sourceRoot":"","sources":["../../../src/utils/__tests__/env.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,sCAAsC;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/utils/env.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/utils/env
|
|
3
|
-
* Small helpers to convert ENV strings to typed values.
|
|
4
|
-
*/
|
|
5
|
-
export declare function toBool(v: string | undefined): boolean | undefined;
|
|
6
|
-
export declare function toInt(v: string | undefined): number | undefined;
|
|
7
|
-
//# sourceMappingURL=env.d.ts.map
|
package/dist/utils/env.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAMjE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI/D"}
|
package/dist/utils/env.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/utils/env
|
|
3
|
-
* Small helpers to convert ENV strings to typed values.
|
|
4
|
-
*/
|
|
5
|
-
export function toBool(v) {
|
|
6
|
-
if (v === undefined) {
|
|
7
|
-
return undefined;
|
|
8
|
-
}
|
|
9
|
-
const s = v.trim().toLowerCase();
|
|
10
|
-
if (s === "1" || s === "true" || s === "yes" || s === "on") {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
if (s === "0" || s === "false" || s === "no" || s === "off") {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
return undefined; // unknown → let caller decide default
|
|
17
|
-
}
|
|
18
|
-
export function toInt(v) {
|
|
19
|
-
if (v === undefined) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
const n = Number(v);
|
|
23
|
-
return Number.isFinite(n) ? n : undefined;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=env.js.map
|
package/dist/utils/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,MAAM,CAAC,CAAqB;IACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAAA,OAAO,SAAS,CAAC;IAAA,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IAC5E,OAAO,SAAS,CAAC,CAAC,sCAAsC;AAC5D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAqB;IACvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAAA,OAAO,SAAS,CAAC;IAAA,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/utils/fs-atomic
|
|
3
|
-
* Atomic file write operations using tmp+rename pattern
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Write file atomically using tmp+rename pattern
|
|
7
|
-
* This ensures that the file is never partially written in case of crashes
|
|
8
|
-
*/
|
|
9
|
-
export declare function writeFileAtomic(path: string, data: string | Uint8Array): Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* Ensure a path is within the workspace root
|
|
12
|
-
* Throws ERR_PATH_OUTSIDE_WORKSPACE if the path escapes the workspace
|
|
13
|
-
*/
|
|
14
|
-
export declare function ensureWithinWorkspace(targetPath: string, workspaceRoot: string): void;
|
|
15
|
-
//# sourceMappingURL=fs-atomic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-atomic.d.ts","sourceRoot":"","sources":["../../src/utils/fs-atomic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAYrF"}
|
package/dist/utils/fs-atomic.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/utils/fs-atomic
|
|
3
|
-
* Atomic file write operations using tmp+rename pattern
|
|
4
|
-
*/
|
|
5
|
-
import { promises as fs } from 'node:fs';
|
|
6
|
-
import { resolve } from 'node:path';
|
|
7
|
-
import { KbError } from '../errors/kb-error';
|
|
8
|
-
import { dirname } from 'node:path';
|
|
9
|
-
/**
|
|
10
|
-
* Write file atomically using tmp+rename pattern
|
|
11
|
-
* This ensures that the file is never partially written in case of crashes
|
|
12
|
-
*/
|
|
13
|
-
export async function writeFileAtomic(path, data) {
|
|
14
|
-
const tmp = `${path}.tmp-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
15
|
-
try {
|
|
16
|
-
// Ensure parent directory exists
|
|
17
|
-
await fs.mkdir(dirname(path), { recursive: true });
|
|
18
|
-
await fs.mkdir(dirname(tmp), { recursive: true });
|
|
19
|
-
// Write to temp file
|
|
20
|
-
await fs.writeFile(tmp, data);
|
|
21
|
-
// Atomic rename
|
|
22
|
-
await fs.rename(tmp, path);
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
// Clean up temp file if it exists
|
|
26
|
-
try {
|
|
27
|
-
await fs.unlink(tmp);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// Ignore cleanup errors
|
|
31
|
-
}
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Ensure a path is within the workspace root
|
|
37
|
-
* Throws ERR_PATH_OUTSIDE_WORKSPACE if the path escapes the workspace
|
|
38
|
-
*/
|
|
39
|
-
export function ensureWithinWorkspace(targetPath, workspaceRoot) {
|
|
40
|
-
const absTarget = resolve(targetPath);
|
|
41
|
-
const absRoot = resolve(workspaceRoot);
|
|
42
|
-
if (!absTarget.startsWith(absRoot)) {
|
|
43
|
-
throw new KbError('ERR_PATH_OUTSIDE_WORKSPACE', `Refusing to write outside workspace: ${targetPath}`, 'Check cwd or use a relative path within the workspace', { targetPath, workspaceRoot });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=fs-atomic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-atomic.js","sourceRoot":"","sources":["../../src/utils/fs-atomic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,IAAyB;IAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9B,gBAAgB;QAChB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kCAAkC;QAClC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,aAAqB;IAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,OAAO,CACf,4BAA4B,EAC5B,wCAAwC,UAAU,EAAE,EACpD,uDAAuD,EACvD,EAAE,UAAU,EAAE,aAAa,EAAE,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,qBAAqB,CAAA"}
|
package/dist/utils/index.js
DELETED
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,qBAAqB,CAAA"}
|
package/dist/utils/paths.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get profiles root directory
|
|
3
|
-
*/
|
|
4
|
-
export declare function getProfilesRootDir(cwd: string): string;
|
|
5
|
-
/**
|
|
6
|
-
* Get product configuration directory
|
|
7
|
-
*/
|
|
8
|
-
export declare function getProductConfigDir(cwd: string, fsProduct: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Get product configuration file path
|
|
11
|
-
*/
|
|
12
|
-
export declare function getProductConfigPath(cwd: string, fsProduct: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Get .kb root directory
|
|
15
|
-
*/
|
|
16
|
-
export declare function getKbRootDir(cwd: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Get lockfile path
|
|
19
|
-
*/
|
|
20
|
-
export declare function getLockfilePath(cwd: string): string;
|
|
21
|
-
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/dist/utils/paths.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
/**
|
|
3
|
-
* Get profiles root directory
|
|
4
|
-
*/
|
|
5
|
-
export function getProfilesRootDir(cwd) {
|
|
6
|
-
return path.join(cwd, '.kb', 'profiles');
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Get product configuration directory
|
|
10
|
-
*/
|
|
11
|
-
export function getProductConfigDir(cwd, fsProduct) {
|
|
12
|
-
return path.join(cwd, '.kb', fsProduct);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get product configuration file path
|
|
16
|
-
*/
|
|
17
|
-
export function getProductConfigPath(cwd, fsProduct) {
|
|
18
|
-
return path.join(getProductConfigDir(cwd, fsProduct), `${fsProduct}.config.json`);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get .kb root directory
|
|
22
|
-
*/
|
|
23
|
-
export function getKbRootDir(cwd) {
|
|
24
|
-
return path.join(cwd, '.kb');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get lockfile path
|
|
28
|
-
*/
|
|
29
|
-
export function getLockfilePath(cwd) {
|
|
30
|
-
return path.join(getKbRootDir(cwd), 'lock.json');
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=paths.js.map
|
package/dist/utils/paths.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,SAAiB;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,cAAc,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/utils/product-normalize
|
|
3
|
-
* Product ID normalization between code (camelCase) and filesystem (kebab-case)
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Convert product ID to filesystem kebab-case format
|
|
7
|
-
* @param id Product ID (e.g., 'aiReview', 'mind', 'workflow')
|
|
8
|
-
* @returns kebab-case string for filesystem paths
|
|
9
|
-
*/
|
|
10
|
-
export declare function toFsProduct(id: string): string;
|
|
11
|
-
/**
|
|
12
|
-
* Convert filesystem kebab-case key to product ID
|
|
13
|
-
* @param fsKey kebab-case string from filesystem
|
|
14
|
-
* @returns Product ID (camelCase if mapped, original otherwise)
|
|
15
|
-
*/
|
|
16
|
-
export declare function toConfigProduct(fsKey: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Check if a string is a known product ID
|
|
19
|
-
*/
|
|
20
|
-
export declare function isValidProductId(value: string): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Get all known product IDs
|
|
23
|
-
*/
|
|
24
|
-
export declare function getAllProductIds(): string[];
|
|
25
|
-
//# sourceMappingURL=product-normalize.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"product-normalize.d.ts","sourceRoot":"","sources":["../../src/utils/product-normalize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C"}
|