@principles/core 1.188.0 → 1.190.0

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 (78) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +9 -0
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js +1 -1
  4. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js +11 -0
  5. package/dist/runtime-v2/__tests__/pi-artifact-store.test.js.map +1 -1
  6. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +15 -1
  7. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js.map +1 -1
  8. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts +2 -0
  9. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts.map +1 -0
  10. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js +62 -0
  11. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js.map +1 -0
  12. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +12 -2
  13. package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +1 -1
  14. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts +2 -0
  15. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts.map +1 -0
  16. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js +56 -0
  17. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js.map +1 -0
  18. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +8 -0
  19. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
  20. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +20 -0
  21. package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +1 -1
  22. package/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts.map +1 -1
  23. package/dist/runtime-v2/activation/sqlite-activation-state-store.js +6 -0
  24. package/dist/runtime-v2/activation/sqlite-activation-state-store.js.map +1 -1
  25. package/dist/runtime-v2/activation/sqlite-approval-store.d.ts.map +1 -1
  26. package/dist/runtime-v2/activation/sqlite-approval-store.js +86 -32
  27. package/dist/runtime-v2/activation/sqlite-approval-store.js.map +1 -1
  28. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +8 -0
  29. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -1
  30. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js +23 -0
  31. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -1
  32. package/dist/runtime-v2/index.d.ts +3 -2
  33. package/dist/runtime-v2/index.d.ts.map +1 -1
  34. package/dist/runtime-v2/index.js +3 -1
  35. package/dist/runtime-v2/index.js.map +1 -1
  36. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts +2 -0
  37. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts.map +1 -0
  38. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js +183 -0
  39. package/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js.map +1 -0
  40. package/dist/runtime-v2/intent/index.d.ts +1 -0
  41. package/dist/runtime-v2/intent/index.d.ts.map +1 -1
  42. package/dist/runtime-v2/intent/index.js +1 -0
  43. package/dist/runtime-v2/intent/index.js.map +1 -1
  44. package/dist/runtime-v2/intent/intent-decision-record.d.ts +105 -0
  45. package/dist/runtime-v2/intent/intent-decision-record.d.ts.map +1 -0
  46. package/dist/runtime-v2/intent/intent-decision-record.js +21 -0
  47. package/dist/runtime-v2/intent/intent-decision-record.js.map +1 -0
  48. package/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  49. package/dist/runtime-v2/pain-signal-observability.js +3 -2
  50. package/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  51. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts +2 -0
  52. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts.map +1 -0
  53. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js +55 -0
  54. package/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js.map +1 -0
  55. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
  56. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +6 -0
  57. package/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
  58. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts +2 -0
  59. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts.map +1 -0
  60. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js +207 -0
  61. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js.map +1 -0
  62. package/dist/runtime-v2/store/intent/index.d.ts +6 -0
  63. package/dist/runtime-v2/store/intent/index.d.ts.map +1 -0
  64. package/dist/runtime-v2/store/intent/index.js +5 -0
  65. package/dist/runtime-v2/store/intent/index.js.map +1 -0
  66. package/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts +36 -0
  67. package/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts.map +1 -0
  68. package/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js +259 -0
  69. package/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js.map +1 -0
  70. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts +2 -0
  71. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts.map +1 -0
  72. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js +72 -0
  73. package/dist/runtime-v2/store/sqlite-connection-schema-version.test.js.map +1 -0
  74. package/dist/runtime-v2/store/sqlite-connection.d.ts +11 -0
  75. package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  76. package/dist/runtime-v2/store/sqlite-connection.js +73 -10
  77. package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1,259 @@
1
+ /**
2
+ * SqliteIntentDecisionStore — SQLite implementation of IntentDecisionStore.
3
+ *
4
+ * PRI-470 / SPEC §21.7 durable persistence for Owner decisions on
5
+ * intentTension. Records are written to the `intent_decisions` table
6
+ * (schema created by SqliteConnection.initSchema).
7
+ *
8
+ * Idempotency (SPEC §21.7 req 4):
9
+ * - When `painId` is non-null: dedupe on (pain_id, intent_doc_hash, owner_action).
10
+ * - When `painId` is null: dedupe on (task_id, intent_doc_hash, owner_action)
11
+ * using the NULL-safe `IS` operator so a null intentDocHash compares equal.
12
+ *
13
+ * Snapshots (SPEC §21.7 audit boundary):
14
+ * - source / evidenceStrength / relatedIntentFields / evidenceRefs are stored
15
+ * twice: once in the live columns and once in the `_snapshot` columns. The
16
+ * snapshot is the immutable audit copy; the live columns mirror it at write
17
+ * time. This keeps the audit trail accurate even if a future migration or
18
+ * artifact change alters the live columns.
19
+ *
20
+ * ERR checklist:
21
+ * - EP-01 / ERR-001, ERR-005: DB rows treated as unknown, mapped via guards
22
+ * - EP-03 / ERR-002: write failures throw (fail loud)
23
+ * - EP-07 / ERR-015, ERR-018: idempotency SELECT reads fresh state each call
24
+ */
25
+ import { isIntentTensionSource, isEvidenceStrength, isIntentRelatedField, isSuggestedOwnerAction, } from '../../diagnostician/diag-rootcause-output.js';
26
+ const MAX_EVIDENCE_REFS = 3;
27
+ function parseStringArray(raw) {
28
+ let parsed;
29
+ try {
30
+ parsed = JSON.parse(raw);
31
+ }
32
+ catch {
33
+ return [];
34
+ }
35
+ if (!Array.isArray(parsed))
36
+ return [];
37
+ return parsed.filter((v) => typeof v === 'string');
38
+ }
39
+ // ── Row type guards (Runtime Contract Rule 2: no `as` bypass) ────────────────
40
+ function isRecord(v) {
41
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
42
+ }
43
+ function isIntentDecisionRow(v) {
44
+ if (!isRecord(v))
45
+ return false;
46
+ if (typeof v.id !== 'string')
47
+ return false;
48
+ if (v.pain_id !== null && typeof v.pain_id !== 'string')
49
+ return false;
50
+ if (typeof v.task_id !== 'string')
51
+ return false;
52
+ if (v.run_id !== null && typeof v.run_id !== 'string')
53
+ return false;
54
+ if (v.intent_doc_hash !== null && typeof v.intent_doc_hash !== 'string')
55
+ return false;
56
+ if (typeof v.source !== 'string')
57
+ return false;
58
+ if (typeof v.evidence_strength !== 'string')
59
+ return false;
60
+ if (typeof v.related_intent_fields !== 'string')
61
+ return false;
62
+ if (typeof v.owner_action !== 'string')
63
+ return false;
64
+ if (typeof v.evidence_refs !== 'string')
65
+ return false;
66
+ if (typeof v.source_snapshot !== 'string')
67
+ return false;
68
+ if (typeof v.evidence_strength_snapshot !== 'string')
69
+ return false;
70
+ if (typeof v.related_intent_fields_snapshot !== 'string')
71
+ return false;
72
+ if (typeof v.evidence_refs_snapshot !== 'string')
73
+ return false;
74
+ if (v.resulting_candidate_id !== null && typeof v.resulting_candidate_id !== 'string')
75
+ return false;
76
+ if (v.resulting_rule_candidate_id !== null && typeof v.resulting_rule_candidate_id !== 'string')
77
+ return false;
78
+ if (v.patch_proposal_id !== null && typeof v.patch_proposal_id !== 'string')
79
+ return false;
80
+ if (typeof v.created_at !== 'string')
81
+ return false;
82
+ return true;
83
+ }
84
+ function isSummaryRow(v) {
85
+ if (!isRecord(v))
86
+ return false;
87
+ if (typeof v.owner_action !== 'string')
88
+ return false;
89
+ if (typeof v.cnt !== 'number' || !Number.isFinite(v.cnt))
90
+ return false;
91
+ if (v.last_at !== null && typeof v.last_at !== 'string')
92
+ return false;
93
+ return true;
94
+ }
95
+ function zeroCounts() {
96
+ return {
97
+ confirm_drift: 0,
98
+ revise_intent: 0,
99
+ observe: 0,
100
+ dismiss: 0,
101
+ promote_to_principle: 0,
102
+ promote_to_rulehost: 0,
103
+ };
104
+ }
105
+ function mapRow(r) {
106
+ // Validate enum fields read from the DB (ERR-001). Snapshot columns are the
107
+ // auditable source of truth, so we read from them; the live column is a
108
+ // secondary fallback. Both are written by this store, so they should always
109
+ // be valid — the defaults below are defensive against DB corruption.
110
+ const source = isIntentTensionSource(r.source_snapshot)
111
+ ? r.source_snapshot
112
+ : isIntentTensionSource(r.source)
113
+ ? r.source
114
+ : 'none';
115
+ const evidenceStrength = isEvidenceStrength(r.evidence_strength_snapshot)
116
+ ? r.evidence_strength_snapshot
117
+ : isEvidenceStrength(r.evidence_strength)
118
+ ? r.evidence_strength
119
+ : 'weak';
120
+ const ownerAction = isSuggestedOwnerAction(r.owner_action)
121
+ ? r.owner_action
122
+ : 'observe';
123
+ const fieldsRaw = parseStringArray(r.related_intent_fields_snapshot);
124
+ const relatedIntentFields = fieldsRaw.length > 0
125
+ ? fieldsRaw.filter(isIntentRelatedField)
126
+ : parseStringArray(r.related_intent_fields).filter(isIntentRelatedField);
127
+ const evidenceRefs = parseStringArray(r.evidence_refs_snapshot);
128
+ const record = {
129
+ id: r.id,
130
+ source,
131
+ evidenceStrength,
132
+ relatedIntentFields,
133
+ ownerAction,
134
+ evidenceRefs,
135
+ createdAt: r.created_at,
136
+ };
137
+ if (r.pain_id !== null)
138
+ record.painId = r.pain_id;
139
+ if (r.run_id !== null)
140
+ record.runId = r.run_id;
141
+ if (r.intent_doc_hash !== null)
142
+ record.intentDocHash = r.intent_doc_hash;
143
+ // task_id is NOT NULL in the schema, but the type marks it optional — only
144
+ // surface it when it is non-empty so an empty string does not masquerade as
145
+ // a real lineage id.
146
+ if (r.task_id !== '')
147
+ record.taskId = r.task_id;
148
+ if (r.resulting_candidate_id !== null)
149
+ record.resultingCandidateId = r.resulting_candidate_id;
150
+ if (r.resulting_rule_candidate_id !== null)
151
+ record.resultingRuleCandidateId = r.resulting_rule_candidate_id;
152
+ if (r.patch_proposal_id !== null)
153
+ record.patchProposalId = r.patch_proposal_id;
154
+ return record;
155
+ }
156
+ export class SqliteIntentDecisionStore {
157
+ connection;
158
+ constructor(connection) {
159
+ this.connection = connection;
160
+ }
161
+ async record(input) {
162
+ const db = this.connection.getDb();
163
+ // Truncate evidence to the SPEC §22.1.2 maximum of 3 items.
164
+ const truncatedEvidence = input.evidenceRefs.slice(0, MAX_EVIDENCE_REFS);
165
+ const relatedFieldsJson = JSON.stringify(input.relatedIntentFields);
166
+ const evidenceRefsJson = JSON.stringify(truncatedEvidence);
167
+ const createdAt = new Date().toISOString();
168
+ // ── Idempotency check ──────────────────────────────────────────────────
169
+ // SPEC §21.7 req 4: same painId + intentDocHash + ownerAction must be
170
+ // idempotent. When painId is null, fall back to taskId-based dedupe.
171
+ let existing;
172
+ if (input.painId !== undefined) {
173
+ const row = db.prepare('SELECT * FROM intent_decisions WHERE pain_id = ? AND intent_doc_hash IS ? AND owner_action = ? LIMIT 1').get(input.painId, input.intentDocHash ?? null, input.ownerAction);
174
+ if (isIntentDecisionRow(row))
175
+ existing = row;
176
+ }
177
+ else {
178
+ const taskId = input.taskId ?? '';
179
+ const row = db.prepare('SELECT * FROM intent_decisions WHERE pain_id IS NULL AND task_id = ? AND intent_doc_hash IS ? AND owner_action = ? LIMIT 1').get(taskId, input.intentDocHash ?? null, input.ownerAction);
180
+ if (isIntentDecisionRow(row))
181
+ existing = row;
182
+ }
183
+ if (existing) {
184
+ return { record: mapRow(existing), created: false };
185
+ }
186
+ // ── Insert ─────────────────────────────────────────────────────────────
187
+ db.prepare(`
188
+ INSERT INTO intent_decisions (
189
+ id, pain_id, task_id, run_id, intent_doc_hash,
190
+ source, evidence_strength, related_intent_fields, owner_action, evidence_refs,
191
+ note,
192
+ source_snapshot, evidence_strength_snapshot,
193
+ related_intent_fields_snapshot, evidence_refs_snapshot,
194
+ resulting_candidate_id, resulting_rule_candidate_id, patch_proposal_id,
195
+ created_at
196
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
197
+ `).run(input.id, input.painId ?? null, input.taskId ?? '', input.runId ?? null, input.intentDocHash ?? null, input.source, input.evidenceStrength, relatedFieldsJson, input.ownerAction, evidenceRefsJson, input.note ?? null,
198
+ // Snapshots — immutable audit copies (identical to live values at write time).
199
+ input.source, input.evidenceStrength, relatedFieldsJson, evidenceRefsJson, null, null, null, createdAt);
200
+ const record = {
201
+ id: input.id,
202
+ source: input.source,
203
+ evidenceStrength: input.evidenceStrength,
204
+ relatedIntentFields: [...input.relatedIntentFields],
205
+ ownerAction: input.ownerAction,
206
+ evidenceRefs: [...truncatedEvidence],
207
+ createdAt,
208
+ };
209
+ if (input.painId !== undefined)
210
+ record.painId = input.painId;
211
+ if (input.taskId !== undefined)
212
+ record.taskId = input.taskId;
213
+ if (input.runId !== undefined)
214
+ record.runId = input.runId;
215
+ if (input.intentDocHash !== undefined)
216
+ record.intentDocHash = input.intentDocHash;
217
+ return { record, created: true };
218
+ }
219
+ async getById(id) {
220
+ const db = this.connection.getDb();
221
+ const row = db.prepare('SELECT * FROM intent_decisions WHERE id = ?').get(id);
222
+ if (!isIntentDecisionRow(row))
223
+ return null;
224
+ return mapRow(row);
225
+ }
226
+ async listByPainId(painId) {
227
+ const db = this.connection.getDb();
228
+ const rawRows = db.prepare('SELECT * FROM intent_decisions WHERE pain_id = ? ORDER BY created_at DESC').all(painId);
229
+ if (!Array.isArray(rawRows))
230
+ return [];
231
+ return rawRows.filter(isIntentDecisionRow).map(mapRow);
232
+ }
233
+ async listByTaskId(taskId) {
234
+ const db = this.connection.getDb();
235
+ const rawRows = db.prepare('SELECT * FROM intent_decisions WHERE task_id = ? ORDER BY created_at DESC').all(taskId);
236
+ if (!Array.isArray(rawRows))
237
+ return [];
238
+ return rawRows.filter(isIntentDecisionRow).map(mapRow);
239
+ }
240
+ async getSummary() {
241
+ const db = this.connection.getDb();
242
+ const rawRows = db.prepare('SELECT owner_action, COUNT(*) AS cnt, MAX(created_at) AS last_at FROM intent_decisions GROUP BY owner_action').all();
243
+ if (!Array.isArray(rawRows))
244
+ return { counts: zeroCounts(), lastDecisionAt: null };
245
+ const rows = rawRows.filter(isSummaryRow);
246
+ const counts = zeroCounts();
247
+ let lastDecisionAt = null;
248
+ for (const row of rows) {
249
+ if (isSuggestedOwnerAction(row.owner_action)) {
250
+ counts[row.owner_action] = row.cnt;
251
+ }
252
+ if (row.last_at && (lastDecisionAt === null || row.last_at > lastDecisionAt)) {
253
+ lastDecisionAt = row.last_at;
254
+ }
255
+ }
256
+ return { counts, lastDecisionAt };
257
+ }
258
+ }
259
+ //# sourceMappingURL=sqlite-intent-decision-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-intent-decision-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/sqlite-intent-decision-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sqlite-connection-schema-version.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-connection-schema-version.test.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection-schema-version.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import * as os from 'os';
5
+ import { SqliteConnection } from './sqlite-connection.js';
6
+ const tempDirs = [];
7
+ afterEach(() => {
8
+ while (tempDirs.length) {
9
+ const dir = tempDirs.pop();
10
+ if (dir) {
11
+ try {
12
+ fs.rmSync(dir, { force: true, recursive: true });
13
+ }
14
+ catch { /* ignore cleanup errors */ }
15
+ }
16
+ }
17
+ });
18
+ function makeConnection() {
19
+ const dir = path.join(os.tmpdir(), `pd-schema-version-${process.pid}-${Date.now()}-${tempDirs.length}`);
20
+ fs.mkdirSync(dir, { recursive: true });
21
+ tempDirs.push(dir);
22
+ return new SqliteConnection(dir);
23
+ }
24
+ describe('schema_version table (P2-10)', () => {
25
+ it('creates schema_version table on init', () => {
26
+ const conn = makeConnection();
27
+ conn.getDb(); // trigger initSchema
28
+ const tables = conn.getDb().prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='schema_version'").all();
29
+ expect(tables).toHaveLength(1);
30
+ });
31
+ it('returns "000" for fresh database', () => {
32
+ const conn = makeConnection();
33
+ conn.getDb();
34
+ expect(conn.getSchemaVersion()).toBe('000');
35
+ });
36
+ it('tracks version increments', () => {
37
+ const conn = makeConnection();
38
+ conn.getDb();
39
+ expect(conn.getSchemaVersion()).toBe('000');
40
+ conn.setSchemaVersion('001');
41
+ expect(conn.getSchemaVersion()).toBe('001');
42
+ conn.setSchemaVersion('002');
43
+ expect(conn.getSchemaVersion()).toBe('002');
44
+ });
45
+ it('persists version across reconnection', () => {
46
+ const dir = path.join(os.tmpdir(), `pd-schema-version-persist-${process.pid}-${Date.now()}`);
47
+ fs.mkdirSync(dir, { recursive: true });
48
+ tempDirs.push(dir);
49
+ const conn1 = new SqliteConnection(dir);
50
+ conn1.getDb();
51
+ conn1.setSchemaVersion('003');
52
+ conn1.close();
53
+ const conn2 = new SqliteConnection(dir);
54
+ expect(conn2.getSchemaVersion()).toBe('003');
55
+ conn2.close();
56
+ });
57
+ it('does not duplicate initial "000" row on re-init', () => {
58
+ const dir = path.join(os.tmpdir(), `pd-schema-version-nodup-${process.pid}-${Date.now()}`);
59
+ fs.mkdirSync(dir, { recursive: true });
60
+ tempDirs.push(dir);
61
+ const conn1 = new SqliteConnection(dir);
62
+ conn1.getDb();
63
+ conn1.close();
64
+ const conn2 = new SqliteConnection(dir);
65
+ conn2.getDb(); // triggers initSchema again — should not insert duplicate '000'
66
+ const rows = conn2.getDb().prepare('SELECT COUNT(*) as cnt FROM schema_version').all();
67
+ conn2.close();
68
+ expect(rows.length).toBe(1);
69
+ expect(rows[0]?.cnt).toBe(1);
70
+ });
71
+ });
72
+ //# sourceMappingURL=sqlite-connection-schema-version.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-connection-schema-version.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection-schema-version.test.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,17 @@ export declare class SqliteConnection {
31
31
  constructor(workspaceDirOrOpts: string | SqliteConnectionOptions);
32
32
  getDb(): Database.Database;
33
33
  getPragmaReport(): SqlitePragmaReport;
34
+ /**
35
+ * Returns the current schema version of state.db.
36
+ * Versions are stored as TEXT and compared lexicographically (e.g., '000' < '001').
37
+ * Returns '000' for fresh databases or if the table is somehow missing.
38
+ */
39
+ getSchemaVersion(): string;
40
+ /**
41
+ * Records a new schema version after a migration is applied.
42
+ * Each call inserts a new row (append-only history for audit).
43
+ */
44
+ setSchemaVersion(version: string): void;
34
45
  private initSchema;
35
46
  private migrateSchema;
36
47
  /** Closes the underlying database connection. */
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,kBAAkB,EAAE,MAAM,GAAG,uBAAuB;IAYhE,KAAK,IAAI,QAAQ,CAAC,QAAQ;IAsD1B,eAAe,IAAI,kBAAkB;IA4BrC,OAAO,CAAC,UAAU;IAuPlB,OAAO,CAAC,aAAa;IA+BrB,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAWd"}
1
+ {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAStC,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,kBAAkB,EAAE,MAAM,GAAG,uBAAuB;IAYhE,KAAK,IAAI,QAAQ,CAAC,QAAQ;IAsD1B,eAAe,IAAI,kBAAkB;IA6BrC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAO1B;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKvC,OAAO,CAAC,UAAU;IAiSlB,OAAO,CAAC,aAAa;IA+BrB,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAWd"}
@@ -15,6 +15,9 @@ import Database from 'better-sqlite3';
15
15
  import { join } from 'path';
16
16
  import * as fs from 'fs';
17
17
  import { PDRuntimeError } from '../error-categories.js';
18
+ function isRecord(value) {
19
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
20
+ }
18
21
  export class SqliteConnection {
19
22
  db = null;
20
23
  dbPath;
@@ -106,6 +109,26 @@ export class SqliteConnection {
106
109
  return { journalMode: 'error', busyTimeout: 0, synchronous: 'error', foreignKeys: false, healthy: false, issues: ['pragma read failed - database may be corrupted'] };
107
110
  }
108
111
  }
112
+ /**
113
+ * Returns the current schema version of state.db.
114
+ * Versions are stored as TEXT and compared lexicographically (e.g., '000' < '001').
115
+ * Returns '000' for fresh databases or if the table is somehow missing.
116
+ */
117
+ getSchemaVersion() {
118
+ const db = this.getDb();
119
+ const row = db.prepare('SELECT version FROM schema_version ORDER BY version DESC LIMIT 1').get();
120
+ if (!isRecord(row) || typeof row.version !== 'string')
121
+ return '000';
122
+ return row.version;
123
+ }
124
+ /**
125
+ * Records a new schema version after a migration is applied.
126
+ * Each call inserts a new row (append-only history for audit).
127
+ */
128
+ setSchemaVersion(version) {
129
+ const db = this.getDb();
130
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(version);
131
+ }
109
132
  initSchema() {
110
133
  const db = this.db;
111
134
  db.exec(`
@@ -326,19 +349,59 @@ export class SqliteConnection {
326
349
  db.exec('ALTER TABLE activations ADD COLUMN deactivated_at TEXT');
327
350
  }
328
351
  }
352
+ // PRI-286: confirm_first_state table is orphaned (SqliteConfirmFirstStateStore class deleted).
353
+ // Drop legacy table if exists; CREATE is no longer needed.
354
+ db.exec(`
355
+ DROP TABLE IF EXISTS confirm_first_state;
356
+ DROP INDEX IF EXISTS idx_confirm_first_state_last_seen;
357
+ `);
358
+ // PRI-470: IntentDecisionRecord durable store (SPEC §21.7).
359
+ // Stores immutable snapshots of source / evidenceStrength /
360
+ // relatedIntentFields / evidenceRefs so the audit trail stays accurate
361
+ // even if the underlying artifact is later modified.
329
362
  db.exec(`
330
- CREATE TABLE IF NOT EXISTS confirm_first_state (
331
- session_id TEXT PRIMARY KEY,
332
- directive_active INTEGER NOT NULL DEFAULT 0,
333
- directive_principle_id TEXT,
334
- directive_set_at TEXT NOT NULL,
335
- approval_active INTEGER NOT NULL DEFAULT 0,
336
- approval_set_at TEXT,
337
- last_seen_at TEXT NOT NULL
363
+ CREATE TABLE IF NOT EXISTS intent_decisions (
364
+ id TEXT PRIMARY KEY,
365
+ pain_id TEXT,
366
+ task_id TEXT NOT NULL,
367
+ run_id TEXT,
368
+ intent_doc_hash TEXT,
369
+ source TEXT NOT NULL,
370
+ evidence_strength TEXT NOT NULL,
371
+ related_intent_fields TEXT NOT NULL,
372
+ owner_action TEXT NOT NULL,
373
+ evidence_refs TEXT NOT NULL,
374
+ note TEXT,
375
+ source_snapshot TEXT NOT NULL,
376
+ evidence_strength_snapshot TEXT NOT NULL,
377
+ related_intent_fields_snapshot TEXT NOT NULL,
378
+ evidence_refs_snapshot TEXT NOT NULL,
379
+ resulting_candidate_id TEXT,
380
+ resulting_rule_candidate_id TEXT,
381
+ patch_proposal_id TEXT,
382
+ created_at TEXT NOT NULL
338
383
  );
339
- CREATE INDEX IF NOT EXISTS idx_confirm_first_state_last_seen
340
- ON confirm_first_state(last_seen_at);
384
+ CREATE INDEX IF NOT EXISTS idx_intent_decisions_pain_id ON intent_decisions(pain_id);
385
+ CREATE INDEX IF NOT EXISTS idx_intent_decisions_task_id ON intent_decisions(task_id);
386
+ CREATE INDEX IF NOT EXISTS idx_intent_decisions_owner_action ON intent_decisions(owner_action);
387
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_intent_decisions_pain_hash_action
388
+ ON intent_decisions(pain_id, intent_doc_hash, owner_action)
389
+ WHERE pain_id IS NOT NULL;
341
390
  `);
391
+ // P2-10: Minimal schema_version table for state.db migration tracking.
392
+ // core cannot import plugin's MigrationRunner (dependency direction),
393
+ // so this is a lightweight version that records schema version history.
394
+ db.exec(`
395
+ CREATE TABLE IF NOT EXISTS schema_version (
396
+ version TEXT NOT NULL DEFAULT '000',
397
+ applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
398
+ );
399
+ `);
400
+ // Seed initial version '000' if table is empty (fresh database).
401
+ const countRow = db.prepare('SELECT COUNT(*) as cnt FROM schema_version').get();
402
+ if (!isRecord(countRow) || typeof countRow.cnt !== 'number' || countRow.cnt === 0) {
403
+ db.prepare("INSERT INTO schema_version (version) VALUES ('000')").run();
404
+ }
342
405
  }
343
406
  migrateSchema() {
344
407
  const db = this.db;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.188.0",
3
+ "version": "1.190.0",
4
4
  "description": "Universal Evolution SDK - framework-agnostic pain signal capture and principle injection",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",