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.
- package/_release/product-identity.json +5 -0
- package/codex-adapter/package.json +1 -1
- package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.js +37 -0
- package/core/dist/runtime-v2/__tests__/pain-correction-evidence.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +61 -0
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +8 -19
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +151 -77
- package/core/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js +25 -9
- package/core/dist/runtime-v2/activation/__tests__/activation-re-dispatch.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/activation-dispatcher.js +9 -12
- package/core/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
- package/core/dist/runtime-v2/activation/activation-types.d.ts +4 -3
- package/core/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/activation-types.js.map +1 -1
- package/core/dist/runtime-v2/activation/approval-queue.d.ts +5 -0
- package/core/dist/runtime-v2/activation/approval-queue.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/approval-queue.js +5 -0
- package/core/dist/runtime-v2/activation/approval-queue.js.map +1 -1
- package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts +2 -1
- package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/prompt-activation-reader-contract.js.map +1 -1
- package/core/dist/runtime-v2/context-payload.d.ts +77 -0
- package/core/dist/runtime-v2/context-payload.d.ts.map +1 -1
- package/core/dist/runtime-v2/context-payload.js +31 -0
- package/core/dist/runtime-v2/context-payload.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +88 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +10 -0
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +46 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/evidence-sanitizer.d.ts +6 -0
- package/core/dist/runtime-v2/evidence-sanitizer.d.ts.map +1 -1
- package/core/dist/runtime-v2/evidence-sanitizer.js +1 -1
- package/core/dist/runtime-v2/evidence-sanitizer.js.map +1 -1
- package/core/dist/runtime-v2/evolution/evolution-types.d.ts +7 -0
- package/core/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +13 -8
- package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js +8 -6
- package/core/dist/runtime-v2/internalization/__tests__/restart-safety.e2e.test.js.map +1 -1
- package/core/dist/runtime-v2/pain-signal-bridge.d.ts +24 -0
- package/core/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-bridge.js +28 -0
- package/core/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
- package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-observability.js +9 -1
- package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.js +42 -6
- package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts +9 -0
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.js +35 -0
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.js.map +1 -1
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +99 -0
- package/core/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +1 -1
- package/core/dist/runtime-v2/task-status.d.ts +7 -0
- package/core/dist/runtime-v2/task-status.d.ts.map +1 -1
- package/core/dist/runtime-v2/task-status.js +4 -0
- package/core/dist/runtime-v2/task-status.js.map +1 -1
- package/core/package.json +1 -1
- package/dist/index.js +0 -0
- package/host-runtime/dist/internalization-consumer-cycle.js +3 -3
- package/host-runtime/dist/internalization-consumer-governance.d.ts +3 -3
- package/host-runtime/dist/internalization-consumer-governance.js +5 -3
- package/host-runtime/package.json +1 -1
- package/install-layout/package.json +1 -1
- package/package.json +2 -2
- package/pd-cli/dist/commands/runtime-activation.js +2 -2
- package/pd-cli/dist/commands/runtime-activation.js.map +1 -1
- package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-internalization-run-once.js +3 -2
- package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.js +32 -41
- package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
- package/pd-cli/package.json +1 -1
- package/plugin/dist/bundle.js +399 -377
- package/plugin/dist/core/trajectory.d.ts +30 -0
- package/plugin/dist/governance-audit.js +156 -156
- package/plugin/dist/openclaw.plugin.json +1 -1
- package/plugin/dist/rulehost-evidence.js +176 -166
- package/plugin/openclaw.plugin.json +1 -1
- package/plugin/package.json +1 -1
- 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
|
-
|
|
39
|
-
const
|
|
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('
|
|
43
|
-
if (result.decision === '
|
|
44
|
-
expect(result.
|
|
45
|
-
expect(result.
|
|
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
|
|
50
|
-
const { artifactStore, dispatcher } =
|
|
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
|
|
61
|
-
const { artifactStore, dispatcher } =
|
|
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
|
-
|
|
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 } =
|
|
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('
|
|
179
|
-
const { artifactStore, stateStore, dispatcher } =
|
|
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
|
|
221
|
-
const { artifactStore, dispatcher } =
|
|
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
|
|
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 } =
|
|
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 →
|
|
251
|
-
const { artifactStore, dispatcher } =
|
|
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('
|
|
258
|
-
if (result.decision === '
|
|
259
|
-
expect(result.reason).toBe('
|
|
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 } =
|
|
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 →
|
|
272
|
-
const { artifactStore, dispatcher } =
|
|
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('
|
|
279
|
-
if (result.decision === '
|
|
280
|
-
expect(result.reason).toBe('
|
|
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
|
|
293
|
-
const
|
|
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
|
-
|
|
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 ->
|
|
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('
|
|
477
|
-
|
|
478
|
-
|
|
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(
|
|
557
|
+
expect(pending).toHaveLength(1);
|
|
558
|
+
expect(await stateStore.getActivationStatus(makeIdempotencyKey('art-001', 'skill'))).toBeNull();
|
|
484
559
|
});
|
|
485
|
-
it('skill with confidence 0.96 +
|
|
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('
|
|
502
|
-
if (result.decision === '
|
|
503
|
-
expect(result.
|
|
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(
|
|
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
|
|
121
|
-
|
|
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
|
|
127
|
-
const
|
|
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:
|
|
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:
|
|
136
|
-
|
|
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).
|