@principles/core 1.124.0 → 1.126.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 (130) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +5 -1
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +115 -21
  4. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +1 -1
  6. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js +7 -6
  7. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js.map +1 -1
  8. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js.map +1 -1
  10. package/dist/runtime-v2/cli/diagnose.d.ts +2 -2
  11. package/dist/runtime-v2/cli/diagnose.d.ts.map +1 -1
  12. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +3 -3
  13. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  14. package/dist/runtime-v2/config/pd-config-defaults.js +2 -2
  15. package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  16. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +1 -64
  17. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  18. package/dist/runtime-v2/diagnostician-prompt-builder.js +0 -186
  19. package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  20. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +17 -30
  21. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  22. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  23. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +3 -8
  24. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  25. package/dist/runtime-v2/index.d.ts +8 -7
  26. package/dist/runtime-v2/index.d.ts.map +1 -1
  27. package/dist/runtime-v2/index.js +8 -5
  28. package/dist/runtime-v2/index.js.map +1 -1
  29. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +108 -105
  30. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  31. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js +3 -3
  32. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js.map +1 -1
  33. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
  34. package/dist/runtime-v2/internalization/split-diagnostician-runner.js +121 -52
  35. package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
  36. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +28 -21
  37. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +1 -1
  38. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +10 -1
  39. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  40. package/dist/runtime-v2/pain-signal-runtime-factory.js +42 -40
  41. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  42. package/dist/runtime-v2/pain-to-principle-service.d.ts +1 -0
  43. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  44. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  45. package/dist/runtime-v2/runner/__tests__/diagnose.test.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts +0 -2
  48. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts.map +0 -1
  49. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js +0 -122
  50. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js.map +0 -1
  51. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts +0 -2
  52. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts.map +0 -1
  53. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js +0 -169
  54. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js.map +0 -1
  55. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts +0 -2
  56. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts.map +0 -1
  57. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js +0 -462
  58. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js.map +0 -1
  59. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts +0 -13
  60. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts.map +0 -1
  61. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js +0 -97
  62. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js.map +0 -1
  63. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts +0 -2
  64. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts.map +0 -1
  65. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js +0 -378
  66. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js.map +0 -1
  67. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts +0 -2
  68. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts.map +0 -1
  69. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js +0 -682
  70. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js.map +0 -1
  71. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts +0 -2
  72. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts.map +0 -1
  73. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js +0 -286
  74. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js.map +0 -1
  75. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts +0 -2
  76. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts.map +0 -1
  77. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js +0 -320
  78. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js.map +0 -1
  79. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts +0 -2
  80. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts.map +0 -1
  81. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js +0 -261
  82. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js.map +0 -1
  83. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts +0 -2
  84. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts.map +0 -1
  85. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js +0 -405
  86. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js.map +0 -1
  87. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts +0 -2
  88. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts.map +0 -1
  89. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js +0 -347
  90. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js.map +0 -1
  91. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts +0 -2
  92. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts.map +0 -1
  93. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js +0 -186
  94. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js.map +0 -1
  95. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts +0 -2
  96. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts.map +0 -1
  97. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js +0 -355
  98. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js.map +0 -1
  99. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts +0 -2
  100. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts.map +0 -1
  101. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js +0 -486
  102. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js.map +0 -1
  103. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts +0 -2
  104. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts.map +0 -1
  105. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js +0 -171
  106. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js.map +0 -1
  107. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts +0 -2
  108. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts.map +0 -1
  109. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js +0 -175
  110. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js.map +0 -1
  111. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts +0 -2
  112. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts.map +0 -1
  113. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js +0 -276
  114. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js.map +0 -1
  115. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts +0 -2
  116. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts.map +0 -1
  117. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js +0 -272
  118. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js.map +0 -1
  119. package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts +0 -2
  120. package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts.map +0 -1
  121. package/dist/runtime-v2/runner/__tests__/start-run-input.test.js +0 -67
  122. package/dist/runtime-v2/runner/__tests__/start-run-input.test.js.map +0 -1
  123. package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts +0 -57
  124. package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts.map +0 -1
  125. package/dist/runtime-v2/runner/diagnostician-runner-options.js +0 -21
  126. package/dist/runtime-v2/runner/diagnostician-runner-options.js.map +0 -1
  127. package/dist/runtime-v2/runner/diagnostician-runner.d.ts +0 -89
  128. package/dist/runtime-v2/runner/diagnostician-runner.d.ts.map +0 -1
  129. package/dist/runtime-v2/runner/diagnostician-runner.js +0 -470
  130. package/dist/runtime-v2/runner/diagnostician-runner.js.map +0 -1
@@ -1,171 +0,0 @@
1
- /**
2
- * E2E m9-adapter-integration — PiAiRuntimeAdapter + DiagnosticianRunner integration.
3
- *
4
- * Verifies PiAiRuntimeAdapter integrates correctly with DiagnosticianRunner.
5
- * Tests pain → task → run → DiagnosticianOutputV1 artifact → candidate records.
6
- * Does NOT go through PainSignalBridge or ledger (plan 01 scope).
7
- *
8
- * Uses module-level vi.mock('@mariozechner/pi-ai') — real PiAiRuntimeAdapter
9
- * code runs, only LLM API calls are intercepted.
10
- */
11
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
12
- import * as fs from 'fs';
13
- import * as path from 'path';
14
- import * as os from 'os';
15
- import { RuntimeStateManager } from '../../store/runtime-state-manager.js';
16
- import { SqliteContextAssembler } from '../../store/context/sqlite-context-assembler.js';
17
- import { SqliteHistoryQuery } from '../../store/history/sqlite-history-query.js';
18
- import { StoreEventEmitter } from '../../store/event-emitter.js';
19
- import { DiagnosticianRunner } from '../diagnostician-runner.js';
20
- import { PassThroughValidator } from '../diagnostician-validator.js';
21
- import { SqliteDiagnosticianCommitter } from '../../store/commit/diagnostician-committer.js';
22
- // ── Module mock (MUST be before imports) ──────────────────────────────────────
23
- vi.mock('@mariozechner/pi-ai', () => ({
24
- getModel: vi.fn(),
25
- getProviders: vi.fn(() => ['openrouter', 'anthropic', 'openai']),
26
- completeSimple: vi.fn(),
27
- }));
28
- import { getModel, completeSimple } from '@mariozechner/pi-ai';
29
- import { PiAiRuntimeAdapter } from '../../adapter/pi-ai-runtime-adapter.js';
30
- const mockComplete = completeSimple;
31
- const mockGetModel = getModel;
32
- // ── Test fixtures ──────────────────────────────────────────────────────────────
33
- function makeAssistantMessage(text, overrides = {}) {
34
- return {
35
- content: [{ type: 'text', text }],
36
- role: 'assistant',
37
- stopReason: 'stop',
38
- api: 'openai-completions',
39
- provider: 'openrouter',
40
- model: 'anthropic/claude-sonnet-4',
41
- usage: { input: 10, output: 5, cacheRead: 0, cacheWrite: 0, totalTokens: 15, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
42
- timestamp: Date.now(),
43
- ...overrides,
44
- };
45
- }
46
- function makeDiagnosticianOutputWithCandidates(_taskId) {
47
- return {
48
- valid: true,
49
- diagnosisId: `diag-m9-adapter-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
50
- summary: 'E2E m9-04 adapter integration test diagnosis summary',
51
- rootCause: 'E2E m9-04 root cause — adapter integration test',
52
- violatedPrinciples: [],
53
- evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }],
54
- recommendations: [
55
- { kind: 'principle', description: 'Always validate tool arguments before execution to prevent silent failures' },
56
- { kind: 'principle', description: 'Log all tool invocations with argument summaries for traceability' },
57
- { kind: 'rule', description: 'Use schema validation for external inputs' },
58
- ],
59
- confidence: 0.92,
60
- };
61
- }
62
- const VALID_DIAGNOSIS = {
63
- valid: true,
64
- diagnosisId: 'diag-adapter-integration-1',
65
- taskId: 'task-adapter-integration-1',
66
- summary: 'Adapter integration test summary',
67
- rootCause: 'Adapter integration root cause',
68
- violatedPrinciples: [],
69
- evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }],
70
- recommendations: [],
71
- confidence: 0.9,
72
- };
73
- // ── Test setup ─────────────────────────────────────────────────────────────────
74
- const TMP_ROOT = path.join(os.tmpdir(), `pd-e2e-m9-adapter-integration-${process.pid}`);
75
- describe('E2E m9-adapter-integration — PiAiRuntimeAdapter + DiagnosticianRunner', () => {
76
- // eslint-disable-next-line @typescript-eslint/init-declarations
77
- let testDir;
78
- // eslint-disable-next-line @typescript-eslint/init-declarations
79
- let stateManager;
80
- // eslint-disable-next-line @typescript-eslint/init-declarations
81
- let sqliteConn;
82
- // eslint-disable-next-line @typescript-eslint/init-declarations
83
- let contextAssembler;
84
- // eslint-disable-next-line @typescript-eslint/init-declarations
85
- let historyQuery;
86
- // eslint-disable-next-line @typescript-eslint/init-declarations
87
- let eventEmitter;
88
- beforeEach(async () => {
89
- testDir = path.join(TMP_ROOT, `e2e-${Date.now()}-${Math.random().toString(36).slice(2)}`);
90
- fs.mkdirSync(testDir, { recursive: true });
91
- stateManager = new RuntimeStateManager({ workspaceDir: testDir });
92
- await stateManager.initialize();
93
- sqliteConn = stateManager.connection;
94
- historyQuery = new SqliteHistoryQuery(sqliteConn);
95
- const taskStore = stateManager.taskStore;
96
- const runStore = stateManager.runStore;
97
- contextAssembler = new SqliteContextAssembler(taskStore, historyQuery, runStore);
98
- eventEmitter = new StoreEventEmitter();
99
- vi.clearAllMocks();
100
- process.env.TEST_API_KEY = 'test-key-123';
101
- mockGetModel.mockReturnValue({ id: 'anthropic/claude-sonnet-4' });
102
- mockComplete.mockResolvedValue(makeAssistantMessage(JSON.stringify(VALID_DIAGNOSIS)));
103
- });
104
- afterEach(() => {
105
- stateManager.close();
106
- try {
107
- fs.rmSync(TMP_ROOT, { recursive: true, force: true });
108
- }
109
- catch {
110
- // ignore Windows cleanup errors
111
- }
112
- });
113
- function createRunner(runtimeAdapter) {
114
- const committer = new SqliteDiagnosticianCommitter(sqliteConn);
115
- return new DiagnosticianRunner({
116
- stateManager,
117
- contextAssembler,
118
- runtimeAdapter,
119
- eventEmitter,
120
- validator: new PassThroughValidator(),
121
- committer,
122
- }, {
123
- owner: 'e2e-m9-adapter-integration',
124
- runtimeKind: 'pi-ai',
125
- pollIntervalMs: 50,
126
- timeoutMs: 5000,
127
- });
128
- }
129
- // ═══════════════════════════════════════════════════════════════════════════
130
- // TEST: PiAiRuntimeAdapter + DiagnosticianRunner full chain
131
- // ═══════════════════════════════════════════════════════════════════════════
132
- it('PiAiRuntimeAdapter + DiagnosticianRunner: full chain task → artifact → candidates', async () => {
133
- const taskId = 'diagnosis_test-pain-m9-adapter-01';
134
- // Create task via stateManager (bridge would normally do this)
135
- await stateManager.createTask({
136
- taskId,
137
- taskKind: 'diagnostician',
138
- status: 'pending',
139
- attemptCount: 0,
140
- maxAttempts: 3,
141
- });
142
- // Configure mock to return diagnosis with candidates
143
- const output = makeDiagnosticianOutputWithCandidates(taskId);
144
- mockComplete.mockResolvedValueOnce(makeAssistantMessage(JSON.stringify(output)));
145
- // Create adapter and runner
146
- const adapter = new PiAiRuntimeAdapter({
147
- provider: 'openrouter',
148
- model: 'anthropic/claude-sonnet-4',
149
- apiKeyEnv: 'TEST_API_KEY',
150
- maxRetries: 0,
151
- timeoutMs: 60_000,
152
- outputPathStrategy: 'free_form_only',
153
- });
154
- const runner = createRunner(adapter);
155
- const result = await runner.run(taskId);
156
- // Assert runner succeeded
157
- expect(result.status).toBe('succeeded');
158
- expect(result.contextHash).toBeDefined();
159
- // Assert artifact was written
160
- const db = sqliteConn.getDb();
161
- const artifacts = db.prepare('SELECT * FROM artifacts WHERE task_id = ?').all(taskId);
162
- expect(artifacts).toHaveLength(1);
163
- const artifact = artifacts[0];
164
- expect(artifact.artifact_kind).toBe('diagnostician_output');
165
- // Assert >= 2 candidate records were created
166
- const artifactId = artifact.artifact_id;
167
- const candidates = db.prepare('SELECT * FROM principle_candidates WHERE artifact_id = ?').all(artifactId);
168
- expect(candidates.length).toBeGreaterThanOrEqual(2);
169
- });
170
- });
171
- //# sourceMappingURL=m9-adapter-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"m9-adapter-integration.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/m9-adapter-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=m9-e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"m9-e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/m9-e2e.test.ts"],"names":[],"mappings":""}
@@ -1,175 +0,0 @@
1
- /**
2
- * E2E m9 — PainSignalBridge + PiAiRuntimeAdapter full chain.
3
- * Pain → task → run → DiagnosticianOutputV1 artifact → candidates → ledger probation entry.
4
- * Idempotency: same painId twice produces no duplicate candidates/ledger entries.
5
- * Uses vi.mock('@mariozechner/pi-ai') — real adapter code, only LLM calls intercepted.
6
- */
7
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
8
- import * as fs from 'fs';
9
- import * as path from 'path';
10
- import * as os from 'os';
11
- import { RuntimeStateManager } from '../../store/runtime-state-manager.js';
12
- import { SqliteContextAssembler } from '../../store/context/sqlite-context-assembler.js';
13
- import { SqliteHistoryQuery } from '../../store/history/sqlite-history-query.js';
14
- import { StoreEventEmitter } from '../../store/event-emitter.js';
15
- import { DiagnosticianRunner } from '../diagnostician-runner.js';
16
- import { PassThroughValidator } from '../diagnostician-validator.js';
17
- import { SqliteDiagnosticianCommitter } from '../../store/commit/diagnostician-committer.js';
18
- import { PainSignalBridge } from '../../pain-signal-bridge.js';
19
- import { CandidateIntakeService } from '../../candidate-intake-service.js';
20
- vi.mock('@mariozechner/pi-ai', () => ({
21
- getModel: vi.fn(),
22
- getProviders: vi.fn(() => ['openrouter', 'anthropic', 'openai']),
23
- completeSimple: vi.fn(),
24
- }));
25
- import { getModel, completeSimple } from '@mariozechner/pi-ai';
26
- import { PiAiRuntimeAdapter } from '../../adapter/pi-ai-runtime-adapter.js';
27
- const mockComplete = completeSimple;
28
- const mockGetModel = getModel;
29
- // ── In-memory ledger adapter ──────────────────────────────────────────────────
30
- class InMemoryLedgerAdapter {
31
- entries = new Map();
32
- writeProbationEntry(entry) {
33
- const candidateId = this.#extractCandidateId(entry.sourceRef);
34
- const existing = this.existsForCandidate(candidateId);
35
- if (existing)
36
- return existing;
37
- this.entries.set(candidateId, entry);
38
- return entry;
39
- }
40
- existsForCandidate(candidateId) { return this.entries.get(candidateId) ?? null; }
41
- // eslint-disable-next-line @typescript-eslint/class-methods-use-this
42
- #extractCandidateId(sourceRef) { return sourceRef.startsWith('candidate://') ? sourceRef.slice('candidate://'.length) : sourceRef; }
43
- }
44
- // ── Fixtures ─────────────────────────────────────────────────────────────────
45
- function makeAssistantMessage(text, overrides = {}) {
46
- return {
47
- content: [{ type: 'text', text }],
48
- role: 'assistant',
49
- stopReason: 'stop',
50
- api: 'openai-completions',
51
- provider: 'openrouter',
52
- model: 'anthropic/claude-sonnet-4',
53
- usage: { input: 10, output: 5, cacheRead: 0, cacheWrite: 0, totalTokens: 15, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
54
- timestamp: Date.now(),
55
- ...overrides,
56
- };
57
- }
58
- function makeDiagnosticianOutputWithCandidates(_taskId) {
59
- return {
60
- valid: true,
61
- diagnosisId: `diag-m9-e2e-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
62
- summary: 'E2E m9-04 full chain test diagnosis summary',
63
- rootCause: 'E2E m9-04 full chain root cause — missing validation before tool call',
64
- violatedPrinciples: [],
65
- evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }],
66
- recommendations: [
67
- { kind: 'principle', description: 'Always validate tool arguments before execution to prevent silent failures' },
68
- { kind: 'principle', description: 'Log all tool invocations with argument summaries for traceability' },
69
- { kind: 'rule', description: 'Use schema validation for external inputs' },
70
- ],
71
- confidence: 0.92,
72
- };
73
- }
74
- // ── Test setup ─────────────────────────────────────────────────────────────────
75
- const TMP_ROOT = path.join(os.tmpdir(), `pd-e2e-m9-${process.pid}`);
76
- describe('E2E m9 — PainSignalBridge + PiAiRuntimeAdapter full chain', () => {
77
- let testDir;
78
- let stateManager;
79
- let sqliteConn;
80
- let contextAssembler;
81
- let eventEmitter;
82
- let ledgerAdapter;
83
- let intakeService;
84
- beforeEach(async () => {
85
- testDir = path.join(TMP_ROOT, `e2e-${Date.now()}-${Math.random().toString(36).slice(2)}`);
86
- fs.mkdirSync(testDir, { recursive: true });
87
- stateManager = new RuntimeStateManager({ workspaceDir: testDir });
88
- await stateManager.initialize();
89
- sqliteConn = stateManager.connection;
90
- const historyQuery = new SqliteHistoryQuery(sqliteConn);
91
- const taskStore = stateManager.taskStore;
92
- const runStore = stateManager.runStore;
93
- contextAssembler = new SqliteContextAssembler(taskStore, historyQuery, runStore);
94
- eventEmitter = new StoreEventEmitter();
95
- ledgerAdapter = new InMemoryLedgerAdapter();
96
- intakeService = new CandidateIntakeService({ stateManager, ledgerAdapter });
97
- vi.clearAllMocks();
98
- process.env.TEST_API_KEY = 'test-key-123';
99
- mockGetModel.mockReturnValue({ id: 'anthropic/claude-sonnet-4' });
100
- });
101
- afterEach(() => {
102
- stateManager.close();
103
- try {
104
- fs.rmSync(TMP_ROOT, { recursive: true, force: true });
105
- }
106
- catch { /* ignore */ }
107
- });
108
- function createRunner(runtimeAdapter) {
109
- const committer = new SqliteDiagnosticianCommitter(sqliteConn);
110
- return new DiagnosticianRunner({ stateManager, contextAssembler, runtimeAdapter, eventEmitter, validator: new PassThroughValidator(), committer }, { owner: 'e2e-m9-full-chain', runtimeKind: 'pi-ai', pollIntervalMs: 50, timeoutMs: 5000 });
111
- }
112
- function makePiAiAdapter() {
113
- return new PiAiRuntimeAdapter({ provider: 'openrouter', model: 'anthropic/claude-sonnet-4', apiKeyEnv: 'TEST_API_KEY', maxRetries: 0, timeoutMs: 60_000, outputPathStrategy: 'free_form_only' });
114
- }
115
- // TEST 1: Full chain
116
- it('full chain: pain → task → artifact → candidates → ledger probation entry via pi-ai', async () => {
117
- const painId = 'test-pain-m9-e2e-01';
118
- const expectedTaskId = `diagnosis_${painId}`;
119
- const output = makeDiagnosticianOutputWithCandidates(expectedTaskId);
120
- mockComplete.mockResolvedValueOnce(makeAssistantMessage(JSON.stringify(output)));
121
- const bridge = new PainSignalBridge({
122
- stateManager,
123
- runner: createRunner(makePiAiAdapter()),
124
- intakeService,
125
- ledgerAdapter,
126
- autoIntakeEnabled: true,
127
- });
128
- const result = await bridge.onPainDetected({ painId, painType: 'tool_failure', source: 'test', reason: 'test failure', evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }] });
129
- expect(result.status).toBe('succeeded');
130
- expect(result.painId).toBe(painId);
131
- expect(result.taskId).toBe(expectedTaskId);
132
- expect(result.candidateIds.length).toBeGreaterThanOrEqual(1);
133
- expect(result.ledgerEntryIds.length).toBeGreaterThanOrEqual(1);
134
- const db = sqliteConn.getDb();
135
- const artifacts = db.prepare('SELECT * FROM artifacts WHERE task_id = ?').all(expectedTaskId);
136
- expect(artifacts).toHaveLength(1);
137
- const artifact = artifacts[0];
138
- expect(artifact.artifact_kind).toBe('diagnostician_output');
139
- const candidates = db.prepare('SELECT * FROM principle_candidates WHERE task_id = ?').all(expectedTaskId);
140
- expect(candidates.length).toBeGreaterThanOrEqual(1);
141
- for (const row of candidates) {
142
- const ledgerEntry = ledgerAdapter.existsForCandidate(row.candidate_id);
143
- expect(ledgerEntry).not.toBeNull();
144
- const entry = ledgerEntry;
145
- expect(entry.status).toBe('probation');
146
- }
147
- });
148
- // TEST 2: Idempotency
149
- it('idempotency: same painId twice produces no duplicate candidates or ledger entries', async () => {
150
- const painId = 'test-pain-m9-e2e-idempotent';
151
- const expectedTaskId = `diagnosis_${painId}`;
152
- const output = makeDiagnosticianOutputWithCandidates(expectedTaskId);
153
- mockComplete.mockResolvedValueOnce(makeAssistantMessage(JSON.stringify(output)));
154
- const bridge = new PainSignalBridge({
155
- stateManager,
156
- runner: createRunner(makePiAiAdapter()),
157
- intakeService,
158
- ledgerAdapter,
159
- autoIntakeEnabled: true,
160
- });
161
- const result1 = await bridge.onPainDetected({ painId, painType: 'tool_failure', source: 'test', reason: 'test', evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }] });
162
- expect(result1.status).toBe('succeeded');
163
- const db = sqliteConn.getDb();
164
- const firstCandidates = db.prepare('SELECT * FROM principle_candidates WHERE task_id = ?').all(expectedTaskId);
165
- const firstCandidateCount = firstCandidates.length;
166
- const firstLedgerCount = result1.ledgerEntryIds.length;
167
- // Second call — same painId, NOOP path (task already succeeded)
168
- const result2 = await bridge.onPainDetected({ painId, painType: 'tool_failure', source: 'test', reason: 'test', evidence: [{ sourceRef: 'test', note: 'E2E test evidence' }] });
169
- expect(result2.status).toBe('succeeded');
170
- const secondCandidates = db.prepare('SELECT * FROM principle_candidates WHERE task_id = ?').all(expectedTaskId);
171
- expect(secondCandidates.length).toBe(firstCandidateCount);
172
- expect(result2.ledgerEntryIds.length).toBe(firstLedgerCount);
173
- });
174
- });
175
- //# sourceMappingURL=m9-e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"m9-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/m9-e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=max-attempts-exceeded.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"max-attempts-exceeded.integration.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.ts"],"names":[],"mappings":""}