@principles/core 1.114.0 → 1.115.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.
@@ -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,451 @@
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
+ // ── extractPrincipleId Tests ──────────────────────────────────────────────────
23
+ function createArtifact(contentJson, sourcePrincipleId, artifactKind = 'principle', validationStatus = 'validated') {
24
+ return {
25
+ artifactId: 'art-001',
26
+ artifactKind,
27
+ sourceTaskId: 'task-001',
28
+ sourcePrincipleId,
29
+ lineageArtifactIds: [],
30
+ validationStatus,
31
+ contentJson,
32
+ createdAt: '2026-05-17T00:00:00Z',
33
+ updatedAt: '2026-05-17T00:00:00Z',
34
+ };
35
+ }
36
+ describe('extractPrincipleId', () => {
37
+ // Source principle ID from artifact property
38
+ it('extracts principle ID from sourcePrincipleId property', () => {
39
+ const artifact = createArtifact('{}', 'PRI-001');
40
+ expect(extractPrincipleId(artifact)).toBe('PRI-001');
41
+ });
42
+ it('extracts principle ID from sourcePrincipleId with whitespace', () => {
43
+ const artifact = createArtifact('{}', ' PRI-002 ');
44
+ expect(extractPrincipleId(artifact)).toBe('PRI-002');
45
+ });
46
+ it('returns null for empty sourcePrincipleId', () => {
47
+ const artifact = createArtifact('{}', '');
48
+ expect(extractPrincipleId(artifact)).toBeNull();
49
+ });
50
+ it('returns null for whitespace-only sourcePrincipleId', () => {
51
+ const artifact = createArtifact('{}', ' ');
52
+ expect(extractPrincipleId(artifact)).toBeNull();
53
+ });
54
+ // Content JSON extraction
55
+ it('extracts principle ID from contentJson principleId field', () => {
56
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-003' }));
57
+ expect(extractPrincipleId(artifact)).toBe('PRI-003');
58
+ });
59
+ it('extracts principle ID from contentJson sourcePrincipleId field', () => {
60
+ const artifact = createArtifact(JSON.stringify({ sourcePrincipleId: 'PRI-004' }));
61
+ expect(extractPrincipleId(artifact)).toBe('PRI-004');
62
+ });
63
+ it('extracts principle ID from contentJson principleDraft.title field', () => {
64
+ const artifact = createArtifact(JSON.stringify({
65
+ principleDraft: { title: 'PRI-005' },
66
+ }));
67
+ expect(extractPrincipleId(artifact)).toBe('PRI-005');
68
+ });
69
+ // Priority: sourcePrincipleId property takes precedence over contentJson
70
+ it('sourcePrincipleId property takes precedence over contentJson', () => {
71
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-006' }), 'PRI-007');
72
+ expect(extractPrincipleId(artifact)).toBe('PRI-007');
73
+ });
74
+ // Whitespace trimming
75
+ it('trims whitespace from principleId in contentJson', () => {
76
+ const artifact = createArtifact(JSON.stringify({ principleId: ' PRI-008 ' }));
77
+ expect(extractPrincipleId(artifact)).toBe('PRI-008');
78
+ });
79
+ it('trims whitespace from sourcePrincipleId in contentJson', () => {
80
+ const artifact = createArtifact(JSON.stringify({ sourcePrincipleId: ' PRI-009 ' }));
81
+ expect(extractPrincipleId(artifact)).toBe('PRI-009');
82
+ });
83
+ it('trims whitespace from principleDraft.title', () => {
84
+ const artifact = createArtifact(JSON.stringify({
85
+ principleDraft: { title: ' PRI-010 ' },
86
+ }));
87
+ expect(extractPrincipleId(artifact)).toBe('PRI-010');
88
+ });
89
+ // Empty/invalid contentJson
90
+ it('returns null for empty contentJson', () => {
91
+ const artifact = createArtifact('');
92
+ expect(extractPrincipleId(artifact)).toBeNull();
93
+ });
94
+ it('returns null for invalid JSON contentJson', () => {
95
+ const artifact = createArtifact('not valid json');
96
+ expect(extractPrincipleId(artifact)).toBeNull();
97
+ });
98
+ it('returns null for JSON array contentJson', () => {
99
+ const artifact = createArtifact('[1, 2, 3]');
100
+ expect(extractPrincipleId(artifact)).toBeNull();
101
+ });
102
+ it('returns null for JSON primitive contentJson', () => {
103
+ const artifact = createArtifact('"just a string"');
104
+ expect(extractPrincipleId(artifact)).toBeNull();
105
+ });
106
+ it('returns null for JSON null contentJson', () => {
107
+ const artifact = createArtifact('null');
108
+ expect(extractPrincipleId(artifact)).toBeNull();
109
+ });
110
+ // Empty principle ID fields
111
+ it('returns null for empty principleId in contentJson', () => {
112
+ const artifact = createArtifact(JSON.stringify({ principleId: '' }));
113
+ expect(extractPrincipleId(artifact)).toBeNull();
114
+ });
115
+ it('returns null for empty sourcePrincipleId in contentJson', () => {
116
+ const artifact = createArtifact(JSON.stringify({ sourcePrincipleId: '' }));
117
+ expect(extractPrincipleId(artifact)).toBeNull();
118
+ });
119
+ it('returns null for empty principleDraft.title', () => {
120
+ const artifact = createArtifact(JSON.stringify({
121
+ principleDraft: { title: '' },
122
+ }));
123
+ expect(extractPrincipleId(artifact)).toBeNull();
124
+ });
125
+ it('returns null for non-string principleId', () => {
126
+ const artifact = createArtifact(JSON.stringify({ principleId: 123 }));
127
+ expect(extractPrincipleId(artifact)).toBeNull();
128
+ });
129
+ it('returns null for non-string sourcePrincipleId', () => {
130
+ const artifact = createArtifact(JSON.stringify({ sourcePrincipleId: null }));
131
+ expect(extractPrincipleId(artifact)).toBeNull();
132
+ });
133
+ it('returns null for non-object principleDraft', () => {
134
+ const artifact = createArtifact(JSON.stringify({
135
+ principleDraft: 'not an object',
136
+ }));
137
+ expect(extractPrincipleId(artifact)).toBeNull();
138
+ });
139
+ it('returns null for non-string principleDraft.title', () => {
140
+ const artifact = createArtifact(JSON.stringify({
141
+ principleDraft: { title: 456 },
142
+ }));
143
+ expect(extractPrincipleId(artifact)).toBeNull();
144
+ });
145
+ // Complex contentJson structures
146
+ it('extracts from nested JSON structure', () => {
147
+ const artifact = createArtifact(JSON.stringify({
148
+ metadata: { version: '1.0' },
149
+ principleId: 'PRI-011',
150
+ content: 'Some content',
151
+ }));
152
+ expect(extractPrincipleId(artifact)).toBe('PRI-011');
153
+ });
154
+ it('returns null when no principle ID fields present', () => {
155
+ const artifact = createArtifact(JSON.stringify({
156
+ title: 'Some Title',
157
+ description: 'Some description',
158
+ }));
159
+ expect(extractPrincipleId(artifact)).toBeNull();
160
+ });
161
+ // Boundary: principleDraft without title
162
+ it('returns null for principleDraft without title field', () => {
163
+ const artifact = createArtifact(JSON.stringify({
164
+ principleDraft: { description: 'No title here' },
165
+ }));
166
+ expect(extractPrincipleId(artifact)).toBeNull();
167
+ });
168
+ // Real-world patterns
169
+ it('extracts from typical principle artifact content', () => {
170
+ const artifact = createArtifact(JSON.stringify({
171
+ principleId: 'PRI-012',
172
+ title: 'Test Principle',
173
+ description: 'A test principle for validation',
174
+ ruleIds: ['RULE-001'],
175
+ }));
176
+ expect(extractPrincipleId(artifact)).toBe('PRI-012');
177
+ });
178
+ it('extracts from artifact with sourcePrincipleId reference', () => {
179
+ const artifact = createArtifact(JSON.stringify({
180
+ sourcePrincipleId: 'PRI-013',
181
+ derivedFrom: 'original principle',
182
+ }));
183
+ expect(extractPrincipleId(artifact)).toBe('PRI-013');
184
+ });
185
+ });
186
+ // ── PromptWriter Tests ────────────────────────────────────────────────────────
187
+ describe('PromptWriter', () => {
188
+ const writer = new PromptWriter();
189
+ it('channel is prompt', () => {
190
+ expect(writer.channel).toBe('prompt');
191
+ });
192
+ describe('canActivate', () => {
193
+ it('returns ok:true for validated principle artifact with principle ID', async () => {
194
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
195
+ const result = await writer.canActivate(artifact);
196
+ expect(result.ok).toBe(true);
197
+ expect(result.riskLevel).toBe('low');
198
+ });
199
+ it('returns ok:false for non-principle artifact kind', async () => {
200
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-002' }), undefined, 'rule');
201
+ const result = await writer.canActivate(artifact);
202
+ expect(result.ok).toBe(false);
203
+ expect(result.reason).toBe('artifact_kind_not_principle');
204
+ expect(result.riskLevel).toBe('low');
205
+ });
206
+ it('returns ok:false for pending validation status', async () => {
207
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-003' }), undefined, 'principle', 'pending');
208
+ const result = await writer.canActivate(artifact);
209
+ expect(result.ok).toBe(false);
210
+ expect(result.reason).toBe('artifact_validation_status_pending');
211
+ expect(result.riskLevel).toBe('low');
212
+ });
213
+ it('returns ok:false for rejected validation status', async () => {
214
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-004' }), undefined, 'principle', 'rejected');
215
+ const result = await writer.canActivate(artifact);
216
+ expect(result.ok).toBe(false);
217
+ expect(result.reason).toBe('artifact_validation_status_rejected');
218
+ expect(result.riskLevel).toBe('low');
219
+ });
220
+ it('returns ok:false for artifact without principle ID', async () => {
221
+ const artifact = createArtifact('{}');
222
+ const result = await writer.canActivate(artifact);
223
+ expect(result.ok).toBe(false);
224
+ expect(result.reason).toBe('no_principle_id_in_artifact');
225
+ expect(result.riskLevel).toBe('low');
226
+ });
227
+ it('returns ok:false for artifact with empty contentJson', async () => {
228
+ const artifact = createArtifact('');
229
+ const result = await writer.canActivate(artifact);
230
+ expect(result.ok).toBe(false);
231
+ expect(result.reason).toBe('no_principle_id_in_artifact');
232
+ expect(result.riskLevel).toBe('low');
233
+ });
234
+ it('returns ok:true when sourcePrincipleId property is present', async () => {
235
+ const artifact = createArtifact('{}', 'PRI-005');
236
+ const result = await writer.canActivate(artifact);
237
+ expect(result.ok).toBe(true);
238
+ expect(result.riskLevel).toBe('low');
239
+ });
240
+ });
241
+ describe('activate', () => {
242
+ it('creates activation record with correct format', async () => {
243
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
244
+ const input = {
245
+ artifactId: 'art-001',
246
+ channel: 'prompt',
247
+ principleId: 'PRI-001',
248
+ idempotencyKey: 'art-001::prompt',
249
+ now: '2026-05-17T00:00:00Z',
250
+ };
251
+ const result = await writer.activate(input, artifact);
252
+ expect(result.activationId).toBe('act_prompt_PRI-001');
253
+ expect(result.action).toBe('prompt_activate');
254
+ expect(result.targetRef).toBe('ledger://PRI-001');
255
+ });
256
+ it('ignores artifact in activate (uses input.principleId)', async () => {
257
+ const artifact = createArtifact('{}'); // No principle ID
258
+ const input = {
259
+ artifactId: 'art-002',
260
+ channel: 'prompt',
261
+ principleId: 'PRI-002',
262
+ idempotencyKey: 'art-002::prompt',
263
+ now: '2026-05-17T00:00:00Z',
264
+ };
265
+ const result = await writer.activate(input, artifact);
266
+ expect(result.activationId).toBe('act_prompt_PRI-002');
267
+ });
268
+ it('creates unique activationId per principleId', async () => {
269
+ const artifact = createArtifact('{}');
270
+ const input1 = {
271
+ artifactId: 'art-001',
272
+ channel: 'prompt',
273
+ principleId: 'PRI-AAA',
274
+ idempotencyKey: 'art-001::prompt',
275
+ now: '2026-05-17T00:00:00Z',
276
+ };
277
+ const input2 = {
278
+ artifactId: 'art-002',
279
+ channel: 'prompt',
280
+ principleId: 'PRI-BBB',
281
+ idempotencyKey: 'art-002::prompt',
282
+ now: '2026-05-17T00:00:00Z',
283
+ };
284
+ const result1 = await writer.activate(input1, artifact);
285
+ const result2 = await writer.activate(input2, artifact);
286
+ expect(result1.activationId).not.toBe(result2.activationId);
287
+ });
288
+ });
289
+ });
290
+ // ── DeferArchiveWriter Tests ──────────────────────────────────────────────────
291
+ describe('DeferArchiveWriter', () => {
292
+ const writer = new DeferArchiveWriter();
293
+ it('channel is defer_archive', () => {
294
+ expect(writer.channel).toBe('defer_archive');
295
+ });
296
+ describe('canActivate', () => {
297
+ it('returns ok:true for validated principle artifact with principle ID', async () => {
298
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
299
+ const result = await writer.canActivate(artifact);
300
+ expect(result.ok).toBe(true);
301
+ expect(result.riskLevel).toBe('low');
302
+ });
303
+ it('returns ok:false for non-principle artifact kind', async () => {
304
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-002' }), undefined, 'rule');
305
+ const result = await writer.canActivate(artifact);
306
+ expect(result.ok).toBe(false);
307
+ expect(result.reason).toBe('artifact_kind_not_principle');
308
+ expect(result.riskLevel).toBe('low');
309
+ });
310
+ it('returns ok:false for pending validation status', async () => {
311
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-003' }), undefined, 'principle', 'pending');
312
+ const result = await writer.canActivate(artifact);
313
+ expect(result.ok).toBe(false);
314
+ expect(result.reason).toBe('artifact_validation_status_pending');
315
+ expect(result.riskLevel).toBe('low');
316
+ });
317
+ it('returns ok:false for artifact without principle ID', async () => {
318
+ const artifact = createArtifact('{}');
319
+ const result = await writer.canActivate(artifact);
320
+ expect(result.ok).toBe(false);
321
+ expect(result.reason).toBe('no_principle_id_in_artifact');
322
+ expect(result.riskLevel).toBe('low');
323
+ });
324
+ it('shares same validation logic as PromptWriter', async () => {
325
+ const promptWriter = new PromptWriter();
326
+ const artifacts = [
327
+ createArtifact(JSON.stringify({ principleId: 'PRI-001' })),
328
+ createArtifact('{}', undefined, 'rule'),
329
+ createArtifact('{}', undefined, 'principle', 'pending'),
330
+ createArtifact('{}'),
331
+ ];
332
+ for (const artifact of artifacts) {
333
+ const promptResult = await promptWriter.canActivate(artifact);
334
+ const archiveResult = await writer.canActivate(artifact);
335
+ expect(promptResult.ok).toBe(archiveResult.ok);
336
+ if (!promptResult.ok && !archiveResult.ok) {
337
+ expect(promptResult.reason).toBe(archiveResult.reason);
338
+ }
339
+ }
340
+ });
341
+ });
342
+ describe('activate', () => {
343
+ it('creates activation record with defer_archive action', async () => {
344
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
345
+ const input = {
346
+ artifactId: 'art-001',
347
+ channel: 'defer_archive',
348
+ principleId: 'PRI-001',
349
+ idempotencyKey: 'art-001::defer_archive',
350
+ now: '2026-05-17T00:00:00Z',
351
+ };
352
+ const result = await writer.activate(input, artifact);
353
+ expect(result.activationId).toBe('act_archive_PRI-001');
354
+ expect(result.action).toBe('defer_archive');
355
+ expect(result.targetRef).toBe('ledger://PRI-001#archived');
356
+ });
357
+ it('targetRef includes #archived suffix', async () => {
358
+ const artifact = createArtifact('{}');
359
+ const input = {
360
+ artifactId: 'art-002',
361
+ channel: 'defer_archive',
362
+ principleId: 'PRI-002',
363
+ idempotencyKey: 'art-002::defer_archive',
364
+ now: '2026-05-17T00:00:00Z',
365
+ };
366
+ const result = await writer.activate(input, artifact);
367
+ expect(result.targetRef).toContain('#archived');
368
+ });
369
+ it('creates different activationId format than PromptWriter', async () => {
370
+ const promptWriter = new PromptWriter();
371
+ const artifact = createArtifact('{}');
372
+ const promptInput = {
373
+ artifactId: 'art-001',
374
+ channel: 'prompt',
375
+ principleId: 'PRI-001',
376
+ idempotencyKey: 'art-001::prompt',
377
+ now: '2026-05-17T00:00:00Z',
378
+ };
379
+ const archiveInput = {
380
+ artifactId: 'art-001',
381
+ channel: 'defer_archive',
382
+ principleId: 'PRI-001',
383
+ idempotencyKey: 'art-001::defer_archive',
384
+ now: '2026-05-17T00:00:00Z',
385
+ };
386
+ const promptResult = await promptWriter.activate(promptInput, artifact);
387
+ const archiveResult = await writer.activate(archiveInput, artifact);
388
+ expect(promptResult.activationId).toBe('act_prompt_PRI-001');
389
+ expect(archiveResult.activationId).toBe('act_archive_PRI-001');
390
+ expect(promptResult.action).toBe('prompt_activate');
391
+ expect(archiveResult.action).toBe('defer_archive');
392
+ });
393
+ });
394
+ });
395
+ // ── Integration Tests ────────────────────────────────────────────────────────
396
+ describe('integration: PromptWriter + DeferArchiveWriter', () => {
397
+ it('both writers reject same invalid artifacts', async () => {
398
+ const promptWriter = new PromptWriter();
399
+ const archiveWriter = new DeferArchiveWriter();
400
+ const invalidArtifacts = [
401
+ createArtifact('{}', undefined, 'rule'), // wrong kind
402
+ createArtifact('{}', undefined, 'principle', 'pending'), // wrong status
403
+ createArtifact('{}'), // no principle ID
404
+ ];
405
+ for (const artifact of invalidArtifacts) {
406
+ const promptResult = await promptWriter.canActivate(artifact);
407
+ const archiveResult = await archiveWriter.canActivate(artifact);
408
+ expect(promptResult.ok).toBe(false);
409
+ expect(archiveResult.ok).toBe(false);
410
+ }
411
+ });
412
+ it('both writers accept same valid artifacts', async () => {
413
+ const promptWriter = new PromptWriter();
414
+ const archiveWriter = new DeferArchiveWriter();
415
+ const validArtifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
416
+ const promptResult = await promptWriter.canActivate(validArtifact);
417
+ const archiveResult = await archiveWriter.canActivate(validArtifact);
418
+ expect(promptResult.ok).toBe(true);
419
+ expect(archiveResult.ok).toBe(true);
420
+ expect(promptResult.riskLevel).toBe('low');
421
+ expect(archiveResult.riskLevel).toBe('low');
422
+ });
423
+ it('both writers produce different activation records for same principle', async () => {
424
+ const promptWriter = new PromptWriter();
425
+ const archiveWriter = new DeferArchiveWriter();
426
+ const artifact = createArtifact(JSON.stringify({ principleId: 'PRI-001' }));
427
+ const promptResult = await promptWriter.activate({
428
+ artifactId: 'art-001',
429
+ channel: 'prompt',
430
+ principleId: 'PRI-001',
431
+ idempotencyKey: 'art-001::prompt',
432
+ now: '2026-05-17T00:00:00Z',
433
+ }, artifact);
434
+ const archiveResult = await archiveWriter.activate({
435
+ artifactId: 'art-001',
436
+ channel: 'defer_archive',
437
+ principleId: 'PRI-001',
438
+ idempotencyKey: 'art-001::defer_archive',
439
+ now: '2026-05-17T00:00:00Z',
440
+ }, artifact);
441
+ // Different activation IDs
442
+ expect(promptResult.activationId).not.toBe(archiveResult.activationId);
443
+ // Different actions
444
+ expect(promptResult.action).toBe('prompt_activate');
445
+ expect(archiveResult.action).toBe('defer_archive');
446
+ // Different target refs
447
+ expect(promptResult.targetRef).toBe('ledger://PRI-001');
448
+ expect(archiveResult.targetRef).toBe('ledger://PRI-001#archived');
449
+ });
450
+ });
451
+ //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.114.0",
3
+ "version": "1.115.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",