create-principles-disciple 1.145.29 → 1.145.32

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 (95) hide show
  1. package/_release/product-identity.json +2 -2
  2. package/core/dist/index.d.ts +1 -1
  3. package/core/dist/index.d.ts.map +1 -1
  4. package/core/dist/prompt-builder/index.d.ts +1 -3
  5. package/core/dist/prompt-builder/index.d.ts.map +1 -1
  6. package/core/dist/prompt-builder/index.js +0 -1
  7. package/core/dist/prompt-builder/index.js.map +1 -1
  8. package/core/dist/prompt-builder/size-guard.d.ts +3 -4
  9. package/core/dist/prompt-builder/size-guard.d.ts.map +1 -1
  10. package/core/dist/prompt-builder/size-guard.js +7 -25
  11. package/core/dist/prompt-builder/size-guard.js.map +1 -1
  12. package/core/dist/prompt-builder/types.d.ts +1 -7
  13. package/core/dist/prompt-builder/types.d.ts.map +1 -1
  14. package/core/dist/runtime-v2/index.d.ts +0 -3
  15. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  16. package/core/dist/runtime-v2/index.js +0 -4
  17. package/core/dist/runtime-v2/index.js.map +1 -1
  18. package/core/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
  19. package/core/dist/runtime-v2/recovery-actions-log.js +2 -3
  20. package/core/dist/runtime-v2/recovery-actions-log.js.map +1 -1
  21. package/core/package.json +1 -1
  22. package/dist/installer.d.ts +16 -0
  23. package/dist/installer.d.ts.map +1 -1
  24. package/dist/installer.js +49 -13
  25. package/dist/installer.js.map +1 -1
  26. package/host-runtime/dist/active-principle-prompt.d.ts +1 -9
  27. package/host-runtime/dist/active-principle-prompt.js +10 -22
  28. package/host-runtime/dist/index.d.ts +0 -1
  29. package/host-runtime/dist/index.js +0 -1
  30. package/host-runtime/dist/prompt-injection-projection.d.ts +0 -7
  31. package/host-runtime/dist/prompt-injection-projection.js +0 -5
  32. package/host-runtime/package.json +1 -1
  33. package/package.json +2 -2
  34. package/pd-cli/dist/commands/health-codex-install.d.ts +0 -12
  35. package/pd-cli/dist/commands/health-codex-install.d.ts.map +1 -1
  36. package/pd-cli/dist/commands/health-codex-install.js +8 -90
  37. package/pd-cli/dist/commands/health-codex-install.js.map +1 -1
  38. package/pd-cli/dist/commands/runtime-pruning.d.ts +0 -18
  39. package/pd-cli/dist/commands/runtime-pruning.d.ts.map +1 -1
  40. package/pd-cli/dist/commands/runtime-pruning.js +1 -117
  41. package/pd-cli/dist/commands/runtime-pruning.js.map +1 -1
  42. package/pd-cli/dist/commands/version.d.ts +5 -0
  43. package/pd-cli/dist/commands/version.d.ts.map +1 -1
  44. package/pd-cli/dist/commands/version.js +27 -5
  45. package/pd-cli/dist/commands/version.js.map +1 -1
  46. package/pd-cli/dist/index.js +1 -37
  47. package/pd-cli/dist/index.js.map +1 -1
  48. package/pd-cli/dist/services/codex-plugin-install.d.ts +66 -0
  49. package/pd-cli/dist/services/codex-plugin-install.d.ts.map +1 -0
  50. package/pd-cli/dist/services/codex-plugin-install.js +168 -0
  51. package/pd-cli/dist/services/codex-plugin-install.js.map +1 -0
  52. package/pd-cli/dist/services/delivery-surfaces.d.ts +48 -0
  53. package/pd-cli/dist/services/delivery-surfaces.d.ts.map +1 -0
  54. package/pd-cli/dist/services/delivery-surfaces.js +387 -0
  55. package/pd-cli/dist/services/delivery-surfaces.js.map +1 -0
  56. package/pd-cli/dist/services/pain-recall.d.ts +79 -0
  57. package/pd-cli/dist/services/pain-recall.d.ts.map +1 -1
  58. package/pd-cli/dist/services/pain-recall.js +295 -12
  59. package/pd-cli/dist/services/pain-recall.js.map +1 -1
  60. package/pd-cli/package.json +1 -1
  61. package/plugin/dist/bundle.js +439 -449
  62. package/plugin/dist/core/evolution-reducer.d.ts +0 -2
  63. package/plugin/dist/core/session-tracker.d.ts +0 -4
  64. package/plugin/dist/core/workspace-context.d.ts +0 -8
  65. package/plugin/dist/hooks/after-tool-call-helpers.d.ts +0 -7
  66. package/plugin/dist/hooks/pain.d.ts +3 -4
  67. package/plugin/dist/hooks/prompt-helpers.d.ts +2 -12
  68. package/plugin/dist/hooks/prompt-types.d.ts +0 -4
  69. package/plugin/dist/hooks/prompt.d.ts +1 -11
  70. package/plugin/dist/host-runtime/openclaw-host-runtime.d.ts +0 -1
  71. package/plugin/dist/openclaw.plugin.json +1 -1
  72. package/plugin/openclaw.plugin.json +1 -1
  73. package/plugin/package.json +4 -26
  74. package/release-manager/dist/installer.d.ts +16 -0
  75. package/release-manager/dist/installer.d.ts.map +1 -1
  76. package/release-manager/dist/installer.js +49 -13
  77. package/release-manager/dist/installer.js.map +1 -1
  78. package/release-manager/package.json +2 -2
  79. package/workbuddy-adapter/package.json +1 -1
  80. package/workbuddy-adapter/plugin/.codebuddy-plugin/plugin.json +1 -1
  81. package/workbuddy-adapter/plugin/hooks/hooks.json +1 -1
  82. package/workbuddy-adapter/plugin/scripts/wrapper.cjs +68 -4
  83. package/core/dist/prompt-builder/principle-selection.d.ts +0 -68
  84. package/core/dist/prompt-builder/principle-selection.d.ts.map +0 -1
  85. package/core/dist/prompt-builder/principle-selection.js +0 -140
  86. package/core/dist/prompt-builder/principle-selection.js.map +0 -1
  87. package/core/dist/runtime-v2/pruning-mask.d.ts +0 -27
  88. package/core/dist/runtime-v2/pruning-mask.d.ts.map +0 -1
  89. package/core/dist/runtime-v2/pruning-mask.js +0 -59
  90. package/core/dist/runtime-v2/pruning-mask.js.map +0 -1
  91. package/core/dist/runtime-v2/pruning-review-log.d.ts +0 -41
  92. package/core/dist/runtime-v2/pruning-review-log.d.ts.map +0 -1
  93. package/core/dist/runtime-v2/pruning-review-log.js +0 -106
  94. package/core/dist/runtime-v2/pruning-review-log.js.map +0 -1
  95. package/plugin/dist/core/principle-injection.d.ts +0 -10
@@ -9,10 +9,6 @@ export interface ActivePrinciplePromptResult {
9
9
  warnings: string[];
10
10
  budget: number;
11
11
  truncated: boolean;
12
- excludedPrincipleIds: string[];
13
- excludedCount: number;
14
- exclusionReason?: 'host_principle_overlap';
15
- allValidatedPrinciplesExcluded: boolean;
16
12
  /** PRI-904: budget-packing policy that produced this selection. */
17
13
  selectionPolicy?: PromptSelectionPolicy;
18
14
  /** PRI-904: candidates that reached the budget selector. */
@@ -40,7 +36,6 @@ export interface ActivePrinciplePromptResult {
40
36
  }
41
37
  export interface PromptActivationCandidates {
42
38
  principles: ActivatedPrinciple[];
43
- excludedPrincipleIds: string[];
44
39
  warnings: string[];
45
40
  /** true = prompt flag off or state.db missing — candidates are necessarily empty */
46
41
  aborted: boolean;
@@ -50,16 +45,13 @@ export interface PromptActivationCandidates {
50
45
  /**
51
46
  * PR #1844 follow-up: the activation READ half of buildActivePrinciplePromptContext,
52
47
  * exported so the console budget projection can share the exact same input
53
- * selection (FIFO activations → artifact resolve → exclude partition) without
54
- * duplicating logic.
48
+ * selection (FIFO activations → artifact resolve) without duplicating logic.
55
49
  */
56
50
  export declare function readPromptActivationCandidates(input: {
57
51
  workspaceDir: string;
58
- excludePrincipleIds?: ReadonlySet<string>;
59
52
  }): Promise<PromptActivationCandidates>;
60
53
  export declare function buildActivePrinciplePromptContext(input: {
61
54
  workspaceDir: string;
62
- excludePrincipleIds?: ReadonlySet<string>;
63
55
  /**
64
56
  * PRI-904 fair-rotation round key (derive via roundKeyFromRunIdentity from
65
57
  * the host run/turn id). Absent → legacy FIFO prefix policy (rollback /
@@ -8,13 +8,11 @@ export const MAX_SHARED_DIAGNOSTIC_IDS = 16;
8
8
  /**
9
9
  * PR #1844 follow-up: the activation READ half of buildActivePrinciplePromptContext,
10
10
  * exported so the console budget projection can share the exact same input
11
- * selection (FIFO activations → artifact resolve → exclude partition) without
12
- * duplicating logic.
11
+ * selection (FIFO activations → artifact resolve) without duplicating logic.
13
12
  */
14
13
  export async function readPromptActivationCandidates(input) {
15
14
  const warnings = [];
16
15
  const principles = [];
17
- const excludedPrincipleIds = [];
18
16
  const config = loadPdConfigForPlugin(input.workspaceDir);
19
17
  if (!config.ok) {
20
18
  warnings.push(...config.errors.map((error) => `config_invalid: ${error.reason}; nextAction=${error.nextAction}`));
@@ -24,7 +22,7 @@ export async function readPromptActivationCandidates(input) {
24
22
  const abstractionLayerEnabled = flags.abstraction_layer_v1?.enabled === true;
25
23
  if (!promptFlag?.enabled) {
26
24
  warnings.push('prompt_feature_disabled; nextAction=set features.prompt.enabled=true in .pd/config.yaml');
27
- return { principles, excludedPrincipleIds, warnings, aborted: true, selfReportEnabled: false, abstractionLayerEnabled };
25
+ return { principles, warnings, aborted: true, selfReportEnabled: false, abstractionLayerEnabled };
28
26
  }
29
27
  // PRI-532: agent self-report instruction rides the directive template when
30
28
  // the flag is on (flag-off keeps the template byte-identical).
@@ -33,7 +31,7 @@ export async function readPromptActivationCandidates(input) {
33
31
  const stateDbPath = path.join(input.workspaceDir, '.pd', 'state.db');
34
32
  if (!fs.existsSync(stateDbPath)) {
35
33
  warnings.push('activation_db_not_found; nextAction=initialize_workspace_runtime_state');
36
- return { principles, excludedPrincipleIds, warnings, aborted: true, selfReportEnabled, abstractionLayerEnabled };
34
+ return { principles, warnings, aborted: true, selfReportEnabled, abstractionLayerEnabled };
37
35
  }
38
36
  try {
39
37
  connection = new SqliteConnection({ workspaceDir: input.workspaceDir, readonly: true, bootstrapIfMissing: false });
@@ -63,12 +61,7 @@ export async function readPromptActivationCandidates(input) {
63
61
  warnings.push(resolved.warning);
64
62
  continue;
65
63
  }
66
- if (input.excludePrincipleIds?.has(resolved.principle.principleId)) {
67
- excludedPrincipleIds.push(resolved.principle.principleId);
68
- }
69
- else {
70
- principles.push(resolved.principle);
71
- }
64
+ principles.push(resolved.principle);
72
65
  }
73
66
  }
74
67
  catch (error) {
@@ -78,19 +71,18 @@ export async function readPromptActivationCandidates(input) {
78
71
  finally {
79
72
  connection?.close();
80
73
  }
81
- return { principles, excludedPrincipleIds, warnings, aborted: false, selfReportEnabled, abstractionLayerEnabled };
74
+ return { principles, warnings, aborted: false, selfReportEnabled, abstractionLayerEnabled };
82
75
  }
83
76
  export async function buildActivePrinciplePromptContext(input) {
84
77
  // One resolution per request (SPEC §6.1): the caller's pre-resolved budget
85
78
  // or the fixed-fallback default — never a per-line constant read.
86
79
  const promptBudget = input.promptBudget ?? resolvePromptBudget();
87
80
  const { budgetChars } = promptBudget;
88
- const { principles, excludedPrincipleIds, warnings, aborted, selfReportEnabled } = await readPromptActivationCandidates(input);
81
+ const { principles, warnings, aborted, selfReportEnabled } = await readPromptActivationCandidates(input);
89
82
  if (aborted) {
90
83
  return {
91
84
  additionalContext: '', principleIds: [], activationIds: [], artifactIds: [], warnings,
92
- budget: budgetChars, truncated: false, excludedPrincipleIds,
93
- excludedCount: excludedPrincipleIds.length, allValidatedPrinciplesExcluded: false,
85
+ budget: budgetChars, truncated: false,
94
86
  selectionPolicy: 'legacy_fifo_prefix_v1', eligibleCount: 0,
95
87
  budgetCapacitySource: promptBudget.capacitySource,
96
88
  budgetCapacityStatus: promptBudget.capacityStatus,
@@ -110,9 +102,9 @@ export async function buildActivePrinciplePromptContext(input) {
110
102
  const { roundKey } = input;
111
103
  const selectionPolicy = roundKey === undefined || principles.length === 0 ? 'legacy_fifo_prefix_v1' : 'fair_rotation_v1';
112
104
  const n = principles.length;
113
- // Guard on the policy, not just the key: an all-excluded candidate list has
114
- // n === 0 and must not emit a NaN start (core trimToBudget omits the field
115
- // for empty input — parity requires the same here).
105
+ // Guard on the policy, not just the key: an empty candidate list has n === 0
106
+ // and must not emit a NaN start (core trimToBudget omits the field for empty
107
+ // input — parity requires the same here).
116
108
  const rotationStartIndex = selectionPolicy === 'fair_rotation_v1' && roundKey !== undefined
117
109
  ? ((roundKey % n) + n) % n
118
110
  : undefined;
@@ -156,10 +148,6 @@ export async function buildActivePrinciplePromptContext(input) {
156
148
  warnings,
157
149
  budget: budgetChars,
158
150
  truncated,
159
- excludedPrincipleIds,
160
- excludedCount: excludedPrincipleIds.length,
161
- allValidatedPrinciplesExcluded: excludedPrincipleIds.length > 0 && principles.length === 0,
162
- ...(excludedPrincipleIds.length > 0 ? { exclusionReason: 'host_principle_overlap' } : {}),
163
151
  selectionPolicy,
164
152
  eligibleCount: principles.length,
165
153
  ...(rotationStartIndex !== undefined ? { rotationStartIndex } : {}),
@@ -63,7 +63,6 @@ export declare function createHostRuntime(options: HostRuntimeOptions): HostRunt
63
63
  export declare function createProductionHostRuntime(options?: Partial<Pick<HostRuntimeOptions, 'afterToolCall'>> & {
64
64
  beforeToolCall?: HostRuntimePort;
65
65
  beforePromptBuild?: (event: HostEvent, prompt: Awaited<ReturnType<typeof buildActivePrinciplePromptContext>>) => HostEventResult | Promise<HostEventResult>;
66
- promptExcludePrincipleIds?: (event: HostEvent) => ReadonlySet<string>;
67
66
  ruleContextProvider?: RuleContextProvider;
68
67
  ruleInputEnrichmentProvider?: RuleInputEnrichmentProvider;
69
68
  ruleImplementationRuntime?: RuleImplementationRuntime;
@@ -225,7 +225,6 @@ export function createProductionHostRuntime(options = {}) {
225
225
  : operatorDeclaredContextWindow(loadPdConfigForPlugin(event.context.workspaceDir).effective.config.promptBudget, promptBudgetHostKind);
226
226
  const prompt = await buildActivePrinciplePromptContext({
227
227
  workspaceDir: event.context.workspaceDir,
228
- excludePrincipleIds: options.promptExcludePrincipleIds?.(event),
229
228
  promptBudget: resolvePromptBudget({
230
229
  // SPEC-PD-MODEL-AWARE-PROMPT-BUDGET-001: resolve ONCE per request
231
230
  // from the host's own hook facts (OpenClaw effective window /
@@ -174,11 +174,6 @@ export interface PromptInjectionProjection {
174
174
  * `resolveLivePromptInjectionProjection`, which binds the route to real host
175
175
  * facts and refuses to guess).
176
176
  *
177
- * Known conservative gap: the plugin's legacy route additionally dedups
178
- * candidates against the legacy evolution ledger before trimming; the
179
- * console cannot replay that reducer read-only, so this projection may
180
- * forecast slightly MORE consumption than the real injection (never less).
181
- *
182
177
  * PR-1894 — round-key alignment. The plugin derives its fair-rotation round
183
178
  * key from the CURRENT session's turn ordinal (`nextSessionTurnOrdinal`),
184
179
  * which the console has no access to. Passing no key therefore does NOT make
@@ -190,7 +185,6 @@ export interface PromptInjectionProjection {
190
185
  */
191
186
  export declare function buildLivePromptInjectionProjection(input: {
192
187
  workspaceDir: string;
193
- excludePrincipleIds?: ReadonlySet<string>;
194
188
  /**
195
189
  * PR-1894: the fair-rotation round key the production route is using this
196
190
  * turn. Callers that hold one (the plugin) pass it; callers that do not
@@ -230,7 +224,6 @@ export type LivePromptInjectionProjectionResolution = {
230
224
  export declare function resolveLivePromptInjectionProjection(input: {
231
225
  workspaceDir: string;
232
226
  targetHost?: PromptInjectionTargetHost;
233
- excludePrincipleIds?: ReadonlySet<string>;
234
227
  roundKey?: number;
235
228
  /**
236
229
  * SPEC-PD-MODEL-AWARE-PROMPT-BUDGET-001 §6.1 / PRI-1017: budget resolution
@@ -208,11 +208,6 @@ function isDiagnosticCapHit(ids) {
208
208
  * `resolveLivePromptInjectionProjection`, which binds the route to real host
209
209
  * facts and refuses to guess).
210
210
  *
211
- * Known conservative gap: the plugin's legacy route additionally dedups
212
- * candidates against the legacy evolution ledger before trimming; the
213
- * console cannot replay that reducer read-only, so this projection may
214
- * forecast slightly MORE consumption than the real injection (never less).
215
- *
216
211
  * PR-1894 — round-key alignment. The plugin derives its fair-rotation round
217
212
  * key from the CURRENT session's turn ordinal (`nextSessionTurnOrdinal`),
218
213
  * which the console has no access to. Passing no key therefore does NOT make
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/host-runtime",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
4
4
  "description": "Shared host-neutral orchestration for Principles Disciple MVP-Core hook paths.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-principles-disciple",
3
- "version": "1.145.29",
3
+ "version": "1.145.32",
4
4
  "description": "Interactive CLI installer for Principles Disciple OpenClaw plugin",
5
5
  "type": "module",
6
6
  "bin": {
@@ -89,6 +89,6 @@
89
89
  "directory": "packages/create-principles-disciple"
90
90
  },
91
91
  "pd": {
92
- "bundledPluginVersion": "2.2.4"
92
+ "bundledPluginVersion": "2.2.6"
93
93
  }
94
94
  }
@@ -58,18 +58,6 @@ export declare const CODEX_INSTALL_NEXT_ACTIONS: {
58
58
  readonly versionUnreadable: 'The installed runtime and/or the marketplace pin exists but its version string is unreadable. Reinstall the plugin and re-run $pd-control setup so versions can be verified.';
59
59
  readonly unverifiedCli: 'The Codex CLI is newer than the verified ingestion contract of this PD release. Update PD (the release whose adapter verifies this Codex version); conversation ingestion stays off until then. Hook enforcement surfaces are separate and unaffected.';
60
60
  };
61
- /** A3: pick the plugin cache version Codex would use. Codex keeps plugin
62
- * versions in semver-named directories (observed: `0.1.0`); when several
63
- * exist, the highest semver is the live candidate; non-semver directories
64
- * are ignored rather than guessed. Returns null when nothing usable exists. */
65
- export declare function selectMarketplaceCacheVersionDir(codexHome: string, fsMod?: Pick<typeof fs, 'existsSync' | 'readdirSync' | 'readFileSync'>): {
66
- dirName: string;
67
- pin: {
68
- codexAdapter?: string;
69
- hostRuntime?: string;
70
- core?: string;
71
- };
72
- } | null;
73
61
  /** A4: CURRENT CLI version probe placeholder. A direct `codex --version`
74
62
  * spawn is prohibited by the security write-gate in this file (spawnSync +
75
63
  * shell flag pattern-matches as command injection). Until a safe
@@ -1 +1 @@
1
- {"version":3,"file":"health-codex-install.d.ts","sourceRoot":"","sources":["../../src/commands/health-codex-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAC1B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,gBAAgB,CAAC;IAC9B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,+HAA+H;IAC/H,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sIAAsI;IACtI,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6HAA6H;IAC7H,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wFAAwF;IACxF,SAAS,EAAE,cAAc,CAAC;IAC1B,eAAe,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC;CAC1D,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,0BAA0B;aACrC,YAAY,EACV,iNAAiN;aACnN,cAAc,EACZ,mLAAmL;aACrL,cAAc,EACZ,gOAAgO;aAClO,iBAAiB,EACf,8KAA8K;aAChL,aAAa,EACX,wPAAwP;CAClP,CAAC;AAoBX;;;gFAGgF;AAChF,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,GAAG,aAAa,GAAG,cAAc,CAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,CAsB/O;AAED;;;;;8DAK8D;AAE9D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,GAAE,MAAqB,EAAE,IAAI,GAAE;IACrG,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;IAC5H,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,kBAAkB,CAwF1B"}
1
+ {"version":3,"file":"health-codex-install.d.ts","sourceRoot":"","sources":["../../src/commands/health-codex-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAWzB,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAC1B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,gBAAgB,CAAC;IAC9B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,+HAA+H;IAC/H,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sIAAsI;IACtI,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6HAA6H;IAC7H,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wFAAwF;IACxF,SAAS,EAAE,cAAc,CAAC;IAC1B,eAAe,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC;CAC1D,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,0BAA0B;aACrC,YAAY,EACV,iNAAiN;aACnN,cAAc,EACZ,mLAAmL;aACrL,cAAc,EACZ,gOAAgO;aAClO,iBAAiB,EACf,8KAA8K;aAChL,aAAa,EACX,wPAAwP;CAClP,CAAC;AAEX;;;;;8DAK8D;AAE9D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,GAAE,MAAqB,EAAE,IAAI,GAAE;IACrG,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;IAC5H,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,kBAAkB,CAkE1B"}
@@ -32,6 +32,7 @@ import * as fs from 'fs';
32
32
  import * as os from 'os';
33
33
  import * as path from 'path';
34
34
  import { classifyCodexVersion } from '@principles/codex-adapter';
35
+ import { findNewestRolloutFile, readInstalledCodexRuntime, resolveCodexHome, selectMarketplaceCacheVersionDir, } from '../services/codex-plugin-install.js';
35
36
  export const CODEX_INSTALL_NEXT_ACTIONS = {
36
37
  staleInstall: 'Refresh the plugin cache (`codex plugin remove principles-disciple@principles && codex plugin add principles-disciple@principles`) and re-run the $pd-control setup skill so the pinned runtime is reinstalled.',
37
38
  missingRuntime: 'Run the $pd-control setup skill in this workspace (or `codex plugin add principles-disciple@principles` first if the plugin cache is missing) so the pinned runtime is installed.',
@@ -39,57 +40,6 @@ export const CODEX_INSTALL_NEXT_ACTIONS = {
39
40
  versionUnreadable: 'The installed runtime and/or the marketplace pin exists but its version string is unreadable. Reinstall the plugin and re-run $pd-control setup so versions can be verified.',
40
41
  unverifiedCli: 'The Codex CLI is newer than the verified ingestion contract of this PD release. Update PD (the release whose adapter verifies this Codex version); conversation ingestion stays off until then. Hook enforcement surfaces are separate and unaffected.',
41
42
  };
42
- function parseSemverLoose(value) {
43
- const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(value.trim());
44
- if (!match)
45
- return null;
46
- const major = Number.parseInt(match[1] ?? '', 10);
47
- const minor = Number.parseInt(match[2] ?? '', 10);
48
- const patch = Number.parseInt(match[3] ?? '', 10);
49
- if (![major, minor, patch].every((n) => Number.isFinite(n)))
50
- return null;
51
- return { major, minor, patch };
52
- }
53
- function compareSemverLoose(a, b) {
54
- if (a.major !== b.major)
55
- return a.major - b.major;
56
- if (a.minor !== b.minor)
57
- return a.minor - b.minor;
58
- return a.patch - b.patch;
59
- }
60
- /** A3: pick the plugin cache version Codex would use. Codex keeps plugin
61
- * versions in semver-named directories (observed: `0.1.0`); when several
62
- * exist, the highest semver is the live candidate; non-semver directories
63
- * are ignored rather than guessed. Returns null when nothing usable exists. */
64
- export function selectMarketplaceCacheVersionDir(codexHome, fsMod = fs) {
65
- const cachePluginRoot = path.join(codexHome, 'plugins', 'cache', 'principles', 'principles-disciple');
66
- let candidates = [];
67
- try {
68
- for (const dirName of fsMod.readdirSync(cachePluginRoot)) {
69
- const pinPath = path.join(cachePluginRoot, dirName, 'runtime-version.json');
70
- if (!fsMod.existsSync(pinPath))
71
- continue;
72
- const semver = parseSemverLoose(dirName);
73
- if (!semver)
74
- continue; // A3: ignore non-semver directory names instead of guessing
75
- try {
76
- const pin = JSON.parse(fsMod.readFileSync(pinPath, 'utf8'));
77
- candidates.push({ dirName, semver, pin });
78
- }
79
- catch { /* unreadable pin — skip this candidate */ }
80
- }
81
- }
82
- catch {
83
- return null; // cache root absent/unreadable
84
- }
85
- if (candidates.length === 0)
86
- return null;
87
- candidates.sort((a, b) => compareSemverLoose(b.semver, a.semver));
88
- const best = candidates.shift();
89
- if (!best)
90
- return null;
91
- return { dirName: best.dirName, pin: best.pin };
92
- }
93
43
  /** A4: CURRENT CLI version probe placeholder. A direct `codex --version`
94
44
  * spawn is prohibited by the security write-gate in this file (spawnSync +
95
45
  * shell flag pattern-matches as command injection). Until a safe
@@ -98,20 +48,14 @@ export function selectMarketplaceCacheVersionDir(codexHome, fsMod = fs) {
98
48
  * (A4: don't misrepresent history as the current binary). */
99
49
  export function assessCodexInstall(env, homeDir = os.homedir(), deps = {}) {
100
50
  const fsMod = deps.fsMod ?? fs;
101
- const codexHome = env.CODEX_HOME ? path.resolve(env.CODEX_HOME) : path.join(homeDir, '.codex');
51
+ const codexHome = resolveCodexHome(env, homeDir);
102
52
  if (!fsMod.existsSync(codexHome)) {
103
53
  return { ok: false, reason: 'codex_home_missing', nextAction: 'Codex has never run on this machine (CODEX_HOME not found); nothing to assess.' };
104
54
  }
105
- // Installed runtime (hooks execute this).
106
- const installedPkg = path.join(codexHome, 'plugins', 'data', 'principles-disciple-principles', 'runtime', 'node_modules', '@principles', 'codex-adapter', 'package.json');
107
- let pluginDataAdapterVersion = null;
108
- let pluginDataPresent = false;
109
- try {
110
- const parsed = JSON.parse(fsMod.readFileSync(installedPkg, 'utf8'));
111
- pluginDataPresent = true;
112
- pluginDataAdapterVersion = typeof parsed.version === 'string' && parsed.version.length > 0 ? parsed.version : null;
113
- }
114
- catch { /* not installed → null */ }
55
+ // Installed runtime (hooks execute this) — shared reader, see services/codex-plugin-install.ts.
56
+ const installedRuntime = readInstalledCodexRuntime(codexHome, fsMod);
57
+ const pluginDataPresent = installedRuntime.present;
58
+ const pluginDataAdapterVersion = installedRuntime.codexAdapter;
115
59
  // Marketplace cache pin (what a $pd-control setup re-run would install) — A3.
116
60
  const cacheSelection = selectMarketplaceCacheVersionDir(codexHome, fsMod);
117
61
  const marketplacePinAdapterVersion = cacheSelection
@@ -133,39 +77,13 @@ export function assessCodexInstall(env, homeDir = os.homedir(), deps = {}) {
133
77
  // Canonical runtime (~/.pd/runtime) as the "an update exists" signal.
134
78
  let canonicalAdapterVersion = null;
135
79
  try {
136
- canonicalAdapterVersion = JSON.parse(fsMod.readFileSync(path.join(os.homedir(), '.pd', 'runtime', 'codex-adapter', 'package.json'), 'utf8')).version ?? null;
80
+ canonicalAdapterVersion = JSON.parse(fsMod.readFileSync(path.join(homeDir, '.pd', 'runtime', 'codex-adapter', 'package.json'), 'utf8')).version ?? null;
137
81
  }
138
82
  catch { /* canonical runtime absent → null */ }
139
83
  // Newest rollout's declared CLI version (first line only) — HISTORICAL signal.
140
84
  let lastRolloutCliVersion = null;
141
85
  {
142
- const sessionsRoot = path.join(codexHome, 'sessions');
143
- let newest = null;
144
- const walk = (dir, depth) => {
145
- if (depth > 4)
146
- return;
147
- let entries;
148
- try {
149
- entries = fsMod.readdirSync(dir, { withFileTypes: true });
150
- }
151
- catch {
152
- return;
153
- }
154
- for (const entry of entries) {
155
- const full = path.join(dir, entry.name);
156
- if (entry.isDirectory())
157
- walk(full, depth + 1);
158
- else if (entry.isFile() && entry.name.startsWith('rollout-') && entry.name.endsWith('.jsonl')) {
159
- try {
160
- const { mtimeMs } = fsMod.statSync(full);
161
- if (!newest || mtimeMs > newest.mtimeMs)
162
- newest = { file: full, mtimeMs };
163
- }
164
- catch { /* stat race — skip */ }
165
- }
166
- }
167
- };
168
- walk(sessionsRoot, 0);
86
+ const newest = findNewestRolloutFile(codexHome, fsMod);
169
87
  if (newest) {
170
88
  try {
171
89
  // Real session_meta lines carry the host system prompt and can reach
@@ -1 +1 @@
1
- {"version":3,"file":"health-codex-install.js","sourceRoot":"","sources":["../../src/commands/health-codex-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-codex-install.js","sourceRoot":"","sources":["../../src/commands/health-codex-install.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  *
6
6
  * Delegates to PruningReadModel (core).
7
7
  */
8
- import type { PruningReviewDecision } from '@principles/core/runtime-v2';
9
8
  interface PruningReportOptions {
10
9
  workspace?: string;
11
10
  json?: boolean;
@@ -16,24 +15,7 @@ export interface PruningExplainOptions {
16
15
  workspace?: string;
17
16
  json?: boolean;
18
17
  }
19
- export interface PruningReviewOptions {
20
- principleId: string;
21
- decision: PruningReviewDecision;
22
- note?: string;
23
- reviewer?: string;
24
- workspace?: string;
25
- json?: boolean;
26
- }
27
- export declare function handlePruningReview(opts: PruningReviewOptions): void;
28
18
  export declare function handlePruningExplain(opts: PruningExplainOptions): void;
29
- export interface PruningRollbackOptions {
30
- principleId: string;
31
- note?: string;
32
- reviewer?: string;
33
- workspace?: string;
34
- json?: boolean;
35
- }
36
- export declare function handlePruningRollback(opts: PruningRollbackOptions): void;
37
19
  export interface PruningOrphansOptions {
38
20
  workspace?: string;
39
21
  dryRun?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-pruning.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-pruning.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAiD,MAAM,6BAA6B,CAAC;AAIxH,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAepE;AAID,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAkEpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAuCtE;AAID,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAyDxE;AAID,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAYD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAwItE"}
1
+ {"version":3,"file":"runtime-pruning.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-pruning.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAepE;AAID,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAuCtE;AAID,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAYD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAwItE"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as path from 'path';
9
9
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
10
- import { PruningReadModel, appendPruningReview, listPruningReviews, buildMaskedPrincipleSet, removeOrphanReferencesFromLedger } from '@principles/core/runtime-v2';
10
+ import { PruningReadModel, removeOrphanReferencesFromLedger } from '@principles/core/runtime-v2';
11
11
  import { createRemediationResult, remediationAction } from './remediation-output.js';
12
12
  function outputText(summary, signals, workspaceDir) {
13
13
  console.log(`generatedAt: ${summary.generatedAt}`);
@@ -63,68 +63,6 @@ export function handlePruningReport(opts) {
63
63
  }
64
64
  outputText(summary, signals, workspaceDir);
65
65
  }
66
- export function handlePruningReview(opts) {
67
- const workspaceDir = opts.workspace
68
- ? path.resolve(opts.workspace)
69
- : resolveWorkspaceDir();
70
- const model = new PruningReadModel({ workspaceDir });
71
- const signals = model.getPrincipleSignals();
72
- const signal = signals.find((s) => s.principleId === opts.principleId);
73
- if (!signal) {
74
- if (opts.json) {
75
- console.log(JSON.stringify({ error: `Principle not found: '${opts.principleId}'` }));
76
- }
77
- else {
78
- console.error(`Error: Principle not found: '${opts.principleId}'`);
79
- }
80
- process.exit(1);
81
- return; // satisfies TypeScript control flow (process.exit is [noreturn] in tests)
82
- }
83
- if (opts.decision !== 'keep' && opts.decision !== 'defer' && opts.decision !== 'archive-candidate') {
84
- if (opts.json) {
85
- console.log(JSON.stringify({ error: `Invalid decision: '${opts.decision}'. Must be one of: keep, defer, archive-candidate` }));
86
- }
87
- else {
88
- console.error(`Error: Invalid decision: '${opts.decision}'. Must be one of: keep, defer, archive-candidate`);
89
- }
90
- process.exit(1);
91
- return;
92
- }
93
- if (opts.decision === 'archive-candidate' && !opts.note) {
94
- if (opts.json) {
95
- console.log(JSON.stringify({ error: 'archive-candidate decision requires --note' }));
96
- }
97
- else {
98
- console.error('Error: archive-candidate decision requires --note');
99
- }
100
- process.exit(1);
101
- return;
102
- }
103
- const record = appendPruningReview(workspaceDir, {
104
- principleId: signal.principleId,
105
- decision: opts.decision,
106
- note: opts.note ?? '',
107
- reviewer: opts.reviewer,
108
- signalSnapshot: signal,
109
- });
110
- if (opts.json) {
111
- console.log(JSON.stringify({
112
- reviewId: record.reviewId,
113
- principleId: record.principleId,
114
- decision: record.decision,
115
- reviewer: record.reviewer,
116
- reviewedAt: record.reviewedAt,
117
- }));
118
- return;
119
- }
120
- console.log(`reviewId: ${record.reviewId}`);
121
- console.log(`principleId: ${record.principleId}`);
122
- console.log(`decision: ${record.decision}`);
123
- console.log(`reviewer: ${record.reviewer}`);
124
- console.log(`reviewedAt: ${record.reviewedAt}`);
125
- console.log('');
126
- console.log('NOTE: This audit record does not modify the principle.');
127
- }
128
66
  export function handlePruningExplain(opts) {
129
67
  const workspaceDir = opts.workspace
130
68
  ? path.resolve(opts.workspace)
@@ -161,60 +99,6 @@ export function handlePruningExplain(opts) {
161
99
  console.log('');
162
100
  console.log('NOTE: This report is read-only. No principles are modified or deleted.');
163
101
  }
164
- export function handlePruningRollback(opts) {
165
- const workspaceDir = opts.workspace
166
- ? path.resolve(opts.workspace)
167
- : resolveWorkspaceDir();
168
- const reviews = listPruningReviews(workspaceDir, { principleId: opts.principleId });
169
- if (reviews.length === 0) {
170
- if (opts.json) {
171
- console.log(JSON.stringify({ error: `No reviews found for principle: '${opts.principleId}'` }));
172
- }
173
- else {
174
- console.error(`Error: No reviews found for principle: '${opts.principleId}'`);
175
- }
176
- process.exit(1);
177
- return;
178
- }
179
- const maskedIds = buildMaskedPrincipleSet(reviews);
180
- if (!maskedIds.has(opts.principleId)) {
181
- if (opts.json) {
182
- console.log(JSON.stringify({ error: `Principle '${opts.principleId}' is not currently masked (latest decision is not archive-candidate)` }));
183
- }
184
- else {
185
- console.error(`Error: Principle '${opts.principleId}' is not currently masked (latest decision is not archive-candidate)`);
186
- }
187
- process.exit(1);
188
- return;
189
- }
190
- const model = new PruningReadModel({ workspaceDir });
191
- const signals = model.getPrincipleSignals();
192
- const signal = signals.find((s) => s.principleId === opts.principleId) ?? undefined;
193
- const record = appendPruningReview(workspaceDir, {
194
- principleId: opts.principleId,
195
- decision: 'keep',
196
- note: opts.note ?? 'Rollback: restore principle injection',
197
- reviewer: opts.reviewer,
198
- signalSnapshot: signal,
199
- });
200
- if (opts.json) {
201
- console.log(JSON.stringify({
202
- reviewId: record.reviewId,
203
- principleId: record.principleId,
204
- decision: record.decision,
205
- reviewer: record.reviewer,
206
- reviewedAt: record.reviewedAt,
207
- }));
208
- return;
209
- }
210
- console.log(`reviewId: ${record.reviewId}`);
211
- console.log(`principleId: ${record.principleId}`);
212
- console.log(`decision: ${record.decision}`);
213
- console.log(`reviewer: ${record.reviewer}`);
214
- console.log(`reviewedAt: ${record.reviewedAt}`);
215
- console.log('');
216
- console.log('Principle has been restored to injection.');
217
- }
218
102
  function orphanActions(orphans) {
219
103
  return orphans.map((orphan) => remediationAction({
220
104
  action: 'remove_orphan_reference',
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-pruning.js","sourceRoot":"","sources":["../../src/commands/runtime-pruning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-pruning.js","sourceRoot":"","sources":["../../src/commands/runtime-pruning.ts"],"names":[],"mappings":"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"}