@vybestack/llxprt-code-settings 0.11.0 → 0.12.0-nightly.260910.2aac6841e
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/src/__tests__/mediaSettings.issue3199.test.d.ts +6 -0
- package/dist/src/__tests__/mediaSettings.issue3199.test.js +71 -0
- package/dist/src/__tests__/mediaSettings.issue3199.test.js.map +1 -0
- package/dist/src/__tests__/settingsRegistry.interactiveTimeoutMs.test.d.ts +6 -0
- package/dist/src/__tests__/settingsRegistry.interactiveTimeoutMs.test.js +27 -0
- package/dist/src/__tests__/settingsRegistry.interactiveTimeoutMs.test.js.map +1 -0
- package/dist/src/__tests__/settingsRegistry.issue2642.test.d.ts +11 -0
- package/dist/src/__tests__/settingsRegistry.issue2642.test.js +104 -0
- package/dist/src/__tests__/settingsRegistry.issue2642.test.js.map +1 -0
- package/dist/src/__tests__/settingsRegistry.issue3255.test.js +2 -2
- package/dist/src/__tests__/settingsRegistry.issue3255.test.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/profiles/ProfileManager.d.ts +7 -0
- package/dist/src/profiles/ProfileManager.js +33 -11
- package/dist/src/profiles/ProfileManager.js.map +1 -1
- package/dist/src/profiles/__tests__/ProfileManager.test.js +2 -2
- package/dist/src/profiles/__tests__/ProfileManager.test.js.map +1 -1
- package/dist/src/profiles/__tests__/canonicalProfileRepair.outcomes.test.js +4 -1
- package/dist/src/profiles/__tests__/canonicalProfileRepair.outcomes.test.js.map +1 -1
- package/dist/src/profiles/__tests__/canonicalProfileRepair.test.js +19 -14
- package/dist/src/profiles/__tests__/canonicalProfileRepair.test.js.map +1 -1
- package/dist/src/profiles/__tests__/canonicalProfileRepair.testHelpers.d.ts +10 -0
- package/dist/src/profiles/__tests__/canonicalProfileRepair.testHelpers.js +29 -0
- package/dist/src/profiles/__tests__/canonicalProfileRepair.testHelpers.js.map +1 -1
- package/dist/src/profiles/__tests__/profileParser.issue2642.test.d.ts +13 -0
- package/dist/src/profiles/__tests__/profileParser.issue2642.test.js +290 -0
- package/dist/src/profiles/__tests__/profileParser.issue2642.test.js.map +1 -0
- package/dist/src/profiles/__tests__/profileStore.test.js +25 -12
- package/dist/src/profiles/__tests__/profileStore.test.js.map +1 -1
- package/dist/src/profiles/canonicalProfileRepair.js +24 -12
- package/dist/src/profiles/canonicalProfileRepair.js.map +1 -1
- package/dist/src/profiles/profileStore.js +4 -6
- package/dist/src/profiles/profileStore.js.map +1 -1
- package/dist/src/profiles/types.d.ts +9 -19
- package/dist/src/profiles/types.js.map +1 -1
- package/dist/src/settings/registry/registry-entries-1.js +101 -0
- package/dist/src/settings/registry/registry-entries-1.js.map +1 -1
- package/dist/src/settings/registry/registry-entries-2.js +101 -10
- package/dist/src/settings/registry/registry-entries-2.js.map +1 -1
- package/dist/src/settings/registry/registry-entries-3.js +196 -0
- package/dist/src/settings/registry/registry-entries-3.js.map +1 -1
- package/dist/src/settings/registry/registry-types.d.ts +21 -0
- package/dist/src/settings/registry/registry-types.js.map +1 -1
- package/dist/src/settings/settingsRegistry.d.ts +2 -0
- package/dist/src/settings/settingsRegistry.js +12 -0
- package/dist/src/settings/settingsRegistry.js.map +1 -1
- package/dist/src/settings/validation.d.ts +33 -0
- package/dist/src/settings/validation.js +49 -12
- package/dist/src/settings/validation.js.map +1 -1
- package/dist/src/storage/__tests__/Storage.test.js +13 -8
- package/dist/src/storage/__tests__/Storage.test.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +7 -1
- package/src/profiles/ProfileManager.ts +39 -14
- package/src/profiles/canonicalProfileRepair.ts +27 -10
- package/src/profiles/profileStore.ts +4 -6
- package/src/profiles/types.ts +9 -21
- package/src/settings/registry/registry-entries-1.ts +101 -0
- package/src/settings/registry/registry-entries-2.ts +103 -10
- package/src/settings/registry/registry-entries-3.ts +220 -0
- package/src/settings/registry/registry-types.ts +32 -0
- package/src/settings/settingsRegistry.ts +18 -0
- package/src/settings/validation.ts +68 -15
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, expect, it } from 'bun:test';
|
|
7
|
+
import { getProfilePersistableKeys, getSettingSpec, validateSetting, } from '../settings/settingsRegistry.js';
|
|
8
|
+
const MEDIA_BUDGET_DEFAULTS = {
|
|
9
|
+
'image-payload-budget-bytes': 15 * 1024 * 1024,
|
|
10
|
+
'media-store-quota-bytes': 4 * 1024 * 1024 * 1024,
|
|
11
|
+
'session-recording-queue-max-bytes': 16 * 1024 * 1024,
|
|
12
|
+
'session-persistence-queue-max-bytes': 16 * 1024 * 1024,
|
|
13
|
+
};
|
|
14
|
+
describe('issue 3199 media settings', () => {
|
|
15
|
+
it('registers finite non-negative integer budgets with one profile-visible default', () => {
|
|
16
|
+
for (const [key, expectedDefault] of Object.entries(MEDIA_BUDGET_DEFAULTS)) {
|
|
17
|
+
expect(getSettingSpec(key)).toMatchObject({
|
|
18
|
+
key,
|
|
19
|
+
type: 'number',
|
|
20
|
+
default: expectedDefault,
|
|
21
|
+
persistToProfile: true,
|
|
22
|
+
});
|
|
23
|
+
expect(validateSetting(key, 0)).toStrictEqual({
|
|
24
|
+
success: true,
|
|
25
|
+
value: 0,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
it('rejects malformed and non-finite media budgets without coercion', () => {
|
|
30
|
+
const malformedValues = [
|
|
31
|
+
-1,
|
|
32
|
+
1.5,
|
|
33
|
+
Number.NaN,
|
|
34
|
+
Number.POSITIVE_INFINITY,
|
|
35
|
+
Number.MAX_SAFE_INTEGER + 1,
|
|
36
|
+
'1048576',
|
|
37
|
+
null,
|
|
38
|
+
];
|
|
39
|
+
for (const key of Object.keys(MEDIA_BUDGET_DEFAULTS)) {
|
|
40
|
+
for (const value of malformedValues) {
|
|
41
|
+
expect(validateSetting(key, value).success).toBe(false);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
it('persists every media policy and budget through the registry profile path', () => {
|
|
46
|
+
const persistable = new Set(getProfilePersistableKeys());
|
|
47
|
+
const mediaKeys = [
|
|
48
|
+
...Object.keys(MEDIA_BUDGET_DEFAULTS),
|
|
49
|
+
'provider-files',
|
|
50
|
+
'provider-files-retention-ms',
|
|
51
|
+
'provider-files-delete',
|
|
52
|
+
'provider-files-zdr',
|
|
53
|
+
'media.semantic-purge',
|
|
54
|
+
];
|
|
55
|
+
for (const key of mediaKeys) {
|
|
56
|
+
expect(persistable.has(key)).toBe(true);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
it('accepts only exact semantic purge modes', () => {
|
|
60
|
+
for (const mode of ['off', 'remove', 'summary']) {
|
|
61
|
+
expect(validateSetting('media.semantic-purge', mode)).toStrictEqual({
|
|
62
|
+
success: true,
|
|
63
|
+
value: mode,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
for (const malformed of ['REMOVE', '', true, { mode: 'remove' }]) {
|
|
67
|
+
expect(validateSetting('media.semantic-purge', malformed).success).toBe(false);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=mediaSettings.issue3199.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaSettings.issue3199.test.js","sourceRoot":"","sources":["../../../src/__tests__/mediaSettings.issue3199.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, expect, it } from 'bun:test';
|
|
7
|
+
import { getSettingSpec, validateSetting, } from '../settings/settingsRegistry.js';
|
|
8
|
+
/**
|
|
9
|
+
* @plan PLAN-20260827-ISSUE2562.P03
|
|
10
|
+
* @requirement REQ-2562-4
|
|
11
|
+
*/
|
|
12
|
+
describe('interactive authentication timeout registry setting', () => {
|
|
13
|
+
const key = 'auth.interactiveTimeoutMs';
|
|
14
|
+
it('registers the numeric setting with the session timeout default', () => {
|
|
15
|
+
const spec = getSettingSpec(key);
|
|
16
|
+
expect(spec).toBeDefined();
|
|
17
|
+
expect(spec?.type).toBe('number');
|
|
18
|
+
expect(spec?.default).toBe(1_200_000);
|
|
19
|
+
});
|
|
20
|
+
it('accepts numeric timeout values', () => {
|
|
21
|
+
expect(validateSetting(key, 45_000)).toStrictEqual({
|
|
22
|
+
success: true,
|
|
23
|
+
value: 45_000,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=settingsRegistry.interactiveTimeoutMs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsRegistry.interactiveTimeoutMs.test.js","sourceRoot":"","sources":["../../../src/__tests__/settingsRegistry.interactiveTimeoutMs.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,MAAM,GAAG,GAAG,2BAA2B,CAAC;IAExC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACjD,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Behavioral tests for the registry `owner` / `propagation` metadata (#2642).
|
|
3
|
+
*
|
|
4
|
+
* Every registry key must carry a non-empty `owner` and `propagation`, the
|
|
5
|
+
* owner values must fall within the documented union, and the application-owned
|
|
6
|
+
* cluster (emojifilter / dumponerror / dumpcontext) must be excluded from
|
|
7
|
+
* profile persistence while the new application-owned helpers agree.
|
|
8
|
+
*
|
|
9
|
+
* These are pure registry tests — no filesystem, no mocks.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Behavioral tests for the registry `owner` / `propagation` metadata (#2642).
|
|
3
|
+
*
|
|
4
|
+
* Every registry key must carry a non-empty `owner` and `propagation`, the
|
|
5
|
+
* owner values must fall within the documented union, and the application-owned
|
|
6
|
+
* cluster (emojifilter / dumponerror / dumpcontext) must be excluded from
|
|
7
|
+
* profile persistence while the new application-owned helpers agree.
|
|
8
|
+
*
|
|
9
|
+
* These are pure registry tests — no filesystem, no mocks.
|
|
10
|
+
*/
|
|
11
|
+
import { describe, it, expect } from 'bun:test';
|
|
12
|
+
import { SETTINGS_REGISTRY, getProfilePersistableKeys, getApplicationOwnedKeys, isApplicationOwnedKey, } from '../settings/settingsRegistry.js';
|
|
13
|
+
const ALLOWED_OWNERS = new Set([
|
|
14
|
+
'application',
|
|
15
|
+
'provider-connection',
|
|
16
|
+
'model',
|
|
17
|
+
'agent-policy',
|
|
18
|
+
]);
|
|
19
|
+
const ALLOWED_PROPAGATION = new Set([
|
|
20
|
+
'render-immediate',
|
|
21
|
+
'next-turn',
|
|
22
|
+
'service-reconfigure',
|
|
23
|
+
'profile-transition',
|
|
24
|
+
'restart-required',
|
|
25
|
+
]);
|
|
26
|
+
// Key per owner that is part of the profile persistence surface.
|
|
27
|
+
const REPRESENTATIVE_KEYS = {
|
|
28
|
+
application: 'emojifilter',
|
|
29
|
+
'provider-connection': 'auth-key',
|
|
30
|
+
model: 'reasoning.enabled',
|
|
31
|
+
'agent-policy': 'tools.allowed',
|
|
32
|
+
};
|
|
33
|
+
describe('settings registry — owner / propagation metadata (#2642)', () => {
|
|
34
|
+
it('every registry entry has a non-empty owner and propagation', () => {
|
|
35
|
+
// Guard against a vacuous pass if the registry is ever empty or unloaded.
|
|
36
|
+
// Deliberately a non-empty check rather than a headcount: legitimate
|
|
37
|
+
// registry cleanup must not fail this contract test.
|
|
38
|
+
expect(SETTINGS_REGISTRY.length).toBeGreaterThan(0);
|
|
39
|
+
for (const spec of SETTINGS_REGISTRY) {
|
|
40
|
+
expect(spec.owner.length).toBeGreaterThan(0);
|
|
41
|
+
expect(spec.propagation.length).toBeGreaterThan(0);
|
|
42
|
+
expect(ALLOWED_OWNERS.has(spec.owner)).toBe(true);
|
|
43
|
+
expect(ALLOWED_PROPAGATION.has(spec.propagation)).toBe(true);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
it('each representative key maps to its documented owner', () => {
|
|
47
|
+
const byKey = new Map(SETTINGS_REGISTRY.map((s) => [s.key, s.owner]));
|
|
48
|
+
for (const [owner, key] of Object.entries(REPRESENTATIVE_KEYS)) {
|
|
49
|
+
// `?? '(missing)'` keeps both sides `string` and gives a readable
|
|
50
|
+
// failure if a representative key is ever removed from the registry.
|
|
51
|
+
expect(byKey.get(key) ?? '(missing)').toBe(owner);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
it('getApplicationOwnedKeys includes the application-owned keys', () => {
|
|
55
|
+
const appKeys = getApplicationOwnedKeys();
|
|
56
|
+
for (const key of ['emojifilter', 'dumponerror', 'dumpcontext']) {
|
|
57
|
+
expect(appKeys).toContain(key);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
it('isApplicationOwnedKey is true for application keys and false for others', () => {
|
|
61
|
+
expect(isApplicationOwnedKey('emojifilter')).toBe(true);
|
|
62
|
+
expect(isApplicationOwnedKey('dumpcontext')).toBe(true);
|
|
63
|
+
expect(isApplicationOwnedKey('auth-key')).toBe(false);
|
|
64
|
+
expect(isApplicationOwnedKey('reasoning.enabled')).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
it('application-owned keys are excluded from profile persistence', () => {
|
|
67
|
+
const keys = getProfilePersistableKeys();
|
|
68
|
+
const persistable = new Set(keys);
|
|
69
|
+
// Positive control: without this the exclusion assertions below would
|
|
70
|
+
// still pass if the persistable set were ever empty.
|
|
71
|
+
expect(keys.length).toBeGreaterThan(0);
|
|
72
|
+
expect(persistable.has('auth-key')).toBe(true);
|
|
73
|
+
for (const key of ['emojifilter', 'dumponerror', 'dumpcontext']) {
|
|
74
|
+
expect(persistable.has(key)).toBe(false);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
it('the three application keys declare persistToProfile: false in the registry', () => {
|
|
78
|
+
// Asserting the registry data directly, not just the derived list: if
|
|
79
|
+
// getProfilePersistableKeys() ever excluded these for an unrelated reason
|
|
80
|
+
// the exclusion test above would still pass while the data stayed wrong.
|
|
81
|
+
for (const key of ['emojifilter', 'dumponerror', 'dumpcontext']) {
|
|
82
|
+
const spec = SETTINGS_REGISTRY.find((s) => s.key === key);
|
|
83
|
+
expect(spec).toBeDefined();
|
|
84
|
+
expect(spec?.owner).toBe('application');
|
|
85
|
+
expect(spec?.persistToProfile).toBe(false);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
it('getProfilePersistableKeys matches exactly the specs flagged persistToProfile', () => {
|
|
89
|
+
// End-to-end contract: the derived list is the flag, nothing more.
|
|
90
|
+
const expected = SETTINGS_REGISTRY.filter((s) => s.persistToProfile).map((s) => s.key);
|
|
91
|
+
expect(getProfilePersistableKeys().sort()).toStrictEqual(expected.sort());
|
|
92
|
+
});
|
|
93
|
+
it('persistence follows the per-spec flag, not a blanket owner rule', () => {
|
|
94
|
+
// `token-usage-log` is application-owned but explicitly persists. A blanket
|
|
95
|
+
// `owner !== 'application'` filter would silently drop it and contradict
|
|
96
|
+
// its own spec.
|
|
97
|
+
const tokenUsageLog = SETTINGS_REGISTRY.find((s) => s.key === 'token-usage-log');
|
|
98
|
+
expect(tokenUsageLog).toBeDefined();
|
|
99
|
+
expect(tokenUsageLog?.owner).toBe('application');
|
|
100
|
+
expect(tokenUsageLog?.persistToProfile).toBe(true);
|
|
101
|
+
expect(getProfilePersistableKeys()).toContain('token-usage-log');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=settingsRegistry.issue2642.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsRegistry.issue2642.test.js","sourceRoot":"","sources":["../../../src/__tests__/settingsRegistry.issue2642.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,12 +167,12 @@ describe('reasoning wire settings registry contract', () => {
|
|
|
167
167
|
});
|
|
168
168
|
it('declares exactly the effort wire formats this test accepts', () => {
|
|
169
169
|
const spec = getSettingSpec('reasoning.effortWireFormat');
|
|
170
|
-
expect(new Set(spec?.enumValues)).
|
|
170
|
+
expect(new Set(spec?.enumValues)).toStrictEqual(new Set(EFFORT_WIRE_FORMATS));
|
|
171
171
|
expect(spec?.enumValues?.length).toBe(EFFORT_WIRE_FORMATS.length);
|
|
172
172
|
});
|
|
173
173
|
it('declares exactly the enabled wire formats this test accepts', () => {
|
|
174
174
|
const spec = getSettingSpec('reasoning.enabledWireFormat');
|
|
175
|
-
expect(new Set(spec?.enumValues)).
|
|
175
|
+
expect(new Set(spec?.enumValues)).toStrictEqual(new Set(ENABLED_WIRE_FORMATS));
|
|
176
176
|
expect(spec?.enumValues?.length).toBe(ENABLED_WIRE_FORMATS.length);
|
|
177
177
|
});
|
|
178
178
|
it('registers all four settings as profile-persistable model behavior', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingsRegistry.issue3255.test.js","sourceRoot":"","sources":["../../../src/__tests__/settingsRegistry.issue3255.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"settingsRegistry.issue3255.test.js","sourceRoot":"","sources":["../../../src/__tests__/settingsRegistry.issue3255.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,QAAQ;IACR,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,MAAM;CACE,CAAC;AAEX,MAAM,oBAAoB,GAAG;IAC3B,MAAM;IACN,QAAQ;IACR,kBAAkB;IAClB,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,iBAAiB;IACjB,MAAM;CACE,CAAC;AAEX,MAAM,2BAA2B,GAAG;IAClC,4BAA4B;IAC5B,6BAA6B;IAC7B,qBAAqB;IACrB,sBAAsB;CACd,CAAC;AAEX,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,CACJ,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,CACtD,CAAC,aAAa,CAAC;gBACd,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,CACJ,eAAe,CAAC,6BAA6B,EAAE,MAAM,CAAC,CACvD,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CACJ,eAAe,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CACxD,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,MAAM,CACJ,eAAe,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAC5D,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CACJ,eAAe,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAC1D,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,MAAM,CACJ,eAAe,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAC7D,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,YAAY,CACzB,qBAAqB,EACrB,mFAAmF,CACpF,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,IAAI;aACV;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,WAAW,GAAuB;YACtC,IAAI;YACJ,SAAS;YACT,EAAE;YACF,EAAE,KAAK,EAAE,MAAM,EAAE;YACjB,EAAE,GAAG,EAAE,EAAE,EAAE;YACX,EAAE,GAAG,EAAE,IAAI,EAAE;YACb,EAAE,GAAG,EAAE,MAAM,EAAE;YACf,EAAE,GAAG,EAAE,IAAI,EAAE;SACd,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;gBACvE,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,kBAAkB;YACb,GAAG,GAAG,MAAM,CAAC;SACvB;QACD,MAAM,eAAe,GAAuB;YAC1C,IAAI,kBAAkB,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,CAAC,CAAC;SACZ,CAAC;QAEF,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,CACJ,eAAe,CAAC,qBAAqB,EAAE,cAAc,CAAC,CACvD,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACpC,MAAM,CACJ,eAAe,CAAC,sBAAsB,EAAE,cAAc,CAAC,CACxD,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,MAAM,GAAG,YAAY,CACzB,sBAAsB,EACtB,kCAAkC,CACnC,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACpE,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,CACJ,eAAe,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACtE,CAAC,aAAa,CAAC;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,WAAW,GAAuB;YACtC,IAAI;YACJ,SAAS;YACT,EAAE;YACF,EAAE,OAAO,EAAE,IAAI,EAAE;YACjB,EAAE,IAAI,EAAE,CAAC,EAAE;YACX,EAAE,KAAK,EAAE,EAAE,EAAE;SACd,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,eAAe,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CACvE;gBACE,OAAO,EAAE,KAAK;aACf,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,QAAQ,GAAG;YACf,4BAA4B,EAAE,QAAQ;YACtC,6BAA6B,EAAE,UAAU;YACzC,qBAAqB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC5C,CAAC;QAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEvD,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,SAAS,GAAG,gBAAgB,CAAC;YACjC,SAAS,EAAE;gBACT,gBAAgB,EAAE,iBAAiB;gBACnC,iBAAiB,EAAE,iBAAiB;gBACpC,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;gBACzB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC3B,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YAC5C,4BAA4B,EAAE,iBAAiB;YAC/C,6BAA6B,EAAE,iBAAiB;YAChD,qBAAqB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACxC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC;YAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;QAEpD,KAAK,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,cAAc,CAAC,4BAA4B,CAAC,CAAC;QAE1D,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAC7C,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAC7B,CAAC;QACF,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,cAAc,CAAC,6BAA6B,CAAC,CAAC;QAE3D,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAC7C,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAC9B,CAAC;QACF,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,KAAK,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;gBACxC,GAAG;gBACH,QAAQ,EAAE,gBAAgB;gBAC1B,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { SettingsService } from './settings/SettingsService.js';
|
|
8
8
|
export type { SettingsServiceInit } from './settings/SettingsService.js';
|
|
9
|
-
export { resolveAlias, getSettingSpec, normalizeSetting, separateSettings, validateSetting, parseSetting, getProfilePersistableKeys, getSettingHelp, getCompletionOptions, getAllSettingKeys, getValidationHelp, getAutocompleteSuggestions, getProtectedSettingKeys, getProviderConfigKeys, getDirectSettingSpecs, getInternalSettingKeys, isInternalSettingKey, isSessionScopedSettingKey, getSessionScopedSettingKeys, assertSessionScopedKey, redactSensitiveValues, isSensitiveSettingKey, REDACTED_VALUE, SETTINGS_REGISTRY, } from './settings/settingsRegistry.js';
|
|
9
|
+
export { resolveAlias, getSettingSpec, normalizeSetting, separateSettings, validateSetting, parseSetting, getProfilePersistableKeys, getSettingHelp, getCompletionOptions, getAllSettingKeys, getValidationHelp, getAutocompleteSuggestions, getProtectedSettingKeys, getProviderConfigKeys, getDirectSettingSpecs, getApplicationOwnedKeys, isApplicationOwnedKey, getInternalSettingKeys, isInternalSettingKey, isSessionScopedSettingKey, getSessionScopedSettingKeys, assertSessionScopedKey, redactSensitiveValues, isSensitiveSettingKey, REDACTED_VALUE, SETTINGS_REGISTRY, } from './settings/settingsRegistry.js';
|
|
10
10
|
export { isStrictNumericString } from './settings/numericString.js';
|
|
11
11
|
export type { ValidationResult, SettingSpec, SeparatedSettings, DirectSettingSpec, } from './settings/settingsRegistry.js';
|
|
12
12
|
export { getSettingsService, registerSettingsService, resetSettingsService, } from './settings/settingsServiceInstance.js';
|
|
@@ -15,7 +15,7 @@ export { withProfilesLockSync, writeProfileFile, } from './profiles/profileStore
|
|
|
15
15
|
export type { ProfileWriteMode, ProfileWriteResult, } from './profiles/profileStore.js';
|
|
16
16
|
export { repairCanonicalProfiles, CORRUPT_PROVIDER, } from './profiles/canonicalProfileRepair.js';
|
|
17
17
|
export type { CanonicalRepairOutcome, CanonicalRepairResult, } from './profiles/canonicalProfileRepair.js';
|
|
18
|
-
export { parseProfile } from './settings/validation.js';
|
|
18
|
+
export { parseProfile, parseProfileJson, MIN_LOAD_BALANCER_MEMBERS, } from './settings/validation.js';
|
|
19
19
|
export type { Profile, StandardProfile, LoadBalancerProfile, ModelParams, EphemeralSettings, ProfileEphemeralSettings, ReasoningEffort, ReasoningEffortWireFormat, ReasoningEnabledWireFormat, ReasoningEffortMap, ReasoningEnabledMap, AuthConfig, } from './profiles/types.js';
|
|
20
20
|
export { AuthConfigSchema, isLoadBalancerProfile, isStandardProfile, hasAuthConfig, isOAuthProfile, } from './profiles/types.js';
|
|
21
21
|
export { Storage } from './storage/Storage.js';
|
package/dist/src/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
export { SettingsService } from './settings/SettingsService.js';
|
|
8
8
|
// SessionSettingsOverlay is intentionally NOT exported: it is an internal
|
|
9
9
|
// implementation detail owned by SettingsService.
|
|
10
|
-
export { resolveAlias, getSettingSpec, normalizeSetting, separateSettings, validateSetting, parseSetting, getProfilePersistableKeys, getSettingHelp, getCompletionOptions, getAllSettingKeys, getValidationHelp, getAutocompleteSuggestions, getProtectedSettingKeys, getProviderConfigKeys, getDirectSettingSpecs, getInternalSettingKeys, isInternalSettingKey, isSessionScopedSettingKey, getSessionScopedSettingKeys, assertSessionScopedKey, redactSensitiveValues, isSensitiveSettingKey, REDACTED_VALUE, SETTINGS_REGISTRY, } from './settings/settingsRegistry.js';
|
|
10
|
+
export { resolveAlias, getSettingSpec, normalizeSetting, separateSettings, validateSetting, parseSetting, getProfilePersistableKeys, getSettingHelp, getCompletionOptions, getAllSettingKeys, getValidationHelp, getAutocompleteSuggestions, getProtectedSettingKeys, getProviderConfigKeys, getDirectSettingSpecs, getApplicationOwnedKeys, isApplicationOwnedKey, getInternalSettingKeys, isInternalSettingKey, isSessionScopedSettingKey, getSessionScopedSettingKeys, assertSessionScopedKey, redactSensitiveValues, isSensitiveSettingKey, REDACTED_VALUE, SETTINGS_REGISTRY, } from './settings/settingsRegistry.js';
|
|
11
11
|
export { isStrictNumericString } from './settings/numericString.js';
|
|
12
12
|
export { getSettingsService, registerSettingsService, resetSettingsService, } from './settings/settingsServiceInstance.js';
|
|
13
13
|
export { ProfileManager } from './profiles/ProfileManager.js';
|
|
@@ -18,7 +18,7 @@ export { ProfileManager } from './profiles/ProfileManager.js';
|
|
|
18
18
|
// coordinate with ProfileManager writes.
|
|
19
19
|
export { withProfilesLockSync, writeProfileFile, } from './profiles/profileStore.js';
|
|
20
20
|
export { repairCanonicalProfiles, CORRUPT_PROVIDER, } from './profiles/canonicalProfileRepair.js';
|
|
21
|
-
export { parseProfile } from './settings/validation.js';
|
|
21
|
+
export { parseProfile, parseProfileJson, MIN_LOAD_BALANCER_MEMBERS, } from './settings/validation.js';
|
|
22
22
|
export { AuthConfigSchema, isLoadBalancerProfile, isStandardProfile, hasAuthConfig, isOAuthProfile, } from './profiles/types.js';
|
|
23
23
|
export { Storage } from './storage/Storage.js';
|
|
24
24
|
export { LLXPRT_DIR, AGENTS_DIR, PROVIDER_ACCOUNTS_FILENAME, OAUTH_FILE, } from './storage/Storage.js';
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,0EAA0E;AAC1E,kDAAkD;AAElD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAQpE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,yCAAyC;AACzC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,0EAA0E;AAC1E,kDAAkD;AAElD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAQpE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,yCAAyC;AACzC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAelC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,0BAA0B,EAC1B,UAAU,GACX,MAAM,sBAAsB,CAAC"}
|
|
@@ -44,6 +44,13 @@ export declare class ProfileManager {
|
|
|
44
44
|
* @param profile The profile configuration to save
|
|
45
45
|
*/
|
|
46
46
|
saveProfile(profileName: string, profile: PersistableProfile): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Parse raw profile file content through the single shared parse boundary
|
|
49
|
+
* so load/reference/scan paths produce identical results. Malformed JSON
|
|
50
|
+
* and prototype-pollution documents surface as typed parse errors before any
|
|
51
|
+
* schema validation.
|
|
52
|
+
*/
|
|
53
|
+
private static parseProfileContent;
|
|
47
54
|
saveLoadBalancerProfile(name: string, profile: unknown): Promise<void>;
|
|
48
55
|
/**
|
|
49
56
|
* Validate that a load-balancer profile's references are valid.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Settings-owned: uses settings-owned profile types, not core imports.
|
|
8
8
|
*/
|
|
9
9
|
import { isLoadBalancerProfile } from './types.js';
|
|
10
|
-
import { isPlainObject, parseLoadBalancerProfile, parseProfile, parsePromptCaching, } from '../settings/validation.js';
|
|
10
|
+
import { isPlainObject, parseLoadBalancerProfile, parseProfile, parseProfileJson, parsePromptCaching, } from '../settings/validation.js';
|
|
11
11
|
import fs from 'fs/promises';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import { Storage } from '@vybestack/llxprt-code-storage';
|
|
@@ -21,9 +21,6 @@ function optionalNumber(value) {
|
|
|
21
21
|
function optionalString(value) {
|
|
22
22
|
return typeof value === 'string' ? value : undefined;
|
|
23
23
|
}
|
|
24
|
-
function optionalBoolean(value) {
|
|
25
|
-
return typeof value === 'boolean' ? value : undefined;
|
|
26
|
-
}
|
|
27
24
|
function referencedProfileIsLoadBalancer(profile) {
|
|
28
25
|
return isPlainObject(profile) && profile.type === 'loadbalancer';
|
|
29
26
|
}
|
|
@@ -53,6 +50,30 @@ export class ProfileManager {
|
|
|
53
50
|
async saveProfile(profileName, profile) {
|
|
54
51
|
await writeProfileFile(this.profilesDir, profileName, JSON.stringify(profile, null, 2), 'overwrite');
|
|
55
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Parse raw profile file content through the single shared parse boundary
|
|
55
|
+
* so load/reference/scan paths produce identical results. Malformed JSON
|
|
56
|
+
* and prototype-pollution documents surface as typed parse errors before any
|
|
57
|
+
* schema validation.
|
|
58
|
+
*/
|
|
59
|
+
static parseProfileContent(content) {
|
|
60
|
+
const parsed = parseProfileJson(content);
|
|
61
|
+
if (parsed.kind === 'invalid-json') {
|
|
62
|
+
// Chain the original parse error so position information
|
|
63
|
+
// ("Unexpected token } ... at position 42") is not lost.
|
|
64
|
+
throw new SyntaxError('profile JSON is malformed', {
|
|
65
|
+
cause: parsed.error,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
if (parsed.kind === 'unsafe') {
|
|
69
|
+
// Also a SyntaxError, so loadProfile's "Profile 'X' is corrupted"
|
|
70
|
+
// wrapping applies uniformly. Throwing a plain Error here made
|
|
71
|
+
// prototype-pollution surface as a raw message without the profile name
|
|
72
|
+
// while malformed JSON got the friendly one.
|
|
73
|
+
throw new SyntaxError(parsed.error.message, { cause: parsed.error });
|
|
74
|
+
}
|
|
75
|
+
return parsed.value;
|
|
76
|
+
}
|
|
56
77
|
async saveLoadBalancerProfile(name, profile) {
|
|
57
78
|
const loadBalancerProfile = parseLoadBalancerProfile(name, profile);
|
|
58
79
|
const availableProfiles = await this.listProfiles();
|
|
@@ -62,7 +83,7 @@ export class ProfileManager {
|
|
|
62
83
|
}
|
|
63
84
|
const referencedProfilePath = path.join(this.profilesDir, `${referencedProfile}.json`);
|
|
64
85
|
const referencedContent = await fs.readFile(referencedProfilePath, 'utf8');
|
|
65
|
-
const referencedProfileData =
|
|
86
|
+
const referencedProfileData = ProfileManager.parseProfileContent(referencedContent);
|
|
66
87
|
if (referencedProfileIsLoadBalancer(referencedProfileData)) {
|
|
67
88
|
throw new Error(`LoadBalancer profile '${name}' cannot reference another LoadBalancer profile '${referencedProfile}'`);
|
|
68
89
|
}
|
|
@@ -83,7 +104,7 @@ export class ProfileManager {
|
|
|
83
104
|
}
|
|
84
105
|
const referencedProfilePath = path.join(this.profilesDir, `${referencedProfile}.json`);
|
|
85
106
|
const referencedContent = await fs.readFile(referencedProfilePath, 'utf8');
|
|
86
|
-
const referencedProfileData =
|
|
107
|
+
const referencedProfileData = ProfileManager.parseProfileContent(referencedContent);
|
|
87
108
|
if (referencedProfileIsLoadBalancer(referencedProfileData)) {
|
|
88
109
|
throw new Error(`LoadBalancer profile '${profileName}' cannot reference another LoadBalancer profile '${referencedProfile}'`);
|
|
89
110
|
}
|
|
@@ -98,7 +119,7 @@ export class ProfileManager {
|
|
|
98
119
|
const filePath = path.join(this.profilesDir, `${profileName}.json`);
|
|
99
120
|
try {
|
|
100
121
|
const content = await fs.readFile(filePath, 'utf8');
|
|
101
|
-
const parsed =
|
|
122
|
+
const parsed = ProfileManager.parseProfileContent(content);
|
|
102
123
|
const profile = isPlainObject(parsed) && parsed.type === 'loadbalancer'
|
|
103
124
|
? parseLoadBalancerProfile(profileName, parsed)
|
|
104
125
|
: parseProfile(parsed);
|
|
@@ -112,7 +133,10 @@ export class ProfileManager {
|
|
|
112
133
|
throw new Error(`Profile '${profileName}' not found`);
|
|
113
134
|
}
|
|
114
135
|
if (error instanceof SyntaxError) {
|
|
115
|
-
|
|
136
|
+
// Name the profile AND say why. Malformed JSON and dangerous-key
|
|
137
|
+
// documents both arrive here as SyntaxError, and "corrupted" alone
|
|
138
|
+
// does not tell the user which problem their file has.
|
|
139
|
+
throw new Error(`Profile '${profileName}' is corrupted: ${error.message}`, { cause: error });
|
|
116
140
|
}
|
|
117
141
|
if (error instanceof Error &&
|
|
118
142
|
error.message === 'missing required fields') {
|
|
@@ -149,7 +173,7 @@ export class ProfileManager {
|
|
|
149
173
|
try {
|
|
150
174
|
const filePath = path.join(this.profilesDir, `${name}.json`);
|
|
151
175
|
const content = await fs.readFile(filePath, 'utf8');
|
|
152
|
-
const parsed =
|
|
176
|
+
const parsed = ProfileManager.parseProfileContent(content);
|
|
153
177
|
if (isPlainObject(parsed) &&
|
|
154
178
|
parsed.type === 'loadbalancer' &&
|
|
155
179
|
Array.isArray(parsed.profiles) &&
|
|
@@ -222,7 +246,6 @@ export class ProfileManager {
|
|
|
222
246
|
'auth-key': optionalString(providerSettings['auth-key']),
|
|
223
247
|
'auth-keyfile': optionalString(providerSettings['auth-keyfile']),
|
|
224
248
|
'prompt-caching': parsePromptCaching(providerSettings['prompt-caching']),
|
|
225
|
-
'include-folder-structure': optionalBoolean(providerSettings['include-folder-structure']),
|
|
226
249
|
'tool-format': optionalString(providerSettings.toolFormat),
|
|
227
250
|
},
|
|
228
251
|
};
|
|
@@ -267,7 +290,6 @@ export class ProfileManager {
|
|
|
267
290
|
'auth-key': profile.ephemeralSettings['auth-key'],
|
|
268
291
|
'auth-keyfile': profile.ephemeralSettings['auth-keyfile'],
|
|
269
292
|
'prompt-caching': profile.ephemeralSettings['prompt-caching'],
|
|
270
|
-
'include-folder-structure': profile.ephemeralSettings['include-folder-structure'],
|
|
271
293
|
toolFormat: profile.ephemeralSettings['tool-format'],
|
|
272
294
|
},
|
|
273
295
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileManager.js","sourceRoot":"","sources":["../../../src/profiles/ProfileManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProfileManager.js","sourceRoot":"","sources":["../../../src/profiles/ProfileManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -573,12 +573,12 @@ describe('ProfileManager — parse boundary rejects unsafe object shapes', () =>
|
|
|
573
573
|
modelParams: { constructor: { prototype: { polluted: true } } },
|
|
574
574
|
ephemeralSettings: {},
|
|
575
575
|
}), 'utf8');
|
|
576
|
-
await expect(pm.loadProfile('polluted-modelparams')).rejects.toThrow('
|
|
576
|
+
await expect(pm.loadProfile('polluted-modelparams')).rejects.toThrow('dangerous fields');
|
|
577
577
|
});
|
|
578
578
|
it('rejects prototype-pollution keys in standard profile ephemeralSettings', async () => {
|
|
579
579
|
const filePath = path.join(tempDir, 'polluted-ephemeral.json');
|
|
580
580
|
await fs.writeFile(filePath, '{"version":1,"provider":"openai","model":"gpt-4","modelParams":{},"ephemeralSettings":{"__proto__":{"polluted":true}}}', 'utf8');
|
|
581
|
-
await expect(pm.loadProfile('polluted-ephemeral')).rejects.toThrow('
|
|
581
|
+
await expect(pm.loadProfile('polluted-ephemeral')).rejects.toThrow('dangerous fields');
|
|
582
582
|
});
|
|
583
583
|
});
|
|
584
584
|
describe('ProfileManager — saveLoadBalancerProfile type discriminant validation', () => {
|