@principles/core 1.279.0 → 1.279.2

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 (89) hide show
  1. package/dist/evolution-store.d.ts +17 -6
  2. package/dist/evolution-store.d.ts.map +1 -1
  3. package/dist/evolution-store.js +26 -27
  4. package/dist/evolution-store.js.map +1 -1
  5. package/dist/evolution-store.test.js +40 -41
  6. package/dist/evolution-store.test.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/trajectory-store.test.js +28 -12
  12. package/dist/runtime-v2/__tests__/trajectory-store.test.js.map +1 -1
  13. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +19 -0
  14. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  15. package/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
  16. package/dist/runtime-v2/config/pd-config-effective.js +10 -4
  17. package/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
  18. package/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -1
  19. package/dist/runtime-v2/config/pd-config-feature-flags.js +9 -3
  20. package/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -1
  21. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +2 -2
  22. package/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +1 -1
  23. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  24. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +18 -9
  25. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  26. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts.map +1 -1
  27. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js +25 -28
  28. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js.map +1 -1
  29. package/dist/runtime-v2/feature-flags/plugin-surface-registry.d.ts.map +1 -1
  30. package/dist/runtime-v2/feature-flags/plugin-surface-registry.js +0 -18
  31. package/dist/runtime-v2/feature-flags/plugin-surface-registry.js.map +1 -1
  32. package/dist/runtime-v2/index.d.ts +2 -1
  33. package/dist/runtime-v2/index.d.ts.map +1 -1
  34. package/dist/runtime-v2/index.js +2 -0
  35. package/dist/runtime-v2/index.js.map +1 -1
  36. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +75 -5
  37. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  38. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  40. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts +2 -0
  41. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.d.ts.map +1 -0
  42. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js +279 -0
  43. package/dist/runtime-v2/internalization/__tests__/evaluator-host-alias-replay.test.js.map +1 -0
  44. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js +43 -0
  45. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js.map +1 -1
  46. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +36 -2
  47. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  48. package/dist/runtime-v2/internalization/artificer-prompt-builder.js +64 -7
  49. package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  50. package/dist/runtime-v2/internalization/artificer-runner.d.ts +10 -1
  51. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  52. package/dist/runtime-v2/internalization/artificer-runner.js +6 -0
  53. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  54. package/dist/runtime-v2/internalization/context-manifests.d.ts +3 -1
  55. package/dist/runtime-v2/internalization/context-manifests.d.ts.map +1 -1
  56. package/dist/runtime-v2/internalization/context-manifests.js +3 -1
  57. package/dist/runtime-v2/internalization/context-manifests.js.map +1 -1
  58. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +31 -0
  59. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  60. package/dist/runtime-v2/internalization/evaluator-runner.js +93 -1
  61. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  62. package/dist/runtime-v2/internalization/index.d.ts +2 -1
  63. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  64. package/dist/runtime-v2/internalization/index.js +2 -0
  65. package/dist/runtime-v2/internalization/index.js.map +1 -1
  66. package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts +7 -0
  67. package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts.map +1 -1
  68. package/dist/runtime-v2/internalization/tool-semantic-registry.js +9 -0
  69. package/dist/runtime-v2/internalization/tool-semantic-registry.js.map +1 -1
  70. package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts +14 -8
  71. package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts.map +1 -1
  72. package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js +14 -8
  73. package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js.map +1 -1
  74. package/dist/runtime-v2/runner/peer-runner-types.d.ts +4 -1
  75. package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  76. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
  77. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +6 -0
  78. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
  79. package/dist/telemetry-event.d.ts +2 -2
  80. package/dist/telemetry-event.d.ts.map +1 -1
  81. package/dist/telemetry-event.js +4 -0
  82. package/dist/telemetry-event.js.map +1 -1
  83. package/dist/trajectory-store.d.ts +59 -4
  84. package/dist/trajectory-store.d.ts.map +1 -1
  85. package/dist/trajectory-store.js +162 -31
  86. package/dist/trajectory-store.js.map +1 -1
  87. package/dist/trajectory-store.test.js +30 -20
  88. package/dist/trajectory-store.test.js.map +1 -1
  89. package/package.json +1 -1
@@ -4,10 +4,15 @@
4
4
  * Extracts listCorrectionSamples and reviewCorrectionSample from TrajectoryDatabase
5
5
  * as pure functions that can be used without openclaw-plugin dependency.
6
6
  *
7
+ * Reads the canonical workspace trajectory database
8
+ * (`{workspaceDir}/.state/trajectory.db`) written by openclaw-plugin
9
+ * TrajectoryDatabase — see trajectory-db.ts for the shared path contract.
10
+ *
7
11
  * @example
8
12
  * import { listCorrectionSamples, reviewCorrectionSample } from '@principles/core/trajectory-store';
9
13
  */
10
14
  import Database from 'better-sqlite3';
15
+ import { existsSync } from 'fs';
11
16
  import { join } from 'path';
12
17
  // ---------------------------------------------------------------------------
13
18
  // Helpers
@@ -15,8 +20,78 @@ import { join } from 'path';
15
20
  function nowIso() {
16
21
  return new Date().toISOString();
17
22
  }
18
- function getDbPath(workspaceDir) {
19
- return join(workspaceDir, '.state', '.trajectory.db');
23
+ // ---------------------------------------------------------------------------
24
+ // Canonical database access (shared with evolution-store)
25
+ // ---------------------------------------------------------------------------
26
+ /**
27
+ * Canonical trajectory.db location shared by every SDK reader.
28
+ *
29
+ * The production writer is openclaw-plugin `TrajectoryDatabase`, whose path
30
+ * authority is openclaw-plugin `core/paths.ts`
31
+ * (`PD_FILES.TRAJECTORY_DB = .state/trajectory.db`). principles-core must not
32
+ * import from openclaw-plugin, so the relative path is pinned here; the
33
+ * plugin-to-core round-trip test
34
+ * (openclaw-plugin/tests/core/trajectory-store-round-trip.test.ts) writes
35
+ * through TrajectoryDatabase and reads through this module — if either side
36
+ * moves the file, that test fails.
37
+ *
38
+ * A missing database is NOT the same as an empty database: readers open the
39
+ * file through `openTrajectoryDbReadonly`, which throws
40
+ * `TrajectoryDbUnavailableError` (carrying the path and reason) instead of
41
+ * silently returning no rows (rc-3 fail-loud-missing, rc-9 no-silent-fallback).
42
+ */
43
+ export function resolveTrajectoryDbPath(workspaceDir) {
44
+ return join(workspaceDir, '.state', 'trajectory.db');
45
+ }
46
+ /**
47
+ * The trajectory database cannot be read at its canonical location.
48
+ *
49
+ * Distinct from "the database exists and has no rows": callers (CLI commands)
50
+ * must surface this as an operator-visible failure with a next action, never
51
+ * as an empty result.
52
+ */
53
+ export class TrajectoryDbUnavailableError extends Error {
54
+ dbPath;
55
+ constructor(dbPath, reason) {
56
+ super(`Trajectory database unavailable at ${dbPath} (${reason})`);
57
+ this.name = 'TrajectoryDbUnavailableError';
58
+ this.dbPath = dbPath;
59
+ }
60
+ }
61
+ /**
62
+ * Open the workspace trajectory database read-only or throw.
63
+ *
64
+ * Read-only on purpose: these primitives never create or migrate the file —
65
+ * the writer (openclaw-plugin TrajectoryDatabase / `pd runtime init`) owns
66
+ * creation, so a missing file is reported, not papered over.
67
+ */
68
+ export function openTrajectoryDbReadonly(workspaceDir) {
69
+ const dbPath = resolveTrajectoryDbPath(workspaceDir);
70
+ if (!existsSync(dbPath)) {
71
+ throw new TrajectoryDbUnavailableError(dbPath, 'database file does not exist');
72
+ }
73
+ try {
74
+ return new Database(dbPath, { readonly: true });
75
+ }
76
+ catch (err) {
77
+ const msg = err instanceof Error ? err.message : String(err);
78
+ throw new TrajectoryDbUnavailableError(dbPath, `cannot be opened: ${msg}`);
79
+ }
80
+ }
81
+ /**
82
+ * Translate unexpected query/DDL failures into the same typed unavailability
83
+ * the CLI layer knows how to present (PRI-753 review: malformed or
84
+ * schema-less databases must not escape as raw stack traces). The underlying
85
+ * SQLite message is preserved in the reason. Domain errors (sample not
86
+ * found) and existing unavailability errors pass through unchanged.
87
+ */
88
+ export function rethrowAsQueryFailed(dbPath, err) {
89
+ if (err instanceof TrajectoryDbUnavailableError)
90
+ throw err;
91
+ if (err instanceof Error && err.message.startsWith('Sample not found'))
92
+ throw err;
93
+ const msg = err instanceof Error ? err.message : String(err);
94
+ throw new TrajectoryDbUnavailableError(dbPath, `query failed: ${msg}`);
20
95
  }
21
96
  // ---------------------------------------------------------------------------
22
97
  // Core functions
@@ -24,20 +99,16 @@ function getDbPath(workspaceDir) {
24
99
  /**
25
100
  * List correction samples by review status.
26
101
  *
27
- * @param workspaceDir - The workspace directory (DB path: {workspaceDir}/.state/.trajectory.db)
102
+ * @param workspaceDir - The workspace directory (DB path: {workspaceDir}/.state/trajectory.db)
28
103
  * @param status - Filter by review status (default: 'pending')
29
- * @returns Array of CorrectionSampleRecord, or empty array if DB does not exist
104
+ * @returns Array of CorrectionSampleRecord; empty array means the database
105
+ * exists and has no matching rows
106
+ * @throws TrajectoryDbUnavailableError if the database does not exist or
107
+ * cannot be opened — never silently treated as "no samples"
30
108
  */
31
109
  export function listCorrectionSamples(workspaceDir, status = 'pending') {
32
- const dbPath = getDbPath(workspaceDir);
33
- let db;
34
- try {
35
- db = new Database(dbPath, { readonly: true });
36
- }
37
- catch {
38
- // Graceful fallback: DB does not exist yet
39
- return [];
40
- }
110
+ const db = openTrajectoryDbReadonly(workspaceDir);
111
+ const dbPath = resolveTrajectoryDbPath(workspaceDir);
41
112
  try {
42
113
  const rows = db.prepare(`
43
114
  SELECT sample_id, session_id, bad_assistant_turn_id, user_correction_turn_id,
@@ -63,48 +134,92 @@ export function listCorrectionSamples(workspaceDir, status = 'pending') {
63
134
  }));
64
135
  }
65
136
  catch (err) {
66
- const msg = err instanceof Error ? err.message : String(err);
67
- console.error(`[PD:TrajectoryStore] Failed to list correction samples: ${msg}`);
68
- return [];
137
+ rethrowAsQueryFailed(dbPath, err);
69
138
  }
70
139
  finally {
71
140
  db.close();
72
141
  }
73
142
  }
143
+ /**
144
+ * Mirror of openclaw-plugin TrajectoryDatabase.recordCorrectionRejectedPain:
145
+ * the two review surfaces (pd-cli and /pd-samples) must produce the same
146
+ * correction_rejected pain event, otherwise Owner rejections recorded via the
147
+ * CLI silently drop out of the pain pipeline. host_kind stays 'openclaw'
148
+ * because correction samples are only mined from OpenClaw sessions.
149
+ * Non-fatal: failures warn and leave the review result intact.
150
+ */
151
+ function recordCorrectionRejectedPain(db, record) {
152
+ try {
153
+ const painScore = Math.max(0, Math.min(100, Math.round(Number(record.qualityScore) || 0)));
154
+ const reason = `Correction rejected (quality ${record.qualityScore.toFixed(2)}). Principles: ${record.principleIdsJson}${record.diffExcerpt ? ` — ${record.diffExcerpt.slice(0, 120)}` : ''}`;
155
+ const severity = painScore >= 70 ? 'severe' : painScore >= 40 ? 'moderate' : 'mild';
156
+ db.transaction(() => {
157
+ db.prepare(`
158
+ INSERT INTO sessions (session_id, started_at, updated_at)
159
+ VALUES (?, ?, ?)
160
+ ON CONFLICT(session_id) DO UPDATE SET updated_at = excluded.updated_at
161
+ `).run(record.sessionId, record.createdAt, record.createdAt);
162
+ db.prepare(`
163
+ INSERT INTO pain_events (
164
+ session_id, source, score, reason, severity, origin, confidence, text, created_at, host_kind
165
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
166
+ `).run(record.sessionId, 'correction_rejected', painScore, reason, severity, 'system_infer', 1, record.diffExcerpt || null, record.createdAt, 'openclaw');
167
+ })();
168
+ }
169
+ catch (err) {
170
+ const msg = err instanceof Error ? err.message : String(err);
171
+ console.warn(`[PD:TrajectoryStore] Failed to record correction_rejected pain event: ${msg}`);
172
+ }
173
+ }
74
174
  /**
75
175
  * Review a correction sample (approve or reject).
76
176
  *
77
177
  * @param sampleId - The sample ID to review
78
178
  * @param decision - 'approved' or 'rejected'
79
179
  * @param note - Optional review note
80
- * @param workspaceDir - The workspace directory (DB path: {workspaceDir}/.state/.trajectory.db)
180
+ * @param workspaceDir - The workspace directory (DB path: {workspaceDir}/.state/trajectory.db)
81
181
  * @returns The updated CorrectionSampleRecord
82
- * @throws Error if the sample is not found or DB cannot be opened
182
+ * @throws TrajectoryDbUnavailableError if the database does not exist,
183
+ * cannot be opened, or the schema/query fails
184
+ * @throws Error if the sample is not found
83
185
  */
84
186
  // eslint-disable-next-line @typescript-eslint/max-params
85
187
  export function reviewCorrectionSample(sampleId, decision, note, workspaceDir) {
86
- const dbPath = getDbPath(workspaceDir);
188
+ const dbPath = resolveTrajectoryDbPath(workspaceDir);
189
+ if (!existsSync(dbPath)) {
190
+ throw new TrajectoryDbUnavailableError(dbPath, 'database file does not exist');
191
+ }
87
192
  let db;
88
193
  try {
89
194
  db = new Database(dbPath);
90
195
  }
91
- catch {
92
- throw new Error(`Database not found or cannot be opened: ${dbPath}`);
196
+ catch (err) {
197
+ const msg = err instanceof Error ? err.message : String(err);
198
+ throw new TrajectoryDbUnavailableError(dbPath, `cannot be opened: ${msg}`);
93
199
  }
94
200
  const updatedAt = nowIso();
201
+ let updated = false;
95
202
  try {
96
- const updateResult = db.prepare(`
97
- UPDATE correction_samples
98
- SET review_status = ?, updated_at = ?
99
- WHERE sample_id = ?
100
- `).run(decision, updatedAt, sampleId);
101
- if (updateResult.changes === 0) {
203
+ // Status change and audit row commit together: a failure in either rolls
204
+ // back both, so an Owner decision never lands without its audit record.
205
+ db.transaction(() => {
206
+ const updateResult = db.prepare(`
207
+ UPDATE correction_samples
208
+ SET review_status = ?, updated_at = ?
209
+ WHERE sample_id = ?
210
+ `).run(decision, updatedAt, sampleId);
211
+ if (updateResult.changes === 0) {
212
+ return;
213
+ }
214
+ db.prepare(`
215
+ INSERT INTO sample_reviews (sample_id, review_status, note, created_at)
216
+ VALUES (?, ?, ?, ?)
217
+ `).run(sampleId, decision, note ?? null, updatedAt);
218
+ updated = true;
219
+ })();
220
+ if (!updated) {
102
221
  throw new Error(`Sample not found: ${sampleId}`);
103
222
  }
104
- db.prepare(`
105
- INSERT INTO sample_reviews (sample_id, review_status, note, created_at)
106
- VALUES (?, ?, ?, ?)
107
- `).run(sampleId, decision, note ?? null, updatedAt);
108
223
  const record = db.prepare(`
109
224
  SELECT sample_id, session_id, bad_assistant_turn_id, user_correction_turn_id,
110
225
  recovery_tool_span_json, diff_excerpt, principle_ids_json, quality_score,
@@ -115,6 +230,19 @@ export function reviewCorrectionSample(sampleId, decision, note, workspaceDir) {
115
230
  if (!record) {
116
231
  throw new Error(`Sample not found after update: ${sampleId}`);
117
232
  }
233
+ // Rejection parity with the plugin writer (openclaw-plugin
234
+ // TrajectoryDatabase.recordCorrectionRejectedPain): a rejected correction
235
+ // feeds the pain pipeline as source 'correction_rejected'. Non-fatal by
236
+ // contract — the review result must survive a pain-write failure.
237
+ if (decision === 'rejected') {
238
+ recordCorrectionRejectedPain(db, {
239
+ sessionId: String(record.session_id),
240
+ qualityScore: Number(record.quality_score),
241
+ diffExcerpt: String(record.diff_excerpt ?? ''),
242
+ principleIdsJson: String(record.principle_ids_json ?? '[]'),
243
+ createdAt: String(record.created_at),
244
+ });
245
+ }
118
246
  return {
119
247
  sampleId: String(record.sample_id),
120
248
  sessionId: String(record.session_id),
@@ -130,6 +258,9 @@ export function reviewCorrectionSample(sampleId, decision, note, workspaceDir) {
130
258
  updatedAt: String(record.updated_at),
131
259
  };
132
260
  }
261
+ catch (err) {
262
+ rethrowAsQueryFailed(dbPath, err);
263
+ }
133
264
  finally {
134
265
  db.close();
135
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trajectory-store.js","sourceRoot":"","sources":["../src/trajectory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trajectory-store.js","sourceRoot":"","sources":["../src/trajectory-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAyB5B,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,OAAO,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAC5C,MAAM,CAAS;IAExB,YAAY,MAAc,EAAE,MAAc;QACxC,KAAK,CAAC,sCAAsC,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,GAAY;IAC/D,IAAI,GAAG,YAAY,4BAA4B;QAAE,MAAM,GAAG,CAAC;IAC3D,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,MAAM,GAAG,CAAC;IAClF,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAoB,EACpB,MAAM,GAAiC,SAAS;IAEhD,MAAM,EAAE,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOvB,CAAC,CAAC,GAAG,CAAC,MAAM,CAA8B,CAAC;QAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACrD,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACzD,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;YAC/D,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YAC3C,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;YACxD,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YACvC,YAAY,EAAE,GAAG,CAAC,aAA6C;YAC/D,UAAU,EAAE,GAAG,CAAC,WAAmC;YACnD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;SAClC,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,4BAA4B,CACnC,EAAqB,EACrB,MAMC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,gCAAgC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9L,MAAM,QAAQ,GAAG,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAEpF,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,EAAE,CAAC,OAAO,CAAC;;;;OAIV,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAE7D,EAAE,CAAC,OAAO,CAAC;;;;OAIV,CAAC,CAAC,GAAG,CACJ,MAAM,CAAC,SAAS,EAChB,qBAAqB,EACrB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,cAAc,EACd,CAAC,EACD,MAAM,CAAC,WAAW,IAAI,IAAI,EAC1B,MAAM,CAAC,SAAS,EAChB,UAAU,CACX,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,yEAAyE,GAAG,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,QAAiC,EACjC,IAAwB,EACxB,YAAoB;IAEpB,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,EAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC;QACH,yEAAyE;QACzE,wEAAwE;QACxE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;;OAI/B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC;YAEpD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;KAMzB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAwC,CAAC;QAExD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,2DAA2D;QAC3D,0EAA0E;QAC1E,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,4BAA4B,CAAC,EAAE,EAAE;gBAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;gBACpC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC9C,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC;gBAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAClC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YACpC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;YACxD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;YAC5D,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC;YAClE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;YAC9C,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC;YAC3D,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC1C,YAAY,EAAE,MAAM,CAAC,aAA6C;YAClE,UAAU,EAAE,MAAM,CAAC,WAAmC;YACtD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
2
  import { join } from 'path';
3
3
  import { mkdirSync, rmSync } from 'fs';
4
4
  import Database from 'better-sqlite3';
5
- import { listCorrectionSamples, reviewCorrectionSample, } from './trajectory-store.js';
5
+ import { listCorrectionSamples, reviewCorrectionSample, TrajectoryDbUnavailableError, } from './trajectory-store.js';
6
6
  describe('trajectory-store', () => {
7
7
  let tmpDir;
8
8
  beforeEach(() => {
@@ -65,12 +65,23 @@ describe('trajectory-store', () => {
65
65
  db.close();
66
66
  }
67
67
  describe('listCorrectionSamples', () => {
68
- it('returns empty array when DB does not exist', () => {
68
+ it('throws TrajectoryDbUnavailableError when DB does not exist', () => {
69
+ // A missing database is not the same as an empty database: the reader
70
+ // must fail loud instead of returning no rows (rc-3 / rc-9).
71
+ expect(() => listCorrectionSamples(tmpDir)).toThrow(TrajectoryDbUnavailableError);
72
+ });
73
+ it('returns empty array when the database exists but has no matching rows', () => {
74
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
75
+ mkdirSync(join(tmpDir, '.state'), { recursive: true });
76
+ setupTestDb(dbPath);
77
+ const db = new Database(dbPath);
78
+ db.prepare('DELETE FROM correction_samples').run();
79
+ db.close();
69
80
  const result = listCorrectionSamples(tmpDir);
70
81
  expect(result).toEqual([]);
71
82
  });
72
83
  it('returns pending samples by default', () => {
73
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
84
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
74
85
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
75
86
  setupTestDb(dbPath);
76
87
  const result = listCorrectionSamples(tmpDir);
@@ -79,7 +90,7 @@ describe('trajectory-store', () => {
79
90
  expect(result[0]?.reviewStatus).toBe('pending');
80
91
  });
81
92
  it('returns approved samples when filtered', () => {
82
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
93
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
83
94
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
84
95
  setupTestDb(dbPath);
85
96
  const result = listCorrectionSamples(tmpDir, 'approved');
@@ -87,7 +98,7 @@ describe('trajectory-store', () => {
87
98
  expect(result[0]?.sampleId).toBe('sample-002');
88
99
  });
89
100
  it('returns rejected samples when filtered', () => {
90
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
101
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
91
102
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
92
103
  setupTestDb(dbPath);
93
104
  const result = listCorrectionSamples(tmpDir, 'rejected');
@@ -95,7 +106,7 @@ describe('trajectory-store', () => {
95
106
  expect(result[0]?.sampleId).toBe('sample-003');
96
107
  });
97
108
  it('returns samples with all expected fields', () => {
98
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
109
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
99
110
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
100
111
  setupTestDb(dbPath);
101
112
  const result = listCorrectionSamples(tmpDir);
@@ -113,16 +124,15 @@ describe('trajectory-store', () => {
113
124
  expect(typeof sample?.createdAt).toBe('string');
114
125
  expect(typeof sample?.updatedAt).toBe('string');
115
126
  });
116
- it('returns empty array on database error', () => {
117
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
127
+ it('throws TrajectoryDbUnavailableError when the database file has no expected schema', () => {
128
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
118
129
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
119
130
  const db = new Database(dbPath);
120
131
  db.close();
121
- const result = listCorrectionSamples(tmpDir);
122
- expect(result).toEqual([]);
132
+ expect(() => listCorrectionSamples(tmpDir)).toThrow(TrajectoryDbUnavailableError);
123
133
  });
124
134
  it('orders by created_at DESC', () => {
125
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
135
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
126
136
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
127
137
  setupTestDb(dbPath);
128
138
  const db = new Database(dbPath);
@@ -139,7 +149,7 @@ describe('trajectory-store', () => {
139
149
  expect(result[1]?.sampleId).toBe('sample-001');
140
150
  });
141
151
  it('handles NULL optional fields gracefully', () => {
142
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
152
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
143
153
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
144
154
  const db = new Database(dbPath);
145
155
  db.exec(`
@@ -175,7 +185,7 @@ describe('trajectory-store', () => {
175
185
  });
176
186
  describe('reviewCorrectionSample', () => {
177
187
  it('approves a pending sample', () => {
178
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
188
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
179
189
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
180
190
  setupTestDb(dbPath);
181
191
  const result = reviewCorrectionSample('sample-001', 'approved', 'Looks good', tmpDir);
@@ -190,7 +200,7 @@ describe('trajectory-store', () => {
190
200
  db.close();
191
201
  });
192
202
  it('rejects a pending sample', () => {
193
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
203
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
194
204
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
195
205
  setupTestDb(dbPath);
196
206
  const result = reviewCorrectionSample('sample-001', 'rejected', 'Not applicable', tmpDir);
@@ -202,16 +212,16 @@ describe('trajectory-store', () => {
202
212
  db.close();
203
213
  });
204
214
  it('throws error when sample not found', () => {
205
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
215
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
206
216
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
207
217
  setupTestDb(dbPath);
208
218
  expect(() => reviewCorrectionSample('sample-unknown', 'approved', 'Note', tmpDir)).toThrow('Sample not found: sample-unknown');
209
219
  });
210
- it('throws error when DB does not exist', () => {
211
- expect(() => reviewCorrectionSample('sample-001', 'approved', 'Note', tmpDir)).toThrow(/Database not found/);
220
+ it('throws TrajectoryDbUnavailableError when DB does not exist', () => {
221
+ expect(() => reviewCorrectionSample('sample-001', 'approved', 'Note', tmpDir)).toThrow(TrajectoryDbUnavailableError);
212
222
  });
213
223
  it('updates updated_at timestamp', () => {
214
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
224
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
215
225
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
216
226
  setupTestDb(dbPath);
217
227
  const db = new Database(dbPath);
@@ -225,7 +235,7 @@ describe('trajectory-store', () => {
225
235
  expect(after?.updated_at).not.toBe(before?.updated_at);
226
236
  });
227
237
  it('handles undefined note', () => {
228
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
238
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
229
239
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
230
240
  setupTestDb(dbPath);
231
241
  const result = reviewCorrectionSample('sample-001', 'approved', undefined, tmpDir);
@@ -236,7 +246,7 @@ describe('trajectory-store', () => {
236
246
  db.close();
237
247
  });
238
248
  it('handles empty note', () => {
239
- const dbPath = join(tmpDir, '.state', '.trajectory.db');
249
+ const dbPath = join(tmpDir, '.state', 'trajectory.db');
240
250
  mkdirSync(join(tmpDir, '.state'), { recursive: true });
241
251
  setupTestDb(dbPath);
242
252
  const result = reviewCorrectionSample('sample-001', 'approved', '', tmpDir);
@@ -1 +1 @@
1
- {"version":3,"file":"trajectory-store.test.js","sourceRoot":"","sources":["../src/trajectory-store.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trajectory-store.test.js","sourceRoot":"","sources":["../src/trajectory-store.test.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.279.0",
3
+ "version": "1.279.2",
4
4
  "description": "Pure-logic core of Principles Disciple, an AI Agent Governance System - pain signal capture and principle proposal (no I/O)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",