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.
- package/_release/product-identity.json +2 -2
- package/core/dist/index.d.ts +1 -1
- package/core/dist/index.d.ts.map +1 -1
- package/core/dist/prompt-builder/index.d.ts +1 -3
- package/core/dist/prompt-builder/index.d.ts.map +1 -1
- package/core/dist/prompt-builder/index.js +0 -1
- package/core/dist/prompt-builder/index.js.map +1 -1
- package/core/dist/prompt-builder/size-guard.d.ts +3 -4
- package/core/dist/prompt-builder/size-guard.d.ts.map +1 -1
- package/core/dist/prompt-builder/size-guard.js +7 -25
- package/core/dist/prompt-builder/size-guard.js.map +1 -1
- package/core/dist/prompt-builder/types.d.ts +1 -7
- package/core/dist/prompt-builder/types.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.d.ts +0 -3
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +0 -4
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
- package/core/dist/runtime-v2/recovery-actions-log.js +2 -3
- package/core/dist/runtime-v2/recovery-actions-log.js.map +1 -1
- package/core/package.json +1 -1
- package/dist/installer.d.ts +16 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +49 -13
- package/dist/installer.js.map +1 -1
- package/host-runtime/dist/active-principle-prompt.d.ts +1 -9
- package/host-runtime/dist/active-principle-prompt.js +10 -22
- package/host-runtime/dist/index.d.ts +0 -1
- package/host-runtime/dist/index.js +0 -1
- package/host-runtime/dist/prompt-injection-projection.d.ts +0 -7
- package/host-runtime/dist/prompt-injection-projection.js +0 -5
- package/host-runtime/package.json +1 -1
- package/package.json +2 -2
- package/pd-cli/dist/commands/health-codex-install.d.ts +0 -12
- package/pd-cli/dist/commands/health-codex-install.d.ts.map +1 -1
- package/pd-cli/dist/commands/health-codex-install.js +8 -90
- package/pd-cli/dist/commands/health-codex-install.js.map +1 -1
- package/pd-cli/dist/commands/runtime-pruning.d.ts +0 -18
- package/pd-cli/dist/commands/runtime-pruning.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-pruning.js +1 -117
- package/pd-cli/dist/commands/runtime-pruning.js.map +1 -1
- package/pd-cli/dist/commands/version.d.ts +5 -0
- package/pd-cli/dist/commands/version.d.ts.map +1 -1
- package/pd-cli/dist/commands/version.js +27 -5
- package/pd-cli/dist/commands/version.js.map +1 -1
- package/pd-cli/dist/index.js +1 -37
- package/pd-cli/dist/index.js.map +1 -1
- package/pd-cli/dist/services/codex-plugin-install.d.ts +66 -0
- package/pd-cli/dist/services/codex-plugin-install.d.ts.map +1 -0
- package/pd-cli/dist/services/codex-plugin-install.js +168 -0
- package/pd-cli/dist/services/codex-plugin-install.js.map +1 -0
- package/pd-cli/dist/services/delivery-surfaces.d.ts +48 -0
- package/pd-cli/dist/services/delivery-surfaces.d.ts.map +1 -0
- package/pd-cli/dist/services/delivery-surfaces.js +387 -0
- package/pd-cli/dist/services/delivery-surfaces.js.map +1 -0
- package/pd-cli/dist/services/pain-recall.d.ts +79 -0
- package/pd-cli/dist/services/pain-recall.d.ts.map +1 -1
- package/pd-cli/dist/services/pain-recall.js +295 -12
- package/pd-cli/dist/services/pain-recall.js.map +1 -1
- package/pd-cli/package.json +1 -1
- package/plugin/dist/bundle.js +439 -449
- package/plugin/dist/core/evolution-reducer.d.ts +0 -2
- package/plugin/dist/core/session-tracker.d.ts +0 -4
- package/plugin/dist/core/workspace-context.d.ts +0 -8
- package/plugin/dist/hooks/after-tool-call-helpers.d.ts +0 -7
- package/plugin/dist/hooks/pain.d.ts +3 -4
- package/plugin/dist/hooks/prompt-helpers.d.ts +2 -12
- package/plugin/dist/hooks/prompt-types.d.ts +0 -4
- package/plugin/dist/hooks/prompt.d.ts +1 -11
- package/plugin/dist/host-runtime/openclaw-host-runtime.d.ts +0 -1
- package/plugin/dist/openclaw.plugin.json +1 -1
- package/plugin/openclaw.plugin.json +1 -1
- package/plugin/package.json +4 -26
- package/release-manager/dist/installer.d.ts +16 -0
- package/release-manager/dist/installer.d.ts.map +1 -1
- package/release-manager/dist/installer.js +49 -13
- package/release-manager/dist/installer.js.map +1 -1
- package/release-manager/package.json +2 -2
- package/workbuddy-adapter/package.json +1 -1
- package/workbuddy-adapter/plugin/.codebuddy-plugin/plugin.json +1 -1
- package/workbuddy-adapter/plugin/hooks/hooks.json +1 -1
- package/workbuddy-adapter/plugin/scripts/wrapper.cjs +68 -4
- package/core/dist/prompt-builder/principle-selection.d.ts +0 -68
- package/core/dist/prompt-builder/principle-selection.d.ts.map +0 -1
- package/core/dist/prompt-builder/principle-selection.js +0 -140
- package/core/dist/prompt-builder/principle-selection.js.map +0 -1
- package/core/dist/runtime-v2/pruning-mask.d.ts +0 -27
- package/core/dist/runtime-v2/pruning-mask.d.ts.map +0 -1
- package/core/dist/runtime-v2/pruning-mask.js +0 -59
- package/core/dist/runtime-v2/pruning-mask.js.map +0 -1
- package/core/dist/runtime-v2/pruning-review-log.d.ts +0 -41
- package/core/dist/runtime-v2/pruning-review-log.d.ts.map +0 -1
- package/core/dist/runtime-v2/pruning-review-log.js +0 -106
- package/core/dist/runtime-v2/pruning-review-log.js.map +0 -1
- 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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
114
|
-
//
|
|
115
|
-
//
|
|
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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-principles-disciple",
|
|
3
|
-
"version": "1.145.
|
|
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.
|
|
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;
|
|
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 =
|
|
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
|
|
107
|
-
|
|
108
|
-
|
|
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(
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
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;
|
|
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,
|
|
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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"}
|