create-principles-disciple 1.143.1 → 1.143.3

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 (93) hide show
  1. package/_release/product-identity.json +5 -0
  2. package/codex-adapter/package.json +1 -1
  3. package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts +2 -0
  4. package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts.map +1 -0
  5. package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.js +37 -0
  6. package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.js.map +1 -0
  7. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +61 -0
  8. package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
  9. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +8 -19
  10. package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
  11. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +151 -77
  12. package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  13. package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js +25 -9
  14. package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js.map +1 -1
  15. package/core/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  16. package/core/dist/runtime-v2/activation/activation-dispatcher.js +9 -12
  17. package/core/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  18. package/core/dist/runtime-v2/activation/activation-types.d.ts +4 -3
  19. package/core/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  20. package/core/dist/runtime-v2/activation/activation-types.js.map +1 -1
  21. package/core/dist/runtime-v2/activation/approval-queue.d.ts +5 -0
  22. package/core/dist/runtime-v2/activation/approval-queue.d.ts.map +1 -1
  23. package/core/dist/runtime-v2/activation/approval-queue.js +5 -0
  24. package/core/dist/runtime-v2/activation/approval-queue.js.map +1 -1
  25. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts +2 -1
  26. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts.map +1 -1
  27. package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.js.map +1 -1
  28. package/core/dist/runtime-v2/context-payload.d.ts +77 -0
  29. package/core/dist/runtime-v2/context-payload.d.ts.map +1 -1
  30. package/core/dist/runtime-v2/context-payload.js +31 -0
  31. package/core/dist/runtime-v2/context-payload.js.map +1 -1
  32. package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +88 -0
  33. package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
  34. package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +10 -0
  35. package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
  36. package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +46 -1
  37. package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
  38. package/core/dist/runtime-v2/evidence-sanitizer.d.ts +6 -0
  39. package/core/dist/runtime-v2/evidence-sanitizer.d.ts.map +1 -1
  40. package/core/dist/runtime-v2/evidence-sanitizer.js +1 -1
  41. package/core/dist/runtime-v2/evidence-sanitizer.js.map +1 -1
  42. package/core/dist/runtime-v2/evolution/evolution-types.d.ts +7 -0
  43. package/core/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
  44. package/core/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
  45. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +13 -8
  46. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +1 -1
  47. package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js +8 -6
  48. package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js.map +1 -1
  49. package/core/dist/runtime-v2/pain-signal-bridge.d.ts +24 -0
  50. package/core/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  51. package/core/dist/runtime-v2/pain-signal-bridge.js +28 -0
  52. package/core/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  53. package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  54. package/core/dist/runtime-v2/pain-signal-observability.js +9 -1
  55. package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  56. package/core/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
  57. package/core/dist/runtime-v2/proven-channel-baseline.js +42 -6
  58. package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
  59. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts +9 -0
  60. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts.map +1 -1
  61. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.js +35 -0
  62. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.js.map +1 -1
  63. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +99 -0
  64. package/core/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +1 -1
  65. package/core/dist/runtime-v2/task-status.d.ts +7 -0
  66. package/core/dist/runtime-v2/task-status.d.ts.map +1 -1
  67. package/core/dist/runtime-v2/task-status.js +4 -0
  68. package/core/dist/runtime-v2/task-status.js.map +1 -1
  69. package/core/package.json +1 -1
  70. package/dist/index.js +0 -0
  71. package/host-runtime/dist/internalization-consumer-cycle.js +3 -3
  72. package/host-runtime/dist/internalization-consumer-governance.d.ts +3 -3
  73. package/host-runtime/dist/internalization-consumer-governance.js +5 -3
  74. package/host-runtime/package.json +1 -1
  75. package/install-layout/package.json +1 -1
  76. package/package.json +2 -2
  77. package/pd-cli/dist/commands/runtime-activation.js +2 -2
  78. package/pd-cli/dist/commands/runtime-activation.js.map +1 -1
  79. package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  80. package/pd-cli/dist/commands/runtime-internalization-run-once.js +3 -2
  81. package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
  82. package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
  83. package/pd-cli/dist/services/demo-story-a-runner.js +32 -41
  84. package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
  85. package/pd-cli/package.json +1 -1
  86. package/plugin/dist/bundle.js +399 -377
  87. package/plugin/dist/core/trajectory.d.ts +30 -0
  88. package/plugin/dist/governance-audit.js +156 -156
  89. package/plugin/dist/openclaw.plugin.json +1 -1
  90. package/plugin/dist/rulehost-evidence.js +176 -166
  91. package/plugin/openclaw.plugin.json +1 -1
  92. package/plugin/package.json +1 -1
  93. package/release-manager/package.json +2 -2
@@ -35,33 +35,90 @@ describe('ActivationDispatcher', () => {
35
35
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter] });
36
36
  return { stateStore, artifactStore, dispatcher, promptWriter, archiveWriter };
37
37
  }
38
- it('low-risk prompt artifact dry-run → would_activate', async () => {
39
- const { artifactStore, dispatcher } = makeDispatcher();
38
+ function makeDispatcherWithQueue() {
39
+ const stateStore = new MemoryActivationStateStore();
40
+ const artifactStore = new MemoryArtifactReadModel();
41
+ const approvalStore = new MemoryApprovalQueueStore();
42
+ const promptWriter = new PromptWriter();
43
+ const archiveWriter = new DeferArchiveWriter();
44
+ const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter], approvalQueueStore: approvalStore });
45
+ return { stateStore, artifactStore, dispatcher, approvalStore };
46
+ }
47
+ // ── PRI-811 Phase B: rollout recommendations never self-execute ────────────
48
+ // Before Phase B, a low-risk prompt artifact dispatched with
49
+ // 'auto_activate' activated directly (no Owner approval). The Owner closed
50
+ // that path: every activation fact must trace to a verified 'approved'
51
+ // approval record.
52
+ it('PRI-811 Phase B: prompt auto_activate dry-run → queued_for_approval preview (nothing persisted)', async () => {
53
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
40
54
  artifactStore.addArtifact(makePrincipleArtifact());
41
55
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: false }));
42
- expect(result.decision).toBe('would_activate');
43
- if (result.decision === 'would_activate') {
44
- expect(result.activationId).toBe('act_prompt_P_001');
45
- expect(result.action).toBe('prompt_activate');
46
- expect(result.targetRef).toBe('ledger://P_001');
56
+ expect(result.decision).toBe('queued_for_approval');
57
+ if (result.decision === 'queued_for_approval') {
58
+ expect(result.channel).toBe('prompt');
59
+ expect(result.riskLevel).toBe('low');
47
60
  }
61
+ // Dry-run preview: no approval row, no activation row.
62
+ expect(await approvalStore.listPending()).toHaveLength(0);
63
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'))).toBeNull();
48
64
  });
49
- it('confirm → activated', async () => {
50
- const { artifactStore, dispatcher } = makeDispatcher();
65
+ it('PRI-811 Phase B: prompt auto_activate + confirm queues for Owner approval — no activation row', async () => {
66
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
51
67
  artifactStore.addArtifact(makePrincipleArtifact());
52
68
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
69
+ expect(result.decision).toBe('queued_for_approval');
70
+ if (result.decision === 'queued_for_approval') {
71
+ expect(result.approvalId).toBeTruthy();
72
+ }
73
+ // Verification 1: the rollout recommendation alone must NOT create an
74
+ // activation fact.
75
+ const pending = await approvalStore.listPending();
76
+ expect(pending).toHaveLength(1);
77
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'))).toBeNull();
78
+ });
79
+ it('PRI-811 Phase B: Owner approval → activation produced via verified approved dispatch', async () => {
80
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
81
+ artifactStore.addArtifact(makePrincipleArtifact());
82
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
83
+ expect(queued.decision).toBe('queued_for_approval');
84
+ if (queued.decision !== 'queued_for_approval')
85
+ return;
86
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
87
+ expect(approved.ok).toBe(true);
88
+ // Verification 2: after Owner approval, the activation is produced through
89
+ // the independently-verified 'approved' dispatch path.
90
+ const result = await dispatcher.dispatch(makeDispatchInput({
91
+ channel: 'prompt',
92
+ confirm: true,
93
+ rolloutDecision: 'approved',
94
+ approvalId: queued.approvalId,
95
+ }));
53
96
  expect(result.decision).toBe('activated');
54
97
  if (result.decision === 'activated') {
55
98
  expect(result.activationId).toBe('act_prompt_P_001');
56
99
  expect(result.action).toBe('prompt_activate');
57
100
  expect(result.targetRef).toBe('ledger://P_001');
58
101
  }
102
+ const status = await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'prompt'));
103
+ expect(status?.activationId).toBe('act_prompt_P_001');
59
104
  });
60
- it('repeat confirm → already_activated', async () => {
61
- const { artifactStore, dispatcher } = makeDispatcher();
105
+ it('repeat approved dispatch → already_activated', async () => {
106
+ const { artifactStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
62
107
  artifactStore.addArtifact(makePrincipleArtifact());
63
- await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
64
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
108
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
109
+ expect(queued.decision).toBe('queued_for_approval');
110
+ if (queued.decision !== 'queued_for_approval')
111
+ return;
112
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
113
+ expect(approved.ok).toBe(true);
114
+ const input = makeDispatchInput({
115
+ channel: 'prompt',
116
+ confirm: true,
117
+ rolloutDecision: 'approved',
118
+ approvalId: queued.approvalId,
119
+ });
120
+ await dispatcher.dispatch(input);
121
+ const result = await dispatcher.dispatch(input);
65
122
  expect(result.decision).toBe('already_activated');
66
123
  if (result.decision === 'already_activated') {
67
124
  expect(result.activationId).toBe('act_prompt_P_001');
@@ -168,17 +225,28 @@ describe('ActivationDispatcher', () => {
168
225
  expect(result.decision).toBe('invalid_artifact');
169
226
  });
170
227
  it('dry-run does not write activation record', async () => {
171
- const { artifactStore, stateStore, dispatcher } = makeDispatcher();
228
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
172
229
  artifactStore.addArtifact(makePrincipleArtifact());
173
230
  await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: false }));
174
231
  const key = makeIdempotencyKey('art-001', 'prompt');
175
232
  const status = await stateStore.getActivationStatus(key);
176
233
  expect(status).toBeNull();
234
+ expect(await approvalStore.listPending()).toHaveLength(0);
177
235
  });
178
- it('confirm writes only expected activation record', async () => {
179
- const { artifactStore, stateStore, dispatcher } = makeDispatcher();
236
+ it('approved dispatch persists the expected activation record fields', async () => {
237
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
180
238
  artifactStore.addArtifact(makePrincipleArtifact());
181
- await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
239
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
240
+ expect(queued.decision).toBe('queued_for_approval');
241
+ if (queued.decision !== 'queued_for_approval')
242
+ return;
243
+ await approvalStore.approve(queued.approvalId, 'owner-test');
244
+ await dispatcher.dispatch(makeDispatchInput({
245
+ channel: 'prompt',
246
+ confirm: true,
247
+ rolloutDecision: 'approved',
248
+ approvalId: queued.approvalId,
249
+ }));
182
250
  const key = makeIdempotencyKey('art-001', 'prompt');
183
251
  const status = await stateStore.getActivationStatus(key);
184
252
  expect(status).not.toBeNull();
@@ -217,29 +285,36 @@ describe('ActivationDispatcher', () => {
217
285
  expect(result.reason).toBe('artifact_read_failed');
218
286
  }
219
287
  });
220
- it('defer_archive channel dry-run → would_activate', async () => {
221
- const { artifactStore, dispatcher } = makeDispatcher();
222
- artifactStore.addArtifact(makePrincipleArtifact());
223
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: false }));
224
- expect(result.decision).toBe('would_activate');
225
- if (result.decision === 'would_activate') {
226
- expect(result.activationId).toBe('act_archive_P_001');
227
- expect(result.action).toBe('defer_archive');
228
- expect(result.targetRef).toBe('ledger://P_001#archived');
229
- }
230
- });
231
- it('defer_archive confirm → activated', async () => {
232
- const { artifactStore, dispatcher } = makeDispatcher();
288
+ it('PRI-811 Phase B: defer_archive auto_activate + confirm queues — activation only after approval', async () => {
289
+ const { artifactStore, stateStore, dispatcher, approvalStore } = makeDispatcherWithQueue();
233
290
  artifactStore.addArtifact(makePrincipleArtifact());
234
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: true }));
291
+ const queued = await dispatcher.dispatch(makeDispatchInput({ channel: 'defer_archive', confirm: true }));
292
+ expect(queued.decision).toBe('queued_for_approval');
293
+ if (queued.decision !== 'queued_for_approval')
294
+ return;
295
+ // Recommendation alone must not produce the archive activation fact.
296
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'defer_archive'))).toBeNull();
297
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
298
+ expect(approved.ok).toBe(true);
299
+ const result = await dispatcher.dispatch(makeDispatchInput({
300
+ channel: 'defer_archive',
301
+ confirm: true,
302
+ rolloutDecision: 'approved',
303
+ approvalId: queued.approvalId,
304
+ }));
235
305
  expect(result.decision).toBe('activated');
236
306
  if (result.decision === 'activated') {
237
307
  expect(result.activationId).toBe('act_archive_P_001');
238
308
  expect(result.targetRef).toBe('ledger://P_001#archived');
239
309
  }
310
+ const status = await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'defer_archive'));
311
+ expect(status?.activationId).toBe('act_archive_P_001');
240
312
  });
313
+ // PRI-811 Phase B: writer canActivate guards run inside the enqueue path
314
+ // (queue store present), so invalid artifacts are refused before any
315
+ // approval row is written.
241
316
  it('non-principle artifact → refused by writer canActivate', async () => {
242
- const { artifactStore, dispatcher } = makeDispatcher();
317
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
243
318
  artifactStore.addArtifact(makePrincipleArtifact({ artifactKind: 'rule' }));
244
319
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
245
320
  expect(result.decision).toBe('refused');
@@ -247,20 +322,20 @@ describe('ActivationDispatcher', () => {
247
322
  expect(result.reason).toContain('artifact_kind_not_principle');
248
323
  }
249
324
  });
250
- it('artifact without principleId → invalid_artifact', async () => {
251
- const { artifactStore, dispatcher } = makeDispatcher();
325
+ it('artifact without principleId → refused by writer canActivate', async () => {
326
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
252
327
  artifactStore.addArtifact(makePrincipleArtifact({
253
328
  sourcePrincipleId: undefined,
254
329
  contentJson: JSON.stringify({ text: 'No principle ID here' }),
255
330
  }));
256
331
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
257
- expect(result.decision).toBe('invalid_artifact');
258
- if (result.decision === 'invalid_artifact') {
259
- expect(result.reason).toBe('no_principle_id');
332
+ expect(result.decision).toBe('refused');
333
+ if (result.decision === 'refused') {
334
+ expect(result.reason).toBe('no_principle_id_in_artifact');
260
335
  }
261
336
  });
262
337
  it('pending validation artifact → refused by writer', async () => {
263
- const { artifactStore, dispatcher } = makeDispatcher();
338
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
264
339
  artifactStore.addArtifact(makePrincipleArtifact({ validationStatus: 'pending' }));
265
340
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
266
341
  expect(result.decision).toBe('refused');
@@ -268,29 +343,39 @@ describe('ActivationDispatcher', () => {
268
343
  expect(result.reason).toContain('artifact_validation_status_pending');
269
344
  }
270
345
  });
271
- it('whitespace-only sourcePrincipleId → invalid_artifact', async () => {
272
- const { artifactStore, dispatcher } = makeDispatcher();
346
+ it('whitespace-only sourcePrincipleId → refused by writer canActivate', async () => {
347
+ const { artifactStore, dispatcher } = makeDispatcherWithQueue();
273
348
  artifactStore.addArtifact(makePrincipleArtifact({
274
349
  sourcePrincipleId: ' ',
275
350
  contentJson: JSON.stringify({ text: 'No principle ID here' }),
276
351
  }));
277
352
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
278
- expect(result.decision).toBe('invalid_artifact');
279
- if (result.decision === 'invalid_artifact') {
280
- expect(result.reason).toBe('no_principle_id');
353
+ expect(result.decision).toBe('refused');
354
+ if (result.decision === 'refused') {
355
+ expect(result.reason).toBe('no_principle_id_in_artifact');
281
356
  }
282
357
  });
283
- it('writer.activate throws → refused', async () => {
284
- const { artifactStore } = makeDispatcher();
285
- artifactStore.addArtifact(makePrincipleArtifact());
358
+ it('writer.activate throws on approved dispatch → refused', async () => {
286
359
  const throwingWriter = {
287
360
  channel: 'prompt',
288
361
  canActivate: async () => ({ ok: true, riskLevel: 'low' }),
289
362
  activate: async () => { throw new Error('Writer crashed'); },
290
363
  };
291
364
  const stateStore = new MemoryActivationStateStore();
292
- const throwDispatcher = new ActivationDispatcher({ getArtifactById: async (id) => id === 'art-001' ? makePrincipleArtifact() : null }, stateStore, { writers: [throwingWriter] });
293
- const result = await throwDispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
365
+ const approvalStore = new MemoryApprovalQueueStore();
366
+ const throwDispatcher = new ActivationDispatcher({ getArtifactById: async (id) => id === 'art-001' ? makePrincipleArtifact() : null }, stateStore, { writers: [throwingWriter], approvalQueueStore: approvalStore });
367
+ const queued = await throwDispatcher.dispatch(makeDispatchInput({ channel: 'prompt', confirm: true }));
368
+ expect(queued.decision).toBe('queued_for_approval');
369
+ if (queued.decision !== 'queued_for_approval')
370
+ return;
371
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
372
+ expect(approved.ok).toBe(true);
373
+ const result = await throwDispatcher.dispatch(makeDispatchInput({
374
+ channel: 'prompt',
375
+ confirm: true,
376
+ rolloutDecision: 'approved',
377
+ approvalId: queued.approvalId,
378
+ }));
294
379
  expect(result.decision).toBe('refused');
295
380
  if (result.decision === 'refused') {
296
381
  expect(result.reason).toBe('activation_write_failed');
@@ -312,7 +397,7 @@ describe('ActivationDispatcher', () => {
312
397
  targetRef: 'ledger://' + input.principleId,
313
398
  }),
314
399
  };
315
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingCanActivateWriter] });
400
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingCanActivateWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
316
401
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
317
402
  expect(result.decision).toBe('refused');
318
403
  if (result.decision === 'refused') {
@@ -341,7 +426,7 @@ describe('ActivationDispatcher', () => {
341
426
  targetRef: 'ledger://' + input.principleId,
342
427
  }),
343
428
  };
344
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter] });
429
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
345
430
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
346
431
  expect(result.decision).toBe('refused');
347
432
  if (result.decision === 'refused' && result.details) {
@@ -365,7 +450,7 @@ describe('ActivationDispatcher', () => {
365
450
  targetRef: 'ledger://' + input.principleId,
366
451
  }),
367
452
  };
368
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], eventEmitter });
453
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore(), eventEmitter });
369
454
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
370
455
  expect(result.decision).toBe('refused');
371
456
  // Telemetry event must be emitted with artifactId + originalError in payload
@@ -397,23 +482,15 @@ describe('ActivationDispatcher', () => {
397
482
  };
398
483
  // No eventEmitter in config — existing callers that don't wire telemetry
399
484
  // must continue to work; the `details` field is the authoritative record.
400
- const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter] });
485
+ const dispatcher = new ActivationDispatcher(artifactStore, new MemoryActivationStateStore(), { writers: [throwingWriter], approvalQueueStore: new MemoryApprovalQueueStore() });
401
486
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'prompt' }));
402
487
  expect(result.decision).toBe('refused');
403
488
  if (result.decision === 'refused' && result.details) {
404
489
  expect(result.details.originalError).toBe('no emitter');
405
490
  }
406
491
  });
407
- // PRI-145: ApprovalQueue & Auto-Promotion
408
- function makeDispatcherWithQueue() {
409
- const stateStore = new MemoryActivationStateStore();
410
- const artifactStore = new MemoryArtifactReadModel();
411
- const approvalStore = new MemoryApprovalQueueStore();
412
- const promptWriter = new PromptWriter();
413
- const archiveWriter = new DeferArchiveWriter();
414
- const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter], approvalQueueStore: approvalStore });
415
- return { stateStore, artifactStore, dispatcher, approvalStore };
416
- }
492
+ // PRI-145: ApprovalQueue & Auto-Promotion (auto-promotion bypass removed in
493
+ // PRI-811 Phase B — all rollout recommendations enqueue for Owner approval)
417
494
  it('skill with confidence 0.94 + queue store -> queued_for_approval', async () => {
418
495
  const { artifactStore, dispatcher } = makeDispatcherWithQueue();
419
496
  artifactStore.addArtifact(makePrincipleArtifact());
@@ -457,7 +534,7 @@ describe('ActivationDispatcher', () => {
457
534
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill' }));
458
535
  expect(result.decision).toBe('queued_for_approval');
459
536
  });
460
- it('skill with confidence 0.95 + queue store + writer -> would_activate (auto-promote dry-run)', async () => {
537
+ it('PRI-811 Phase B: skill with confidence 0.95 + queue store + writer -> queued_for_approval (auto-promote bypass removed)', async () => {
461
538
  const skillWriter = {
462
539
  channel: 'skill',
463
540
  canActivate: async () => ({ ok: true, riskLevel: 'medium' }),
@@ -472,17 +549,15 @@ describe('ActivationDispatcher', () => {
472
549
  const approvalStore = new MemoryApprovalQueueStore();
473
550
  artifactStore.addArtifact(makePrincipleArtifact());
474
551
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [skillWriter], approvalQueueStore: approvalStore });
475
- const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.95 }));
476
- expect(result.decision).toBe('would_activate');
477
- if (result.decision === 'would_activate') {
478
- expect(result.activationId).toBe('act_skill_P_001');
479
- expect(result.action).toBe('skill_activate');
480
- }
481
- // Verify nothing was queued
552
+ const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.95, confirm: true }));
553
+ expect(result.decision).toBe('queued_for_approval');
554
+ // Even above the old AUTO_PROMOTION_CONFIDENCE_THRESHOLD, a rollout
555
+ // recommendation must not self-execute: the approval queue holds the item.
482
556
  const pending = await approvalStore.listPending();
483
- expect(pending).toHaveLength(0);
557
+ expect(pending).toHaveLength(1);
558
+ expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'skill'))).toBeNull();
484
559
  });
485
- it('skill with confidence 0.96 + queue store + writer -> activated (auto-promote confirm)', async () => {
560
+ it('PRI-811 Phase B: skill with confidence 0.96 + confirm -> queued (no direct activation)', async () => {
486
561
  const skillWriter = {
487
562
  channel: 'skill',
488
563
  canActivate: async () => ({ ok: true, riskLevel: 'medium' }),
@@ -498,13 +573,12 @@ describe('ActivationDispatcher', () => {
498
573
  artifactStore.addArtifact(makePrincipleArtifact());
499
574
  const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [skillWriter], approvalQueueStore: approvalStore });
500
575
  const result = await dispatcher.dispatch(makeDispatchInput({ channel: 'skill', confidence: 0.96, confirm: true }));
501
- expect(result.decision).toBe('activated');
502
- if (result.decision === 'activated') {
503
- expect(result.activationId).toBe('act_skill_P_001');
576
+ expect(result.decision).toBe('queued_for_approval');
577
+ if (result.decision === 'queued_for_approval') {
578
+ expect(result.approvalId).toBeTruthy();
504
579
  }
505
- // Verify nothing was queued
506
580
  const pending = await approvalStore.listPending();
507
- expect(pending).toHaveLength(0);
581
+ expect(pending).toHaveLength(1);
508
582
  });
509
583
  // PRI-185: Context fields in queued approval records
510
584
  it('queued approval record contains context fields', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"activation-dispatcher.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/activation/__tests__/activation-dispatcher.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activation-dispatcher.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/activation/__tests__/activation-dispatcher.test.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * logic is unchanged — it relies on the store layer's filtering.
11
11
  */
12
12
  import { describe, it, expect, beforeEach, vi } from 'vitest';
13
- import { ActivationDispatcher, PromptWriter, DeferArchiveWriter, MemoryActivationStateStore, MemoryArtifactReadModel, } from '../index.js';
13
+ import { ActivationDispatcher, PromptWriter, DeferArchiveWriter, MemoryActivationStateStore, MemoryArtifactReadModel, MemoryApprovalQueueStore, } from '../index.js';
14
14
  import { SqliteActivationStateStore } from '../sqlite-activation-state-store.js';
15
15
  function makePrincipleArtifact(overrides = {}) {
16
16
  return {
@@ -112,28 +112,44 @@ describe('Bug-Q: re-dispatch after deactivation', () => {
112
112
  });
113
113
  });
114
114
  describe('RD-03: dispatcher allows re-dispatch after deactivate', () => {
115
+ // PRI-811 Phase B: activations are produced only through the verified
116
+ // 'approved' dispatch path, so this journey enqueues → Owner approves →
117
+ // dispatches 'approved' — the same chain production uses.
115
118
  function makeDispatcher() {
116
119
  const stateStore = new MemoryActivationStateStore();
117
120
  const artifactStore = new MemoryArtifactReadModel();
118
121
  const promptWriter = new PromptWriter();
119
122
  const archiveWriter = new DeferArchiveWriter();
120
- const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter] });
121
- return { stateStore, artifactStore, dispatcher };
123
+ const approvalStore = new MemoryApprovalQueueStore();
124
+ const dispatcher = new ActivationDispatcher(artifactStore, stateStore, { writers: [promptWriter, archiveWriter], approvalQueueStore: approvalStore });
125
+ return { stateStore, artifactStore, dispatcher, approvalStore };
122
126
  }
123
127
  it('re-dispatch after deactivate returns "activated" (not "already_activated")', async () => {
124
- const { stateStore, artifactStore, dispatcher } = makeDispatcher();
128
+ const { stateStore, artifactStore, dispatcher, approvalStore } = makeDispatcher();
125
129
  artifactStore.addArtifact(makePrincipleArtifact());
126
- // First dispatch: confirm → activated
127
- const first = await dispatcher.dispatch(makeDispatchInput({ confirm: true }));
130
+ // First chain: enqueue → Owner approves → approved dispatch → activated
131
+ const queued = await dispatcher.dispatch(makeDispatchInput({ confirm: true }));
132
+ expect(queued.decision).toBe('queued_for_approval');
133
+ if (queued.decision !== 'queued_for_approval')
134
+ return;
135
+ const approved = await approvalStore.approve(queued.approvalId, 'owner-test');
136
+ expect(approved.ok).toBe(true);
137
+ const approvedInput = makeDispatchInput({
138
+ confirm: true,
139
+ rolloutDecision: 'approved',
140
+ approvalId: queued.approvalId,
141
+ });
142
+ const first = await dispatcher.dispatch(approvedInput);
128
143
  expect(first.decision).toBe('activated');
129
- // Second dispatch without deactivating: should be already_activated (idempotent)
144
+ // Second auto dispatch without deactivating: already_activated (idempotent)
130
145
  const second = await dispatcher.dispatch(makeDispatchInput({ confirm: true }));
131
146
  expect(second.decision).toBe('already_activated');
132
147
  // Now deactivate the activation
133
148
  const deactivated = await stateStore.deactivateActivation('act_prompt_P_001', '2026-06-01T00:00:00.000Z');
134
149
  expect(deactivated).toBe(true);
135
- // Bug-Q fix: third dispatch should succeed (not already_activated)
136
- const third = await dispatcher.dispatch(makeDispatchInput({ confirm: true }));
150
+ // Bug-Q fix: re-dispatching the approved record should succeed (not
151
+ // already_activated) because the store filters deactivated rows.
152
+ const third = await dispatcher.dispatch(approvedInput);
137
153
  expect(third.decision).toBe('activated');
138
154
  if (third.decision === 'activated') {
139
155
  // New activation record has a new activatedAt (re-activation timestamp).