@principles/core 1.114.0 → 1.116.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 (34) hide show
  1. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts +20 -0
  2. package/dist/runtime-v2/__tests__/activation-types-helpers.test.d.ts.map +1 -0
  3. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js +223 -0
  4. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js.map +1 -0
  5. package/dist/runtime-v2/__tests__/architecture-regression.test.js +3 -3
  6. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +1 -1
  8. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts +18 -0
  10. package/dist/runtime-v2/__tests__/evidence-guards.test.d.ts.map +1 -0
  11. package/dist/runtime-v2/__tests__/evidence-guards.test.js +155 -0
  12. package/dist/runtime-v2/__tests__/evidence-guards.test.js.map +1 -0
  13. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js +1 -1
  14. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js.map +1 -1
  15. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts +15 -0
  16. package/dist/runtime-v2/activation/__tests__/approval-queue.test.d.ts.map +1 -1
  17. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +326 -164
  18. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +1 -1
  19. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts +21 -0
  20. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.d.ts.map +1 -0
  21. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js +468 -0
  22. package/dist/runtime-v2/activation/__tests__/low-risk-writers.test.js.map +1 -0
  23. package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  24. package/dist/runtime-v2/config/pd-config-types.js +2 -3
  25. package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  26. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +2 -2
  27. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +1 -1
  28. package/dist/runtime-v2/observer/empathy-observer.js +1 -1
  29. package/dist/runtime-v2/observer/empathy-observer.js.map +1 -1
  30. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js +7 -15
  31. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js.map +1 -1
  32. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js +3 -10
  33. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js.map +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Low Risk Writers Tests — PRI-145
3
+ *
4
+ * Unit tests for low-risk channel activation classes:
5
+ * - PromptWriter — handles 'prompt' channel activation
6
+ * - DeferArchiveWriter — handles 'defer_archive' channel activation
7
+ * - extractPrincipleId() — parsing principle ID from PIArtifactSnapshot
8
+ *
9
+ * Tests verify:
10
+ * - Correct extraction of principle IDs from artifact content
11
+ * - canActivate() correctly validates artifact eligibility
12
+ * - activate() produces correct activation records
13
+ * - Boundary conditions and error handling
14
+ *
15
+ * ERR checklist:
16
+ * - ERR-002: Every decision path carries reason + nextAction
17
+ * - ERR-009: Malformed state fails loud
18
+ * - ERR-025: Production-path tests, not just helpers
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=low-risk-writers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"low-risk-writers.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/activation/__tests__/low-risk-writers.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
@@ -0,0 +1,468 @@
1
+ /**
2
+ * Low Risk Writers Tests — PRI-145
3
+ *
4
+ * Unit tests for low-risk channel activation classes:
5
+ * - PromptWriter — handles 'prompt' channel activation
6
+ * - DeferArchiveWriter — handles 'defer_archive' channel activation
7
+ * - extractPrincipleId() — parsing principle ID from PIArtifactSnapshot
8
+ *
9
+ * Tests verify:
10
+ * - Correct extraction of principle IDs from artifact content
11
+ * - canActivate() correctly validates artifact eligibility
12
+ * - activate() produces correct activation records
13
+ * - Boundary conditions and error handling
14
+ *
15
+ * ERR checklist:
16
+ * - ERR-002: Every decision path carries reason + nextAction
17
+ * - ERR-009: Malformed state fails loud
18
+ * - ERR-025: Production-path tests, not just helpers
19
+ */
20
+ import { describe, it, expect } from 'vitest';
21
+ import { extractPrincipleId, PromptWriter, DeferArchiveWriter, } from '../low-risk-writers';
22
+ function createArtifact(input) {
23
+ return {
24
+ artifactId: 'art-001',
25
+ artifactKind: input.artifactKind ?? 'principle',
26
+ sourceTaskId: 'task-001',
27
+ sourcePrincipleId: input.sourcePrincipleId,
28
+ lineageArtifactIds: [],
29
+ validationStatus: input.validationStatus ?? 'validated',
30
+ contentJson: input.contentJson,
31
+ createdAt: '2026-05-17T00:00:00Z',
32
+ updatedAt: '2026-05-17T00:00:00Z',
33
+ };
34
+ }
35
+ describe('extractPrincipleId', () => {
36
+ // Source principle ID from artifact property
37
+ it('extracts principle ID from sourcePrincipleId property', () => {
38
+ const artifact = createArtifact({ contentJson: '{}', sourcePrincipleId: 'PRI-001' });
39
+ expect(extractPrincipleId(artifact)).toBe('PRI-001');
40
+ });
41
+ it('extracts principle ID from sourcePrincipleId with whitespace', () => {
42
+ const artifact = createArtifact({ contentJson: '{}', sourcePrincipleId: ' PRI-002 ' });
43
+ expect(extractPrincipleId(artifact)).toBe('PRI-002');
44
+ });
45
+ it('returns null for empty sourcePrincipleId', () => {
46
+ const artifact = createArtifact({ contentJson: '{}', sourcePrincipleId: '' });
47
+ expect(extractPrincipleId(artifact)).toBeNull();
48
+ });
49
+ it('returns null for whitespace-only sourcePrincipleId', () => {
50
+ const artifact = createArtifact({ contentJson: '{}', sourcePrincipleId: ' ' });
51
+ expect(extractPrincipleId(artifact)).toBeNull();
52
+ });
53
+ // Content JSON extraction
54
+ it('extracts principle ID from contentJson principleId field', () => {
55
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-003' }) });
56
+ expect(extractPrincipleId(artifact)).toBe('PRI-003');
57
+ });
58
+ it('extracts principle ID from contentJson sourcePrincipleId field', () => {
59
+ const artifact = createArtifact({ contentJson: JSON.stringify({ sourcePrincipleId: 'PRI-004' }) });
60
+ expect(extractPrincipleId(artifact)).toBe('PRI-004');
61
+ });
62
+ it('extracts principle ID from contentJson principleDraft.title field', () => {
63
+ const artifact = createArtifact({ contentJson: JSON.stringify({
64
+ principleDraft: { title: 'PRI-005' },
65
+ }) });
66
+ expect(extractPrincipleId(artifact)).toBe('PRI-005');
67
+ });
68
+ // Priority: sourcePrincipleId property takes precedence over contentJson
69
+ it('sourcePrincipleId property takes precedence over contentJson', () => {
70
+ const artifact = createArtifact({
71
+ contentJson: JSON.stringify({ principleId: 'PRI-006' }),
72
+ sourcePrincipleId: 'PRI-007',
73
+ });
74
+ expect(extractPrincipleId(artifact)).toBe('PRI-007');
75
+ });
76
+ // Whitespace trimming
77
+ it('trims whitespace from principleId in contentJson', () => {
78
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: ' PRI-008 ' }) });
79
+ expect(extractPrincipleId(artifact)).toBe('PRI-008');
80
+ });
81
+ it('trims whitespace from sourcePrincipleId in contentJson', () => {
82
+ const artifact = createArtifact({ contentJson: JSON.stringify({ sourcePrincipleId: ' PRI-009 ' }) });
83
+ expect(extractPrincipleId(artifact)).toBe('PRI-009');
84
+ });
85
+ it('trims whitespace from principleDraft.title', () => {
86
+ const artifact = createArtifact({ contentJson: JSON.stringify({
87
+ principleDraft: { title: ' PRI-010 ' },
88
+ }) });
89
+ expect(extractPrincipleId(artifact)).toBe('PRI-010');
90
+ });
91
+ // Empty/invalid contentJson
92
+ it('returns null for empty contentJson', () => {
93
+ const artifact = createArtifact({ contentJson: '' });
94
+ expect(extractPrincipleId(artifact)).toBeNull();
95
+ });
96
+ it('returns null for invalid JSON contentJson', () => {
97
+ const artifact = createArtifact({ contentJson: 'not valid json' });
98
+ expect(extractPrincipleId(artifact)).toBeNull();
99
+ });
100
+ it('returns null for JSON array contentJson', () => {
101
+ const artifact = createArtifact({ contentJson: '[1, 2, 3]' });
102
+ expect(extractPrincipleId(artifact)).toBeNull();
103
+ });
104
+ it('returns null for JSON primitive contentJson', () => {
105
+ const artifact = createArtifact({ contentJson: '"just a string"' });
106
+ expect(extractPrincipleId(artifact)).toBeNull();
107
+ });
108
+ it('returns null for JSON null contentJson', () => {
109
+ const artifact = createArtifact({ contentJson: 'null' });
110
+ expect(extractPrincipleId(artifact)).toBeNull();
111
+ });
112
+ // Empty principle ID fields
113
+ it('returns null for empty principleId in contentJson', () => {
114
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: '' }) });
115
+ expect(extractPrincipleId(artifact)).toBeNull();
116
+ });
117
+ it('returns null for empty sourcePrincipleId in contentJson', () => {
118
+ const artifact = createArtifact({ contentJson: JSON.stringify({ sourcePrincipleId: '' }) });
119
+ expect(extractPrincipleId(artifact)).toBeNull();
120
+ });
121
+ it('returns null for empty principleDraft.title', () => {
122
+ const artifact = createArtifact({ contentJson: JSON.stringify({
123
+ principleDraft: { title: '' },
124
+ }) });
125
+ expect(extractPrincipleId(artifact)).toBeNull();
126
+ });
127
+ it('returns null for non-string principleId', () => {
128
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 123 }) });
129
+ expect(extractPrincipleId(artifact)).toBeNull();
130
+ });
131
+ it('returns null for non-string sourcePrincipleId', () => {
132
+ const artifact = createArtifact({ contentJson: JSON.stringify({ sourcePrincipleId: null }) });
133
+ expect(extractPrincipleId(artifact)).toBeNull();
134
+ });
135
+ it('returns null for non-object principleDraft', () => {
136
+ const artifact = createArtifact({ contentJson: JSON.stringify({
137
+ principleDraft: 'not an object',
138
+ }) });
139
+ expect(extractPrincipleId(artifact)).toBeNull();
140
+ });
141
+ it('returns null for non-string principleDraft.title', () => {
142
+ const artifact = createArtifact({ contentJson: JSON.stringify({
143
+ principleDraft: { title: 456 },
144
+ }) });
145
+ expect(extractPrincipleId(artifact)).toBeNull();
146
+ });
147
+ // Complex contentJson structures
148
+ it('extracts from nested JSON structure', () => {
149
+ const artifact = createArtifact({ contentJson: JSON.stringify({
150
+ metadata: { version: '1.0' },
151
+ principleId: 'PRI-011',
152
+ content: 'Some content',
153
+ }) });
154
+ expect(extractPrincipleId(artifact)).toBe('PRI-011');
155
+ });
156
+ it('returns null when no principle ID fields present', () => {
157
+ const artifact = createArtifact({ contentJson: JSON.stringify({
158
+ title: 'Some Title',
159
+ description: 'Some description',
160
+ }) });
161
+ expect(extractPrincipleId(artifact)).toBeNull();
162
+ });
163
+ // Boundary: principleDraft without title
164
+ it('returns null for principleDraft without title field', () => {
165
+ const artifact = createArtifact({ contentJson: JSON.stringify({
166
+ principleDraft: { description: 'No title here' },
167
+ }) });
168
+ expect(extractPrincipleId(artifact)).toBeNull();
169
+ });
170
+ // Real-world patterns
171
+ it('extracts from typical principle artifact content', () => {
172
+ const artifact = createArtifact({ contentJson: JSON.stringify({
173
+ principleId: 'PRI-012',
174
+ title: 'Test Principle',
175
+ description: 'A test principle for validation',
176
+ ruleIds: ['RULE-001'],
177
+ }) });
178
+ expect(extractPrincipleId(artifact)).toBe('PRI-012');
179
+ });
180
+ it('extracts from artifact with sourcePrincipleId reference', () => {
181
+ const artifact = createArtifact({ contentJson: JSON.stringify({
182
+ sourcePrincipleId: 'PRI-013',
183
+ derivedFrom: 'original principle',
184
+ }) });
185
+ expect(extractPrincipleId(artifact)).toBe('PRI-013');
186
+ });
187
+ });
188
+ // ── PromptWriter Tests ────────────────────────────────────────────────────────
189
+ describe('PromptWriter', () => {
190
+ const writer = new PromptWriter();
191
+ it('channel is prompt', () => {
192
+ expect(writer.channel).toBe('prompt');
193
+ });
194
+ describe('canActivate', () => {
195
+ it('returns ok:true for validated principle artifact with principle ID', async () => {
196
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
197
+ const result = await writer.canActivate(artifact);
198
+ expect(result.ok).toBe(true);
199
+ expect(result.riskLevel).toBe('low');
200
+ });
201
+ it('returns ok:false for non-principle artifact kind', async () => {
202
+ const artifact = createArtifact({
203
+ contentJson: JSON.stringify({ principleId: 'PRI-002' }),
204
+ artifactKind: 'rule',
205
+ });
206
+ const result = await writer.canActivate(artifact);
207
+ expect(result.ok).toBe(false);
208
+ expect(result.reason).toBe('artifact_kind_not_principle');
209
+ expect(result.riskLevel).toBe('low');
210
+ });
211
+ it('returns ok:false for pending validation status', async () => {
212
+ const artifact = createArtifact({
213
+ contentJson: JSON.stringify({ principleId: 'PRI-003' }),
214
+ validationStatus: 'pending',
215
+ });
216
+ const result = await writer.canActivate(artifact);
217
+ expect(result.ok).toBe(false);
218
+ expect(result.reason).toBe('artifact_validation_status_pending');
219
+ expect(result.riskLevel).toBe('low');
220
+ });
221
+ it('returns ok:false for rejected validation status', async () => {
222
+ const artifact = createArtifact({
223
+ contentJson: JSON.stringify({ principleId: 'PRI-004' }),
224
+ validationStatus: 'rejected',
225
+ });
226
+ const result = await writer.canActivate(artifact);
227
+ expect(result.ok).toBe(false);
228
+ expect(result.reason).toBe('artifact_validation_status_rejected');
229
+ expect(result.riskLevel).toBe('low');
230
+ });
231
+ it('returns ok:false for artifact without principle ID', async () => {
232
+ const artifact = createArtifact({ contentJson: '{}' });
233
+ const result = await writer.canActivate(artifact);
234
+ expect(result.ok).toBe(false);
235
+ expect(result.reason).toBe('no_principle_id_in_artifact');
236
+ expect(result.riskLevel).toBe('low');
237
+ });
238
+ it('returns ok:false for artifact with empty contentJson', async () => {
239
+ const artifact = createArtifact({ contentJson: '' });
240
+ const result = await writer.canActivate(artifact);
241
+ expect(result.ok).toBe(false);
242
+ expect(result.reason).toBe('no_principle_id_in_artifact');
243
+ expect(result.riskLevel).toBe('low');
244
+ });
245
+ it('returns ok:true when sourcePrincipleId property is present', async () => {
246
+ const artifact = createArtifact({ contentJson: '{}', sourcePrincipleId: 'PRI-005' });
247
+ const result = await writer.canActivate(artifact);
248
+ expect(result.ok).toBe(true);
249
+ expect(result.riskLevel).toBe('low');
250
+ });
251
+ });
252
+ describe('activate', () => {
253
+ it('creates activation record with correct format', async () => {
254
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
255
+ const input = {
256
+ artifactId: 'art-001',
257
+ channel: 'prompt',
258
+ principleId: 'PRI-001',
259
+ idempotencyKey: 'art-001::prompt',
260
+ now: '2026-05-17T00:00:00Z',
261
+ };
262
+ const result = await writer.activate(input, artifact);
263
+ expect(result.activationId).toBe('act_prompt_PRI-001');
264
+ expect(result.action).toBe('prompt_activate');
265
+ expect(result.targetRef).toBe('ledger://PRI-001');
266
+ });
267
+ it('ignores artifact in activate (uses input.principleId)', async () => {
268
+ const artifact = createArtifact({ contentJson: '{}' }); // No principle ID
269
+ const input = {
270
+ artifactId: 'art-002',
271
+ channel: 'prompt',
272
+ principleId: 'PRI-002',
273
+ idempotencyKey: 'art-002::prompt',
274
+ now: '2026-05-17T00:00:00Z',
275
+ };
276
+ const result = await writer.activate(input, artifact);
277
+ expect(result.activationId).toBe('act_prompt_PRI-002');
278
+ });
279
+ it('creates unique activationId per principleId', async () => {
280
+ const artifact = createArtifact({ contentJson: '{}' });
281
+ const input1 = {
282
+ artifactId: 'art-001',
283
+ channel: 'prompt',
284
+ principleId: 'PRI-AAA',
285
+ idempotencyKey: 'art-001::prompt',
286
+ now: '2026-05-17T00:00:00Z',
287
+ };
288
+ const input2 = {
289
+ artifactId: 'art-002',
290
+ channel: 'prompt',
291
+ principleId: 'PRI-BBB',
292
+ idempotencyKey: 'art-002::prompt',
293
+ now: '2026-05-17T00:00:00Z',
294
+ };
295
+ const result1 = await writer.activate(input1, artifact);
296
+ const result2 = await writer.activate(input2, artifact);
297
+ expect(result1.activationId).not.toBe(result2.activationId);
298
+ });
299
+ });
300
+ });
301
+ // ── DeferArchiveWriter Tests ──────────────────────────────────────────────────
302
+ describe('DeferArchiveWriter', () => {
303
+ const writer = new DeferArchiveWriter();
304
+ it('channel is defer_archive', () => {
305
+ expect(writer.channel).toBe('defer_archive');
306
+ });
307
+ describe('canActivate', () => {
308
+ it('returns ok:true for validated principle artifact with principle ID', async () => {
309
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
310
+ const result = await writer.canActivate(artifact);
311
+ expect(result.ok).toBe(true);
312
+ expect(result.riskLevel).toBe('low');
313
+ });
314
+ it('returns ok:false for non-principle artifact kind', async () => {
315
+ const artifact = createArtifact({
316
+ contentJson: JSON.stringify({ principleId: 'PRI-002' }),
317
+ artifactKind: 'rule',
318
+ });
319
+ const result = await writer.canActivate(artifact);
320
+ expect(result.ok).toBe(false);
321
+ expect(result.reason).toBe('artifact_kind_not_principle');
322
+ expect(result.riskLevel).toBe('low');
323
+ });
324
+ it('returns ok:false for pending validation status', async () => {
325
+ const artifact = createArtifact({
326
+ contentJson: JSON.stringify({ principleId: 'PRI-003' }),
327
+ validationStatus: 'pending',
328
+ });
329
+ const result = await writer.canActivate(artifact);
330
+ expect(result.ok).toBe(false);
331
+ expect(result.reason).toBe('artifact_validation_status_pending');
332
+ expect(result.riskLevel).toBe('low');
333
+ });
334
+ it('returns ok:false for artifact without principle ID', async () => {
335
+ const artifact = createArtifact({ contentJson: '{}' });
336
+ const result = await writer.canActivate(artifact);
337
+ expect(result.ok).toBe(false);
338
+ expect(result.reason).toBe('no_principle_id_in_artifact');
339
+ expect(result.riskLevel).toBe('low');
340
+ });
341
+ it('shares same validation logic as PromptWriter', async () => {
342
+ const promptWriter = new PromptWriter();
343
+ const artifacts = [
344
+ createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) }),
345
+ createArtifact({ contentJson: '{}', artifactKind: 'rule' }),
346
+ createArtifact({ contentJson: '{}', validationStatus: 'pending' }),
347
+ createArtifact({ contentJson: '{}' }),
348
+ ];
349
+ for (const artifact of artifacts) {
350
+ const promptResult = await promptWriter.canActivate(artifact);
351
+ const archiveResult = await writer.canActivate(artifact);
352
+ expect(promptResult.ok).toBe(archiveResult.ok);
353
+ if (!promptResult.ok && !archiveResult.ok) {
354
+ expect(promptResult.reason).toBe(archiveResult.reason);
355
+ }
356
+ }
357
+ });
358
+ });
359
+ describe('activate', () => {
360
+ it('creates activation record with defer_archive action', async () => {
361
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
362
+ const input = {
363
+ artifactId: 'art-001',
364
+ channel: 'defer_archive',
365
+ principleId: 'PRI-001',
366
+ idempotencyKey: 'art-001::defer_archive',
367
+ now: '2026-05-17T00:00:00Z',
368
+ };
369
+ const result = await writer.activate(input, artifact);
370
+ expect(result.activationId).toBe('act_archive_PRI-001');
371
+ expect(result.action).toBe('defer_archive');
372
+ expect(result.targetRef).toBe('ledger://PRI-001#archived');
373
+ });
374
+ it('targetRef includes #archived suffix', async () => {
375
+ const artifact = createArtifact({ contentJson: '{}' });
376
+ const input = {
377
+ artifactId: 'art-002',
378
+ channel: 'defer_archive',
379
+ principleId: 'PRI-002',
380
+ idempotencyKey: 'art-002::defer_archive',
381
+ now: '2026-05-17T00:00:00Z',
382
+ };
383
+ const result = await writer.activate(input, artifact);
384
+ expect(result.targetRef).toContain('#archived');
385
+ });
386
+ it('creates different activationId format than PromptWriter', async () => {
387
+ const promptWriter = new PromptWriter();
388
+ const artifact = createArtifact({ contentJson: '{}' });
389
+ const promptInput = {
390
+ artifactId: 'art-001',
391
+ channel: 'prompt',
392
+ principleId: 'PRI-001',
393
+ idempotencyKey: 'art-001::prompt',
394
+ now: '2026-05-17T00:00:00Z',
395
+ };
396
+ const archiveInput = {
397
+ artifactId: 'art-001',
398
+ channel: 'defer_archive',
399
+ principleId: 'PRI-001',
400
+ idempotencyKey: 'art-001::defer_archive',
401
+ now: '2026-05-17T00:00:00Z',
402
+ };
403
+ const promptResult = await promptWriter.activate(promptInput, artifact);
404
+ const archiveResult = await writer.activate(archiveInput, artifact);
405
+ expect(promptResult.activationId).toBe('act_prompt_PRI-001');
406
+ expect(archiveResult.activationId).toBe('act_archive_PRI-001');
407
+ expect(promptResult.action).toBe('prompt_activate');
408
+ expect(archiveResult.action).toBe('defer_archive');
409
+ });
410
+ });
411
+ });
412
+ // ── Integration Tests ────────────────────────────────────────────────────────
413
+ describe('integration: PromptWriter + DeferArchiveWriter', () => {
414
+ it('both writers reject same invalid artifacts', async () => {
415
+ const promptWriter = new PromptWriter();
416
+ const archiveWriter = new DeferArchiveWriter();
417
+ const invalidArtifacts = [
418
+ createArtifact({ contentJson: '{}', artifactKind: 'rule' }), // wrong kind
419
+ createArtifact({ contentJson: '{}', validationStatus: 'pending' }), // wrong status
420
+ createArtifact({ contentJson: '{}' }), // no principle ID
421
+ ];
422
+ for (const artifact of invalidArtifacts) {
423
+ const promptResult = await promptWriter.canActivate(artifact);
424
+ const archiveResult = await archiveWriter.canActivate(artifact);
425
+ expect(promptResult.ok).toBe(false);
426
+ expect(archiveResult.ok).toBe(false);
427
+ }
428
+ });
429
+ it('both writers accept same valid artifacts', async () => {
430
+ const promptWriter = new PromptWriter();
431
+ const archiveWriter = new DeferArchiveWriter();
432
+ const validArtifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
433
+ const promptResult = await promptWriter.canActivate(validArtifact);
434
+ const archiveResult = await archiveWriter.canActivate(validArtifact);
435
+ expect(promptResult.ok).toBe(true);
436
+ expect(archiveResult.ok).toBe(true);
437
+ expect(promptResult.riskLevel).toBe('low');
438
+ expect(archiveResult.riskLevel).toBe('low');
439
+ });
440
+ it('both writers produce different activation records for same principle', async () => {
441
+ const promptWriter = new PromptWriter();
442
+ const archiveWriter = new DeferArchiveWriter();
443
+ const artifact = createArtifact({ contentJson: JSON.stringify({ principleId: 'PRI-001' }) });
444
+ const promptResult = await promptWriter.activate({
445
+ artifactId: 'art-001',
446
+ channel: 'prompt',
447
+ principleId: 'PRI-001',
448
+ idempotencyKey: 'art-001::prompt',
449
+ now: '2026-05-17T00:00:00Z',
450
+ }, artifact);
451
+ const archiveResult = await archiveWriter.activate({
452
+ artifactId: 'art-001',
453
+ channel: 'defer_archive',
454
+ principleId: 'PRI-001',
455
+ idempotencyKey: 'art-001::defer_archive',
456
+ now: '2026-05-17T00:00:00Z',
457
+ }, artifact);
458
+ // Different activation IDs
459
+ expect(promptResult.activationId).not.toBe(archiveResult.activationId);
460
+ // Different actions
461
+ expect(promptResult.action).toBe('prompt_activate');
462
+ expect(archiveResult.action).toBe('defer_archive');
463
+ // Different target refs
464
+ expect(promptResult.targetRef).toBe('ledger://PRI-001');
465
+ expect(archiveResult.targetRef).toBe('ledger://PRI-001#archived');
466
+ });
467
+ });
468
+ //# sourceMappingURL=low-risk-writers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"low-risk-writers.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/activation/__tests__/low-risk-writers.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pd-config-types.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,8 @@ export const INTERNAL_AGENT_NAMES = [
32
32
  export const VALID_DIAGNOSTICS_MODES = ['simple', 'advanced'];
33
33
  // ── Dangerous Keys ──────────────────────────────────────────────────────────
34
34
  export const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
35
- // ── OpenClaw Plugin Config Keys (PRI-343) ──────────────────────────────────
36
- // Shared constant for the hooks.allowConversationAccess field in
37
- // openclaw.json plugins.entries['principles-disciple'].hooks.
35
+ // ── Conversation Access Config Key (PRI-343) ────────────────────────────────
36
+ // Shared constant for the allowConversationAccess field in plugin hooks.
38
37
  // Used by both the installer and the plugin health check to ensure consistency.
39
38
  export const CONVERSATION_ACCESS_CONFIG_KEY = 'allowConversationAccess';
40
39
  //# sourceMappingURL=pd-config-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAU3E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AA6BlE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,oBAAoB;IACpB,iBAAiB;CACT,CAAC;AAqBX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAkHvE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjF,8EAA8E;AAC9E,iEAAiE;AACjE,8DAA8D;AAC9D,gFAAgF;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAkC,CAAC"}
1
+ {"version":3,"file":"pd-config-types.js","sourceRoot":"","sources":["../../../src/runtime-v2/config/pd-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAGnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAU3E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC;AA6BlE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,SAAS;IACT,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,oBAAoB;IACpB,iBAAiB;CACT,CAAC;AAqBX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAkHvE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAkC,CAAC"}
@@ -35,7 +35,7 @@ describe('EmpathyObserver Real E2E & Mock Fallback', () => {
35
35
  model,
36
36
  apiKeyEnv,
37
37
  baseUrl,
38
- timeoutMs: 15000,
38
+ timeoutMs: 60000,
39
39
  });
40
40
  isRealLlm = true;
41
41
  console.log(`[E2E Test] LM Studio detected at ${baseUrl}. Running E2E test with real model: ${model}`);
@@ -62,6 +62,6 @@ describe('EmpathyObserver Real E2E & Mock Fallback', () => {
62
62
  expect(result.damageDetected).toBe(true);
63
63
  expect(result.reason).toBe('Frustration detected via stable mock fallback');
64
64
  }
65
- }, 30000);
65
+ }, 120000);
66
66
  });
67
67
  //# sourceMappingURL=empathy-observer.real-e2e.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"empathy-observer.real-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"empathy-observer.real-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export class EmpathyObserver {
19
19
  agentId;
20
20
  constructor(deps, options) {
21
21
  this.runtimeAdapter = deps.runtimeAdapter;
22
- this.timeoutMs = options?.timeoutMs ?? 30_000;
22
+ this.timeoutMs = options?.timeoutMs ?? 120_000;
23
23
  this.agentId = options?.agentId ?? 'empathy-observer';
24
24
  }
25
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"empathy-observer.js","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"empathy-observer.js","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"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"}