@principles/core 1.235.0 → 1.237.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 (99) hide show
  1. package/dist/principle-tree-ledger.d.ts.map +1 -1
  2. package/dist/principle-tree-ledger.js +55 -30
  3. package/dist/principle-tree-ledger.js.map +1 -1
  4. package/dist/runtime-v2/__tests__/feedback/create-report.test.js +51 -0
  5. package/dist/runtime-v2/__tests__/feedback/create-report.test.js.map +1 -1
  6. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js +1 -1
  7. package/dist/runtime-v2/__tests__/feedback/privacy-preview.test.js.map +1 -1
  8. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js +1 -1
  9. package/dist/runtime-v2/__tests__/feedback/render-markdown.test.js.map +1 -1
  10. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +109 -0
  11. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  12. package/dist/runtime-v2/activation/activation-dispatcher.d.ts +11 -0
  13. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  14. package/dist/runtime-v2/activation/activation-dispatcher.js +60 -6
  15. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  16. package/dist/runtime-v2/activation/activation-types.d.ts +4 -0
  17. package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  18. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +34 -0
  19. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  20. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  21. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +5 -0
  22. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  23. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts +2 -0
  24. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.d.ts.map +1 -0
  25. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js +221 -0
  26. package/dist/runtime-v2/feedback/__tests__/create-report-agent-draft.test.js.map +1 -0
  27. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts +11 -0
  28. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.d.ts.map +1 -0
  29. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js +160 -0
  30. package/dist/runtime-v2/feedback/__tests__/mailto-url.test.js.map +1 -0
  31. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts +2 -0
  32. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.d.ts.map +1 -0
  33. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js +342 -0
  34. package/dist/runtime-v2/feedback/__tests__/pending-agent-draft-store.test.js.map +1 -0
  35. package/dist/runtime-v2/feedback/create-report.d.ts +7 -1
  36. package/dist/runtime-v2/feedback/create-report.d.ts.map +1 -1
  37. package/dist/runtime-v2/feedback/create-report.js +65 -7
  38. package/dist/runtime-v2/feedback/create-report.js.map +1 -1
  39. package/dist/runtime-v2/feedback/feedback-types.d.ts +18 -1
  40. package/dist/runtime-v2/feedback/feedback-types.d.ts.map +1 -1
  41. package/dist/runtime-v2/feedback/feedback-types.js +19 -12
  42. package/dist/runtime-v2/feedback/feedback-types.js.map +1 -1
  43. package/dist/runtime-v2/feedback/index.d.ts +3 -1
  44. package/dist/runtime-v2/feedback/index.d.ts.map +1 -1
  45. package/dist/runtime-v2/feedback/index.js +7 -1
  46. package/dist/runtime-v2/feedback/index.js.map +1 -1
  47. package/dist/runtime-v2/feedback/pending-agent-draft-store.d.ts +106 -0
  48. package/dist/runtime-v2/feedback/pending-agent-draft-store.d.ts.map +1 -0
  49. package/dist/runtime-v2/feedback/pending-agent-draft-store.js +220 -0
  50. package/dist/runtime-v2/feedback/pending-agent-draft-store.js.map +1 -0
  51. package/dist/runtime-v2/feedback/privacy-preview.d.ts +16 -0
  52. package/dist/runtime-v2/feedback/privacy-preview.d.ts.map +1 -1
  53. package/dist/runtime-v2/feedback/privacy-preview.js +54 -0
  54. package/dist/runtime-v2/feedback/privacy-preview.js.map +1 -1
  55. package/dist/runtime-v2/index.d.ts +5 -0
  56. package/dist/runtime-v2/index.d.ts.map +1 -1
  57. package/dist/runtime-v2/index.js +9 -0
  58. package/dist/runtime-v2/index.js.map +1 -1
  59. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts +2 -0
  60. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.d.ts.map +1 -0
  61. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js +459 -0
  62. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js.map +1 -0
  63. package/dist/runtime-v2/runner/base-peer-runner.d.ts +27 -0
  64. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  65. package/dist/runtime-v2/runner/base-peer-runner.js +138 -0
  66. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  67. package/dist/runtime-v2/runner/peer-runner-types.d.ts +9 -0
  68. package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  69. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts +2 -0
  70. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.d.ts.map +1 -0
  71. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js +225 -0
  72. package/dist/runtime-v2/store/pain/__tests__/sqlite-dead-letter-store.test.js.map +1 -0
  73. package/dist/runtime-v2/store/pain/index.d.ts +3 -0
  74. package/dist/runtime-v2/store/pain/index.d.ts.map +1 -0
  75. package/dist/runtime-v2/store/pain/index.js +2 -0
  76. package/dist/runtime-v2/store/pain/index.js.map +1 -0
  77. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.d.ts +70 -0
  78. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.d.ts.map +1 -0
  79. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.js +154 -0
  80. package/dist/runtime-v2/store/pain/sqlite-dead-letter-store.js.map +1 -0
  81. package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  82. package/dist/runtime-v2/store/sqlite-connection.js +41 -0
  83. package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  84. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts +2 -0
  85. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.d.ts.map +1 -0
  86. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +442 -0
  87. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +1 -0
  88. package/dist/runtime-v2/store/task/index.d.ts +1 -0
  89. package/dist/runtime-v2/store/task/index.d.ts.map +1 -1
  90. package/dist/runtime-v2/store/task/index.js.map +1 -1
  91. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts +45 -0
  92. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  93. package/dist/runtime-v2/store/task/sqlite-task-store.js +205 -0
  94. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  95. package/dist/runtime-v2/store/task/task-types.d.ts +60 -0
  96. package/dist/runtime-v2/store/task/task-types.d.ts.map +1 -0
  97. package/dist/runtime-v2/store/task/task-types.js +2 -0
  98. package/dist/runtime-v2/store/task/task-types.js.map +1 -0
  99. package/package.json +3 -2
@@ -7,6 +7,62 @@
7
7
  import { Value } from '@sinclair/typebox/value';
8
8
  import { TaskRecordSchema } from '../../task-status.js';
9
9
  import { PDRuntimeError } from '../../error-categories.js';
10
+ import { SqliteRunStore } from '../run/sqlite-run-store.js';
11
+ // ── Field-level runtime readers for failed-task summary rows (rc-1, rc-3) ────
12
+ //
13
+ // These readers enforce that DB row fields have the expected runtime shape
14
+ // before being used. Required fields fail loud; nullable fields only accept
15
+ // string|null. This mirrors the pattern in sqlite-run-store.ts.
16
+ function readRequiredStringField(value, fieldName) {
17
+ if (typeof value !== 'string' || value.length === 0) {
18
+ throw new PDRuntimeError('storage_unavailable', `Invalid task row: /${fieldName}: expected non-empty string, got ${value === null ? 'null' : typeof value}`);
19
+ }
20
+ return value;
21
+ }
22
+ function readNullableStringField(value, fieldName, taskIdForError) {
23
+ if (value === null || value === undefined)
24
+ return null;
25
+ if (typeof value !== 'string') {
26
+ throw new PDRuntimeError('storage_unavailable', `Task ${taskIdForError} has invalid schema: /${fieldName}: expected string|null, got ${typeof value}`);
27
+ }
28
+ return value;
29
+ }
30
+ function isPlainObject(value) {
31
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
32
+ }
33
+ /**
34
+ * Safely extract `sourcePainId` from the `diagnostic_json` column.
35
+ *
36
+ * `diagnostic_json` is an optional JSON string that may carry PI metadata
37
+ * including the originating pain signal ID (for diagnostician tasks). We
38
+ * parse it defensively: malformed JSON or non-string sourcePainId yield
39
+ * null rather than throwing, so one bad row does not break the entire
40
+ * failed-task list (rc-9: graceful degradation — painId is an optional
41
+ * summary field; the caller observes null and can surface it in UI).
42
+ */
43
+ function extractPainIdFromDiagnosticJson(diagnosticJson, taskIdForError) {
44
+ if (diagnosticJson === null || diagnosticJson === undefined)
45
+ return null;
46
+ if (typeof diagnosticJson !== 'string') {
47
+ throw new PDRuntimeError('storage_unavailable', `Task ${taskIdForError} has invalid schema: /diagnostic_json: expected string|null, got ${typeof diagnosticJson}`);
48
+ }
49
+ if (diagnosticJson.length === 0)
50
+ return null;
51
+ try {
52
+ const parsed = JSON.parse(diagnosticJson);
53
+ if (!isPlainObject(parsed))
54
+ return null;
55
+ if (!Object.hasOwn(parsed, 'sourcePainId'))
56
+ return null;
57
+ const { sourcePainId } = parsed;
58
+ if (typeof sourcePainId !== 'string' || sourcePainId.length === 0)
59
+ return null;
60
+ return sourcePainId;
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
10
66
  export class SqliteTaskStore {
11
67
  connection;
12
68
  constructor(connection) {
@@ -115,6 +171,155 @@ export class SqliteTaskStore {
115
171
  const result = db.prepare('DELETE FROM tasks WHERE task_id = ?').run(taskId);
116
172
  return result.changes > 0;
117
173
  }
174
+ // ── Failed-task observability methods (Task 8) ────────────────────────────
175
+ /**
176
+ * Shared helper for listFailedTasks / countFailedTasks: build the
177
+ * kind/since WHERE conditions and parameter values, scoped to the given
178
+ * table alias. Keeping this in one place ensures the list query and the
179
+ * count query stay consistent when since semantics or task_kind filtering
180
+ * change — divergence would cause list/total mismatch in the Failed
181
+ * Tasks UI pagination.
182
+ */
183
+ static buildFailedTaskConditions(filter, tableAlias) {
184
+ const conditions = [`${tableAlias}status IN ('failed', 'needs_human_review')`];
185
+ const values = [];
186
+ if (filter?.kind !== undefined) {
187
+ conditions.push(`${tableAlias}task_kind = ?`);
188
+ values.push(filter.kind);
189
+ }
190
+ if (filter?.since !== undefined) {
191
+ const sinceIso = new Date(filter.since).toISOString();
192
+ conditions.push(`(SELECT MAX(r.started_at) FROM runs r WHERE r.task_id = ${tableAlias}task_id) >= ?`);
193
+ values.push(sinceIso);
194
+ }
195
+ return { conditions, values };
196
+ }
197
+ /**
198
+ * List tasks in 'failed' or 'needs_human_review' status, sorted by last
199
+ * attempt time descending (most recent failures first).
200
+ *
201
+ * `lastAttemptAt` is derived from `MAX(runs.started_at)` via a correlated
202
+ * subquery; tasks with no runs have NULL lastAttemptAt and sort last
203
+ * (NULL sorts last in SQLite DESC by default).
204
+ *
205
+ * `painId` is extracted from `diagnostic_json.sourcePainId` when present.
206
+ *
207
+ * @param filter Optional kind/since/limit/offset filter.
208
+ */
209
+ async listFailedTasks(filter) {
210
+ const db = this.connection.getDb();
211
+ const { conditions, values } = SqliteTaskStore.buildFailedTaskConditions(filter, 't.');
212
+ let sql = `
213
+ SELECT
214
+ t.task_id,
215
+ t.task_kind,
216
+ t.status,
217
+ t.last_error,
218
+ t.attempt_count,
219
+ t.created_at,
220
+ t.diagnostic_json,
221
+ (SELECT MAX(r.started_at) FROM runs r WHERE r.task_id = t.task_id) AS last_attempt_at
222
+ FROM tasks t
223
+ WHERE ${conditions.join(' AND ')}
224
+ ORDER BY last_attempt_at DESC, t.task_id DESC
225
+ `;
226
+ if (filter?.limit !== undefined) {
227
+ sql += ' LIMIT ?';
228
+ values.push(filter.limit);
229
+ }
230
+ if (filter?.offset !== undefined) {
231
+ sql += ' OFFSET ?';
232
+ values.push(filter.offset);
233
+ }
234
+ // runtime-contract-exempt: ERR-001 better-sqlite3 .all() returns unknown[]; narrowing to Record<string, unknown>[] is type-only (row fields are validated downstream in rowToFailedTaskSummary via typeof / Object.hasOwn)
235
+ const rows = db.prepare(sql).all(...values);
236
+ return rows.map((row) => SqliteTaskStore.rowToFailedTaskSummary(row));
237
+ }
238
+ /**
239
+ * Fetch full detail for a single failed task: the task record, its run
240
+ * history (most recent first), the last error category, and a pending
241
+ * agent draft (null in Task 8; Task 13 wires the real store).
242
+ *
243
+ * Returns null if the task does not exist or is not in a failed /
244
+ * needs_human_review status.
245
+ */
246
+ async getFailedTaskDetail(taskId) {
247
+ const task = await this.getTask(taskId);
248
+ if (!task)
249
+ return null;
250
+ if (task.status !== 'failed' && task.status !== 'needs_human_review')
251
+ return null;
252
+ // Reuse SqliteRunStore's tolerant reader — malformed historical run rows
253
+ // are skipped rather than blocking the detail view. The tolerant method
254
+ // tracks degraded runs internally (rc-9).
255
+ const runStore = new SqliteRunStore(this.connection);
256
+ const { runs: runsAsc } = await runStore.listValidRunsByTaskTolerant(taskId);
257
+ const runs = [...runsAsc].reverse(); // DESC by startedAt
258
+ return {
259
+ task,
260
+ runs,
261
+ lastError: task.lastError ?? null,
262
+ pendingAgentDraft: null, // Task 13 will wire PendingAgentDraftStore
263
+ };
264
+ }
265
+ /**
266
+ * Count tasks in 'failed' or 'needs_human_review' status, with the same
267
+ * kind/since filtering as listFailedTasks. Used for pagination totals.
268
+ */
269
+ async countFailedTasks(filter) {
270
+ const db = this.connection.getDb();
271
+ // tableAlias must be 'tasks.' (not '') so the correlated subquery
272
+ // `r.task_id = tasks.task_id` resolves to the OUTER tasks table. With an
273
+ // empty alias, `r.task_id = task_id` would resolve to the inner runs
274
+ // table, making the subquery return MAX(runs.started_at) across ALL runs
275
+ // and breaking the since filter (false-healthy count).
276
+ const { conditions, values } = SqliteTaskStore.buildFailedTaskConditions(filter, 'tasks.');
277
+ const sql = `SELECT COUNT(*) as cnt FROM tasks WHERE ${conditions.join(' AND ')}`;
278
+ // runtime-contract-exempt: ERR-001 better-sqlite3 .get() returns unknown; narrowing to Record<string, unknown> | undefined is type-only (cnt field is validated below via typeof row.cnt === 'number')
279
+ const row = db.prepare(sql).get(...values);
280
+ if (!row || typeof row.cnt !== 'number' || !Number.isInteger(row.cnt)) {
281
+ throw new PDRuntimeError('storage_unavailable', 'countFailedTasks: expected integer cnt from COUNT(*) query');
282
+ }
283
+ return row.cnt;
284
+ }
285
+ /**
286
+ * Convert a raw DB row into a validated FailedTaskSummary.
287
+ *
288
+ * Trust boundary (rc-1, rc-2, rc-3): the row is UNTRUSTED data. Each field
289
+ * is read with a runtime guard; required fields fail loud, nullable fields
290
+ * only accept their declared shape.
291
+ */
292
+ static rowToFailedTaskSummary(row) {
293
+ const taskId = readRequiredStringField(row.task_id, 'task_id');
294
+ const taskKind = readRequiredStringField(row.task_kind, 'task_kind');
295
+ const createdAt = readRequiredStringField(row.created_at, 'created_at');
296
+ // status: must be 'failed' or 'needs_human_review' (enforced by SQL WHERE,
297
+ // but we validate the DB output per rc-1 — never trust the query alone).
298
+ const statusRaw = row.status;
299
+ if (statusRaw !== 'failed' && statusRaw !== 'needs_human_review') {
300
+ throw new PDRuntimeError('storage_unavailable', `Task ${taskId} has invalid status for failed-task summary: expected 'failed'|'needs_human_review', got ${statusRaw === null ? 'null' : typeof statusRaw}`);
301
+ }
302
+ // attempt_count: required non-negative integer
303
+ const attemptCountRaw = row.attempt_count;
304
+ if (typeof attemptCountRaw !== 'number' ||
305
+ !Number.isInteger(attemptCountRaw) ||
306
+ attemptCountRaw < 0) {
307
+ throw new PDRuntimeError('storage_unavailable', `Task ${taskId} has invalid attempt_count: expected non-negative integer, got ${attemptCountRaw === null ? 'null' : typeof attemptCountRaw}`);
308
+ }
309
+ const lastError = readNullableStringField(row.last_error, 'last_error', taskId);
310
+ const lastAttemptAt = readNullableStringField(row.last_attempt_at, 'last_attempt_at', taskId);
311
+ const painId = extractPainIdFromDiagnosticJson(row.diagnostic_json, taskId);
312
+ return {
313
+ taskId,
314
+ taskKind,
315
+ painId,
316
+ status: statusRaw,
317
+ lastError,
318
+ attemptCount: attemptCountRaw,
319
+ createdAt,
320
+ lastAttemptAt,
321
+ };
322
+ }
118
323
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
119
324
  rowToRecord(row) {
120
325
  const taskId = String(row.task_id);
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-task-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/task/sqlite-task-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAsC,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAE7D,KAAK,CAAC,UAAU,CAAC,MAAmD;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CACJ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,GAAG,EACH,GAAG,EACH,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,IAAI,IAAI,EACzB,MAAM,CAAC,cAAc,IAAI,IAAI,EAC7B,MAAM,CAAC,SAAS,IAAI,IAAI,EACxB,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,MAAM,CAAC,SAAS,IAAI,IAAI,EACxB,MAAM,CAAC,cAAc,IAAI,IAAI,CAC9B,CAAC;QAEF,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAe,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE;aACX,OAAO,CAAC,uCAAuC,CAAC;aAChD,GAAG,CAAC,MAAM,CAAwC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAA2B;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,GAAa,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAc,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QACvF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QACpG,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC;QACjH,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QAC1G,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAAC,CAAC;QACvG,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACjG,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAC9F,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACjG,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC;QAEhH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,MAAM,GAAG,EAAE;aACd,OAAO,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;aAChE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAElB,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,qBAAqB,EAAE,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAe,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAwB;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,GAAG,GAAG,qBAAqB,CAAC;QAChC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAClF,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QACzF,IAAI,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,CAAC,MAAM;YAAE,GAAG,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAAC,GAAG,IAAI,UAAU,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACpE,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,GAAG,IAAI,WAAW,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,qEAAqE;IAC7D,WAAW,CAAwB,GAA4B;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAe;YACzB,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAC/B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAiB;YAC1C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,cAAc,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/E,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;YAC5C,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;YAC1C,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAA4B,CAAC,CAAC,CAAC,IAAI;YACpF,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;QAEF,IAAI,GAAG,CAAC,eAAe,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,QAAQ,MAAM,2CAA2C,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"sqlite-task-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/task/sqlite-task-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Task-related types for failed-task observability (Task 8).
3
+ *
4
+ * These types support the failed_tasks_observability feature flag and the
5
+ * /api/v1/failed-tasks route. They summarize task rows whose status is
6
+ * 'failed' or 'needs_human_review' for operator inspection.
7
+ */
8
+ import type { TaskRecord } from '../../task-status.js';
9
+ import type { RunRecord } from '../run/run-store.js';
10
+ /**
11
+ * Summary of a failed (or needs-human-review) task, suitable for list views.
12
+ *
13
+ * Schema adaptation notes:
14
+ * - `taskKind` maps to the `task_kind` column (PD has no `runner_kind` column;
15
+ * the task kind IS the runner kind for PD pipeline tasks).
16
+ * - `painId` is extracted from `diagnostic_json.sourcePainId` when present
17
+ * (diagnostician tasks carry the originating pain signal ID there).
18
+ * - `lastAttemptAt` is derived from `MAX(runs.started_at)` for the task;
19
+ * null when the task has no run records.
20
+ * - `lastError` is the PDErrorCategory string from `tasks.last_error` (e.g.
21
+ * 'runtime_unavailable'), NOT a free-text error message.
22
+ */
23
+ export interface FailedTaskSummary {
24
+ taskId: string;
25
+ taskKind: string;
26
+ painId: string | null;
27
+ status: 'failed' | 'needs_human_review';
28
+ lastError: string | null;
29
+ attemptCount: number;
30
+ createdAt: string;
31
+ lastAttemptAt: string | null;
32
+ }
33
+ /**
34
+ * Filter for listFailedTasks / countFailedTasks.
35
+ *
36
+ * - `kind`: filter by task_kind (e.g. 'diagnostician').
37
+ * - `since`: Unix timestamp in ms; only tasks whose last run started at or
38
+ * after this time are included. Tasks with no runs are excluded when
39
+ * `since` is specified.
40
+ * - `limit` / `offset`: pagination.
41
+ */
42
+ export interface FailedTaskFilter {
43
+ kind?: string;
44
+ since?: number;
45
+ limit?: number;
46
+ offset?: number;
47
+ }
48
+ /**
49
+ * Detail view for a single failed task, including its run history.
50
+ *
51
+ * `pendingAgentDraft` is null in Task 8; Task 13 will wire it to the
52
+ * pending_agent_drafts table.
53
+ */
54
+ export interface FailedTaskDetail {
55
+ task: TaskRecord;
56
+ runs: RunRecord[];
57
+ lastError: string | null;
58
+ pendingAgentDraft: unknown | null;
59
+ }
60
+ //# sourceMappingURL=task-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-types.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/task/task-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,oBAAoB,CAAC;IACxC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-types.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/task/task-types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.235.0",
3
+ "version": "1.237.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",
@@ -77,7 +77,8 @@
77
77
  "./quality-scorecard": {
78
78
  "types": "./dist/quality-scorecard/index.d.ts",
79
79
  "default": "./dist/quality-scorecard/index.js"
80
- }
80
+ },
81
+ "./package.json": "./package.json"
81
82
  },
82
83
  "files": [
83
84
  "dist"