@principles/core 1.168.0 → 1.169.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 (112) hide show
  1. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js +6 -14
  2. package/dist/runtime-v2/__tests__/activation-types-helpers.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/architecture-regression.test.js +2 -66
  4. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js +1 -2
  6. package/dist/runtime-v2/__tests__/intake-to-internalization-bridge.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js +8 -8
  8. package/dist/runtime-v2/__tests__/internalization-orchestrator.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js +45 -80
  10. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js +31 -130
  12. package/dist/runtime-v2/__tests__/internalization-state-machine.test.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -1
  14. package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +4 -4
  16. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +2 -5
  18. package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
  19. package/dist/runtime-v2/__tests__/story-a-demo.test.js +2 -2
  20. package/dist/runtime-v2/__tests__/story-a-demo.test.js.map +1 -1
  21. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +7 -10
  22. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  23. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +1 -3
  24. package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +1 -1
  25. package/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +4 -4
  26. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +6 -6
  27. package/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
  28. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  29. package/dist/runtime-v2/activation/activation-dispatcher.js +0 -1
  30. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  31. package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  32. package/dist/runtime-v2/activation/activation-types.js +0 -1
  33. package/dist/runtime-v2/activation/activation-types.js.map +1 -1
  34. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  35. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +0 -2
  36. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  37. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -7
  38. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
  39. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +5 -6
  40. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  41. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -1
  42. package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +1 -1
  43. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +0 -1
  44. package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -1
  45. package/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -1
  46. package/dist/runtime-v2/config/pd-config-defaults.js +0 -1
  47. package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  48. package/dist/runtime-v2/config/pd-config-types.d.ts +1 -1
  49. package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  50. package/dist/runtime-v2/config/pd-config-types.js +0 -1
  51. package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  52. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  53. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +0 -2
  54. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  55. package/dist/runtime-v2/index.d.ts +1 -7
  56. package/dist/runtime-v2/index.d.ts.map +1 -1
  57. package/dist/runtime-v2/index.js +1 -4
  58. package/dist/runtime-v2/index.js.map +1 -1
  59. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -3
  60. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  61. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js +4 -36
  62. package/dist/runtime-v2/internalization/__tests__/internalization-job-graph.test.js.map +1 -1
  63. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js +0 -1
  64. package/dist/runtime-v2/internalization/__tests__/peer-runner-lineage-injection.test.js.map +1 -1
  65. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js +0 -15
  66. package/dist/runtime-v2/internalization/__tests__/queue-actionability.test.js.map +1 -1
  67. package/dist/runtime-v2/internalization/index.d.ts +1 -7
  68. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  69. package/dist/runtime-v2/internalization/index.js +1 -4
  70. package/dist/runtime-v2/internalization/index.js.map +1 -1
  71. package/dist/runtime-v2/internalization/internalization-job-graph.d.ts +7 -18
  72. package/dist/runtime-v2/internalization/internalization-job-graph.d.ts.map +1 -1
  73. package/dist/runtime-v2/internalization/internalization-job-graph.js +7 -24
  74. package/dist/runtime-v2/internalization/internalization-job-graph.js.map +1 -1
  75. package/dist/runtime-v2/internalization/internalization-state-machine.d.ts +3 -2
  76. package/dist/runtime-v2/internalization/internalization-state-machine.d.ts.map +1 -1
  77. package/dist/runtime-v2/internalization/internalization-state-machine.js +4 -3
  78. package/dist/runtime-v2/internalization/internalization-state-machine.js.map +1 -1
  79. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +6 -6
  80. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  81. package/dist/runtime-v2/internalization/peer-runner-contracts.js +0 -3
  82. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  83. package/dist/runtime-v2/recovery-sweep-service.d.ts.map +1 -1
  84. package/dist/runtime-v2/recovery-sweep-service.js +2 -2
  85. package/dist/runtime-v2/recovery-sweep-service.js.map +1 -1
  86. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js +1 -1
  87. package/dist/runtime-v2/store/candidate/__tests__/recommendation-kind-resolver.test.js.map +1 -1
  88. package/package.json +1 -1
  89. package/dist/runtime-v2/__tests__/trainer-output-validator.test.d.ts +0 -2
  90. package/dist/runtime-v2/__tests__/trainer-output-validator.test.d.ts.map +0 -1
  91. package/dist/runtime-v2/__tests__/trainer-output-validator.test.js +0 -257
  92. package/dist/runtime-v2/__tests__/trainer-output-validator.test.js.map +0 -1
  93. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.d.ts +0 -2
  94. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.d.ts.map +0 -1
  95. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js +0 -514
  96. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js.map +0 -1
  97. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.d.ts +0 -2
  98. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.d.ts.map +0 -1
  99. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.js +0 -141
  100. package/dist/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.js.map +0 -1
  101. package/dist/runtime-v2/internalization/trainer-output.d.ts +0 -122
  102. package/dist/runtime-v2/internalization/trainer-output.d.ts.map +0 -1
  103. package/dist/runtime-v2/internalization/trainer-output.js +0 -223
  104. package/dist/runtime-v2/internalization/trainer-output.js.map +0 -1
  105. package/dist/runtime-v2/internalization/trainer-prompt-builder.d.ts +0 -24
  106. package/dist/runtime-v2/internalization/trainer-prompt-builder.d.ts.map +0 -1
  107. package/dist/runtime-v2/internalization/trainer-prompt-builder.js +0 -57
  108. package/dist/runtime-v2/internalization/trainer-prompt-builder.js.map +0 -1
  109. package/dist/runtime-v2/internalization/trainer-runner.d.ts +0 -76
  110. package/dist/runtime-v2/internalization/trainer-runner.d.ts.map +0 -1
  111. package/dist/runtime-v2/internalization/trainer-runner.js +0 -540
  112. package/dist/runtime-v2/internalization/trainer-runner.js.map +0 -1
@@ -1,514 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- import { TrainerRunner } from '../internalization/trainer-runner.js';
3
- import { MemoryPIArtifactStore } from '../internalization/pi-artifact-store.js';
4
- import { DefaultTrainerValidator } from '../internalization/trainer-output.js';
5
- import { createPITaskDiagnosticJson } from '../internalization/pitask-metadata.js';
6
- import { TestDoubleRuntimeAdapter } from '../adapter/test-double-runtime-adapter.js';
7
- const ROLLOUT_REVIEWER_TASK_ID = 'rollout-reviewer-001';
8
- const TRAINER_TASK_ID = 'trainer-001';
9
- function makeRolloutReviewerTask(overrides = {}) {
10
- return {
11
- taskId: ROLLOUT_REVIEWER_TASK_ID,
12
- taskKind: 'rollout_reviewer',
13
- status: 'succeeded',
14
- attemptCount: 1,
15
- maxAttempts: 3,
16
- resultRef: 'rollout-reviewer://run-001',
17
- createdAt: new Date().toISOString(),
18
- updatedAt: new Date().toISOString(),
19
- diagnosticJson: createPITaskDiagnosticJson({
20
- dependencyTaskIds: [],
21
- channel: 'model_training',
22
- timeoutMs: 300_000,
23
- inputArtifactRefs: [],
24
- outputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-rollout-reviewer-001-run-001' }],
25
- }),
26
- ...overrides,
27
- };
28
- }
29
- function makeTrainerTask(overrides = {}) {
30
- return {
31
- taskId: TRAINER_TASK_ID,
32
- taskKind: 'trainer',
33
- status: 'pending',
34
- attemptCount: 0,
35
- maxAttempts: 3,
36
- createdAt: new Date().toISOString(),
37
- updatedAt: new Date().toISOString(),
38
- diagnosticJson: createPITaskDiagnosticJson({
39
- dependencyTaskIds: [ROLLOUT_REVIEWER_TASK_ID],
40
- channel: 'model_training',
41
- timeoutMs: 300_000,
42
- inputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-rollout-reviewer-001-run-001' }],
43
- outputArtifactRefs: [],
44
- }),
45
- ...overrides,
46
- };
47
- }
48
- function makeTrainerOutput(sourceRolloutReviewerArtifactId) {
49
- return {
50
- taskId: TRAINER_TASK_ID,
51
- sourceRolloutReviewerArtifactId,
52
- ruleCandidate: {
53
- toolScope: 'tool_call',
54
- triggerCondition: 'When a tool is called with invalid parameters',
55
- proposedDecision: 'auto_correct',
56
- proposedCorrection: {
57
- description: 'Use default parameters instead',
58
- proposedParams: { defaultTimeout: 5000 },
59
- },
60
- rationale: 'Safe to auto-correct with sensible defaults',
61
- confidence: 0.88,
62
- },
63
- safety: {
64
- limitations: ['Requires feature flag enabled'],
65
- falsePositiveRisks: ['May incorrectly auto-correct edge case inputs'],
66
- requiredReplayCases: ['tool_call with null params', 'tool_call with empty toolName'],
67
- },
68
- sourceTrace: {
69
- rolloutReviewerArtifactId: sourceRolloutReviewerArtifactId,
70
- },
71
- goldenTraceRefs: ['gt-case-001'],
72
- generatedAt: new Date().toISOString(),
73
- };
74
- }
75
- function makeRolloutReviewerArtifact() {
76
- return {
77
- artifactId: 'pi-art-rollout-reviewer-001-run-001',
78
- artifactKind: 'principle',
79
- sourceTaskId: ROLLOUT_REVIEWER_TASK_ID,
80
- lineageArtifactIds: [],
81
- validationStatus: 'pending',
82
- contentJson: JSON.stringify({
83
- taskId: ROLLOUT_REVIEWER_TASK_ID,
84
- sourceEvaluatorArtifactId: 'pi-art-evaluator-001',
85
- review: {
86
- decision: 'approve_rollout',
87
- summary: 'The rollout plan is safe to proceed',
88
- confidence: 0.9,
89
- requiredChanges: [],
90
- rolloutRisks: ['Feature flag configuration may need adjustment'],
91
- safetyChecks: ['Verify feature flag is properly configured'],
92
- },
93
- sourceTrace: {
94
- evaluatorArtifactId: 'pi-art-evaluator-001',
95
- },
96
- risks: ['Rollback plan should be tested before deployment'],
97
- generatedAt: '2026-05-11T12:00:00.000Z',
98
- }),
99
- createdAt: new Date().toISOString(),
100
- updatedAt: new Date().toISOString(),
101
- };
102
- }
103
- describe('TrainerRunner (vertical slice)', () => {
104
- function createMockDeps(overrides = {}) {
105
- const artifactStore = overrides.artifactStore ?? new MemoryPIArtifactStore();
106
- const trainerTask = makeTrainerTask();
107
- const rolloutReviewerTask = makeRolloutReviewerTask();
108
- const stateManager = {
109
- acquireLease: vi.fn().mockResolvedValue(trainerTask),
110
- getTask: vi.fn().mockImplementation((id) => {
111
- if (id === TRAINER_TASK_ID)
112
- return Promise.resolve(trainerTask);
113
- if (id === ROLLOUT_REVIEWER_TASK_ID)
114
- return Promise.resolve(rolloutReviewerTask);
115
- return Promise.resolve(null);
116
- }),
117
- getRunsByTask: vi.fn().mockResolvedValue([{
118
- runId: 'run-trainer-001',
119
- taskId: TRAINER_TASK_ID,
120
- runtimeKind: 'trainer',
121
- startedAt: new Date().toISOString(),
122
- }]),
123
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
124
- runs: [{ runId: 'run-trainer-001', taskId: TRAINER_TASK_ID, runtimeKind: 'trainer', startedAt: new Date().toISOString() }],
125
- degradedRuns: [],
126
- }),
127
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
128
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
129
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
130
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
131
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
132
- };
133
- const runHandle = { runId: 'run-trainer-001', runtimeKind: 'test-double', startedAt: new Date().toISOString() };
134
- const succeededStatus = { status: 'succeeded', runId: 'run-trainer-001' };
135
- const runtimeAdapter = {
136
- startRun: vi.fn().mockResolvedValue(runHandle),
137
- pollRun: vi.fn().mockResolvedValue(succeededStatus),
138
- fetchOutput: vi.fn().mockResolvedValue({
139
- payload: makeTrainerOutput('pi-art-rollout-reviewer-001-run-001'),
140
- }),
141
- cancelRun: vi.fn().mockResolvedValue(undefined),
142
- };
143
- const eventEmitter = {
144
- emitTelemetry: vi.fn(),
145
- };
146
- const validator = new DefaultTrainerValidator();
147
- return {
148
- stateManager,
149
- runtimeAdapter,
150
- eventEmitter,
151
- validator,
152
- artifactStore,
153
- ...overrides,
154
- };
155
- }
156
- it('taskKind not trainer fails closed and releases lease', async () => {
157
- const wrongKindTask = makeTrainerTask({ taskKind: 'dreamer' });
158
- const deps = createMockDeps();
159
- deps.stateManager.acquireLease = vi.fn().mockResolvedValue(wrongKindTask);
160
- const runner = new TrainerRunner(deps, {
161
- owner: 'test',
162
- runtimeKind: 'trainer',
163
- pollIntervalMs: 10,
164
- timeoutMs: 1000,
165
- });
166
- const result = await runner.run(TRAINER_TASK_ID);
167
- expect(result.status).toBe('failed');
168
- expect(result.errorCategory).toBe('input_invalid');
169
- expect(result.failureReason).toContain("must be 'trainer'");
170
- expect(deps.stateManager.markTaskFailed).toHaveBeenCalledWith(TRAINER_TASK_ID, 'input_invalid');
171
- });
172
- it('missing rollout_reviewer dependency blocked/failure', async () => {
173
- const noDepTask = makeTrainerTask({
174
- diagnosticJson: createPITaskDiagnosticJson({
175
- dependencyTaskIds: [],
176
- channel: 'model_training',
177
- timeoutMs: 300_000,
178
- inputArtifactRefs: [],
179
- outputArtifactRefs: [],
180
- }),
181
- });
182
- const deps = createMockDeps();
183
- deps.stateManager.acquireLease = vi.fn().mockResolvedValue(noDepTask);
184
- deps.stateManager.getTask = vi.fn().mockResolvedValue(noDepTask);
185
- const runner = new TrainerRunner(deps, {
186
- owner: 'test',
187
- runtimeKind: 'trainer',
188
- pollIntervalMs: 10,
189
- timeoutMs: 1000,
190
- });
191
- const result = await runner.run(TRAINER_TASK_ID);
192
- expect(result.status).toBe('failed');
193
- expect(result.errorCategory).toBe('input_invalid');
194
- });
195
- it('rollout_reviewer dependency not succeeded cannot execute', async () => {
196
- const pendingRolloutReviewer = makeRolloutReviewerTask({ status: 'pending' });
197
- const deps = createMockDeps();
198
- deps.stateManager.getTask = vi.fn().mockImplementation((id) => {
199
- if (id === TRAINER_TASK_ID)
200
- return Promise.resolve(makeTrainerTask());
201
- if (id === ROLLOUT_REVIEWER_TASK_ID)
202
- return Promise.resolve(pendingRolloutReviewer);
203
- return Promise.resolve(null);
204
- });
205
- const runner = new TrainerRunner(deps, {
206
- owner: 'test',
207
- runtimeKind: 'trainer',
208
- pollIntervalMs: 10,
209
- timeoutMs: 1000,
210
- });
211
- const result = await runner.run(TRAINER_TASK_ID);
212
- expect(result.status).toBe('failed');
213
- expect(result.errorCategory).toBe('input_invalid');
214
- });
215
- it('rollout_reviewer artifact missing goes to retry/fail', async () => {
216
- const emptyArtifactStore = new MemoryPIArtifactStore();
217
- const deps = createMockDeps({ artifactStore: emptyArtifactStore });
218
- const runner = new TrainerRunner(deps, {
219
- owner: 'test',
220
- runtimeKind: 'trainer',
221
- pollIntervalMs: 10,
222
- timeoutMs: 1000,
223
- });
224
- const result = await runner.run(TRAINER_TASK_ID);
225
- expect(result.status).toBe('failed');
226
- expect(result.errorCategory).toBe('input_invalid');
227
- });
228
- it('valid runtime output writes trainer PIArtifact with artifactKind rule', async () => {
229
- const store = new MemoryPIArtifactStore();
230
- await store.upsertArtifact(makeRolloutReviewerArtifact());
231
- const deps = createMockDeps({ artifactStore: store });
232
- const runner = new TrainerRunner(deps, {
233
- owner: 'test',
234
- runtimeKind: 'trainer',
235
- pollIntervalMs: 10,
236
- timeoutMs: 1000,
237
- });
238
- const result = await runner.run(TRAINER_TASK_ID);
239
- expect(result.status).toBe('succeeded');
240
- expect(result.artifactId).toBeDefined();
241
- const artifacts = await store.listBySourceTaskId(TRAINER_TASK_ID);
242
- expect(artifacts).toHaveLength(1);
243
- expect(artifacts[0]?.artifactKind).toBe('rule');
244
- });
245
- it('valid runtime output marks task succeeded', async () => {
246
- const store = new MemoryPIArtifactStore();
247
- await store.upsertArtifact(makeRolloutReviewerArtifact());
248
- const deps = createMockDeps({ artifactStore: store });
249
- const runner = new TrainerRunner(deps, {
250
- owner: 'test',
251
- runtimeKind: 'trainer',
252
- pollIntervalMs: 10,
253
- timeoutMs: 1000,
254
- });
255
- const result = await runner.run(TRAINER_TASK_ID);
256
- expect(result.status).toBe('succeeded');
257
- expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalledWith(TRAINER_TASK_ID, expect.stringContaining('trainer://'));
258
- });
259
- it('invalid output does not write artifact', async () => {
260
- const store = new MemoryPIArtifactStore();
261
- await store.upsertArtifact(makeRolloutReviewerArtifact());
262
- const deps = createMockDeps({ artifactStore: store });
263
- const invalidOutput = {
264
- taskId: 'wrong-task-id',
265
- sourceRolloutReviewerArtifactId: '',
266
- ruleCandidate: {
267
- toolScope: '',
268
- triggerCondition: '',
269
- proposedDecision: 'invalid',
270
- rationale: '',
271
- confidence: 1.5,
272
- },
273
- safety: {
274
- limitations: [],
275
- falsePositiveRisks: [],
276
- requiredReplayCases: [],
277
- },
278
- sourceTrace: {
279
- rolloutReviewerArtifactId: '',
280
- },
281
- generatedAt: '',
282
- };
283
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
284
- payload: invalidOutput,
285
- });
286
- const runner = new TrainerRunner(deps, {
287
- owner: 'test',
288
- runtimeKind: 'trainer',
289
- pollIntervalMs: 10,
290
- timeoutMs: 1000,
291
- });
292
- const result = await runner.run(TRAINER_TASK_ID);
293
- expect(result.status).toBe('failed');
294
- const artifacts = await store.listBySourceTaskId(TRAINER_TASK_ID);
295
- expect(artifacts).toHaveLength(0);
296
- });
297
- it('artifact write failure goes to retry/fail, not mark succeeded', async () => {
298
- const failingStore = {
299
- listBySourceTaskId: vi.fn().mockImplementation(async (sourceTaskId) => {
300
- return sourceTaskId === ROLLOUT_REVIEWER_TASK_ID ? [makeRolloutReviewerArtifact()] : [];
301
- }),
302
- upsertArtifact: vi.fn().mockRejectedValue(new Error('Disk full')),
303
- };
304
- const deps = createMockDeps({ artifactStore: failingStore });
305
- const runner = new TrainerRunner(deps, {
306
- owner: 'test',
307
- runtimeKind: 'trainer',
308
- pollIntervalMs: 10,
309
- timeoutMs: 1000,
310
- });
311
- const result = await runner.run(TRAINER_TASK_ID);
312
- expect(result.status).toBe('failed');
313
- expect(failingStore.listBySourceTaskId).toHaveBeenCalledWith(ROLLOUT_REVIEWER_TASK_ID);
314
- expect(failingStore.upsertArtifact).toHaveBeenCalled();
315
- expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
316
- });
317
- it('mismatched sourceRolloutReviewerArtifactId does not write artifact or mark succeeded', async () => {
318
- const store = new MemoryPIArtifactStore();
319
- await store.upsertArtifact(makeRolloutReviewerArtifact());
320
- const deps = createMockDeps({ artifactStore: store });
321
- const mismatchedOutput = makeTrainerOutput('wrong-artifact-id');
322
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
323
- payload: mismatchedOutput,
324
- });
325
- const runner = new TrainerRunner(deps, {
326
- owner: 'test',
327
- runtimeKind: 'trainer',
328
- pollIntervalMs: 10,
329
- timeoutMs: 1000,
330
- });
331
- const result = await runner.run(TRAINER_TASK_ID);
332
- expect(result.status).toBe('failed');
333
- expect(result.errorCategory).toBe('output_invalid');
334
- const artifacts = await store.listBySourceTaskId(TRAINER_TASK_ID);
335
- expect(artifacts).toHaveLength(0);
336
- expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
337
- });
338
- it('sourceTrace.rolloutReviewerArtifactId mismatch does not write artifact or mark succeeded', async () => {
339
- const store = new MemoryPIArtifactStore();
340
- await store.upsertArtifact(makeRolloutReviewerArtifact());
341
- const deps = createMockDeps({ artifactStore: store });
342
- const mismatchedOutput = makeTrainerOutput('pi-art-rollout-reviewer-001-run-001');
343
- mismatchedOutput.sourceTrace.rolloutReviewerArtifactId = 'wrong-trace-id';
344
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
345
- payload: mismatchedOutput,
346
- });
347
- const runner = new TrainerRunner(deps, {
348
- owner: 'test',
349
- runtimeKind: 'trainer',
350
- pollIntervalMs: 10,
351
- timeoutMs: 1000,
352
- });
353
- const result = await runner.run(TRAINER_TASK_ID);
354
- expect(result.status).toBe('failed');
355
- expect(result.errorCategory).toBe('output_invalid');
356
- const artifacts = await store.listBySourceTaskId(TRAINER_TASK_ID);
357
- expect(artifacts).toHaveLength(0);
358
- expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
359
- });
360
- it('output_invalid is permanent failure', async () => {
361
- const store = new MemoryPIArtifactStore();
362
- await store.upsertArtifact(makeRolloutReviewerArtifact());
363
- const deps = createMockDeps({ artifactStore: store });
364
- const invalidOutput = makeTrainerOutput('pi-art-rollout-reviewer-001-run-001');
365
- invalidOutput.ruleCandidate.proposedDecision = 'invalid';
366
- deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
367
- payload: invalidOutput,
368
- });
369
- const runner = new TrainerRunner(deps, {
370
- owner: 'test',
371
- runtimeKind: 'trainer',
372
- pollIntervalMs: 10,
373
- timeoutMs: 1000,
374
- });
375
- const result = await runner.run(TRAINER_TASK_ID);
376
- expect(result.status).toBe('failed');
377
- expect(result.errorCategory).toBe('output_invalid');
378
- expect(deps.stateManager.markTaskFailed).toHaveBeenCalledWith(TRAINER_TASK_ID, 'output_invalid');
379
- });
380
- });
381
- describe('TrainerRunner integration: test-double captures sourceRolloutReviewerArtifactId from prompt', () => {
382
- it('seed rollout_reviewer artifact -> run trainer with test-double -> succeeded with correct sourceRolloutReviewerArtifactId', async () => {
383
- const ROLLOUT_REVIEWER_ART_ID = 'pi-art-rollout-reviewer-real-001';
384
- const artifactStore = new MemoryPIArtifactStore();
385
- const rolloutReviewerArtifact = {
386
- artifactId: ROLLOUT_REVIEWER_ART_ID,
387
- artifactKind: 'principle',
388
- sourceTaskId: ROLLOUT_REVIEWER_TASK_ID,
389
- lineageArtifactIds: [],
390
- validationStatus: 'pending',
391
- contentJson: JSON.stringify({
392
- taskId: ROLLOUT_REVIEWER_TASK_ID,
393
- sourceEvaluatorArtifactId: 'pi-art-evaluator-001',
394
- review: {
395
- decision: 'approve_rollout',
396
- summary: 'The rollout plan is safe to proceed',
397
- confidence: 0.9,
398
- requiredChanges: [],
399
- rolloutRisks: [],
400
- safetyChecks: [],
401
- },
402
- sourceTrace: {
403
- evaluatorArtifactId: 'pi-art-evaluator-001',
404
- },
405
- risks: [],
406
- generatedAt: new Date().toISOString(),
407
- }),
408
- createdAt: new Date().toISOString(),
409
- updatedAt: new Date().toISOString(),
410
- };
411
- await artifactStore.upsertArtifact(rolloutReviewerArtifact);
412
- const trainerTask = makeTrainerTask();
413
- let capturedSourceRolloutReviewerArtifactId = undefined;
414
- const runtimeAdapter = new TestDoubleRuntimeAdapter({
415
- onStartRun: (input) => {
416
- try {
417
- const payloadStr = typeof input.inputPayload === 'string' ? input.inputPayload : JSON.stringify(input.inputPayload);
418
- const parsed = JSON.parse(payloadStr);
419
- if (typeof parsed.sourceRolloutReviewerArtifactId === 'string' && parsed.sourceRolloutReviewerArtifactId.trim() !== '') {
420
- capturedSourceRolloutReviewerArtifactId = parsed.sourceRolloutReviewerArtifactId;
421
- }
422
- }
423
- catch { /* ignore */ }
424
- return { runId: 'run-integration-001', runtimeKind: 'test-double', startedAt: new Date().toISOString() };
425
- },
426
- onPollRun: (_runId) => ({
427
- runId: _runId,
428
- status: 'succeeded',
429
- startedAt: new Date().toISOString(),
430
- endedAt: new Date().toISOString(),
431
- }),
432
- onFetchOutput: (_runId) => ({
433
- runId: _runId,
434
- payload: {
435
- taskId: TRAINER_TASK_ID,
436
- sourceRolloutReviewerArtifactId: capturedSourceRolloutReviewerArtifactId ?? ROLLOUT_REVIEWER_ART_ID,
437
- ruleCandidate: {
438
- toolScope: 'tool_call',
439
- triggerCondition: 'When a tool is called',
440
- proposedDecision: 'allow',
441
- rationale: 'Safe operation',
442
- confidence: 0.85,
443
- },
444
- safety: {
445
- limitations: [],
446
- falsePositiveRisks: [],
447
- requiredReplayCases: [],
448
- },
449
- sourceTrace: {
450
- rolloutReviewerArtifactId: capturedSourceRolloutReviewerArtifactId ?? ROLLOUT_REVIEWER_ART_ID,
451
- },
452
- generatedAt: new Date().toISOString(),
453
- },
454
- }),
455
- });
456
- const stateManager = {
457
- acquireLease: vi.fn().mockResolvedValue(trainerTask),
458
- getTask: vi.fn().mockImplementation((id) => {
459
- if (id === TRAINER_TASK_ID)
460
- return Promise.resolve(trainerTask);
461
- if (id === ROLLOUT_REVIEWER_TASK_ID)
462
- return Promise.resolve(makeRolloutReviewerTask());
463
- return Promise.resolve(null);
464
- }),
465
- getRunsByTask: vi.fn().mockResolvedValue([{
466
- runId: 'run-integration-001',
467
- taskId: TRAINER_TASK_ID,
468
- runtimeKind: 'trainer',
469
- startedAt: new Date().toISOString(),
470
- }]),
471
- getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
472
- runs: [{ runId: 'run-integration-001', taskId: TRAINER_TASK_ID, runtimeKind: 'trainer', startedAt: new Date().toISOString() }],
473
- degradedRuns: [],
474
- }),
475
- updateRunOutput: vi.fn().mockResolvedValue(undefined),
476
- markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
477
- markTaskFailed: vi.fn().mockResolvedValue(undefined),
478
- markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
479
- getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
480
- };
481
- const eventEmitter = {
482
- emitTelemetry: vi.fn(),
483
- };
484
- const deps = {
485
- stateManager,
486
- runtimeAdapter,
487
- eventEmitter,
488
- validator: new DefaultTrainerValidator(),
489
- artifactStore,
490
- };
491
- const runner = new TrainerRunner(deps, {
492
- owner: 'test-integration',
493
- runtimeKind: 'trainer',
494
- pollIntervalMs: 10,
495
- timeoutMs: 5000,
496
- });
497
- const result = await runner.run(TRAINER_TASK_ID);
498
- expect(result.status).toBe('succeeded');
499
- expect(capturedSourceRolloutReviewerArtifactId).toBe(ROLLOUT_REVIEWER_ART_ID);
500
- expect(result.output?.sourceRolloutReviewerArtifactId).toBe(ROLLOUT_REVIEWER_ART_ID);
501
- expect(result.output?.sourceTrace.rolloutReviewerArtifactId).toBe(ROLLOUT_REVIEWER_ART_ID);
502
- const artifacts = await artifactStore.listBySourceTaskId(TRAINER_TASK_ID);
503
- expect(artifacts).toHaveLength(1);
504
- expect(artifacts[0]?.artifactKind).toBe('rule');
505
- const [storedArtifact] = artifacts;
506
- expect(storedArtifact).toBeDefined();
507
- if (!storedArtifact)
508
- return;
509
- const storedOutput = JSON.parse(storedArtifact.contentJson);
510
- expect(storedOutput.sourceRolloutReviewerArtifactId).toBe(ROLLOUT_REVIEWER_ART_ID);
511
- expect(storedOutput.sourceTrace.rolloutReviewerArtifactId).toBe(ROLLOUT_REVIEWER_ART_ID);
512
- });
513
- });
514
- //# sourceMappingURL=trainer-runner-vslice.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trainer-runner-vslice.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/trainer-runner-vslice.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAKhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC,SAAS,uBAAuB,CAAC,YAAiC,EAAE;IAClE,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,4BAA4B;QACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,0BAA0B,CAAC;YACzC,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,EAAE;YACrB,kBAAkB,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,qCAAqC,EAAE,CAAC;SAChG,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,YAAiC,EAAE;IAC1D,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,0BAA0B,CAAC;YACzC,iBAAiB,EAAE,CAAC,wBAAwB,CAAC;YAC7C,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,qCAAqC,EAAE,CAAC;YAC9F,kBAAkB,EAAE,EAAE;SACvB,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,+BAAuC;IAChE,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,+BAA+B;QAC/B,aAAa,EAAE;YACb,SAAS,EAAE,WAAW;YACtB,gBAAgB,EAAE,+CAA+C;YACjE,gBAAgB,EAAE,cAAc;YAChC,kBAAkB,EAAE;gBAClB,WAAW,EAAE,gCAAgC;gBAC7C,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;aACzC;YACD,SAAS,EAAE,6CAA6C;YACxD,UAAU,EAAE,IAAI;SACjB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,+BAA+B,CAAC;YAC9C,kBAAkB,EAAE,CAAC,+CAA+C,CAAC;YACrE,mBAAmB,EAAE,CAAC,4BAA4B,EAAE,+BAA+B,CAAC;SACrF;QACD,WAAW,EAAE;YACX,yBAAyB,EAAE,+BAA+B;SAC3D;QACD,eAAe,EAAE,CAAC,aAAa,CAAC;QAChC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO;QACL,UAAU,EAAE,qCAAqC;QACjD,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,wBAAwB;QACtC,kBAAkB,EAAE,EAAE;QACtB,gBAAgB,EAAE,SAAS;QAC3B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,wBAAwB;YAChC,yBAAyB,EAAE,sBAAsB;YACjD,MAAM,EAAE;gBACN,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,qCAAqC;gBAC9C,UAAU,EAAE,GAAG;gBACf,eAAe,EAAE,EAAE;gBACnB,YAAY,EAAE,CAAC,gDAAgD,CAAC;gBAChE,YAAY,EAAE,CAAC,4CAA4C,CAAC;aAC7D;YACD,WAAW,EAAE;gBACX,mBAAmB,EAAE,sBAAsB;aAC5C;YACD,KAAK,EAAE,CAAC,kDAAkD,CAAC;YAC3D,WAAW,EAAE,0BAA0B;SACxC,CAAC;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,SAAS,cAAc,CAAC,YAAwC,EAAE;QAChE,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,IAAI,IAAI,qBAAqB,EAAE,CAAC;QAC7E,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,MAAM,mBAAmB,GAAG,uBAAuB,EAAE,CAAC;QAEtD,MAAM,YAAY,GAAG;YACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,EAAE;gBACjD,IAAI,EAAE,KAAK,eAAe;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChE,IAAI,EAAE,KAAK,wBAAwB;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBACjF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC;YACF,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACxC,KAAK,EAAE,iBAAiB;oBACxB,MAAM,EAAE,eAAe;oBACvB,WAAW,EAAE,SAAS;oBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACH,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACpD,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1H,YAAY,EAAE,EAAE;aACjB,CAAC;YACF,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACrD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SACpC,CAAC;QAEpC,MAAM,SAAS,GAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3H,MAAM,eAAe,GAAc,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAErF,MAAM,cAAc,GAAG;YACrB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACnD,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACrC,OAAO,EAAE,iBAAiB,CAAC,qCAAqC,CAAC;aAClE,CAAC;YACF,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACjB,CAAC;QAEjC,MAAM,YAAY,GAAG;YACnB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;SACS,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAEhD,OAAO;YACL,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,SAAS;YACT,aAAa;YACb,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,aAAa,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAElH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAC3D,eAAe,EACf,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,cAAc,EAAE,0BAA0B,CAAC;gBACzC,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,EAAE;gBACrB,kBAAkB,EAAE,EAAE;aACvB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAI,CAAC,YAAmD,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEzG,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,EAAE;YAC5G,IAAI,EAAE,KAAK,eAAe;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YACtE,IAAI,EAAE,KAAK,wBAAwB;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACpF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,kBAAkB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC9D,eAAe,EACf,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAoB;YACrC,MAAM,EAAE,eAAe;YACvB,+BAA+B,EAAE,EAAE;YACnC,aAAa,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,SAAoB;gBACtC,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,GAAG;aAChB;YACD,MAAM,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,kBAAkB,EAAE,EAAE;gBACtB,mBAAmB,EAAE,EAAE;aACxB;YACD,WAAW,EAAE;gBACX,yBAAyB,EAAE,EAAE;aAC9B;YACD,WAAW,EAAE,EAAE;SAChB,CAAC;QAED,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,YAAY,GAAG;YACnB,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAoB,EAAE,EAAE;gBAC5E,OAAO,YAAY,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,CAAC,CAAC;YACF,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;SACpC,CAAC;QAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;QACvF,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;QACjF,gBAAgB,CAAC,WAAkD,CAAC,yBAAyB,GAAG,gBAAgB,CAAC;QAEjH,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;QAC9E,aAAa,CAAC,aAAoD,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAEhG,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6FAA6F,EAAE,GAAG,EAAE;IAC3G,EAAE,CAAC,0HAA0H,EAAE,KAAK,IAAI,EAAE;QACxI,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;QACnE,MAAM,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAElD,MAAM,uBAAuB,GAAqB;YAChD,UAAU,EAAE,uBAAuB;YACnC,YAAY,EAAE,WAAW;YACzB,YAAY,EAAE,wBAAwB;YACtC,kBAAkB,EAAE,EAAE;YACtB,gBAAgB,EAAE,SAAS;YAC3B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC1B,MAAM,EAAE,wBAAwB;gBAChC,yBAAyB,EAAE,sBAAsB;gBACjD,MAAM,EAAE;oBACN,QAAQ,EAAE,iBAAiB;oBAC3B,OAAO,EAAE,qCAAqC;oBAC9C,UAAU,EAAE,GAAG;oBACf,eAAe,EAAE,EAAE;oBACnB,YAAY,EAAE,EAAE;oBAChB,YAAY,EAAE,EAAE;iBACjB;gBACD,WAAW,EAAE;oBACX,mBAAmB,EAAE,sBAAsB;iBAC5C;gBACD,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,MAAM,aAAa,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QAEtC,IAAI,uCAAuC,GAAuB,SAAS,CAAC;QAC5E,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC;YAClD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACpH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACtC,IAAI,OAAO,MAAM,CAAC,+BAA+B,KAAK,QAAQ,IAAI,MAAM,CAAC,+BAA+B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;wBACvH,uCAAuC,GAAG,MAAM,CAAC,+BAA+B,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3G,CAAC;YACD,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;gBAC9B,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,WAAW;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;YACF,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE;oBACP,MAAM,EAAE,eAAe;oBACvB,+BAA+B,EAAE,uCAAuC,IAAI,uBAAuB;oBACnG,aAAa,EAAE;wBACb,SAAS,EAAE,WAAW;wBACtB,gBAAgB,EAAE,uBAAuB;wBACzC,gBAAgB,EAAE,OAAO;wBACzB,SAAS,EAAE,gBAAgB;wBAC3B,UAAU,EAAE,IAAI;qBACjB;oBACD,MAAM,EAAE;wBACN,WAAW,EAAE,EAAE;wBACf,kBAAkB,EAAE,EAAE;wBACtB,mBAAmB,EAAE,EAAE;qBACxB;oBACD,WAAW,EAAE;wBACX,yBAAyB,EAAE,uCAAuC,IAAI,uBAAuB;qBAC9F;oBACD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG;YACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,EAAE;gBACjD,IAAI,EAAE,KAAK,eAAe;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChE,IAAI,EAAE,KAAK,wBAAwB;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;gBACvF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC;YACF,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACxC,KAAK,EAAE,qBAAqB;oBAC5B,MAAM,EAAE,eAAe;oBACvB,WAAW,EAAE,SAAS;oBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACH,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACpD,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9H,YAAY,EAAE,EAAE;aACjB,CAAC;YACF,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACrD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SACpC,CAAC;QAEpC,MAAM,YAAY,GAAG;YACnB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;SACS,CAAC;QAElC,MAAM,IAAI,GAAsB;YAC9B,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,SAAS,EAAE,IAAI,uBAAuB,EAAE;YACxC,aAAa;SACd,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,uCAAuC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAoB,CAAC;QAC/E,MAAM,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACnF,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=trainer-prompt-builder.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trainer-prompt-builder.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/trainer-prompt-builder.test.ts"],"names":[],"mappings":""}