@principles/core 1.146.0 → 1.146.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 (22) hide show
  1. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js +53 -0
  2. package/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
  3. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +128 -0
  4. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +1 -1
  5. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js +126 -0
  6. package/dist/runtime-v2/adapter/__tests__/test-double-runtime-adapter.test.js.map +1 -1
  7. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts +2 -0
  8. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.d.ts.map +1 -0
  9. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js +227 -0
  10. package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js.map +1 -0
  11. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts +38 -1
  12. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
  13. package/dist/runtime-v2/internalization/split-diagnostician-runner.js +184 -139
  14. package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
  15. package/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  16. package/dist/runtime-v2/pain-signal-observability.js +32 -7
  17. package/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  18. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +5 -3
  19. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  20. package/dist/runtime-v2/pain-signal-runtime-factory.js +5 -3
  21. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  22. package/package.json +1 -1
@@ -9,7 +9,7 @@
9
9
  * Stage A (diag_rootcause) → Stage B (diag_distiller) → Stage C (diag_router)
10
10
  *
11
11
  * After Stage C succeeds, onDiagnosisComplete is invoked by the bridge
12
- * (PainSignalBridge.onPainDetected), not by this wrapper or the router.
12
+ * (PainSignalBridge.onPainDetected), not by this router or the router.
13
13
  *
14
14
  * Key constraints:
15
15
  * - Each stage gets its own task with the correct taskKind
@@ -18,8 +18,12 @@
18
18
  * - If any stage fails, the pipeline stops and returns the failure
19
19
  * - The parent diagnostician task is NOT created — the bridge already
20
20
  * creates it; this runner only creates the 3 sub-tasks
21
+ * - If a sub-runner returns `retried`, this orchestrator waits for the
22
+ * backoff period and re-runs the stage until it succeeds or fails
23
+ * (ERR-067 fix: previously `retried` was treated as failure)
21
24
  *
22
25
  * @see PRI-372
26
+ * @see ERR-067
23
27
  */
24
28
  import { createPITaskDiagnosticJson } from './pitask-metadata.js';
25
29
  // ── SplitDiagnosticianRunner ─────────────────────────────────────────────────
@@ -29,6 +33,10 @@ import { createPITaskDiagnosticJson } from './pitask-metadata.js';
29
33
  * This class is a thin orchestrator — it does NOT extend BasePeerRunner.
30
34
  * It creates sub-tasks, runs each stage's runner, and returns a RunnerResult
31
35
  * compatible with the monolithic DiagnosticianRunner's output.
36
+ *
37
+ * ERR-067 fix: when a sub-runner returns `retried`, this orchestrator
38
+ * waits for the backoff period and re-runs the stage, up to maxAttempts.
39
+ * Previously, `retried` was treated as failure, breaking the retry chain.
32
40
  */
33
41
  export class SplitDiagnosticianRunner {
34
42
  rootCauseRunner;
@@ -36,12 +44,14 @@ export class SplitDiagnosticianRunner {
36
44
  routerRunner;
37
45
  stateManager;
38
46
  perStageTimeoutMs;
47
+ retryPolicy;
39
48
  constructor(deps) {
40
49
  this.rootCauseRunner = deps.rootCauseRunner;
41
50
  this.distillerRunner = deps.distillerRunner;
42
51
  this.routerRunner = deps.routerRunner;
43
52
  this.stateManager = deps.stateManager;
44
53
  this.perStageTimeoutMs = deps.perStageTimeoutMs ?? 300_000;
54
+ this.retryPolicy = deps.retryPolicy ?? deps.stateManager.getRetryPolicy();
45
55
  }
46
56
  /**
47
57
  * Execute the full split pipeline A→B→C for a parent diagnostician task.
@@ -57,139 +67,46 @@ export class SplitDiagnosticianRunner {
57
67
  async run(parentTaskId) {
58
68
  // ── Stage A: Root Cause ────────────────────────────────────────────────
59
69
  const stageATaskId = `diag_rootcause-${parentTaskId}`;
60
- let stageATask = await this.stateManager.getTask(stageATaskId);
61
- if (!stageATask) {
62
- await this.stateManager.createTask({
63
- taskId: stageATaskId,
64
- taskKind: 'diag_rootcause',
65
- inputRef: parentTaskId,
66
- status: 'pending',
67
- attemptCount: 0,
68
- maxAttempts: 3,
69
- diagnosticJson: createPITaskDiagnosticJson({
70
- dependencyTaskIds: [],
71
- channel: 'prompt',
72
- timeoutMs: this.perStageTimeoutMs,
73
- inputArtifactRefs: [],
74
- outputArtifactRefs: [],
75
- }),
76
- });
77
- stageATask = await this.stateManager.getTask(stageATaskId);
78
- }
79
- else if (stageATask.status === 'failed' || stageATask.status === 'retry_wait') {
80
- await this.stateManager.updateTask(stageATaskId, {
81
- status: 'pending',
82
- attemptCount: 0,
83
- lastError: null,
84
- });
85
- stageATask = await this.stateManager.getTask(stageATaskId);
86
- }
87
- let resultA;
88
- if (stageATask && stageATask.status === 'succeeded') {
89
- resultA = {
90
- status: 'succeeded',
91
- taskId: stageATaskId,
92
- attemptCount: stageATask.attemptCount,
93
- };
94
- }
95
- else {
96
- resultA = await this.rootCauseRunner.run(stageATaskId);
97
- }
70
+ await this.ensureSubTask({
71
+ taskId: stageATaskId,
72
+ taskKind: 'diag_rootcause',
73
+ parentTaskId,
74
+ dependencyTaskIds: [],
75
+ });
76
+ const resultA = await this.runStageWithRetry({
77
+ taskId: stageATaskId,
78
+ runFn: (id) => this.rootCauseRunner.run(id),
79
+ stageLabel: 'A (rootcause)',
80
+ });
98
81
  if (resultA.status !== 'succeeded') {
99
- try {
100
- await this.stateManager.markTaskFailed(parentTaskId, resultA.errorCategory ?? 'execution_failed');
101
- }
102
- catch { /* best-effort — return failure regardless */ }
103
- return {
104
- status: resultA.status,
105
- taskId: parentTaskId,
106
- errorCategory: resultA.errorCategory,
107
- failureReason: resultA.failureReason ?? `Stage A (rootcause) failed for ${parentTaskId}`,
108
- attemptCount: resultA.attemptCount,
109
- };
82
+ return this.failParent(parentTaskId, resultA);
110
83
  }
111
84
  // ── Stage B: Distiller ─────────────────────────────────────────────────
112
85
  const stageBTaskId = `diag_distiller-${parentTaskId}`;
113
- let stageBTask = await this.stateManager.getTask(stageBTaskId);
114
- if (!stageBTask) {
115
- await this.stateManager.createTask({
116
- taskId: stageBTaskId,
117
- taskKind: 'diag_distiller',
118
- inputRef: parentTaskId,
119
- status: 'pending',
120
- attemptCount: 0,
121
- maxAttempts: 3,
122
- diagnosticJson: createPITaskDiagnosticJson({
123
- dependencyTaskIds: [stageATaskId],
124
- channel: 'prompt',
125
- timeoutMs: this.perStageTimeoutMs,
126
- inputArtifactRefs: [],
127
- outputArtifactRefs: [],
128
- }),
129
- });
130
- stageBTask = await this.stateManager.getTask(stageBTaskId);
131
- }
132
- else if (stageBTask.status === 'failed' || stageBTask.status === 'retry_wait') {
133
- await this.stateManager.updateTask(stageBTaskId, {
134
- status: 'pending',
135
- attemptCount: 0,
136
- lastError: null,
137
- });
138
- stageBTask = await this.stateManager.getTask(stageBTaskId);
139
- }
140
- let resultB;
141
- if (stageBTask && stageBTask.status === 'succeeded') {
142
- resultB = {
143
- status: 'succeeded',
144
- taskId: stageBTaskId,
145
- attemptCount: stageBTask.attemptCount,
146
- };
147
- }
148
- else {
149
- resultB = await this.distillerRunner.run(stageBTaskId);
150
- }
86
+ await this.ensureSubTask({
87
+ taskId: stageBTaskId,
88
+ taskKind: 'diag_distiller',
89
+ parentTaskId,
90
+ dependencyTaskIds: [stageATaskId],
91
+ });
92
+ const resultB = await this.runStageWithRetry({
93
+ taskId: stageBTaskId,
94
+ runFn: (id) => this.distillerRunner.run(id),
95
+ stageLabel: 'B (distiller)',
96
+ });
151
97
  if (resultB.status !== 'succeeded') {
152
- try {
153
- await this.stateManager.markTaskFailed(parentTaskId, resultB.errorCategory ?? 'execution_failed');
154
- }
155
- catch { /* best-effort — return failure regardless */ }
156
- return {
157
- status: resultB.status,
158
- taskId: parentTaskId,
159
- errorCategory: resultB.errorCategory,
160
- failureReason: resultB.failureReason ?? `Stage B (distiller) failed for ${parentTaskId}`,
161
- attemptCount: resultB.attemptCount,
162
- };
98
+ return this.failParent(parentTaskId, resultB);
163
99
  }
164
100
  // ── Stage C: Router ────────────────────────────────────────────────────
165
101
  const stageCTaskId = `diag_router-${parentTaskId}`;
166
- let stageCTask = await this.stateManager.getTask(stageCTaskId);
167
- if (!stageCTask) {
168
- await this.stateManager.createTask({
169
- taskId: stageCTaskId,
170
- taskKind: 'diag_router',
171
- inputRef: parentTaskId,
172
- status: 'pending',
173
- attemptCount: 0,
174
- maxAttempts: 3,
175
- diagnosticJson: createPITaskDiagnosticJson({
176
- dependencyTaskIds: [stageATaskId, stageBTaskId],
177
- channel: 'prompt',
178
- timeoutMs: this.perStageTimeoutMs,
179
- inputArtifactRefs: [],
180
- outputArtifactRefs: [],
181
- }),
182
- });
183
- stageCTask = await this.stateManager.getTask(stageCTaskId);
184
- }
185
- else if (stageCTask.status === 'failed' || stageCTask.status === 'retry_wait') {
186
- await this.stateManager.updateTask(stageCTaskId, {
187
- status: 'pending',
188
- attemptCount: 0,
189
- lastError: null,
190
- });
191
- stageCTask = await this.stateManager.getTask(stageCTaskId);
192
- }
102
+ await this.ensureSubTask({
103
+ taskId: stageCTaskId,
104
+ taskKind: 'diag_router',
105
+ parentTaskId,
106
+ dependencyTaskIds: [stageATaskId, stageBTaskId],
107
+ });
108
+ // Stage C may already be succeeded from a previous partial run
109
+ const stageCTask = await this.stateManager.getTask(stageCTaskId);
193
110
  let resultC;
194
111
  if (stageCTask && stageCTask.status === 'succeeded') {
195
112
  const runs = await this.stateManager.getRunsByTask(stageCTaskId);
@@ -205,20 +122,14 @@ export class SplitDiagnosticianRunner {
205
122
  };
206
123
  }
207
124
  else {
208
- resultC = await this.routerRunner.run(stageCTaskId);
125
+ resultC = await this.runStageWithRetry({
126
+ taskId: stageCTaskId,
127
+ runFn: (id) => this.routerRunner.run(id),
128
+ stageLabel: 'C (router)',
129
+ });
209
130
  }
210
131
  if (resultC.status !== 'succeeded') {
211
- try {
212
- await this.stateManager.markTaskFailed(parentTaskId, resultC.errorCategory ?? 'execution_failed');
213
- }
214
- catch { /* best-effort — return failure regardless */ }
215
- return {
216
- status: resultC.status,
217
- taskId: parentTaskId,
218
- errorCategory: resultC.errorCategory,
219
- failureReason: resultC.failureReason ?? `Stage C (router) failed for ${parentTaskId}`,
220
- attemptCount: resultC.attemptCount,
221
- };
132
+ return this.failParent(parentTaskId, resultC);
222
133
  }
223
134
  // ── Pipeline complete ──────────────────────────────────────────────────
224
135
  // onDiagnosisComplete is invoked by the bridge (PainSignalBridge.onPainDetected)
@@ -229,12 +140,146 @@ export class SplitDiagnosticianRunner {
229
140
  await this.stateManager.markTaskSucceeded(parentTaskId, parentResultRef);
230
141
  }
231
142
  catch { /* best-effort — return success regardless */ }
143
+ const stageA = await this.stateManager.getTask(stageATaskId);
144
+ const stageB = await this.stateManager.getTask(stageBTaskId);
145
+ const stageC = await this.stateManager.getTask(stageCTaskId);
232
146
  return {
233
147
  status: 'succeeded',
234
148
  taskId: parentTaskId,
235
149
  contextHash: resultC.contextHash,
236
150
  output: resultC.output,
237
- attemptCount: (stageATask?.attemptCount ?? resultA.attemptCount) + (stageBTask?.attemptCount ?? resultB.attemptCount) + (stageCTask?.attemptCount ?? resultC.attemptCount),
151
+ attemptCount: (stageA?.attemptCount ?? resultA.attemptCount) + (stageB?.attemptCount ?? resultB.attemptCount) + (stageC?.attemptCount ?? resultC.attemptCount),
152
+ };
153
+ }
154
+ // ── Private helpers ────────────────────────────────────────────────────────
155
+ /**
156
+ * Ensure a sub-task exists. If it already exists in `retry_wait` status,
157
+ * transition it to `pending` WITHOUT resetting attemptCount (ERR-067 fix:
158
+ * previously attemptCount was reset to 0, losing retry progress).
159
+ *
160
+ * If it exists in `failed` status, also transition to `pending` without
161
+ * resetting attemptCount — the retry policy will check shouldRetry().
162
+ */
163
+ async ensureSubTask(opts) {
164
+ const { taskId, taskKind, parentTaskId, dependencyTaskIds } = opts;
165
+ const existing = await this.stateManager.getTask(taskId);
166
+ if (!existing) {
167
+ await this.stateManager.createTask({
168
+ taskId,
169
+ taskKind,
170
+ inputRef: parentTaskId,
171
+ status: 'pending',
172
+ attemptCount: 0,
173
+ maxAttempts: 3,
174
+ diagnosticJson: createPITaskDiagnosticJson({
175
+ dependencyTaskIds,
176
+ channel: 'prompt',
177
+ timeoutMs: this.perStageTimeoutMs,
178
+ inputArtifactRefs: [],
179
+ outputArtifactRefs: [],
180
+ }),
181
+ });
182
+ return;
183
+ }
184
+ // ERR-067 fix: do NOT reset attemptCount on retry_wait/failed tasks.
185
+ // The retry policy (shouldRetry) uses attemptCount to decide whether
186
+ // to retry. Resetting it would cause infinite retries.
187
+ // P1-2 fix: check shouldRetry() before transitioning failed → pending.
188
+ if (existing.status === 'retry_wait') {
189
+ await this.stateManager.updateTask(taskId, {
190
+ status: 'pending',
191
+ lastError: null,
192
+ });
193
+ }
194
+ else if (existing.status === 'failed') {
195
+ if (!this.retryPolicy.shouldRetry(existing)) {
196
+ // Task has exhausted its retry budget — do not re-pend
197
+ return;
198
+ }
199
+ await this.stateManager.updateTask(taskId, {
200
+ status: 'pending',
201
+ lastError: null,
202
+ });
203
+ }
204
+ }
205
+ /**
206
+ * Run a stage's runner with retry support (ERR-067 fix).
207
+ *
208
+ * When the sub-runner returns `retried`, this method:
209
+ * 1. Waits for the backoff period calculated by the retry policy
210
+ * 2. Re-runs the sub-runner
211
+ * 3. Repeats until the result is `succeeded` or `failed`
212
+ *
213
+ * This ensures that transient LLM failures (e.g., schema non-compliance)
214
+ * are actually retried instead of being treated as terminal failures.
215
+ */
216
+ async runStageWithRetry(opts) {
217
+ const { taskId, runFn, stageLabel } = opts;
218
+ const maxRetries = 10; // Safety limit to prevent infinite loops
219
+ let attempt = 0;
220
+ while (true) {
221
+ attempt++;
222
+ const result = await runFn(taskId);
223
+ if (result.status === 'succeeded' || result.status === 'failed') {
224
+ return result;
225
+ }
226
+ if (result.status === 'retried') {
227
+ // Get the current task state for shouldRetry check and backoff calculation
228
+ const task = await this.stateManager.getTask(taskId);
229
+ // P1-1 fix: check shouldRetry() against task's maxAttempts
230
+ if (task && !this.retryPolicy.shouldRetry(task)) {
231
+ return {
232
+ status: 'failed',
233
+ taskId: result.taskId,
234
+ errorCategory: result.errorCategory ?? 'max_attempts_exceeded',
235
+ failureReason: `Stage ${stageLabel}: attemptCount (${task.attemptCount}) >= maxAttempts (${task.maxAttempts}). ${result.failureReason ?? ''}`,
236
+ attemptCount: result.attemptCount,
237
+ };
238
+ }
239
+ if (attempt >= maxRetries) {
240
+ // Safety: break out of potential infinite loop
241
+ return {
242
+ status: 'failed',
243
+ taskId: result.taskId,
244
+ errorCategory: result.errorCategory ?? 'max_attempts_exceeded',
245
+ failureReason: `Stage ${stageLabel}: max retry loop iterations (${maxRetries}) exceeded. ${result.failureReason ?? ''}`,
246
+ attemptCount: result.attemptCount,
247
+ };
248
+ }
249
+ // Calculate backoff from task state
250
+ const backoffMs = task
251
+ ? this.retryPolicy.calculateBackoff(task.attemptCount)
252
+ : 30_000; // fallback: 30s
253
+ // Wait for backoff period
254
+ await new Promise((resolve) => setTimeout(resolve, backoffMs));
255
+ // Re-run the stage — the sub-runner will acquire the lease on the
256
+ // retry_wait task and attempt execution again
257
+ continue;
258
+ }
259
+ // Unknown status — treat as failure (fail-loud, ERR-009)
260
+ return {
261
+ status: 'failed',
262
+ taskId: result.taskId,
263
+ errorCategory: result.errorCategory ?? 'execution_failed',
264
+ failureReason: `Stage ${stageLabel}: unexpected status '${result.status}'`,
265
+ attemptCount: result.attemptCount,
266
+ };
267
+ }
268
+ }
269
+ /**
270
+ * Mark the parent task as failed and return a failure result.
271
+ */
272
+ async failParent(parentTaskId, stageResult) {
273
+ try {
274
+ await this.stateManager.markTaskFailed(parentTaskId, stageResult.errorCategory ?? 'execution_failed');
275
+ }
276
+ catch { /* best-effort — return failure regardless */ }
277
+ return {
278
+ status: stageResult.status === 'retried' ? 'failed' : stageResult.status,
279
+ taskId: parentTaskId,
280
+ errorCategory: stageResult.errorCategory,
281
+ failureReason: stageResult.failureReason ?? `Stage failed for parent task ${parentTaskId}`,
282
+ attemptCount: stageResult.attemptCount,
238
283
  };
239
284
  }
240
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"split-diagnostician-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/split-diagnostician-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"split-diagnostician-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/split-diagnostician-runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pain-signal-observability.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-observability.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAwJD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,oCAAoC,GACzC,6BAA6B,CAiE/B"}
1
+ {"version":3,"file":"pain-signal-observability.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-observability.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkLD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,oCAAoC,GACzC,6BAA6B,CAiE/B"}
@@ -115,13 +115,38 @@ function recordTrajectoryPainEvent(opts) {
115
115
  ON CONFLICT(session_id) DO UPDATE SET updated_at = excluded.updated_at
116
116
  `).run(sessionId, timestamp, timestamp);
117
117
  }
118
- const result = db.prepare(`
119
- INSERT INTO pain_events (
120
- session_id, source, score, reason, severity, origin, confidence, text, created_at,
121
- canonical_pain_id, runtime_task_id
122
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
123
- `).run(sessionId, data.source, data.score ?? 80, sanitizeString(data.reason ?? '', workspaceDir), severityFromScore(data.score ?? 80), data.source === 'manual' ? 'user_manual' : 'system_infer', 1, sanitizeString(data.reason ?? '', workspaceDir), timestamp, canonicalPainId ?? null, runtimeTaskId ?? null);
124
- return Number(result.lastInsertRowid);
118
+ // Try INSERT; on UNIQUE constraint violation for canonical_pain_id, do UPDATE instead.
119
+ // SQLite UPSERT (ON CONFLICT) does not support partial unique indexes, so we
120
+ // handle the conflict manually.
121
+ try {
122
+ const result = db.prepare(`
123
+ INSERT INTO pain_events (
124
+ session_id, source, score, reason, severity, origin, confidence, text, created_at,
125
+ canonical_pain_id, runtime_task_id
126
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
127
+ `).run(sessionId, data.source, data.score ?? 80, sanitizeString(data.reason ?? '', workspaceDir), severityFromScore(data.score ?? 80), data.source === 'manual' ? 'user_manual' : 'system_infer', 1, sanitizeString(data.reason ?? '', workspaceDir), timestamp, canonicalPainId ?? null, runtimeTaskId ?? null);
128
+ return Number(result.lastInsertRowid);
129
+ }
130
+ catch (insertErr) {
131
+ // If UNIQUE constraint violation on canonical_pain_id, upsert manually
132
+ if (canonicalPainId &&
133
+ insertErr instanceof Error &&
134
+ insertErr.message.includes('UNIQUE constraint failed') &&
135
+ insertErr.message.includes('canonical_pain_id')) {
136
+ db.prepare(`
137
+ UPDATE pain_events
138
+ SET runtime_task_id = COALESCE(?, runtime_task_id)
139
+ WHERE canonical_pain_id = ?
140
+ `).run(runtimeTaskId ?? null, canonicalPainId);
141
+ const rawRow = db.prepare('SELECT id FROM pain_events WHERE canonical_pain_id = ?').get(canonicalPainId);
142
+ // Runtime Contract #1/#2: validate DB row instead of `as` cast
143
+ if (rawRow && typeof rawRow === 'object' && Object.hasOwn(rawRow, 'id') && typeof rawRow.id === 'number') {
144
+ return rawRow.id;
145
+ }
146
+ return undefined;
147
+ }
148
+ throw insertErr;
149
+ }
125
150
  }
126
151
  finally {
127
152
  db.close();
@@ -1 +1 @@
1
- {"version":3,"file":"pain-signal-observability.js","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-observability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pain-signal-observability.js","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-observability.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,11 @@ export interface PainSignalRuntimeFactoryOptions {
27
27
  /** PRI-306: Env var accessor for readiness checks. Defaults to process.env. */
28
28
  getEnvVar?: (name: string) => string | undefined;
29
29
  }
30
- /** Total timeout for the 3-stage split pipeline (3 × 5 min = 15 min).
31
- * Shared with pd-cli diagnose command to avoid divergence. */
32
- export declare const SPLIT_PIPELINE_TOTAL_TIMEOUT_MS = 900000;
30
+ /** Total timeout for the 3-stage split pipeline (3 × 20 min = 60 min).
31
+ * Local GPU inference (e.g. qwen3.6-27b-mtp with 200K context) needs
32
+ * 10-18 min per stage; 20 min per stage provides headroom.
33
+ * Shared with pd-cli diagnose command. */
34
+ export declare const SPLIT_PIPELINE_TOTAL_TIMEOUT_MS = 3600000;
33
35
  /** Resolved runtime configuration from funnel policy. */
34
36
  export interface RuntimeConfig {
35
37
  runtimeKind: RuntimeKind;
@@ -1 +1 @@
1
- {"version":3,"file":"pain-signal-runtime-factory.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyB9D,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,+BAA+B;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;qEACiE;IACjE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD;AAQD;+DAC+D;AAC/D,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,IAAI,kBAAkB,CAE9F;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,2BAA2B,GAAG,mBAAmB,CAiHxH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CA6CjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC9C,mBAAmB,CAkDrB;AAMD;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAEnE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CASjD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAgJ3B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAO3F"}
1
+ {"version":3,"file":"pain-signal-runtime-factory.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pain-signal-runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyB9D,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,+BAA+B;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;qEACiE;IACjE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD;AAQD;;;2CAG2C;AAC3C,eAAO,MAAM,+BAA+B,UAAY,CAAC;AAEzD,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,IAAI,kBAAkB,CAE9F;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,2BAA2B,GAAG,mBAAmB,CAiHxH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CA6CjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC9C,mBAAmB,CAkDrB;AAMD;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAEnE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CASjD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAgJ3B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAO3F"}
@@ -38,9 +38,11 @@ import { resolveAgentRuntimeBinding, checkAgentRuntimeReadiness, createAdapterCo
38
38
  const DIAGNOSTIC_FUNNEL_ID = 'pd-runtime-v2-diagnosis';
39
39
  /** Default per-stage timeout (5 min). Same for monolith and split-per-stage. */
40
40
  const DEFAULT_TIMEOUT_MS = 300_000;
41
- /** Total timeout for the 3-stage split pipeline (3 × 5 min = 15 min).
42
- * Shared with pd-cli diagnose command to avoid divergence. */
43
- export const SPLIT_PIPELINE_TOTAL_TIMEOUT_MS = 900_000;
41
+ /** Total timeout for the 3-stage split pipeline (3 × 20 min = 60 min).
42
+ * Local GPU inference (e.g. qwen3.6-27b-mtp with 200K context) needs
43
+ * 10-18 min per stage; 20 min per stage provides headroom.
44
+ * Shared with pd-cli diagnose command. */
45
+ export const SPLIT_PIPELINE_TOTAL_TIMEOUT_MS = 3_600_000;
44
46
  export function isRuntimeConfigError(result) {
45
47
  return 'ok' in result && result.ok === false;
46
48
  }