@principles/core 1.297.2 → 1.297.4
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/README.md +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/prompt-builder/index.d.ts +1 -3
- package/dist/prompt-builder/index.d.ts.map +1 -1
- package/dist/prompt-builder/index.js +0 -1
- package/dist/prompt-builder/index.js.map +1 -1
- package/dist/prompt-builder/size-guard.d.ts +3 -4
- package/dist/prompt-builder/size-guard.d.ts.map +1 -1
- package/dist/prompt-builder/size-guard.js +7 -25
- package/dist/prompt-builder/size-guard.js.map +1 -1
- package/dist/prompt-builder/types.d.ts +1 -7
- package/dist/prompt-builder/types.d.ts.map +1 -1
- package/dist/runtime-v2/context-payload.d.ts +4 -4
- package/dist/runtime-v2/context-payload.d.ts.map +1 -1
- package/dist/runtime-v2/context-payload.js +1 -0
- package/dist/runtime-v2/context-payload.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +0 -3
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +0 -4
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
- package/dist/runtime-v2/recovery-actions-log.js +2 -3
- package/dist/runtime-v2/recovery-actions-log.js.map +1 -1
- package/dist/runtime-v2/task-status.d.ts +1 -1
- package/package.json +1 -1
- package/dist/prompt-builder/principle-selection.d.ts +0 -68
- package/dist/prompt-builder/principle-selection.d.ts.map +0 -1
- package/dist/prompt-builder/principle-selection.js +0 -140
- package/dist/prompt-builder/principle-selection.js.map +0 -1
- package/dist/runtime-v2/pruning-mask.d.ts +0 -27
- package/dist/runtime-v2/pruning-mask.d.ts.map +0 -1
- package/dist/runtime-v2/pruning-mask.js +0 -59
- package/dist/runtime-v2/pruning-mask.js.map +0 -1
- package/dist/runtime-v2/pruning-review-log.d.ts +0 -41
- package/dist/runtime-v2/pruning-review-log.d.ts.map +0 -1
- package/dist/runtime-v2/pruning-review-log.js +0 -106
- package/dist/runtime-v2/pruning-review-log.js.map +0 -1
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PruningReviewLog — append-only JSONL audit log for human pruning review decisions.
|
|
3
|
-
*
|
|
4
|
-
* PRI-24: Add pruning review audit log.
|
|
5
|
-
*
|
|
6
|
-
* Storage: <workspace>/.state/pruning_reviews.jsonl
|
|
7
|
-
* Each line is one complete JSON record.
|
|
8
|
-
*
|
|
9
|
-
* Non-goals:
|
|
10
|
-
* - Does not modify ledger or state.db
|
|
11
|
-
* - Does not implement automatic pruning
|
|
12
|
-
* - Does not provide CLI (that's PRI-25)
|
|
13
|
-
*/
|
|
14
|
-
import * as fs from 'fs';
|
|
15
|
-
import * as path from 'path';
|
|
16
|
-
import * as crypto from 'crypto';
|
|
17
|
-
// ── Validation ─────────────────────────────────────────────────────────────────
|
|
18
|
-
const VALID_DECISIONS = new Set(['keep', 'defer', 'archive-candidate']);
|
|
19
|
-
function validateDecision(decision) {
|
|
20
|
-
if (!VALID_DECISIONS.has(decision)) {
|
|
21
|
-
throw new Error(`Invalid decision: '${decision}'. Must be one of: keep, defer, archive-candidate`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
// ── Core Functions ─────────────────────────────────────────────────────────────
|
|
25
|
-
function getLogPath(workspaceDir) {
|
|
26
|
-
return path.join(workspaceDir, '.state', 'pruning_reviews.jsonl');
|
|
27
|
-
}
|
|
28
|
-
function ensureStateDir(workspaceDir) {
|
|
29
|
-
const stateDir = path.join(workspaceDir, '.state');
|
|
30
|
-
if (!fs.existsSync(stateDir)) {
|
|
31
|
-
fs.mkdirSync(stateDir, { recursive: true });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Append a pruning review record to the audit log.
|
|
36
|
-
*
|
|
37
|
-
* @param workspaceDir - The workspace root directory
|
|
38
|
-
* @param input - Review decision input
|
|
39
|
-
* @returns The full record that was written
|
|
40
|
-
*/
|
|
41
|
-
export function appendPruningReview(workspaceDir, input) {
|
|
42
|
-
validateDecision(input.decision);
|
|
43
|
-
ensureStateDir(workspaceDir);
|
|
44
|
-
const reviewId = crypto.randomUUID();
|
|
45
|
-
const reviewedAt = new Date().toISOString();
|
|
46
|
-
const reviewer = input.reviewer ?? 'operator';
|
|
47
|
-
const record = {
|
|
48
|
-
reviewId,
|
|
49
|
-
principleId: input.principleId,
|
|
50
|
-
decision: input.decision,
|
|
51
|
-
note: input.note ?? '',
|
|
52
|
-
reviewer,
|
|
53
|
-
reviewedAt,
|
|
54
|
-
signalSnapshot: input.signalSnapshot ?? {
|
|
55
|
-
principleId: input.principleId,
|
|
56
|
-
status: 'active',
|
|
57
|
-
createdAt: reviewedAt,
|
|
58
|
-
updatedAt: reviewedAt,
|
|
59
|
-
derivedCandidateIds: [],
|
|
60
|
-
derivedPainCount: 0,
|
|
61
|
-
matchedCandidateCount: 0,
|
|
62
|
-
recentCandidateCount: 0,
|
|
63
|
-
orphanCandidateCount: 0,
|
|
64
|
-
ageDays: 0,
|
|
65
|
-
riskLevel: 'watch',
|
|
66
|
-
reasons: ['rollback: no signal snapshot available'],
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
const logPath = getLogPath(workspaceDir);
|
|
70
|
-
const line = JSON.stringify(record) + '\n';
|
|
71
|
-
fs.appendFileSync(logPath, line, 'utf-8');
|
|
72
|
-
return record;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* List pruning review records from the audit log.
|
|
76
|
-
*
|
|
77
|
-
* @param workspaceDir - The workspace root directory
|
|
78
|
-
* @param filter - Optional filter by principleId
|
|
79
|
-
* @returns Array of review records (oldest first)
|
|
80
|
-
*/
|
|
81
|
-
export function listPruningReviews(workspaceDir, filter) {
|
|
82
|
-
const logPath = getLogPath(workspaceDir);
|
|
83
|
-
if (!fs.existsSync(logPath)) {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
const content = fs.readFileSync(logPath, 'utf-8');
|
|
87
|
-
const lines = content.split('\n');
|
|
88
|
-
const records = [];
|
|
89
|
-
for (const line of lines) {
|
|
90
|
-
const trimmed = line.trim();
|
|
91
|
-
if (!trimmed)
|
|
92
|
-
continue;
|
|
93
|
-
try {
|
|
94
|
-
const record = JSON.parse(trimmed);
|
|
95
|
-
if (filter?.principleId && record.principleId !== filter.principleId) {
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
records.push(record);
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
// Skip corrupt lines — continue processing
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return records;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=pruning-review-log.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pruning-review-log.js","sourceRoot":"","sources":["../../src/runtime-v2/pruning-review-log.ts"],"names":[],"mappings":"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"}
|