create-principles-disciple 1.125.0 → 1.125.1
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/console/dist/server/config/pd-config-store.js +23 -11
- package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts +24 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js +208 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js.map +1 -0
- package/core/dist/runtime-v2/config/index.d.ts +1 -1
- package/core/dist/runtime-v2/config/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/index.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-effective.js +10 -2
- package/core/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts +3 -1
- package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-feature-flags.js +2 -0
- package/core/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-types.d.ts +4 -0
- package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-types.js +23 -0
- package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-validate.js +12 -1
- package/core/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js +4 -3
- package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js.map +1 -1
- package/dist/mvp-config.d.ts.map +1 -1
- package/dist/mvp-config.js +30 -20
- package/dist/mvp-config.js.map +1 -1
- package/package.json +1 -1
- package/pd-cli/dist/commands/runtime-init.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-init.js +12 -1
- package/pd-cli/dist/commands/runtime-init.js.map +1 -1
- package/plugin/dist/bundle.js +384 -384
- package/plugin/dist/governance-audit.js +1 -1
|
@@ -312,11 +312,15 @@ export function updateAgentBinding(workspaceDir, agentName, payload) {
|
|
|
312
312
|
};
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
-
// Merge: start from raw config, overlay known sections, update internalAgents.agents
|
|
315
|
+
// Merge: start from raw config, overlay known sections, update internalAgents.agents.
|
|
316
|
+
// PRI-637: preserve the file's own `features:` section instead of re-writing
|
|
317
|
+
// the merged effective map. Defaults belong in the registry, not in config —
|
|
318
|
+
// snapshotting `effective.config.features` here would materialize every
|
|
319
|
+
// missing default flag into an immortal override on any agent-binding change.
|
|
316
320
|
const updatedConfig = {
|
|
317
321
|
...rawConfig,
|
|
318
322
|
version: effective.config.version,
|
|
319
|
-
features: { ...effective.config.features },
|
|
323
|
+
features: isRecord(rawConfig.features) ? rawConfig.features : { ...effective.config.features },
|
|
320
324
|
runtimeProfiles: { ...effective.config.runtimeProfiles },
|
|
321
325
|
internalAgents: {
|
|
322
326
|
defaultRuntime: effective.config.internalAgents.defaultRuntime,
|
|
@@ -434,11 +438,13 @@ export function updateDefaultRuntime(workspaceDir, payload) {
|
|
|
434
438
|
else {
|
|
435
439
|
// No agents in file — write nothing (all agents inherit default)
|
|
436
440
|
}
|
|
437
|
-
// Merge: update only defaultRuntime, preserve agent overrides
|
|
441
|
+
// Merge: update only defaultRuntime, preserve agent overrides.
|
|
442
|
+
// PRI-637: preserve the file's own `features:` section (same rationale as
|
|
443
|
+
// updateAgentBinding — never re-snapshot merged defaults into config).
|
|
438
444
|
const updatedConfig = {
|
|
439
445
|
...rawConfig,
|
|
440
446
|
version: effective.config.version,
|
|
441
|
-
features: { ...effective.config.features },
|
|
447
|
+
features: isRecord(rawConfig.features) ? rawConfig.features : { ...effective.config.features },
|
|
442
448
|
runtimeProfiles: { ...effective.config.runtimeProfiles },
|
|
443
449
|
internalAgents: {
|
|
444
450
|
defaultRuntime: defaultRuntimeRaw,
|
|
@@ -814,13 +820,14 @@ export function updateFeatureFlag(workspaceDir, featureName, enabled) {
|
|
|
814
820
|
// Use Object.hasOwn for untrusted key check (ERR-013).
|
|
815
821
|
let featuresSection;
|
|
816
822
|
if (!Object.hasOwn(rawConfig, 'features')) {
|
|
817
|
-
// Section absent —
|
|
818
|
-
//
|
|
819
|
-
//
|
|
823
|
+
// Section absent — create an EMPTY features map (PRI-637). Defaults belong
|
|
824
|
+
// in the registry, not in config: seeding the whole registered flag set here
|
|
825
|
+
// would materialize an immortal default snapshot on the first toggle of a
|
|
826
|
+
// fresh install. `features: {}` is fully valid — validatePdConfig only
|
|
827
|
+
// requires the key to be an object, and the effective config merges missing
|
|
828
|
+
// flags from DEFAULT_FEATURE_FLAGS at read time. Step 6 below then writes
|
|
829
|
+
// exactly one flag: the one the Owner toggled.
|
|
820
830
|
featuresSection = {};
|
|
821
|
-
for (const [flagId, flag] of Object.entries(_DEFAULT_FLAGS_RESULT.flags)) {
|
|
822
|
-
featuresSection[flagId] = { category: flag.category, enabled: flag.enabled };
|
|
823
|
-
}
|
|
824
831
|
rawConfig.features = featuresSection;
|
|
825
832
|
}
|
|
826
833
|
else if (isRecord(rawConfig.features)) {
|
|
@@ -865,7 +872,12 @@ export function updateFeatureFlag(workspaceDir, featureName, enabled) {
|
|
|
865
872
|
const category = (isRecord(existingEntry) && Object.hasOwn(existingEntry, 'category') && typeof existingEntry.category === 'string')
|
|
866
873
|
? existingEntry.category
|
|
867
874
|
: (DEFAULT_FLAG_CATEGORY.get(featureName) ?? 'quiet');
|
|
868
|
-
|
|
875
|
+
// PRI-637: the Console toggle is the canonical Owner action — an authenticated
|
|
876
|
+
// server writes this override under an explicit owner intent, so it records
|
|
877
|
+
// `source: 'owner'` (OWNER_PIN). This also upgrades a previously source-less
|
|
878
|
+
// LEGACY_UNKNOWN or system override: an explicit Owner action converts it to
|
|
879
|
+
// OWNER_PIN, which graduation must forever respect.
|
|
880
|
+
existingFeatures[featureName] = { category, enabled, source: 'owner' };
|
|
869
881
|
rawConfig.features = existingFeatures;
|
|
870
882
|
// 7. Validate the updated config before writing
|
|
871
883
|
const validation = validatePdConfig(rawConfig);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PD Config Override Provenance Tests — PRI-637
|
|
3
|
+
*
|
|
4
|
+
* Feature flag config lifecycle: a config override may carry `source` metadata
|
|
5
|
+
* (`owner` | `system`); absence means LEGACY_UNKNOWN. This suite pins the
|
|
6
|
+
* lifecycle contract:
|
|
7
|
+
*
|
|
8
|
+
* - Resolution precedence: registry default ← explicit override; an override's
|
|
9
|
+
* `enabled` is what wins, provenance never flips the value.
|
|
10
|
+
* - Legacy overrides (no source) are PRESERVED as-is — never promoted to
|
|
11
|
+
* `owner`, never downgraded to `system`, never guessed from the boolean.
|
|
12
|
+
* - Owner pins (source: 'owner') survive effective computation.
|
|
13
|
+
* - Observation-safety: effective values computed from a pre-PRI-637 config
|
|
14
|
+
* are identical after applying the provenance contract (idempotent, and no
|
|
15
|
+
* legacy `enabled` value is rewritten).
|
|
16
|
+
* - Alias conflict keeps existing canonical precedence; the canonical entry's
|
|
17
|
+
* source is preserved.
|
|
18
|
+
* - `system` is an ORIGIN HINT, not an auto-delete license: direct
|
|
19
|
+
* `.pd/config.yaml` editing is a supported path, so a system entry may carry
|
|
20
|
+
* Owner intent; provenance never gates the value, and cleanup keyed on
|
|
21
|
+
* `system` requires explicit Owner confirmation.
|
|
22
|
+
*/
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=pd-config-provenance.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-config-provenance.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/config/__tests__/pd-config-provenance.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PD Config Override Provenance Tests — PRI-637
|
|
3
|
+
*
|
|
4
|
+
* Feature flag config lifecycle: a config override may carry `source` metadata
|
|
5
|
+
* (`owner` | `system`); absence means LEGACY_UNKNOWN. This suite pins the
|
|
6
|
+
* lifecycle contract:
|
|
7
|
+
*
|
|
8
|
+
* - Resolution precedence: registry default ← explicit override; an override's
|
|
9
|
+
* `enabled` is what wins, provenance never flips the value.
|
|
10
|
+
* - Legacy overrides (no source) are PRESERVED as-is — never promoted to
|
|
11
|
+
* `owner`, never downgraded to `system`, never guessed from the boolean.
|
|
12
|
+
* - Owner pins (source: 'owner') survive effective computation.
|
|
13
|
+
* - Observation-safety: effective values computed from a pre-PRI-637 config
|
|
14
|
+
* are identical after applying the provenance contract (idempotent, and no
|
|
15
|
+
* legacy `enabled` value is rewritten).
|
|
16
|
+
* - Alias conflict keeps existing canonical precedence; the canonical entry's
|
|
17
|
+
* source is preserved.
|
|
18
|
+
* - `system` is an ORIGIN HINT, not an auto-delete license: direct
|
|
19
|
+
* `.pd/config.yaml` editing is a supported path, so a system entry may carry
|
|
20
|
+
* Owner intent; provenance never gates the value, and cleanup keyed on
|
|
21
|
+
* `system` requires explicit Owner confirmation.
|
|
22
|
+
*/
|
|
23
|
+
import { readFileSync } from 'node:fs';
|
|
24
|
+
import { describe, it, expect } from 'vitest';
|
|
25
|
+
import { validatePdConfig, computeEffectivePdConfig, computeFeatureFlagsFromConfig, getDefaultPdConfig, DEFAULT_FEATURE_FLAGS, } from '../index.js';
|
|
26
|
+
import { FEATURE_FLAG_ALIASES } from '../../feature-flags/feature-flag-contract.js';
|
|
27
|
+
// ── Helpers ─────────────────────────────────────────────────────────────────
|
|
28
|
+
function nn(value, msg) {
|
|
29
|
+
if (value === undefined)
|
|
30
|
+
throw new Error(msg ?? 'Expected non-undefined');
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function mkConfig(features, extra) {
|
|
34
|
+
return {
|
|
35
|
+
...getDefaultPdConfig(),
|
|
36
|
+
features,
|
|
37
|
+
...extra,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
describe('PRI-637 override provenance — resolution precedence', () => {
|
|
41
|
+
it('no override → registry default', () => {
|
|
42
|
+
const effective = computeEffectivePdConfig(getDefaultPdConfig());
|
|
43
|
+
for (const [id, def] of Object.entries(DEFAULT_FEATURE_FLAGS)) {
|
|
44
|
+
expect(effective.config.features[id]?.enabled).toBe(def.enabled);
|
|
45
|
+
expect(effective.config.features[id]?.source).toBeUndefined();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
it('owner pin false + default true → false (emergency disable, quiet flag)', () => {
|
|
49
|
+
// Use a real registered quiet flag whose registry default is true.
|
|
50
|
+
const id = 'feedback_channel';
|
|
51
|
+
expect(DEFAULT_FEATURE_FLAGS[id]?.enabled).toBe(true);
|
|
52
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
53
|
+
[id]: { category: 'quiet', enabled: false, source: 'owner' },
|
|
54
|
+
}));
|
|
55
|
+
expect(effective.config.features[id]?.enabled).toBe(false);
|
|
56
|
+
expect(effective.config.features[id]?.source).toBe('owner');
|
|
57
|
+
});
|
|
58
|
+
it('owner pin true + default false → true', () => {
|
|
59
|
+
const id = 'intent_engineering';
|
|
60
|
+
expect(DEFAULT_FEATURE_FLAGS[id]?.enabled).toBe(false);
|
|
61
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
62
|
+
[id]: { category: 'quiet', enabled: true, source: 'owner' },
|
|
63
|
+
}));
|
|
64
|
+
expect(effective.config.features[id]?.enabled).toBe(true);
|
|
65
|
+
expect(effective.config.features[id]?.source).toBe('owner');
|
|
66
|
+
});
|
|
67
|
+
it('system override respects its enabled value and keeps source', () => {
|
|
68
|
+
const id = 'gfi';
|
|
69
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
70
|
+
[id]: { category: 'quiet', enabled: true, source: 'system' },
|
|
71
|
+
}));
|
|
72
|
+
expect(effective.config.features[id]?.enabled).toBe(true);
|
|
73
|
+
expect(effective.config.features[id]?.source).toBe('system');
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('PRI-637 legacy unknown — preserve, never guess', () => {
|
|
77
|
+
it('legacy bare false → preserved, source stays undefined', () => {
|
|
78
|
+
const id = 'painEvidenceAdmission';
|
|
79
|
+
expect(DEFAULT_FEATURE_FLAGS[id]?.enabled).toBe(true);
|
|
80
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
81
|
+
[id]: { category: 'quiet', enabled: false },
|
|
82
|
+
}));
|
|
83
|
+
// PRI-637 §5/C: a bare false is NOT auto-called stale — the value is
|
|
84
|
+
// preserved and the entry is classified LEGACY_UNKNOWN (source absent).
|
|
85
|
+
expect(effective.config.features[id]?.enabled).toBe(false);
|
|
86
|
+
expect(effective.config.features[id]?.source).toBeUndefined();
|
|
87
|
+
});
|
|
88
|
+
it('legacy bare true → preserved, source stays undefined', () => {
|
|
89
|
+
const id = 'intent_engineering';
|
|
90
|
+
expect(DEFAULT_FEATURE_FLAGS[id]?.enabled).toBe(false);
|
|
91
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
92
|
+
[id]: { category: 'quiet', enabled: true },
|
|
93
|
+
}));
|
|
94
|
+
expect(effective.config.features[id]?.enabled).toBe(true);
|
|
95
|
+
expect(effective.config.features[id]?.source).toBeUndefined();
|
|
96
|
+
});
|
|
97
|
+
it('effective computation is a pure function — repeated runs are idempotent (observation safety)', () => {
|
|
98
|
+
const id = 'diagnostician_llm_degradation';
|
|
99
|
+
const legacy = mkConfig({
|
|
100
|
+
[id]: { category: 'quiet', enabled: false },
|
|
101
|
+
});
|
|
102
|
+
const first = computeEffectivePdConfig(legacy);
|
|
103
|
+
const second = computeEffectivePdConfig(legacy);
|
|
104
|
+
expect(first.config.features[id]?.enabled).toBe(false);
|
|
105
|
+
expect(second.config.features[id]?.enabled).toBe(false);
|
|
106
|
+
expect(first.config.features[id]?.source).toBeUndefined();
|
|
107
|
+
expect(second.config.features[id]?.source).toBeUndefined();
|
|
108
|
+
// No run "migrates" the legacy entry into a pinned state.
|
|
109
|
+
expect(JSON.stringify(second.config.features)).toBe(JSON.stringify(first.config.features));
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe('PRI-637 validation — source metadata', () => {
|
|
113
|
+
it('accepts owner/system and rejects any other source value', () => {
|
|
114
|
+
const validSources = ['owner', 'system'];
|
|
115
|
+
for (const source of validSources) {
|
|
116
|
+
const ok = validatePdConfig(mkConfig({
|
|
117
|
+
feedback_channel: { category: 'quiet', enabled: true, source },
|
|
118
|
+
}));
|
|
119
|
+
expect(ok.ok).toBe(true);
|
|
120
|
+
}
|
|
121
|
+
// Deliberately invalid provenance value — the validator must fail loud (rc-3).
|
|
122
|
+
const bad = validatePdConfig(mkConfig({
|
|
123
|
+
feedback_channel: { category: 'quiet', enabled: true, source: 'opener' },
|
|
124
|
+
}));
|
|
125
|
+
expect(bad.ok).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
it('absent source is legal (LEGACY_UNKNOWN)', () => {
|
|
128
|
+
const result = validatePdConfig(mkConfig({
|
|
129
|
+
feedback_channel: { category: 'quiet', enabled: false },
|
|
130
|
+
}));
|
|
131
|
+
expect(result.ok).toBe(true);
|
|
132
|
+
if (!result.ok)
|
|
133
|
+
throw new Error('unreachable');
|
|
134
|
+
expect(result.value.features.feedback_channel?.source).toBeUndefined();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('PRI-637 source reaches the effective feature-flag surface', () => {
|
|
138
|
+
it('computeFeatureFlagsFromConfig surfaces override source', () => {
|
|
139
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
140
|
+
feedback_channel: { category: 'quiet', enabled: false, source: 'owner' },
|
|
141
|
+
}));
|
|
142
|
+
const flags = computeFeatureFlagsFromConfig(effective);
|
|
143
|
+
const flag = flags.flags.feedback_channel;
|
|
144
|
+
expect(nn(flag).enabled).toBe(false);
|
|
145
|
+
expect(nn(flag).source).toBe('owner');
|
|
146
|
+
});
|
|
147
|
+
it('registry-default flags have no source on the effective surface', () => {
|
|
148
|
+
const flags = computeFeatureFlagsFromConfig(computeEffectivePdConfig(null));
|
|
149
|
+
for (const flag of Object.values(flags.flags)) {
|
|
150
|
+
expect(flag?.source).toBeUndefined();
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('PRI-637 alias interaction — canonical precedence preserved', () => {
|
|
155
|
+
it('canonical entry wins over its snake_case alias and carries its own source', () => {
|
|
156
|
+
const [alias, canonical] = Object.entries(FEATURE_FLAG_ALIASES)[0];
|
|
157
|
+
if (!alias || !canonical)
|
|
158
|
+
throw new Error('no alias fixture');
|
|
159
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
160
|
+
[canonical]: { category: 'quiet', enabled: false, source: 'owner' },
|
|
161
|
+
[alias]: { category: 'quiet', enabled: true },
|
|
162
|
+
}));
|
|
163
|
+
// Canonical wins (existing PRI-609 precedence); the canonical entry's
|
|
164
|
+
// provenance is the one attached to the effective value.
|
|
165
|
+
expect(effective.config.features[canonical]?.enabled).toBe(false);
|
|
166
|
+
expect(effective.config.features[canonical]?.source).toBe('owner');
|
|
167
|
+
});
|
|
168
|
+
it('alias-only override normalizes onto the canonical ID with its source preserved', () => {
|
|
169
|
+
const [alias, canonical] = Object.entries(FEATURE_FLAG_ALIASES)[0];
|
|
170
|
+
if (!alias || !canonical)
|
|
171
|
+
throw new Error('no alias fixture');
|
|
172
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
173
|
+
[alias]: { category: 'quiet', enabled: false, source: 'owner' },
|
|
174
|
+
}));
|
|
175
|
+
expect(effective.config.features[canonical]?.enabled).toBe(false);
|
|
176
|
+
expect(effective.config.features[canonical]?.source).toBe('owner');
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
describe('PRI-637 system is an origin hint, never an auto-delete license', () => {
|
|
180
|
+
// Direct .pd/config.yaml editing is a supported path (the pd runtime init
|
|
181
|
+
// header tells Owners: "Edit to configure feature flags…"). A fresh-install
|
|
182
|
+
// entry ships { enabled: false, source: 'system' }; the Owner may edit the
|
|
183
|
+
// value in place, leaving source untouched. Provenance must never gate the
|
|
184
|
+
// value — the current `enabled` always wins regardless of label.
|
|
185
|
+
it('an Owner hand-edit on a system-origin entry is honored (system does not pin the value)', () => {
|
|
186
|
+
const id = 'gfi';
|
|
187
|
+
expect(DEFAULT_FEATURE_FLAGS[id]?.enabled).toBe(false);
|
|
188
|
+
// Simulate: installer wrote { enabled: false, source: 'system' }, then the
|
|
189
|
+
// Owner hand-edited enabled → true directly in config.yaml.
|
|
190
|
+
const effective = computeEffectivePdConfig(mkConfig({
|
|
191
|
+
[id]: { category: 'quiet', enabled: true, source: 'system' },
|
|
192
|
+
}));
|
|
193
|
+
expect(effective.config.features[id]?.enabled).toBe(true);
|
|
194
|
+
// The label still says 'system' — it records ORIGIN, not current intent.
|
|
195
|
+
expect(effective.config.features[id]?.source).toBe('system');
|
|
196
|
+
});
|
|
197
|
+
// Source-scan guard (mirrors installer-config-parity pattern): the canonical
|
|
198
|
+
// FEATURE_FLAG_SOURCES doc must keep the anti-auto-delete constraint. If the
|
|
199
|
+
// overclaim ("eligible for deterministic cleanup") is ever reintroduced, this
|
|
200
|
+
// fails loud instead of silently downgrading the contract.
|
|
201
|
+
it('contract comment forbids treating system as unconditionally auto-cleanable', () => {
|
|
202
|
+
const typesSource = readFileSync(new URL('../pd-config-types.ts', import.meta.url), 'utf8');
|
|
203
|
+
expect(typesSource).toContain('ORIGIN HINT ONLY');
|
|
204
|
+
expect(typesSource).toContain('NEVER an automatic');
|
|
205
|
+
expect(typesSource).not.toContain('eligible for deterministic cleanup');
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=pd-config-provenance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-config-provenance.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/config/__tests__/pd-config-provenance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Public API for the PD-owned config contract.
|
|
5
5
|
*/
|
|
6
|
-
export type { PdConfigVersion, FeatureCategory, FeatureFlagEntry, RuntimeProfileType, OpenClawRuntimeProfile, PdLocalRuntimeProfile, RuntimeProfile, InternalAgentName, InternalAgentBinding, InternalAgentsConfig, DiagnosticsMode, UiConfig, WorkspaceConfig, WorkspaceEnvironment, PrinciplesConfig, PdConfig, PdConfigValidationError, PdConfigValidationResultOk, PdConfigValidationResultErr, PdConfigValidationResult, EffectivePdConfig, RedactedRuntimeProfileSummary, RedactedAgentSummary, RedactedFeatureSummary, RedactedPdConfigSummary, ProfileAuditLevel, ProfileEvolutionMode, ProfileTestLevel, ProfileConfig, RedactedProfileSummary, ProjectFocusMode, EvolutionContextConfig, ContextInjectionConfig, PartialContextInjectionConfig, } from './pd-config-types.js';
|
|
6
|
+
export type { PdConfigVersion, FeatureCategory, FeatureFlagEntry, FeatureFlagSource, RuntimeProfileType, OpenClawRuntimeProfile, PdLocalRuntimeProfile, RuntimeProfile, InternalAgentName, InternalAgentBinding, InternalAgentsConfig, DiagnosticsMode, UiConfig, WorkspaceConfig, WorkspaceEnvironment, PrinciplesConfig, PdConfig, PdConfigValidationError, PdConfigValidationResultOk, PdConfigValidationResultErr, PdConfigValidationResult, EffectivePdConfig, RedactedRuntimeProfileSummary, RedactedAgentSummary, RedactedFeatureSummary, RedactedPdConfigSummary, ProfileAuditLevel, ProfileEvolutionMode, ProfileTestLevel, ProfileConfig, RedactedProfileSummary, ProjectFocusMode, EvolutionContextConfig, ContextInjectionConfig, PartialContextInjectionConfig, } from './pd-config-types.js';
|
|
7
7
|
export { PD_CONFIG_VERSION, VALID_FEATURE_CATEGORIES, VALID_PROFILE_TYPES, INTERNAL_AGENT_NAMES, VALID_DIAGNOSTICS_MODES, VALID_PROJECT_FOCUS_MODES, DANGEROUS_KEYS, WORKSPACE_ENVIRONMENTS, PROFILE_AUDIT_LEVELS, PROFILE_EVOLUTION_MODES, PROFILE_TEST_LEVELS, } from './pd-config-types.js';
|
|
8
8
|
export { validatePdConfig, } from './pd-config-validate.js';
|
|
9
9
|
export { validateProfileConfig, } from './pd-validate-profile.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EAEvB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EAEtB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EAEd,sBAAsB,EAEtB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EAEvB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EAEtB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EAEd,sBAAsB,EAEtB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2CH,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc;AACd,qCAAqC;AACrC,sBAAsB;AACtB,gBAAgB;AAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,aAAa;AACb,OAAO,EACL,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,+BAA+B;AAC/B,OAAO,EACL,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,6BAA6B;AAC7B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,WAAW;AACX,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY;AACZ,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAatC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-effective.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EAUvB,MAAM,sBAAsB,CAAC;AA6B9B;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"pd-config-effective.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EAUvB,MAAM,sBAAsB,CAAC;AA6B9B;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,CA+JnG"}
|
|
@@ -66,7 +66,11 @@ export function computeEffectivePdConfig(userConfig) {
|
|
|
66
66
|
// This deliberate override is honored with a warning so the disable is observable
|
|
67
67
|
// in logs/telemetry. Per-rule rollback remains `deactivate`.
|
|
68
68
|
if (defaultEntry.category === 'core' && !userEntry.enabled) {
|
|
69
|
-
features[flagId] = {
|
|
69
|
+
features[flagId] = {
|
|
70
|
+
category: userEntry.category,
|
|
71
|
+
enabled: false,
|
|
72
|
+
...(userEntry.source ? { source: userEntry.source } : {}),
|
|
73
|
+
};
|
|
70
74
|
warnings.push(`feature '${flagId}': core flag explicitly disabled via config (emergency disable)`);
|
|
71
75
|
featuresChangedFromDefault.push(flagId);
|
|
72
76
|
continue;
|
|
@@ -74,7 +78,11 @@ export function computeEffectivePdConfig(userConfig) {
|
|
|
74
78
|
if (userEntry.category !== defaultEntry.category || userEntry.enabled !== defaultEntry.enabled) {
|
|
75
79
|
featuresChangedFromDefault.push(flagId);
|
|
76
80
|
}
|
|
77
|
-
features[flagId] = {
|
|
81
|
+
features[flagId] = {
|
|
82
|
+
category: userEntry.category,
|
|
83
|
+
enabled: userEntry.enabled,
|
|
84
|
+
...(userEntry.source ? { source: userEntry.source } : {}),
|
|
85
|
+
};
|
|
78
86
|
}
|
|
79
87
|
else {
|
|
80
88
|
features[flagId] = { ...defaultEntry };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-effective.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pd-config-effective.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-effective.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* Replaces the old `.pd/feature-flags.yaml` computation.
|
|
6
6
|
* Feature flags now come from `.pd/config.yaml.features`.
|
|
7
7
|
*/
|
|
8
|
-
import { type EffectivePdConfig, type FeatureCategory } from './pd-config-types.js';
|
|
8
|
+
import { type EffectivePdConfig, type FeatureCategory, type FeatureFlagSource } from './pd-config-types.js';
|
|
9
9
|
export interface EffectiveFeatureFlag {
|
|
10
10
|
id: string;
|
|
11
11
|
category: FeatureCategory;
|
|
12
12
|
enabled: boolean;
|
|
13
|
+
/** PRI-637 override provenance ('owner' | 'system'); undefined = registry default or LEGACY_UNKNOWN. */
|
|
14
|
+
source?: FeatureFlagSource;
|
|
13
15
|
}
|
|
14
16
|
export interface FeatureFlagsResult {
|
|
15
17
|
flags: Record<string, EffectiveFeatureFlag>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-feature-flags.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"pd-config-feature-flags.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,wGAAwG;IACxG,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC5C,qCAAqC;IACrC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,eAAO,MAAM,eAAe,YAAI,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAU,CAAC;AAItF;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,CA8E9F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAItE"}
|
|
@@ -57,6 +57,7 @@ export function computeFeatureFlagsFromConfig(effective) {
|
|
|
57
57
|
id,
|
|
58
58
|
category: defaultFlag.category,
|
|
59
59
|
enabled: false,
|
|
60
|
+
...(userEntry.source ? { source: userEntry.source } : {}),
|
|
60
61
|
};
|
|
61
62
|
continue;
|
|
62
63
|
}
|
|
@@ -64,6 +65,7 @@ export function computeFeatureFlagsFromConfig(effective) {
|
|
|
64
65
|
id,
|
|
65
66
|
category: userEntry.category,
|
|
66
67
|
enabled: userEntry.enabled,
|
|
68
|
+
...(userEntry.source ? { source: userEntry.source } : {}),
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-feature-flags.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"pd-config-feature-flags.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-feature-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,13 @@ export declare const PD_CONFIG_VERSION = 1;
|
|
|
13
13
|
export type PdConfigVersion = 1;
|
|
14
14
|
export declare const VALID_FEATURE_CATEGORIES: readonly ['core', 'quiet', 'gone', 'legacy_retire'];
|
|
15
15
|
export type FeatureCategory = (typeof VALID_FEATURE_CATEGORIES)[number];
|
|
16
|
+
export declare const FEATURE_FLAG_SOURCES: readonly ['owner', 'system'];
|
|
17
|
+
export type FeatureFlagSource = (typeof FEATURE_FLAG_SOURCES)[number];
|
|
16
18
|
export interface FeatureFlagEntry {
|
|
17
19
|
category: FeatureCategory;
|
|
18
20
|
enabled: boolean;
|
|
21
|
+
/** PRI-637 override provenance. Absent = LEGACY_UNKNOWN. */
|
|
22
|
+
source?: FeatureFlagSource;
|
|
19
23
|
}
|
|
20
24
|
export declare const VALID_PROFILE_TYPES: readonly ['openclaw', 'pi-ai'];
|
|
21
25
|
export type RuntimeProfileType = (typeof VALID_PROFILE_TYPES)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC;AAIhC,eAAO,MAAM,wBAAwB,YAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAU,CAAC;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,29 @@
|
|
|
13
13
|
export const PD_CONFIG_VERSION = 1;
|
|
14
14
|
// ── Feature Flag Category ───────────────────────────────────────────────────
|
|
15
15
|
export const VALID_FEATURE_CATEGORIES = ['core', 'quiet', 'gone', 'legacy_retire'];
|
|
16
|
+
// ── Feature Flag Override Source (PRI-637) ──────────────────────────────────
|
|
17
|
+
//
|
|
18
|
+
// Provenance of a feature flag override entry in `.pd/config.yaml`. This is
|
|
19
|
+
// the minimal fact needed for lifecycle decisions — no setBy/setAt/version.
|
|
20
|
+
//
|
|
21
|
+
// - `owner` — an authenticated Owner action created/edited this override
|
|
22
|
+
// (currently the Console feature-flag toggle). STRONG signal: the
|
|
23
|
+
// only value backed by machine evidence of Owner intent.
|
|
24
|
+
// Graduation / cleanup must never remove it.
|
|
25
|
+
// - `system` — PD machinery originally created this override (installer
|
|
26
|
+
// template, `pd runtime init`, host-flag migration). It is an
|
|
27
|
+
// ORIGIN HINT ONLY: it does NOT prove the current value was not
|
|
28
|
+
// later edited by an Owner. Direct `.pd/config.yaml` editing is a
|
|
29
|
+
// supported path ("Edit to configure feature flags…"), so a
|
|
30
|
+
// system entry may carry Owner intent by the time it is read.
|
|
31
|
+
// Normalization keyed on this label therefore requires preview /
|
|
32
|
+
// explicit Owner confirmation — it is NEVER an automatic
|
|
33
|
+
// deterministic-delete license.
|
|
34
|
+
// - absent — LEGACY_UNKNOWN. The entry predates provenance. Per PRI-637 it
|
|
35
|
+
// MUST NOT be auto-normalized or guessed from its boolean alone:
|
|
36
|
+
// preserve uncertainty instead of inventing provenance. An
|
|
37
|
+
// explicit future Owner action converts it to `owner`.
|
|
38
|
+
export const FEATURE_FLAG_SOURCES = ['owner', 'system'];
|
|
16
39
|
// ── Runtime Profile Types ───────────────────────────────────────────────────
|
|
17
40
|
export const VALID_PROFILE_TYPES = ['openclaw', 'pi-ai'];
|
|
18
41
|
// ── Internal Agent Names ────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAU,CAAC;AAG5F,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,sEAAsE;AACtE,0DAA0D;AAC1D,wEAAwE;AACxE,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,sEAAsE;AACtE,6CAA6C;AAC7C,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAYjE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AA8ClE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,iBAAiB;CACT,CAAC;AAuBX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAoCvE,6HAA6H;AAC7H,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAG7F,gFAAgF;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAGvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AAGtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AA+DtE,qEAAqE;AAErE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAsI7E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-config-validate.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"pd-config-validate.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,wBAAwB,EA6B9B,MAAM,sBAAsB,CAAC;AA4kB9B;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,CAwLvE"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Missing/malformed required fields fail loud (ERR-009, ERR-010).
|
|
8
8
|
* Non-boolean enabled fields fail loud (ERR-047).
|
|
9
9
|
*/
|
|
10
|
-
import { WORKSPACE_ENVIRONMENTS, PD_CONFIG_VERSION, VALID_FEATURE_CATEGORIES, VALID_PROFILE_TYPES, INTERNAL_AGENT_NAMES, VALID_DIAGNOSTICS_MODES, VALID_PROJECT_FOCUS_MODES, DANGEROUS_KEYS, } from './pd-config-types.js';
|
|
10
|
+
import { WORKSPACE_ENVIRONMENTS, PD_CONFIG_VERSION, VALID_FEATURE_CATEGORIES, FEATURE_FLAG_SOURCES, VALID_PROFILE_TYPES, INTERNAL_AGENT_NAMES, VALID_DIAGNOSTICS_MODES, VALID_PROJECT_FOCUS_MODES, DANGEROUS_KEYS, } from './pd-config-types.js';
|
|
11
11
|
import { validateProfileConfig } from './pd-validate-profile.js';
|
|
12
12
|
import { VALID_OUTPUT_LANGUAGES, isValidOutputLanguage } from '../language-directive.js';
|
|
13
13
|
// ── Helpers ─────────────────────────────────────────────────────────────────
|
|
@@ -70,6 +70,14 @@ function validateFeatureFlagEntry(raw, path, flagId) {
|
|
|
70
70
|
else if (!isBoolean(enabledRaw)) {
|
|
71
71
|
errors.push(err(`${path}.enabled`, `feature '${flagId}' enabled must be boolean, got ${typeof enabledRaw}`, `Change enabled of feature '${flagId}' to true or false`));
|
|
72
72
|
}
|
|
73
|
+
// PRI-637: optional provenance. Absent is legal (LEGACY_UNKNOWN); a present
|
|
74
|
+
// value must be a registered source so typos fail loud instead of silently
|
|
75
|
+
// creating an unclassifiable override.
|
|
76
|
+
const sourceRaw = readOwn(raw, 'source');
|
|
77
|
+
if (sourceRaw !== undefined
|
|
78
|
+
&& (typeof sourceRaw !== 'string' || !FEATURE_FLAG_SOURCES.includes(sourceRaw))) {
|
|
79
|
+
errors.push(err(`${path}.source`, `feature '${flagId}' source must be one of: ${FEATURE_FLAG_SOURCES.join(', ')}, got ${safePreview(sourceRaw)}`, `Set source to one of: ${FEATURE_FLAG_SOURCES.join(', ')}, or remove it (legacy override)`));
|
|
80
|
+
}
|
|
73
81
|
if (errors.length > 0) {
|
|
74
82
|
return { ok: false, errors };
|
|
75
83
|
}
|
|
@@ -78,6 +86,9 @@ function validateFeatureFlagEntry(raw, path, flagId) {
|
|
|
78
86
|
value: {
|
|
79
87
|
category: categoryRaw,
|
|
80
88
|
enabled: enabledRaw,
|
|
89
|
+
...(sourceRaw !== undefined && typeof sourceRaw === 'string' && FEATURE_FLAG_SOURCES.includes(sourceRaw)
|
|
90
|
+
? { source: sourceRaw }
|
|
91
|
+
: {}),
|
|
81
92
|
},
|
|
82
93
|
};
|
|
83
94
|
}
|