@principles/core 1.168.0 → 1.170.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 (164) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/pain-signal.d.ts +11 -71
  6. package/dist/pain-signal.d.ts.map +1 -1
  7. package/dist/pain-signal.js +10 -120
  8. package/dist/pain-signal.js.map +1 -1
  9. package/dist/principle-tree-ledger.d.ts +4 -87
  10. package/dist/principle-tree-ledger.d.ts.map +1 -1
  11. package/dist/principle-tree-ledger.js +51 -148
  12. package/dist/principle-tree-ledger.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js +6 -14
  14. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/architecture-regression.test.js +71 -70
  16. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts +12 -0
  18. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.d.ts.map +1 -0
  19. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js +46 -0
  20. package/dist/runtime-v2/__tests__/barrel-io-cleanup.test.js.map +1 -0
  21. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js +1 -2
  22. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js.map +1 -1
  23. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js +8 -8
  24. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js.map +1 -1
  25. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js +45 -80
  26. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js.map +1 -1
  27. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js +31 -130
  28. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js.map +1 -1
  29. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts +12 -0
  30. package/dist/runtime-v2/__tests__/io-deletion.test.d.ts.map +1 -0
  31. package/dist/runtime-v2/__tests__/io-deletion.test.js +92 -0
  32. package/dist/runtime-v2/__tests__/io-deletion.test.js.map +1 -0
  33. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts +2 -0
  34. package/dist/runtime-v2/__tests__/ledger-codec.test.d.ts.map +1 -0
  35. package/dist/runtime-v2/__tests__/ledger-codec.test.js +133 -0
  36. package/dist/runtime-v2/__tests__/ledger-codec.test.js.map +1 -0
  37. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts +2 -0
  38. package/dist/runtime-v2/__tests__/ledger-store.test.d.ts.map +1 -0
  39. package/dist/runtime-v2/__tests__/ledger-store.test.js +65 -0
  40. package/dist/runtime-v2/__tests__/ledger-store.test.js.map +1 -0
  41. package/dist/runtime-v2/__tests__/pain-signal-unification.test.d.ts +2 -0
  42. package/dist/runtime-v2/__tests__/pain-signal-unification.test.d.ts.map +1 -0
  43. package/dist/runtime-v2/__tests__/pain-signal-unification.test.js +150 -0
  44. package/dist/runtime-v2/__tests__/pain-signal-unification.test.js.map +1 -0
  45. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -1
  46. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +1 -1
  47. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +4 -4
  48. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +1 -1
  49. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +2 -5
  50. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
  51. package/dist/runtime-v2/__tests__/story-a-demo.test.js +2 -2
  52. package/dist/runtime-v2/__tests__/story-a-demo.test.js.map +1 -1
  53. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +7 -10
  54. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  55. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +1 -3
  56. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +1 -1
  57. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +4 -4
  58. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +6 -6
  59. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
  60. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  61. package/dist/runtime-v2/activation/activation-dispatcher.js +0 -1
  62. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  63. package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  64. package/dist/runtime-v2/activation/activation-types.js +0 -1
  65. package/dist/runtime-v2/activation/activation-types.js.map +1 -1
  66. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  67. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +0 -2
  68. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  69. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -7
  70. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
  71. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +5 -6
  72. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  73. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -1
  74. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +1 -1
  75. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +0 -1
  76. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -1
  77. package/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -1
  78. package/dist/runtime-v2/config/pd-config-defaults.js +0 -1
  79. package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  80. package/dist/runtime-v2/config/pd-config-types.d.ts +1 -1
  81. package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  82. package/dist/runtime-v2/config/pd-config-types.js +0 -1
  83. package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  84. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  85. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +0 -2
  86. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  87. package/dist/runtime-v2/index.d.ts +2 -9
  88. package/dist/runtime-v2/index.d.ts.map +1 -1
  89. package/dist/runtime-v2/index.js +5 -6
  90. package/dist/runtime-v2/index.js.map +1 -1
  91. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -3
  92. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  93. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js +4 -36
  94. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js.map +1 -1
  95. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js +0 -1
  96. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js.map +1 -1
  97. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js +0 -15
  98. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js.map +1 -1
  99. package/dist/runtime-v2/internalization/index.d.ts +1 -7
  100. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  101. package/dist/runtime-v2/internalization/index.js +1 -4
  102. package/dist/runtime-v2/internalization/index.js.map +1 -1
  103. package/dist/runtime-v2/internalization/internalization-job-graph.d.ts +7 -18
  104. package/dist/runtime-v2/internalization/internalization-job-graph.d.ts.map +1 -1
  105. package/dist/runtime-v2/internalization/internalization-job-graph.js +7 -24
  106. package/dist/runtime-v2/internalization/internalization-job-graph.js.map +1 -1
  107. package/dist/runtime-v2/internalization/internalization-state-machine.d.ts +3 -2
  108. package/dist/runtime-v2/internalization/internalization-state-machine.d.ts.map +1 -1
  109. package/dist/runtime-v2/internalization/internalization-state-machine.js +4 -3
  110. package/dist/runtime-v2/internalization/internalization-state-machine.js.map +1 -1
  111. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +6 -6
  112. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  113. package/dist/runtime-v2/internalization/peer-runner-contracts.js +0 -3
  114. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  115. package/dist/runtime-v2/principle-tree/ledger-codec.d.ts +30 -0
  116. package/dist/runtime-v2/principle-tree/ledger-codec.d.ts.map +1 -0
  117. package/dist/runtime-v2/principle-tree/ledger-codec.js +154 -0
  118. package/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -0
  119. package/dist/runtime-v2/recovery-sweep-service.d.ts.map +1 -1
  120. package/dist/runtime-v2/recovery-sweep-service.js +2 -2
  121. package/dist/runtime-v2/recovery-sweep-service.js.map +1 -1
  122. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js +1 -1
  123. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js.map +1 -1
  124. package/dist/runtime-v2/types/index.d.ts +2 -0
  125. package/dist/runtime-v2/types/index.d.ts.map +1 -1
  126. package/dist/runtime-v2/types/index.js +1 -0
  127. package/dist/runtime-v2/types/index.js.map +1 -1
  128. package/dist/runtime-v2/types/ledger-store.d.ts +101 -0
  129. package/dist/runtime-v2/types/ledger-store.d.ts.map +1 -0
  130. package/dist/runtime-v2/types/ledger-store.js +15 -0
  131. package/dist/runtime-v2/types/ledger-store.js.map +1 -0
  132. package/dist/runtime-v2/types/pain-signal.d.ts +5 -3
  133. package/dist/runtime-v2/types/pain-signal.d.ts.map +1 -1
  134. package/dist/runtime-v2/types/pain-signal.js +23 -3
  135. package/dist/runtime-v2/types/pain-signal.js.map +1 -1
  136. package/package.json +4 -4
  137. package/dist/io.d.ts +0 -35
  138. package/dist/io.d.ts.map +0 -1
  139. package/dist/io.js +0 -95
  140. package/dist/io.js.map +0 -1
  141. package/dist/runtime-v2/__tests__/trainer-output-validator.test.d.ts +0 -2
  142. package/dist/runtime-v2/__tests__/trainer-output-validator.test.d.ts.map +0 -1
  143. package/dist/runtime-v2/__tests__/trainer-output-validator.test.js +0 -257
  144. package/dist/runtime-v2/__tests__/trainer-output-validator.test.js.map +0 -1
  145. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.d.ts +0 -2
  146. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.d.ts.map +0 -1
  147. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js +0 -514
  148. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js.map +0 -1
  149. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.d.ts +0 -2
  150. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.d.ts.map +0 -1
  151. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.js +0 -141
  152. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.js.map +0 -1
  153. package/dist/runtime-v2/internalization/trainer-output.d.ts +0 -122
  154. package/dist/runtime-v2/internalization/trainer-output.d.ts.map +0 -1
  155. package/dist/runtime-v2/internalization/trainer-output.js +0 -223
  156. package/dist/runtime-v2/internalization/trainer-output.js.map +0 -1
  157. package/dist/runtime-v2/internalization/trainer-prompt-builder.d.ts +0 -24
  158. package/dist/runtime-v2/internalization/trainer-prompt-builder.d.ts.map +0 -1
  159. package/dist/runtime-v2/internalization/trainer-prompt-builder.js +0 -57
  160. package/dist/runtime-v2/internalization/trainer-prompt-builder.js.map +0 -1
  161. package/dist/runtime-v2/internalization/trainer-runner.d.ts +0 -76
  162. package/dist/runtime-v2/internalization/trainer-runner.d.ts.map +0 -1
  163. package/dist/runtime-v2/internalization/trainer-runner.js +0 -540
  164. package/dist/runtime-v2/internalization/trainer-runner.js.map +0 -1
@@ -10,7 +10,7 @@ import { describe, it, expect } from 'vitest';
10
10
  describe('Peer Runner Contracts', () => {
11
11
  // ── Type Guards ────────────────────────────────────────────────────────────
12
12
  describe('isPeerRunnerKind', () => {
13
- it('returns true for all 7 valid peer runner kinds', async () => {
13
+ it('returns true for all 6 valid peer runner kinds', async () => {
14
14
  const { isPeerRunnerKind } = await import('../internalization/peer-runner-contracts.js');
15
15
  const validKinds = [
16
16
  'dreamer',
@@ -18,7 +18,6 @@ describe('Peer Runner Contracts', () => {
18
18
  'scribe',
19
19
  'artificer',
20
20
  'evaluator',
21
- 'trainer',
22
21
  'rollout_reviewer',
23
22
  ];
24
23
  for (const kind of validKinds) {
@@ -33,13 +32,12 @@ describe('Peer Runner Contracts', () => {
33
32
  });
34
33
  });
35
34
  describe('isInternalizationChannel', () => {
36
- it('returns true for all 5 valid channels', async () => {
35
+ it('returns true for all 4 valid channels', async () => {
37
36
  const { isInternalizationChannel } = await import('../internalization/peer-runner-contracts.js');
38
37
  const validChannels = [
39
38
  'prompt',
40
39
  'skill',
41
40
  'code_tool_hook',
42
- 'model_training',
43
41
  'defer_archive',
44
42
  ];
45
43
  for (const channel of validChannels) {
@@ -54,9 +52,9 @@ describe('Peer Runner Contracts', () => {
54
52
  });
55
53
  });
56
54
  describe('isPIArtifactKind', () => {
57
- it('returns true for all 5 valid artifact kinds', async () => {
55
+ it('returns true for all 4 valid artifact kinds', async () => {
58
56
  const { isPIArtifactKind } = await import('../internalization/peer-runner-contracts.js');
59
- const validKinds = ['principle', 'rule', 'training_data', 'skill', 'patch'];
57
+ const validKinds = ['principle', 'rule', 'skill', 'patch'];
60
58
  for (const kind of validKinds) {
61
59
  expect(isPIArtifactKind(kind)).toBe(true);
62
60
  }
@@ -65,6 +63,7 @@ describe('Peer Runner Contracts', () => {
65
63
  const { isPIArtifactKind } = await import('../internalization/peer-runner-contracts.js');
66
64
  expect(isPIArtifactKind('invalid')).toBe(false);
67
65
  expect(isPIArtifactKind('artifact')).toBe(false);
66
+ expect(isPIArtifactKind('training_data')).toBe(false);
68
67
  });
69
68
  });
70
69
  describe('isTerminalTaskStatus', () => {
@@ -147,7 +146,7 @@ describe('Peer Runner Contracts', () => {
147
146
  // Verify it passes type guard
148
147
  expect(isValidPITaskRecord(record)).toBe(true);
149
148
  });
150
- it('creates record for all 7 peer runner kinds', async () => {
149
+ it('creates record for all 6 peer runner kinds', async () => {
151
150
  const { createMinimalPITaskRecord, isPeerRunnerKind } = await import('../internalization/peer-runner-contracts.js');
152
151
  const kinds = [
153
152
  'dreamer',
@@ -155,7 +154,6 @@ describe('Peer Runner Contracts', () => {
155
154
  'scribe',
156
155
  'artificer',
157
156
  'evaluator',
158
- 'trainer',
159
157
  'rollout_reviewer',
160
158
  ];
161
159
  for (const kind of kinds) {
@@ -167,34 +165,33 @@ describe('Peer Runner Contracts', () => {
167
165
  });
168
166
  // ── Constants ────────────────────────────────────────────────────────────
169
167
  describe('constants', () => {
170
- it('PEER_RUNNER_KINDS has 7 elements', async () => {
168
+ it('PEER_RUNNER_KINDS has 6 elements', async () => {
171
169
  const { PEER_RUNNER_KINDS } = await import('../internalization/peer-runner-contracts.js');
172
- expect(PEER_RUNNER_KINDS).toHaveLength(7);
170
+ expect(PEER_RUNNER_KINDS).toHaveLength(6);
173
171
  });
174
- it('INTERNALIZATION_CHANNELS has 5 elements', async () => {
172
+ it('INTERNALIZATION_CHANNELS has 4 elements', async () => {
175
173
  const { INTERNALIZATION_CHANNELS } = await import('../internalization/peer-runner-contracts.js');
176
- expect(INTERNALIZATION_CHANNELS).toHaveLength(5);
174
+ expect(INTERNALIZATION_CHANNELS).toHaveLength(4);
177
175
  });
178
- it('PI_ARTIFACT_KINDS has 5 elements', async () => {
176
+ it('PI_ARTIFACT_KINDS has 4 elements', async () => {
179
177
  const { PI_ARTIFACT_KINDS } = await import('../internalization/peer-runner-contracts.js');
180
- expect(PI_ARTIFACT_KINDS).toHaveLength(5);
178
+ expect(PI_ARTIFACT_KINDS).toHaveLength(4);
181
179
  });
182
180
  });
183
181
  });
184
182
  describe('Job Graph', () => {
185
183
  // ── validateEdge ──────────────────────────────────────────────────────────
186
184
  describe('validateEdge', () => {
187
- it('returns true for all non-trainer ALLOWED_EDGES (channel-free edges)', async () => {
185
+ it('returns true for all ALLOWED_EDGES (channel-free edges)', async () => {
188
186
  const { validateEdge } = await import('../internalization/internalization-job-graph.js');
189
- const nonTrainerEdges = [
187
+ const edges = [
190
188
  ['dreamer', 'philosopher'],
191
189
  ['philosopher', 'scribe'],
192
190
  ['scribe', 'artificer'],
193
191
  ['artificer', 'evaluator'],
194
192
  ['evaluator', 'rollout_reviewer'],
195
- // Note: rollout_reviewer→trainer requires model_training channel (tested separately)
196
193
  ];
197
- for (const [from, to] of nonTrainerEdges) {
194
+ for (const [from, to] of edges) {
198
195
  expect(validateEdge(from, to)).toBe(true);
199
196
  }
200
197
  });
@@ -215,26 +212,14 @@ describe('Job Graph', () => {
215
212
  expect(validateEdge('dreamer', 'artificer')).toBe(false);
216
213
  expect(validateEdge('philosopher', 'evaluator')).toBe(false);
217
214
  });
218
- it('requires model_training channel for rollout_reviewer → trainer transition', async () => {
219
- const { validateEdge, MODEL_TRAINING_CHANNEL } = await import('../internalization/internalization-job-graph.js');
220
- // Without channel, trainer is not reachable from any runner
221
- expect(validateEdge('rollout_reviewer', 'trainer')).toBe(false);
222
- // Only rollout_reviewer + model_training channel reaches trainer
223
- expect(validateEdge('rollout_reviewer', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(true);
224
- // Other runners with model_training channel CANNOT reach trainer in v1
225
- expect(validateEdge('dreamer', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(false);
226
- expect(validateEdge('philosopher', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(false);
227
- expect(validateEdge('scribe', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(false);
228
- expect(validateEdge('artificer', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(false);
229
- expect(validateEdge('evaluator', 'trainer', MODEL_TRAINING_CHANNEL)).toBe(false);
230
- });
231
- it('rejects trainer with non-model_training channel', async () => {
215
+ it('returns false for rollout_reviewer → any peer runner (terminal)', async () => {
232
216
  const { validateEdge } = await import('../internalization/internalization-job-graph.js');
233
- // rollout_reviewer + non-model_training channels cannot reach trainer
234
- expect(validateEdge('rollout_reviewer', 'trainer', 'prompt')).toBe(false);
235
- expect(validateEdge('rollout_reviewer', 'trainer', 'skill')).toBe(false);
236
- expect(validateEdge('rollout_reviewer', 'trainer', 'defer_archive')).toBe(false);
237
- expect(validateEdge('rollout_reviewer', 'trainer', 'code_tool_hook')).toBe(false);
217
+ expect(validateEdge('rollout_reviewer', 'dreamer')).toBe(false);
218
+ expect(validateEdge('rollout_reviewer', 'philosopher')).toBe(false);
219
+ expect(validateEdge('rollout_reviewer', 'scribe')).toBe(false);
220
+ expect(validateEdge('rollout_reviewer', 'artificer')).toBe(false);
221
+ expect(validateEdge('rollout_reviewer', 'evaluator')).toBe(false);
222
+ expect(validateEdge('rollout_reviewer', 'rollout_reviewer')).toBe(false);
238
223
  });
239
224
  });
240
225
  // ── isAcyclic ────────────────────────────────────────────────────────────
@@ -252,15 +237,14 @@ describe('Job Graph', () => {
252
237
  ];
253
238
  expect(isAcyclic(edges)).toBe(true);
254
239
  });
255
- it('returns true for valid DAG (with fan-out to trainer)', async () => {
240
+ it('returns true for valid DAG (linear internalization chain)', async () => {
256
241
  const { isAcyclic } = await import('../internalization/internalization-job-graph.js');
257
242
  const edges = [
258
243
  ['dreamer', 'philosopher'],
259
244
  ['philosopher', 'scribe'],
260
245
  ['scribe', 'artificer'],
261
246
  ['artificer', 'evaluator'],
262
- ['dreamer', 'trainer'],
263
- ['scribe', 'trainer'],
247
+ ['evaluator', 'rollout_reviewer'],
264
248
  ];
265
249
  expect(isAcyclic(edges)).toBe(true);
266
250
  });
@@ -301,45 +285,27 @@ describe('Job Graph', () => {
301
285
  it('returns correct successors for dreamer', async () => {
302
286
  const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
303
287
  const successors = getAllowedSuccessors('dreamer');
304
- expect(successors).toContain('philosopher');
305
- // trainer is only reached after rollout_reviewer in v1 (Policy B)
306
- expect(successors).not.toContain('trainer');
307
- expect(successors).not.toContain('scribe');
308
- expect(successors).not.toContain('artificer');
309
- });
310
- it('returns only trainer for trainer (no self-loop)', async () => {
311
- const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
312
- const successors = getAllowedSuccessors('trainer');
313
- expect(successors).not.toContain('trainer');
288
+ expect(successors).toEqual(['philosopher']);
314
289
  });
315
290
  it('returns correct successors for scribe (linear chain only)', async () => {
316
291
  const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
317
292
  const successors = getAllowedSuccessors('scribe');
318
- expect(successors).toContain('artificer');
319
- // trainer only via rollout_reviewer in v1
320
- expect(successors).not.toContain('trainer');
321
- expect(successors).not.toContain('philosopher');
322
- expect(successors).not.toContain('dreamer');
323
- });
324
- it('returns correct successors for evaluator (rollout_reviewer only, no trainer shortcut)', async () => {
325
- const { getAllowedSuccessors, TRAINER_KIND } = await import('../internalization/internalization-job-graph.js');
293
+ expect(successors).toEqual(['artificer']);
294
+ });
295
+ it('returns correct successors for evaluator', async () => {
296
+ const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
326
297
  const successors = getAllowedSuccessors('evaluator');
327
- expect(successors).toContain('rollout_reviewer');
328
- // v1 policy B: trainer only via rollout_reviewer, not as shortcut from evaluator
329
- expect(successors).not.toContain(TRAINER_KIND);
298
+ expect(successors).toEqual(['rollout_reviewer']);
330
299
  });
331
- it('returns correct successors for artificer (evaluator only, no trainer shortcut)', async () => {
332
- const { getAllowedSuccessors, TRAINER_KIND } = await import('../internalization/internalization-job-graph.js');
300
+ it('returns correct successors for artificer', async () => {
301
+ const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
333
302
  const successors = getAllowedSuccessors('artificer');
334
- expect(successors).toContain('evaluator');
335
- expect(successors).not.toContain(TRAINER_KIND);
336
- expect(successors).not.toContain('scribe');
303
+ expect(successors).toEqual(['evaluator']);
337
304
  });
338
- it('returns [trainer] for rollout_reviewer (terminal v1 successor via model_training)', async () => {
339
- const { getAllowedSuccessors, TRAINER_KIND } = await import('../internalization/internalization-job-graph.js');
305
+ it('returns empty array for rollout_reviewer (terminal peer runner)', async () => {
306
+ const { getAllowedSuccessors } = await import('../internalization/internalization-job-graph.js');
340
307
  const successors = getAllowedSuccessors('rollout_reviewer');
341
- expect(successors).toContain(TRAINER_KIND);
342
- expect(successors).not.toContain('rollout_reviewer');
308
+ expect(successors).toEqual([]);
343
309
  });
344
310
  });
345
311
  // ── getAllowedPredecessors ───────────────────────────────────────────────
@@ -369,20 +335,20 @@ describe('Job Graph', () => {
369
335
  const preds = getAllowedPredecessors('rollout_reviewer');
370
336
  expect(preds).toEqual(['evaluator']);
371
337
  });
372
- it('returns [rollout_reviewer] for trainer (v1 terminal predecessor)', async () => {
338
+ it('returns [dreamer] for philosopher and excludes scribe', async () => {
373
339
  const { getAllowedPredecessors } = await import('../internalization/internalization-job-graph.js');
374
- const preds = getAllowedPredecessors('trainer');
375
- // v1 policy B: trainer is terminal successor of rollout_reviewer only
376
- expect(preds).toEqual(['rollout_reviewer']);
340
+ const preds = getAllowedPredecessors('philosopher');
341
+ expect(preds).toEqual(['dreamer']);
342
+ expect(preds).not.toContain('scribe');
377
343
  });
378
344
  });
379
345
  // ── ALLOWED_EDGES constant ───────────────────────────────────────────────
380
346
  describe('ALLOWED_EDGES', () => {
381
- it('has exactly 6 edges (v1 linear chain + rollout_reviewer→trainer)', async () => {
347
+ it('has exactly 5 edges (v1 linear chain)', async () => {
382
348
  const { ALLOWED_EDGES } = await import('../internalization/internalization-job-graph.js');
383
- expect(ALLOWED_EDGES).toHaveLength(6);
349
+ expect(ALLOWED_EDGES).toHaveLength(5);
384
350
  });
385
- it('covers dreamer→philosopher→scribe→artificer→evaluator→rollout_reviewer→trainer chain', async () => {
351
+ it('covers dreamer→philosopher→scribe→artificer→evaluator→rollout_reviewer chain', async () => {
386
352
  const { ALLOWED_EDGES } = await import('../internalization/internalization-job-graph.js');
387
353
  const edgeSet = new Set(ALLOWED_EDGES.map(([f, t]) => `${f}→${t}`));
388
354
  expect(edgeSet.has('dreamer→philosopher')).toBe(true);
@@ -390,13 +356,12 @@ describe('Job Graph', () => {
390
356
  expect(edgeSet.has('scribe→artificer')).toBe(true);
391
357
  expect(edgeSet.has('artificer→evaluator')).toBe(true);
392
358
  expect(edgeSet.has('evaluator→rollout_reviewer')).toBe(true);
393
- expect(edgeSet.has('rollout_reviewer→trainer')).toBe(true);
394
359
  });
395
360
  it('is readonly (cannot be modified)', async () => {
396
361
  const { ALLOWED_EDGES } = await import('../internalization/internalization-job-graph.js');
397
362
  // ReadonlyArray<...> means the outer array reference is immutable at TypeScript level
398
363
  expect(Array.isArray(ALLOWED_EDGES)).toBe(true);
399
- expect(ALLOWED_EDGES).toHaveLength(6);
364
+ expect(ALLOWED_EDGES).toHaveLength(5);
400
365
  // Verify each edge is a readonly tuple
401
366
  for (const edge of ALLOWED_EDGES) {
402
367
  expect(Array.isArray(edge)).toBe(true);
@@ -405,7 +370,7 @@ describe('Job Graph', () => {
405
370
  // Verify edges are in expected order
406
371
  const edgeStrings = ALLOWED_EDGES.map(([f, t]) => `${f}→${t}`);
407
372
  expect(edgeStrings[0]).toBe('dreamer→philosopher');
408
- expect(edgeStrings[5]).toBe('rollout_reviewer→trainer');
373
+ expect(edgeStrings[4]).toBe('evaluator→rollout_reviewer');
409
374
  });
410
375
  });
411
376
  });
@@ -1 +1 @@
1
- {"version":3,"file":"internalization-peer-runner-contracts.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/internalization-peer-runner-contracts.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internalization-peer-runner-contracts.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/internalization-peer-runner-contracts.test.ts"],"names":[],"mappings":"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"}
@@ -331,23 +331,7 @@ describe('createNextTaskProposal', () => {
331
331
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
332
332
  expect(result.taskKind).toBe('rollout_reviewer');
333
333
  });
334
- it('rollout_reviewer succeeded + model_training channel trainer', async () => {
335
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
336
- const task = makePITask({
337
- taskId: 'rr-1',
338
- taskKind: 'rollout_reviewer',
339
- status: 'succeeded',
340
- channel: 'model_training',
341
- outputArtifactRefs: [],
342
- });
343
- const result = createNextTaskProposal(task, []);
344
- // rollout_reviewer has no direct ALLOWED_EDGES successors.
345
- // With model_training channel it can reach trainer (via getAllowedSuccessors filter).
346
- expect(result).not.toBeNull();
347
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
348
- expect(result.taskKind).toBe('trainer');
349
- });
350
- it('rollout_reviewer succeeded + prompt channel → null (channel constraint blocks trainer)', async () => {
334
+ it('rollout_reviewer succeeded null (terminal peer runner)', async () => {
351
335
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
352
336
  const task = makePITask({
353
337
  taskId: 'rr-1',
@@ -357,26 +341,23 @@ describe('createNextTaskProposal', () => {
357
341
  outputArtifactRefs: [],
358
342
  });
359
343
  const result = createNextTaskProposal(task, []);
360
- // rollout_reviewer → trainer requires model_training channel.
361
- // With prompt channel, no valid successor exists → null.
362
344
  expect(result).toBeNull();
363
345
  });
364
- it('dreamer succeeded → philosopher (first in ALLOWED_EDGES, channel passed through)', async () => {
346
+ it('dreamer succeeded → philosopher (channel passed through)', async () => {
365
347
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
366
348
  const task = makePITask({
367
349
  taskId: 'dreamer-1',
368
350
  taskKind: 'dreamer',
369
351
  status: 'succeeded',
370
- channel: 'model_training',
371
- outputArtifactRefs: [{ artifactType: 'training_data', ref: 'td-1' }],
352
+ channel: 'code_tool_hook',
353
+ outputArtifactRefs: [{ artifactType: 'principle', ref: 'art-1' }],
372
354
  });
373
355
  const result = createNextTaskProposal(task, []);
374
356
  expect(result).not.toBeNull();
375
357
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
376
358
  const r = result;
377
- // getAllowedSuccessors returns ['philosopher'] for dreamer (v1 Policy B: trainer only via rollout_reviewer)
378
359
  expect(r.taskKind).toBe('philosopher');
379
- expect(r.channel).toBe('model_training');
360
+ expect(r.channel).toBe('code_tool_hook');
380
361
  });
381
362
  it('pending task → null (non-succeeded status must not generate proposal)', async () => {
382
363
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
@@ -400,134 +381,67 @@ describe('createNextTaskProposal', () => {
400
381
  const result = createNextTaskProposal(task, []);
401
382
  expect(result).toBeNull();
402
383
  });
403
- // ── Policy B: model_training still follows full chain — trainer only after rollout_reviewer ─
404
- it('philosopher + model_training → scribe (not trainer)', async () => {
384
+ it('channel does not alter allowed successors', async () => {
405
385
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
406
- const task = makePITask({
407
- taskId: 'phil-1',
408
- taskKind: 'philosopher',
409
- status: 'succeeded',
410
- channel: 'model_training',
411
- outputArtifactRefs: [{ artifactType: 'rule', ref: 'art-2' }],
412
- });
413
- const result = createNextTaskProposal(task, []);
414
- expect(result).not.toBeNull();
415
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
416
- const r = result;
417
- expect(r.taskKind).toBe('scribe');
418
- expect(r.taskKind).not.toBe('trainer');
419
- });
420
- it('scribe + model_training → artificer (not trainer)', async () => {
421
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
422
- const task = makePITask({
423
- taskId: 'scribe-1',
424
- taskKind: 'scribe',
425
- status: 'succeeded',
426
- channel: 'model_training',
427
- outputArtifactRefs: [],
428
- });
429
- const result = createNextTaskProposal(task, []);
430
- expect(result).not.toBeNull();
431
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
432
- const r = result;
433
- expect(r.taskKind).toBe('artificer');
434
- expect(r.taskKind).not.toBe('trainer');
435
- });
436
- it('artificer + model_training → evaluator (not trainer)', async () => {
437
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
438
- const task = makePITask({
439
- taskId: 'art-1',
440
- taskKind: 'artificer',
441
- status: 'succeeded',
442
- channel: 'model_training',
443
- outputArtifactRefs: [],
444
- });
445
- const result = createNextTaskProposal(task, []);
446
- expect(result).not.toBeNull();
447
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
448
- const r = result;
449
- expect(r.taskKind).toBe('evaluator');
450
- expect(r.taskKind).not.toBe('trainer');
451
- });
452
- it('evaluator + model_training → rollout_reviewer (not trainer)', async () => {
453
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
454
- const task = makePITask({
455
- taskId: 'eval-1',
456
- taskKind: 'evaluator',
457
- status: 'succeeded',
458
- channel: 'model_training',
459
- outputArtifactRefs: [],
460
- });
461
- const result = createNextTaskProposal(task, []);
462
- expect(result).not.toBeNull();
463
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
464
- const r = result;
465
- expect(r.taskKind).toBe('rollout_reviewer');
466
- expect(r.taskKind).not.toBe('trainer');
467
- });
468
- it('dreamer + model_training → philosopher (not trainer)', async () => {
469
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
470
- const task = makePITask({
471
- taskId: 'dreamer-1',
472
- taskKind: 'dreamer',
473
- status: 'succeeded',
474
- channel: 'model_training',
475
- outputArtifactRefs: [{ artifactType: 'training_data', ref: 'td-1' }],
476
- });
477
- const result = createNextTaskProposal(task, []);
478
- expect(result).not.toBeNull();
479
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
480
- const r = result;
481
- expect(r.taskKind).toBe('philosopher');
482
- expect(r.taskKind).not.toBe('trainer');
483
- expect(r.channel).toBe('model_training');
484
- });
485
- it('rollout_reviewer + model_training → trainer (terminal v1 successor)', async () => {
386
+ for (const channel of ['prompt', 'skill', 'code_tool_hook', 'defer_archive']) {
387
+ const task = makePITask({
388
+ taskId: 'dreamer-1',
389
+ taskKind: 'dreamer',
390
+ status: 'succeeded',
391
+ channel,
392
+ outputArtifactRefs: [{ artifactType: 'principle', ref: 'art-1' }],
393
+ });
394
+ const result = createNextTaskProposal(task, []);
395
+ expect(result).not.toBeNull();
396
+ if (!result)
397
+ throw new Error('expected non-null result');
398
+ expect(result.taskKind).toBe('philosopher');
399
+ expect(result.channel).toBe(channel);
400
+ }
401
+ });
402
+ it('rollout_reviewer + skill → null (terminal peer runner)', async () => {
486
403
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
487
404
  const task = makePITask({
488
405
  taskId: 'rr-1',
489
406
  taskKind: 'rollout_reviewer',
490
407
  status: 'succeeded',
491
- channel: 'model_training',
408
+ channel: 'skill',
492
409
  outputArtifactRefs: [],
493
410
  });
494
411
  const result = createNextTaskProposal(task, []);
495
- expect(result).not.toBeNull();
496
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
497
- expect(result.taskKind).toBe('trainer');
412
+ expect(result).toBeNull();
498
413
  });
499
- it('rollout_reviewer + skill → null (non-model_training channel, no valid successor)', async () => {
414
+ it('rollout_reviewer + code_tool_hook → null (terminal peer runner)', async () => {
500
415
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
501
416
  const task = makePITask({
502
417
  taskId: 'rr-1',
503
418
  taskKind: 'rollout_reviewer',
504
419
  status: 'succeeded',
505
- channel: 'skill',
420
+ channel: 'code_tool_hook',
506
421
  outputArtifactRefs: [],
507
422
  });
508
423
  const result = createNextTaskProposal(task, []);
509
- // rollout_reviewer has no non-model_training successors; skill channel blocks trainer
510
424
  expect(result).toBeNull();
511
425
  });
512
- it('rollout_reviewer + code_tool_hook → null (non-model_training channel, no valid successor)', async () => {
426
+ it('rollout_reviewer + prompt → null (terminal peer runner)', async () => {
513
427
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
514
428
  const task = makePITask({
515
429
  taskId: 'rr-1',
516
430
  taskKind: 'rollout_reviewer',
517
431
  status: 'succeeded',
518
- channel: 'code_tool_hook',
432
+ channel: 'prompt',
519
433
  outputArtifactRefs: [],
520
434
  });
521
435
  const result = createNextTaskProposal(task, []);
522
436
  expect(result).toBeNull();
523
437
  });
524
- it('rollout_reviewer + prompt → null (explicit)', async () => {
438
+ it('rollout_reviewer + defer_archive → null (terminal peer runner)', async () => {
525
439
  const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
526
440
  const task = makePITask({
527
441
  taskId: 'rr-1',
528
442
  taskKind: 'rollout_reviewer',
529
443
  status: 'succeeded',
530
- channel: 'prompt',
444
+ channel: 'defer_archive',
531
445
  outputArtifactRefs: [],
532
446
  });
533
447
  const result = createNextTaskProposal(task, []);
@@ -642,19 +556,6 @@ describe('isArtifactRejected', () => {
642
556
  };
643
557
  expect(isArtifactRejected(artifact)).toBe(false);
644
558
  });
645
- // ── Policy B: model_training still follows full chain — trainer only after rollout_reviewer ─
646
- it('rollout_reviewer + defer_archive → null (non-model_training channel)', async () => {
647
- const { createNextTaskProposal } = await import('../internalization/internalization-state-machine.js');
648
- const task = makePITask({
649
- taskId: 'rr-1',
650
- taskKind: 'rollout_reviewer',
651
- status: 'succeeded',
652
- channel: 'defer_archive',
653
- outputArtifactRefs: [],
654
- });
655
- const result = createNextTaskProposal(task, []);
656
- expect(result).toBeNull();
657
- });
658
559
  });
659
560
  // ── Architecture Guards ───────────────────────────────────────────────────────
660
561
  describe('Architecture Guards: no infrastructure imports', () => {