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.
Files changed (33) hide show
  1. package/console/dist/server/config/pd-config-store.js +23 -11
  2. package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts +24 -0
  3. package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.d.ts.map +1 -0
  4. package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js +208 -0
  5. package/core/dist/runtime-v2/config/__tests__/pd-config-provenance.test.js.map +1 -0
  6. package/core/dist/runtime-v2/config/index.d.ts +1 -1
  7. package/core/dist/runtime-v2/config/index.d.ts.map +1 -1
  8. package/core/dist/runtime-v2/config/index.js.map +1 -1
  9. package/core/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
  10. package/core/dist/runtime-v2/config/pd-config-effective.js +10 -2
  11. package/core/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
  12. package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts +3 -1
  13. package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -1
  14. package/core/dist/runtime-v2/config/pd-config-feature-flags.js +2 -0
  15. package/core/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -1
  16. package/core/dist/runtime-v2/config/pd-config-types.d.ts +4 -0
  17. package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  18. package/core/dist/runtime-v2/config/pd-config-types.js +23 -0
  19. package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  20. package/core/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
  21. package/core/dist/runtime-v2/config/pd-config-validate.js +12 -1
  22. package/core/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
  23. package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js +4 -3
  24. package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js.map +1 -1
  25. package/dist/mvp-config.d.ts.map +1 -1
  26. package/dist/mvp-config.js +30 -20
  27. package/dist/mvp-config.js.map +1 -1
  28. package/package.json +1 -1
  29. package/pd-cli/dist/commands/runtime-init.d.ts.map +1 -1
  30. package/pd-cli/dist/commands/runtime-init.js +12 -1
  31. package/pd-cli/dist/commands/runtime-init.js.map +1 -1
  32. package/plugin/dist/bundle.js +384 -384
  33. 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 — seed with defaults from the registered flag set so the
818
- // subsequent validatePdConfig passes (it requires prompt/code_tool_hook /
819
- // defer_archive as registered flags). Computed once at module load.
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
- existingFeatures[featureName] = { category, enabled };
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;AA0CH,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
+ {"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,CAuJnG"}
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] = { category: userEntry.category, enabled: false };
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] = { category: userEntry.category, enabled: userEntry.enabled };
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,EAErB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;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,CA4E9F;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"}
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":"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"}
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":"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"}
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;AAU5F,+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
+ {"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,EA2B9B,MAAM,sBAAsB,CAAC;AA8jB9B;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,CAwLvE"}
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
  }