create-principles-disciple 1.80.0 → 1.82.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 (183) hide show
  1. package/core/dist/runtime-v2/__tests__/admission-gate.test.js +6 -6
  2. package/core/dist/runtime-v2/__tests__/admission-gate.test.js.map +1 -1
  3. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +39 -0
  4. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  5. package/core/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +52 -0
  6. package/core/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
  7. package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +245 -1
  8. package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +1 -1
  9. package/core/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js +131 -1
  10. package/core/dist/runtime-v2/__tests__/feedback/redact-sensitive.test.js.map +1 -1
  11. package/core/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +425 -2
  12. package/core/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
  13. package/core/dist/runtime-v2/__tests__/telemetry-event.test.d.ts +2 -0
  14. package/core/dist/runtime-v2/__tests__/telemetry-event.test.d.ts.map +1 -0
  15. package/core/dist/runtime-v2/__tests__/telemetry-event.test.js +69 -0
  16. package/core/dist/runtime-v2/__tests__/telemetry-event.test.js.map +1 -0
  17. package/core/dist/runtime-v2/admission-gate.d.ts.map +1 -1
  18. package/core/dist/runtime-v2/admission-gate.js +0 -8
  19. package/core/dist/runtime-v2/admission-gate.js.map +1 -1
  20. package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts +15 -0
  21. package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.d.ts.map +1 -0
  22. package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +685 -0
  23. package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -0
  24. package/core/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts +13 -0
  25. package/core/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.d.ts.map +1 -0
  26. package/core/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +447 -0
  27. package/core/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +1 -0
  28. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts +12 -0
  29. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.d.ts.map +1 -0
  30. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +433 -0
  31. package/core/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -0
  32. package/core/dist/runtime-v2/config/index.d.ts +14 -0
  33. package/core/dist/runtime-v2/config/index.d.ts.map +1 -0
  34. package/core/dist/runtime-v2/config/index.js +16 -0
  35. package/core/dist/runtime-v2/config/index.js.map +1 -0
  36. package/core/dist/runtime-v2/config/pd-config-defaults.d.ts +14 -0
  37. package/core/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -0
  38. package/core/dist/runtime-v2/config/pd-config-defaults.js +74 -0
  39. package/core/dist/runtime-v2/config/pd-config-defaults.js.map +1 -0
  40. package/core/dist/runtime-v2/config/pd-config-effective.d.ts +14 -0
  41. package/core/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -0
  42. package/core/dist/runtime-v2/config/pd-config-effective.js +118 -0
  43. package/core/dist/runtime-v2/config/pd-config-effective.js.map +1 -0
  44. package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts +35 -0
  45. package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -0
  46. package/core/dist/runtime-v2/config/pd-config-feature-flags.js +99 -0
  47. package/core/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -0
  48. package/core/dist/runtime-v2/config/pd-config-redaction.d.ts +22 -0
  49. package/core/dist/runtime-v2/config/pd-config-redaction.d.ts.map +1 -0
  50. package/core/dist/runtime-v2/config/pd-config-redaction.js +179 -0
  51. package/core/dist/runtime-v2/config/pd-config-redaction.js.map +1 -0
  52. package/core/dist/runtime-v2/config/pd-config-types.d.ts +124 -0
  53. package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -0
  54. package/core/dist/runtime-v2/config/pd-config-types.js +35 -0
  55. package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -0
  56. package/core/dist/runtime-v2/config/pd-config-validate.d.ts +16 -0
  57. package/core/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -0
  58. package/core/dist/runtime-v2/config/pd-config-validate.js +443 -0
  59. package/core/dist/runtime-v2/config/pd-config-validate.js.map +1 -0
  60. package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js +10 -10
  61. package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js.map +1 -1
  62. package/core/dist/runtime-v2/feedback/index.d.ts +1 -1
  63. package/core/dist/runtime-v2/feedback/index.d.ts.map +1 -1
  64. package/core/dist/runtime-v2/feedback/index.js +1 -1
  65. package/core/dist/runtime-v2/feedback/index.js.map +1 -1
  66. package/core/dist/runtime-v2/feedback/redact-sensitive.d.ts +2 -0
  67. package/core/dist/runtime-v2/feedback/redact-sensitive.d.ts.map +1 -1
  68. package/core/dist/runtime-v2/feedback/redact-sensitive.js +32 -3
  69. package/core/dist/runtime-v2/feedback/redact-sensitive.js.map +1 -1
  70. package/core/dist/runtime-v2/index.d.ts +5 -1
  71. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  72. package/core/dist/runtime-v2/index.js +9 -1
  73. package/core/dist/runtime-v2/index.js.map +1 -1
  74. package/core/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts +2 -0
  75. package/core/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.d.ts.map +1 -0
  76. package/core/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js +398 -0
  77. package/core/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js.map +1 -0
  78. package/core/dist/runtime-v2/internalization/artificer-output.d.ts +3 -2
  79. package/core/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
  80. package/core/dist/runtime-v2/internalization/artificer-output.js +40 -31
  81. package/core/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
  82. package/core/dist/runtime-v2/internalization/artificer-runner.d.ts +59 -38
  83. package/core/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  84. package/core/dist/runtime-v2/internalization/artificer-runner.js +121 -395
  85. package/core/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  86. package/core/dist/runtime-v2/internalization/dreamer-output.d.ts +4 -3
  87. package/core/dist/runtime-v2/internalization/dreamer-output.d.ts.map +1 -1
  88. package/core/dist/runtime-v2/internalization/dreamer-output.js +11 -9
  89. package/core/dist/runtime-v2/internalization/dreamer-output.js.map +1 -1
  90. package/core/dist/runtime-v2/internalization/dreamer-runner.d.ts +31 -92
  91. package/core/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
  92. package/core/dist/runtime-v2/internalization/dreamer-runner.js +79 -495
  93. package/core/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
  94. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts +2 -2
  95. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  96. package/core/dist/runtime-v2/internalization/evaluator-output.js +29 -23
  97. package/core/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  98. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts +74 -48
  99. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  100. package/core/dist/runtime-v2/internalization/evaluator-runner.js +164 -444
  101. package/core/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  102. package/core/dist/runtime-v2/internalization/philosopher-output.d.ts +8 -2
  103. package/core/dist/runtime-v2/internalization/philosopher-output.d.ts.map +1 -1
  104. package/core/dist/runtime-v2/internalization/philosopher-output.js +16 -11
  105. package/core/dist/runtime-v2/internalization/philosopher-output.js.map +1 -1
  106. package/core/dist/runtime-v2/internalization/philosopher-runner.d.ts +36 -55
  107. package/core/dist/runtime-v2/internalization/philosopher-runner.d.ts.map +1 -1
  108. package/core/dist/runtime-v2/internalization/philosopher-runner.js +117 -401
  109. package/core/dist/runtime-v2/internalization/philosopher-runner.js.map +1 -1
  110. package/core/dist/runtime-v2/internalization/scribe-output.d.ts +8 -2
  111. package/core/dist/runtime-v2/internalization/scribe-output.d.ts.map +1 -1
  112. package/core/dist/runtime-v2/internalization/scribe-output.js +33 -17
  113. package/core/dist/runtime-v2/internalization/scribe-output.js.map +1 -1
  114. package/core/dist/runtime-v2/internalization/scribe-runner.d.ts +56 -49
  115. package/core/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  116. package/core/dist/runtime-v2/internalization/scribe-runner.js +116 -398
  117. package/core/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  118. package/core/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts +2 -0
  119. package/core/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.d.ts.map +1 -0
  120. package/core/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +379 -0
  121. package/core/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +1 -0
  122. package/core/dist/runtime-v2/runner/base-peer-runner.d.ts +122 -0
  123. package/core/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -0
  124. package/core/dist/runtime-v2/runner/base-peer-runner.js +528 -0
  125. package/core/dist/runtime-v2/runner/base-peer-runner.js.map +1 -0
  126. package/core/dist/runtime-v2/runner/peer-runner-types.d.ts +107 -0
  127. package/core/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -0
  128. package/core/dist/runtime-v2/runner/peer-runner-types.js +13 -0
  129. package/core/dist/runtime-v2/runner/peer-runner-types.js.map +1 -0
  130. package/core/dist/telemetry-event.d.ts +2 -2
  131. package/core/dist/telemetry-event.d.ts.map +1 -1
  132. package/core/dist/telemetry-event.js +89 -0
  133. package/core/dist/telemetry-event.js.map +1 -1
  134. package/dist/installer.d.ts +1 -1
  135. package/dist/installer.d.ts.map +1 -1
  136. package/dist/installer.js +24 -10
  137. package/dist/installer.js.map +1 -1
  138. package/dist/mvp-config.d.ts +33 -0
  139. package/dist/mvp-config.d.ts.map +1 -1
  140. package/dist/mvp-config.js +174 -0
  141. package/dist/mvp-config.js.map +1 -1
  142. package/package.json +1 -1
  143. package/pd-cli/dist/commands/config-doctor.d.ts +17 -0
  144. package/pd-cli/dist/commands/config-doctor.d.ts.map +1 -0
  145. package/pd-cli/dist/commands/config-doctor.js +143 -0
  146. package/pd-cli/dist/commands/config-doctor.js.map +1 -0
  147. package/pd-cli/dist/commands/console.d.ts +18 -0
  148. package/pd-cli/dist/commands/console.d.ts.map +1 -1
  149. package/pd-cli/dist/commands/console.js +439 -0
  150. package/pd-cli/dist/commands/console.js.map +1 -1
  151. package/pd-cli/dist/commands/runtime-features.d.ts +23 -8
  152. package/pd-cli/dist/commands/runtime-features.d.ts.map +1 -1
  153. package/pd-cli/dist/commands/runtime-features.js +72 -31
  154. package/pd-cli/dist/commands/runtime-features.js.map +1 -1
  155. package/pd-cli/dist/index.d.ts +1 -1
  156. package/pd-cli/dist/index.js +83 -31
  157. package/pd-cli/dist/index.js.map +1 -1
  158. package/pd-cli/dist/services/config-doctor.d.ts +102 -0
  159. package/pd-cli/dist/services/config-doctor.d.ts.map +1 -0
  160. package/pd-cli/dist/services/config-doctor.js +426 -0
  161. package/pd-cli/dist/services/config-doctor.js.map +1 -0
  162. package/pd-cli/dist/services/console-launcher.d.ts +110 -0
  163. package/pd-cli/dist/services/console-launcher.d.ts.map +1 -0
  164. package/pd-cli/dist/services/console-launcher.js +282 -0
  165. package/pd-cli/dist/services/console-launcher.js.map +1 -0
  166. package/pd-cli/dist/services/pd-config-loader.d.ts +64 -0
  167. package/pd-cli/dist/services/pd-config-loader.d.ts.map +1 -0
  168. package/pd-cli/dist/services/pd-config-loader.js +156 -0
  169. package/pd-cli/dist/services/pd-config-loader.js.map +1 -0
  170. package/pd-cli/package.json +3 -1
  171. package/plugin/dist/core/event-log.d.ts +10 -0
  172. package/plugin/dist/core/event-log.js +85 -1
  173. package/plugin/dist/core/pd-config-loader.d.ts +96 -0
  174. package/plugin/dist/core/pd-config-loader.js +307 -0
  175. package/plugin/dist/core/runtime-v2-prompt-activation-reader.d.ts +4 -0
  176. package/plugin/dist/core/runtime-v2-prompt-activation-reader.js +12 -56
  177. package/plugin/dist/core/surface-guard.d.ts +12 -8
  178. package/plugin/dist/core/surface-guard.js +51 -2
  179. package/plugin/dist/hooks/gate.js +3 -0
  180. package/plugin/dist/index.d.ts +4 -0
  181. package/plugin/dist/index.js +8 -52
  182. package/plugin/dist/service/correction-observer-service.d.ts +8 -0
  183. package/plugin/dist/service/correction-observer-service.js +48 -29
@@ -0,0 +1,398 @@
1
+ /**
2
+ * PhilosopherRunner trust-boundary and behavior parity tests (PRI-new).
3
+ *
4
+ * Proves that after BasePeerRunner migration:
5
+ * 1. Malformed runtime payload never reaches typed hooks or artifact commit
6
+ * 2. Validation failure does not call success commit
7
+ * 3. Successful run creates expected artifact and marks task succeeded
8
+ * 4. Lease conflict is non-mutating
9
+ * 5. postFetchTransform receives untrusted data, checkLineageIntegrity receives validated output
10
+ */
11
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
12
+ import { PhilosopherRunner } from '../philosopher-runner.js';
13
+ import { DefaultPhilosopherValidator } from '../philosopher-output.js';
14
+ import { MemoryPIArtifactStore } from '../pi-artifact-store.js';
15
+ import { PDRuntimeError } from '../../error-categories.js';
16
+ import { RunnerPhase } from '../../runner/runner-phase.js';
17
+ import { createPITaskDiagnosticJson } from '../pitask-metadata.js';
18
+ const DREAMER_TASK_ID = 'dreamer-tb-001';
19
+ const PHILOSOPHER_TASK_ID = 'philosopher-tb-001';
20
+ function makeDreamerArtifact() {
21
+ return {
22
+ artifactId: 'pi-art-dreamer-tb-001-run-001',
23
+ artifactKind: 'principle',
24
+ sourceTaskId: DREAMER_TASK_ID,
25
+ lineageArtifactIds: [],
26
+ validationStatus: 'pending',
27
+ contentJson: JSON.stringify({
28
+ valid: true,
29
+ taskId: DREAMER_TASK_ID,
30
+ candidates: [{
31
+ candidateIndex: 0,
32
+ badDecision: 'Ignored error handling',
33
+ betterDecision: 'Add try/catch',
34
+ rationale: 'Prevents unhandled rejections',
35
+ confidence: 0.85,
36
+ riskLevel: 'low',
37
+ strategicPerspective: 'reliability',
38
+ }],
39
+ contextRefs: [],
40
+ generatedAt: new Date().toISOString(),
41
+ }),
42
+ createdAt: new Date().toISOString(),
43
+ updatedAt: new Date().toISOString(),
44
+ };
45
+ }
46
+ function makePhilosopherOutput() {
47
+ return {
48
+ taskId: PHILOSOPHER_TASK_ID,
49
+ sourceDreamerArtifactId: 'pi-art-dreamer-tb-001-run-001',
50
+ thesis: 'Error handling should be systematic',
51
+ principleCandidate: {
52
+ title: 'Systematic Error Handling',
53
+ rationale: 'Uncaught errors cascade',
54
+ scope: 'All async operations',
55
+ confidence: 0.9,
56
+ },
57
+ risks: ['May add latency'],
58
+ generatedAt: new Date().toISOString(),
59
+ };
60
+ }
61
+ function makePhilosopherTask(overrides = {}) {
62
+ return {
63
+ taskId: PHILOSOPHER_TASK_ID,
64
+ taskKind: 'philosopher',
65
+ status: 'pending',
66
+ attemptCount: 0,
67
+ maxAttempts: 3,
68
+ createdAt: new Date().toISOString(),
69
+ updatedAt: new Date().toISOString(),
70
+ diagnosticJson: createPITaskDiagnosticJson({
71
+ dependencyTaskIds: [DREAMER_TASK_ID],
72
+ channel: 'prompt',
73
+ timeoutMs: 300_000,
74
+ inputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-dreamer-tb-001-run-001' }],
75
+ outputArtifactRefs: [],
76
+ }),
77
+ ...overrides,
78
+ };
79
+ }
80
+ function makeDreamerTask() {
81
+ return {
82
+ taskId: DREAMER_TASK_ID,
83
+ taskKind: 'dreamer',
84
+ status: 'succeeded',
85
+ attemptCount: 1,
86
+ maxAttempts: 3,
87
+ resultRef: 'dreamer://run-001',
88
+ createdAt: new Date().toISOString(),
89
+ updatedAt: new Date().toISOString(),
90
+ diagnosticJson: createPITaskDiagnosticJson({
91
+ dependencyTaskIds: [],
92
+ channel: 'prompt',
93
+ timeoutMs: 300_000,
94
+ inputArtifactRefs: [],
95
+ outputArtifactRefs: [{ artifactType: 'principle', ref: 'pi-art-dreamer-tb-001-run-001' }],
96
+ }),
97
+ };
98
+ }
99
+ describe('PhilosopherRunner trust boundary (PRI-new)', () => {
100
+ let artifactStore;
101
+ beforeEach(() => {
102
+ artifactStore = new MemoryPIArtifactStore();
103
+ });
104
+ function createMockDeps(overrides = {}) {
105
+ const philosopherTask = makePhilosopherTask();
106
+ const dreamerTask = makeDreamerTask();
107
+ const stateManager = {
108
+ acquireLease: vi.fn().mockResolvedValue(philosopherTask),
109
+ getTask: vi.fn().mockImplementation((id) => {
110
+ if (id === PHILOSOPHER_TASK_ID)
111
+ return Promise.resolve(philosopherTask);
112
+ if (id === DREAMER_TASK_ID)
113
+ return Promise.resolve(dreamerTask);
114
+ return Promise.resolve(null);
115
+ }),
116
+ getRunsByTask: vi.fn().mockResolvedValue([{
117
+ runId: 'run-phil-tb-001',
118
+ taskId: PHILOSOPHER_TASK_ID,
119
+ runtimeKind: 'philosopher',
120
+ startedAt: new Date().toISOString(),
121
+ }]),
122
+ updateRunOutput: vi.fn().mockResolvedValue(undefined),
123
+ markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
124
+ markTaskFailed: vi.fn().mockResolvedValue(undefined),
125
+ markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
126
+ getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
127
+ };
128
+ const runHandle = { runId: 'run-phil-tb-001', runtimeKind: 'test-double', startedAt: new Date().toISOString() };
129
+ const succeededStatus = { status: 'succeeded', runId: 'run-phil-tb-001' };
130
+ const runtimeAdapter = {
131
+ startRun: vi.fn().mockResolvedValue(runHandle),
132
+ pollRun: vi.fn().mockResolvedValue(succeededStatus),
133
+ fetchOutput: vi.fn().mockResolvedValue({ payload: makePhilosopherOutput() }),
134
+ cancelRun: vi.fn().mockResolvedValue(undefined),
135
+ };
136
+ const eventEmitter = {
137
+ emitTelemetry: vi.fn(),
138
+ };
139
+ const validator = new DefaultPhilosopherValidator();
140
+ return {
141
+ stateManager,
142
+ runtimeAdapter,
143
+ eventEmitter,
144
+ validator,
145
+ artifactStore,
146
+ ...overrides,
147
+ };
148
+ }
149
+ it('malformed payload (non-object) does not write artifact or mark succeeded', async () => {
150
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
151
+ const deps = createMockDeps({ artifactStore });
152
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
153
+ payload: 'not-an-object',
154
+ });
155
+ const runner = new PhilosopherRunner(deps, {
156
+ owner: 'test',
157
+ runtimeKind: 'philosopher',
158
+ pollIntervalMs: 10,
159
+ timeoutMs: 1000,
160
+ });
161
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
162
+ expect(result.status).toBe('failed');
163
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
164
+ const artifacts = await artifactStore.listBySourceTaskId(PHILOSOPHER_TASK_ID);
165
+ expect(artifacts).toHaveLength(0);
166
+ });
167
+ it('malformed payload (null) does not write artifact or mark succeeded', async () => {
168
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
169
+ const deps = createMockDeps({ artifactStore });
170
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
171
+ payload: null,
172
+ });
173
+ const runner = new PhilosopherRunner(deps, {
174
+ owner: 'test',
175
+ runtimeKind: 'philosopher',
176
+ pollIntervalMs: 10,
177
+ timeoutMs: 1000,
178
+ });
179
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
180
+ expect(result.status).toBe('failed');
181
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
182
+ });
183
+ it('validation failure does not write artifact or mark succeeded', async () => {
184
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
185
+ const deps = createMockDeps({ artifactStore });
186
+ const invalidOutput = {
187
+ taskId: 'wrong-id',
188
+ sourceDreamerArtifactId: '',
189
+ thesis: '',
190
+ principleCandidate: { title: '', rationale: '', scope: '', confidence: 2.0 },
191
+ risks: 'not-array',
192
+ generatedAt: '',
193
+ };
194
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
195
+ payload: invalidOutput,
196
+ });
197
+ const runner = new PhilosopherRunner(deps, {
198
+ owner: 'test',
199
+ runtimeKind: 'philosopher',
200
+ pollIntervalMs: 10,
201
+ timeoutMs: 1000,
202
+ });
203
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
204
+ expect(result.status).toBe('failed');
205
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
206
+ const artifacts = await artifactStore.listBySourceTaskId(PHILOSOPHER_TASK_ID);
207
+ expect(artifacts).toHaveLength(0);
208
+ });
209
+ it('valid output goes through full success path — artifact written and task succeeded', async () => {
210
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
211
+ const deps = createMockDeps({ artifactStore });
212
+ const runner = new PhilosopherRunner(deps, {
213
+ owner: 'test',
214
+ runtimeKind: 'philosopher',
215
+ pollIntervalMs: 10,
216
+ timeoutMs: 1000,
217
+ });
218
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
219
+ expect(result.status).toBe('succeeded');
220
+ expect(result.artifactId).toBeDefined();
221
+ expect(result.output).toBeDefined();
222
+ expect(result.output?.principleCandidate.title).toBe('Systematic Error Handling');
223
+ expect(runner.currentPhase).toBe(RunnerPhase.Completed);
224
+ expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalledWith(PHILOSOPHER_TASK_ID, expect.stringContaining('philosopher://'));
225
+ const artifacts = await artifactStore.listBySourceTaskId(PHILOSOPHER_TASK_ID);
226
+ expect(artifacts).toHaveLength(1);
227
+ expect(artifacts[0]?.artifactKind).toBe('principle');
228
+ });
229
+ it('lease conflict does not mutate task state', async () => {
230
+ const deps = createMockDeps();
231
+ deps.stateManager.acquireLease = vi.fn().mockRejectedValue(new PDRuntimeError('lease_conflict', 'Another runner holds the lease'));
232
+ const runner = new PhilosopherRunner(deps, {
233
+ owner: 'test',
234
+ runtimeKind: 'philosopher',
235
+ pollIntervalMs: 10,
236
+ timeoutMs: 1000,
237
+ });
238
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
239
+ expect(result.status).toBe('failed');
240
+ expect(result.errorCategory).toBe('lease_conflict');
241
+ expect(deps.stateManager.markTaskFailed).not.toHaveBeenCalled();
242
+ expect(deps.stateManager.markTaskRetryWait).not.toHaveBeenCalled();
243
+ });
244
+ it('taskId mismatch in output fails validation loud', async () => {
245
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
246
+ const deps = createMockDeps({ artifactStore });
247
+ const mismatchedOutput = { ...makePhilosopherOutput(), taskId: 'wrong-task-id' };
248
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
249
+ payload: mismatchedOutput,
250
+ });
251
+ const runner = new PhilosopherRunner(deps, {
252
+ owner: 'test',
253
+ runtimeKind: 'philosopher',
254
+ pollIntervalMs: 10,
255
+ timeoutMs: 1000,
256
+ });
257
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
258
+ expect(result.status).toBe('failed');
259
+ // output_invalid is transient; retry policy says shouldRetry=false → max_attempts_exceeded
260
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
261
+ expect(result.failureReason).toContain('taskId mismatch');
262
+ });
263
+ it('validation failure does not set phase to Completed', async () => {
264
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
265
+ const deps = createMockDeps({ artifactStore });
266
+ const invalidOutput = {
267
+ taskId: 'wrong-id',
268
+ sourceDreamerArtifactId: '',
269
+ thesis: '',
270
+ principleCandidate: { title: '', rationale: '', scope: '', confidence: 2.0 },
271
+ risks: 'not-array',
272
+ generatedAt: '',
273
+ };
274
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
275
+ payload: invalidOutput,
276
+ });
277
+ const runner = new PhilosopherRunner(deps, {
278
+ owner: 'test',
279
+ runtimeKind: 'philosopher',
280
+ pollIntervalMs: 10,
281
+ timeoutMs: 1000,
282
+ });
283
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
284
+ expect(result.status).toBe('failed');
285
+ expect(runner.currentPhase).not.toBe(RunnerPhase.Completed);
286
+ expect(runner.currentPhase).toBe(RunnerPhase.Failed);
287
+ });
288
+ it('postFetchTransform re-injects taskId when stripped — phase is Completed', async () => {
289
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
290
+ const deps = createMockDeps({ artifactStore });
291
+ // Simulate adapter stripping lineage fields (PRI-272)
292
+ const strippedOutput = { ...makePhilosopherOutput() };
293
+ delete strippedOutput.taskId;
294
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
295
+ payload: strippedOutput,
296
+ });
297
+ const runner = new PhilosopherRunner(deps, {
298
+ owner: 'test',
299
+ runtimeKind: 'philosopher',
300
+ pollIntervalMs: 10,
301
+ timeoutMs: 1000,
302
+ });
303
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
304
+ // postFetchTransform should re-inject taskId, then validation should pass
305
+ expect(result.status).toBe('succeeded');
306
+ expect(runner.currentPhase).toBe(RunnerPhase.Completed);
307
+ });
308
+ it('present-but-empty taskId fails validation (not silently corrected)', async () => {
309
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
310
+ const deps = createMockDeps({ artifactStore });
311
+ const emptyTaskIdOutput = { ...makePhilosopherOutput(), taskId: '' };
312
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
313
+ payload: emptyTaskIdOutput,
314
+ });
315
+ const runner = new PhilosopherRunner(deps, {
316
+ owner: 'test',
317
+ runtimeKind: 'philosopher',
318
+ pollIntervalMs: 10,
319
+ timeoutMs: 1000,
320
+ });
321
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
322
+ expect(result.status).toBe('failed');
323
+ // output_invalid is transient; retry policy says shouldRetry=false → max_attempts_exceeded
324
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
325
+ // postFetchTransform should NOT overwrite present-but-empty taskId
326
+ expect(result.failureReason).toContain('taskId mismatch');
327
+ });
328
+ it('risks with non-string elements fails validation (ERR-005 Rule 4)', async () => {
329
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
330
+ const deps = createMockDeps({ artifactStore });
331
+ const badRisksOutput = { ...makePhilosopherOutput(), risks: [1, {}] };
332
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
333
+ payload: badRisksOutput,
334
+ });
335
+ const runner = new PhilosopherRunner(deps, {
336
+ owner: 'test',
337
+ runtimeKind: 'philosopher',
338
+ pollIntervalMs: 10,
339
+ timeoutMs: 1000,
340
+ });
341
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
342
+ expect(result.status).toBe('failed');
343
+ expect(result.failureReason).toContain('risks must contain only strings');
344
+ });
345
+ it('sourceDreamerArtifactId mismatch fails loud before artifact commit (ERR-004)', async () => {
346
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
347
+ const deps = createMockDeps({ artifactStore });
348
+ const mismatchedIdOutput = { ...makePhilosopherOutput(), sourceDreamerArtifactId: 'wrong-artifact-id' };
349
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
350
+ payload: mismatchedIdOutput,
351
+ });
352
+ const runner = new PhilosopherRunner(deps, {
353
+ owner: 'test',
354
+ runtimeKind: 'philosopher',
355
+ pollIntervalMs: 10,
356
+ timeoutMs: 1000,
357
+ });
358
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
359
+ expect(result.status).toBe('failed');
360
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
361
+ const artifacts = await artifactStore.listBySourceTaskId(PHILOSOPHER_TASK_ID);
362
+ expect(artifacts).toHaveLength(0);
363
+ });
364
+ it('invalid errorCategory from custom validator fails loud and does not leak through', async () => {
365
+ await artifactStore.upsertArtifact(makeDreamerArtifact());
366
+ // Custom validator returning an invalid errorCategory string
367
+ const rogueValidator = {
368
+ validate: vi.fn().mockResolvedValue({
369
+ valid: false,
370
+ errors: ['some validation error'],
371
+ errorCategory: 'not_a_real_category',
372
+ }),
373
+ };
374
+ const deps = createMockDeps({ artifactStore, validator: rogueValidator });
375
+ const runner = new PhilosopherRunner(deps, {
376
+ owner: 'test',
377
+ runtimeKind: 'philosopher',
378
+ pollIntervalMs: 10,
379
+ timeoutMs: 1000,
380
+ });
381
+ const result = await runner.run(PHILOSOPHER_TASK_ID);
382
+ expect(result.status).toBe('failed');
383
+ // The invalid category must NOT leak into result.errorCategory
384
+ expect(result.errorCategory).not.toBe('not_a_real_category');
385
+ // errorCategory should be a valid PDErrorCategory (output_invalid from the guard,
386
+ // then escalated by retryOrFail to max_attempts_exceeded since output_invalid is transient
387
+ // and retry policy returns shouldRetry=false)
388
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
389
+ // failureReason must mention the invalid errorCategory
390
+ expect(result.failureReason).toContain('invalid errorCategory');
391
+ expect(result.failureReason).toContain('not_a_real_category');
392
+ // No artifact written, no task marked succeeded
393
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
394
+ const artifacts = await artifactStore.listBySourceTaskId(PHILOSOPHER_TASK_ID);
395
+ expect(artifacts).toHaveLength(0);
396
+ });
397
+ });
398
+ //# sourceMappingURL=philosopher-runner-trust-boundary.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"philosopher-runner-trust-boundary.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.ts"],"names":[],"mappings":"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"}
@@ -59,9 +59,10 @@ export interface ArtificerValidationResult {
59
59
  readonly errorCategory?: string;
60
60
  }
61
61
  export interface ArtificerValidator {
62
- validate(output: ArtificerOutputV1, taskId: string, expectedSourceScribeArtifactId?: string): Promise<ArtificerValidationResult>;
62
+ /** Validate untrusted output. Accepts `unknown` must perform runtime checks (ERR-001). */
63
+ validate(output: unknown, taskId: string, expectedSourceScribeArtifactId?: string): Promise<ArtificerValidationResult>;
63
64
  }
64
65
  export declare class DefaultArtificerValidator implements ArtificerValidator {
65
- validate(output: ArtificerOutputV1, taskId: string, expectedSourceScribeArtifactId?: string): Promise<ArtificerValidationResult>;
66
+ validate(output: unknown, taskId: string, expectedSourceScribeArtifactId?: string): Promise<ArtificerValidationResult>;
66
67
  }
67
68
  //# sourceMappingURL=artificer-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artificer-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,iCAAiC;;;;;;;EAO5C,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;EAIrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAClI;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IAE5D,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAuEvI"}
1
+ {"version":3,"file":"artificer-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,iCAAiC;;;;;;;EAO5C,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;EAIrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACxH;AAMD,qBAAa,yBAA0B,YAAW,kBAAkB;IAE5D,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA8E7H"}
@@ -20,79 +20,88 @@ export const ArtificerOutputV1Schema = Type.Object({
20
20
  risks: Type.Array(Type.String()),
21
21
  generatedAt: Type.String({ minLength: 1 }),
22
22
  });
23
+ function isRecord(v) {
24
+ return v !== null && typeof v === 'object' && !Array.isArray(v);
25
+ }
23
26
  export class DefaultArtificerValidator {
24
27
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
25
28
  async validate(output, taskId, expectedSourceScribeArtifactId) {
26
29
  const errors = [];
27
- if (typeof output !== 'object' || output === null) {
30
+ if (!isRecord(output)) {
28
31
  return { valid: false, errors: ['Output is not an object'], errorCategory: 'output_invalid' };
29
32
  }
30
- if (output.taskId !== taskId) {
31
- errors.push(`taskId mismatch: expected ${taskId}, got ${String(output.taskId)}`);
33
+ const rec = output;
34
+ if (!Object.hasOwn(rec, 'taskId') || rec.taskId !== taskId) {
35
+ errors.push(`taskId mismatch: expected ${taskId}, got ${String(rec.taskId)}`);
32
36
  }
33
- if (typeof output.sourceScribeArtifactId !== 'string' || output.sourceScribeArtifactId.trim() === '') {
37
+ if (!Object.hasOwn(rec, 'sourceScribeArtifactId') || typeof rec.sourceScribeArtifactId !== 'string' || rec.sourceScribeArtifactId.trim() === '') {
34
38
  errors.push('sourceScribeArtifactId must be non-empty string');
35
39
  }
36
- else if (expectedSourceScribeArtifactId && output.sourceScribeArtifactId !== expectedSourceScribeArtifactId) {
37
- errors.push(`sourceScribeArtifactId mismatch: expected ${expectedSourceScribeArtifactId}, got ${output.sourceScribeArtifactId}`);
40
+ else if (expectedSourceScribeArtifactId && rec.sourceScribeArtifactId !== expectedSourceScribeArtifactId) {
41
+ errors.push(`sourceScribeArtifactId mismatch: expected ${expectedSourceScribeArtifactId}, got ${rec.sourceScribeArtifactId}`);
38
42
  }
39
- if (typeof output.implementationPlan !== 'object' || output.implementationPlan === null) {
43
+ if (!Object.hasOwn(rec, 'implementationPlan') || !isRecord(rec.implementationPlan)) {
40
44
  errors.push('implementationPlan must be an object');
41
45
  }
42
46
  else {
43
- const ip = output.implementationPlan;
44
- if (typeof ip.summary !== 'string' || (ip.summary).trim() === '')
47
+ const ip = rec.implementationPlan;
48
+ if (!Object.hasOwn(ip, 'summary') || typeof ip.summary !== 'string' || ip.summary.trim() === '')
45
49
  errors.push('implementationPlan.summary must be non-empty string');
46
- if (typeof ip.targetSurface !== 'string' || (ip.targetSurface).trim() === '')
50
+ if (!Object.hasOwn(ip, 'targetSurface') || typeof ip.targetSurface !== 'string' || ip.targetSurface.trim() === '')
47
51
  errors.push('implementationPlan.targetSurface must be non-empty string');
48
- if (!Array.isArray(ip.changes))
52
+ if (!Object.hasOwn(ip, 'changes') || !Array.isArray(ip.changes))
49
53
  errors.push('implementationPlan.changes must be an array');
50
- else if (!ip.changes.every(e => typeof e === 'string'))
54
+ else if (!ip.changes.every((e) => typeof e === 'string'))
51
55
  errors.push('implementationPlan.changes must be an array of strings');
52
- if (!Array.isArray(ip.tests))
56
+ if (!Object.hasOwn(ip, 'tests') || !Array.isArray(ip.tests))
53
57
  errors.push('implementationPlan.tests must be an array');
54
- else if (!ip.tests.every(e => typeof e === 'string'))
58
+ else if (!ip.tests.every((e) => typeof e === 'string'))
55
59
  errors.push('implementationPlan.tests must be an array of strings');
56
- if (!Array.isArray(ip.rolloutNotes))
60
+ if (!Object.hasOwn(ip, 'rolloutNotes') || !Array.isArray(ip.rolloutNotes))
57
61
  errors.push('implementationPlan.rolloutNotes must be an array');
58
- else if (!ip.rolloutNotes.every(e => typeof e === 'string'))
62
+ else if (!ip.rolloutNotes.every((e) => typeof e === 'string'))
59
63
  errors.push('implementationPlan.rolloutNotes must be an array of strings');
60
- if (typeof ip.confidence !== 'number' || !Number.isFinite(ip.confidence))
64
+ if (!Object.hasOwn(ip, 'confidence') || typeof ip.confidence !== 'number' || !Number.isFinite(ip.confidence))
61
65
  errors.push('implementationPlan.confidence must be number');
62
66
  else if (ip.confidence < 0 || ip.confidence > 1)
63
67
  errors.push('implementationPlan.confidence must be in [0, 1]');
64
68
  }
65
- if (typeof output.sourceTrace !== 'object' || output.sourceTrace === null) {
69
+ if (!Object.hasOwn(rec, 'sourceTrace') || !isRecord(rec.sourceTrace)) {
66
70
  errors.push('sourceTrace must be an object');
67
71
  }
68
72
  else {
69
- const st = output.sourceTrace;
70
- if (typeof st.scribeArtifactId !== 'string' || (st.scribeArtifactId).trim() === '') {
73
+ const st = rec.sourceTrace;
74
+ if (!Object.hasOwn(st, 'scribeArtifactId') || typeof st.scribeArtifactId !== 'string' || st.scribeArtifactId.trim() === '') {
71
75
  errors.push('sourceTrace.scribeArtifactId must be non-empty string');
72
76
  }
73
77
  else if (expectedSourceScribeArtifactId && st.scribeArtifactId !== expectedSourceScribeArtifactId) {
74
78
  errors.push(`sourceTrace.scribeArtifactId mismatch: expected ${expectedSourceScribeArtifactId}, got ${st.scribeArtifactId}`);
75
79
  }
76
- if (st.philosopherArtifactId !== undefined && typeof st.philosopherArtifactId !== 'string') {
77
- errors.push('sourceTrace.philosopherArtifactId must be string if present');
80
+ if (Object.hasOwn(st, 'philosopherArtifactId') && st.philosopherArtifactId !== undefined) {
81
+ if (typeof st.philosopherArtifactId !== 'string' || st.philosopherArtifactId.trim() === '') {
82
+ errors.push('sourceTrace.philosopherArtifactId must be non-empty string if present');
83
+ }
78
84
  }
79
- if (st.dreamerArtifactId !== undefined && typeof st.dreamerArtifactId !== 'string') {
80
- errors.push('sourceTrace.dreamerArtifactId must be string if present');
85
+ if (Object.hasOwn(st, 'dreamerArtifactId') && st.dreamerArtifactId !== undefined) {
86
+ if (typeof st.dreamerArtifactId !== 'string' || st.dreamerArtifactId.trim() === '') {
87
+ errors.push('sourceTrace.dreamerArtifactId must be non-empty string if present');
88
+ }
81
89
  }
82
90
  }
83
- if (!Array.isArray(output.risks)) {
91
+ if (!Object.hasOwn(rec, 'risks') || !Array.isArray(rec.risks)) {
84
92
  errors.push('risks must be an array');
85
93
  }
86
- else if (!output.risks.every(e => typeof e === 'string')) {
94
+ else if (!rec.risks.every((e) => typeof e === 'string')) {
87
95
  errors.push('risks must be an array of strings');
88
96
  }
89
- if (typeof output.sourceScribeArtifactId === 'string' && output.sourceScribeArtifactId.trim() !== ''
90
- && typeof output.sourceTrace === 'object' && output.sourceTrace !== null
91
- && typeof output.sourceTrace.scribeArtifactId === 'string'
92
- && output.sourceScribeArtifactId !== output.sourceTrace.scribeArtifactId) {
97
+ if (typeof rec.sourceScribeArtifactId === 'string' && rec.sourceScribeArtifactId.trim() !== ''
98
+ && isRecord(rec.sourceTrace)
99
+ && Object.hasOwn(rec.sourceTrace, 'scribeArtifactId')
100
+ && typeof rec.sourceTrace.scribeArtifactId === 'string'
101
+ && rec.sourceScribeArtifactId !== rec.sourceTrace.scribeArtifactId) {
93
102
  errors.push('sourceScribeArtifactId and sourceTrace.scribeArtifactId must match');
94
103
  }
95
- if (typeof output.generatedAt !== 'string' || output.generatedAt.trim() === '') {
104
+ if (!Object.hasOwn(rec, 'generatedAt') || typeof rec.generatedAt !== 'string' || rec.generatedAt.trim() === '') {
96
105
  errors.push('generatedAt must be non-empty string');
97
106
  }
98
107
  return errors.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"artificer-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artificer-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-output.ts"],"names":[],"mappings":"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"}