pm-orchestrator-runner 1.0.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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -0
  3. package/dist/cli/cli-interface.d.ts +150 -0
  4. package/dist/cli/cli-interface.d.ts.map +1 -0
  5. package/dist/cli/cli-interface.js +606 -0
  6. package/dist/cli/cli-interface.js.map +1 -0
  7. package/dist/cli/index.d.ts +13 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +243 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/llm-sentinel.d.ts +15 -0
  12. package/dist/cli/llm-sentinel.d.ts.map +1 -0
  13. package/dist/cli/llm-sentinel.js +184 -0
  14. package/dist/cli/llm-sentinel.js.map +1 -0
  15. package/dist/config/configuration-manager.d.ts +149 -0
  16. package/dist/config/configuration-manager.d.ts.map +1 -0
  17. package/dist/config/configuration-manager.js +241 -0
  18. package/dist/config/configuration-manager.js.map +1 -0
  19. package/dist/continuation/continuation-control-manager.d.ts +154 -0
  20. package/dist/continuation/continuation-control-manager.d.ts.map +1 -0
  21. package/dist/continuation/continuation-control-manager.js +303 -0
  22. package/dist/continuation/continuation-control-manager.js.map +1 -0
  23. package/dist/core/runner-core.d.ts +474 -0
  24. package/dist/core/runner-core.d.ts.map +1 -0
  25. package/dist/core/runner-core.js +1311 -0
  26. package/dist/core/runner-core.js.map +1 -0
  27. package/dist/errors/error-codes.d.ts +105 -0
  28. package/dist/errors/error-codes.d.ts.map +1 -0
  29. package/dist/errors/error-codes.js +198 -0
  30. package/dist/errors/error-codes.js.map +1 -0
  31. package/dist/errors/runner-error.d.ts +14 -0
  32. package/dist/errors/runner-error.d.ts.map +1 -0
  33. package/dist/errors/runner-error.js +33 -0
  34. package/dist/errors/runner-error.js.map +1 -0
  35. package/dist/evidence/evidence-manager.d.ts +112 -0
  36. package/dist/evidence/evidence-manager.d.ts.map +1 -0
  37. package/dist/evidence/evidence-manager.js +337 -0
  38. package/dist/evidence/evidence-manager.js.map +1 -0
  39. package/dist/executor/claude-code-executor.d.ts +136 -0
  40. package/dist/executor/claude-code-executor.d.ts.map +1 -0
  41. package/dist/executor/claude-code-executor.js +643 -0
  42. package/dist/executor/claude-code-executor.js.map +1 -0
  43. package/dist/executor/deterministic-executor.d.ts +40 -0
  44. package/dist/executor/deterministic-executor.d.ts.map +1 -0
  45. package/dist/executor/deterministic-executor.js +269 -0
  46. package/dist/executor/deterministic-executor.js.map +1 -0
  47. package/dist/lifecycle/lifecycle-controller.d.ts +270 -0
  48. package/dist/lifecycle/lifecycle-controller.d.ts.map +1 -0
  49. package/dist/lifecycle/lifecycle-controller.js +596 -0
  50. package/dist/lifecycle/lifecycle-controller.js.map +1 -0
  51. package/dist/limits/resource-limit-manager.d.ts +200 -0
  52. package/dist/limits/resource-limit-manager.d.ts.map +1 -0
  53. package/dist/limits/resource-limit-manager.js +376 -0
  54. package/dist/limits/resource-limit-manager.js.map +1 -0
  55. package/dist/locks/lock-manager.d.ts +116 -0
  56. package/dist/locks/lock-manager.d.ts.map +1 -0
  57. package/dist/locks/lock-manager.js +306 -0
  58. package/dist/locks/lock-manager.js.map +1 -0
  59. package/dist/logging/index.d.ts +8 -0
  60. package/dist/logging/index.d.ts.map +1 -0
  61. package/dist/logging/index.js +22 -0
  62. package/dist/logging/index.js.map +1 -0
  63. package/dist/logging/sensitive-data-masker.d.ts +90 -0
  64. package/dist/logging/sensitive-data-masker.d.ts.map +1 -0
  65. package/dist/logging/sensitive-data-masker.js +228 -0
  66. package/dist/logging/sensitive-data-masker.js.map +1 -0
  67. package/dist/logging/task-log-manager.d.ts +215 -0
  68. package/dist/logging/task-log-manager.d.ts.map +1 -0
  69. package/dist/logging/task-log-manager.js +743 -0
  70. package/dist/logging/task-log-manager.js.map +1 -0
  71. package/dist/mediation/fail-closed-runner.d.ts +131 -0
  72. package/dist/mediation/fail-closed-runner.d.ts.map +1 -0
  73. package/dist/mediation/fail-closed-runner.js +245 -0
  74. package/dist/mediation/fail-closed-runner.js.map +1 -0
  75. package/dist/mediation/llm-client-with-evidence.d.ts +123 -0
  76. package/dist/mediation/llm-client-with-evidence.d.ts.map +1 -0
  77. package/dist/mediation/llm-client-with-evidence.js +245 -0
  78. package/dist/mediation/llm-client-with-evidence.js.map +1 -0
  79. package/dist/mediation/llm-client.d.ts +102 -0
  80. package/dist/mediation/llm-client.d.ts.map +1 -0
  81. package/dist/mediation/llm-client.js +206 -0
  82. package/dist/mediation/llm-client.js.map +1 -0
  83. package/dist/mediation/llm-evidence-manager.d.ts +108 -0
  84. package/dist/mediation/llm-evidence-manager.d.ts.map +1 -0
  85. package/dist/mediation/llm-evidence-manager.js +230 -0
  86. package/dist/mediation/llm-evidence-manager.js.map +1 -0
  87. package/dist/mediation/llm-mediation-layer.d.ts +175 -0
  88. package/dist/mediation/llm-mediation-layer.d.ts.map +1 -0
  89. package/dist/mediation/llm-mediation-layer.js +315 -0
  90. package/dist/mediation/llm-mediation-layer.js.map +1 -0
  91. package/dist/mediation/llm-sentinel.d.ts +107 -0
  92. package/dist/mediation/llm-sentinel.d.ts.map +1 -0
  93. package/dist/mediation/llm-sentinel.js +187 -0
  94. package/dist/mediation/llm-sentinel.js.map +1 -0
  95. package/dist/mediation/real-llm-mediation-layer.d.ts +104 -0
  96. package/dist/mediation/real-llm-mediation-layer.d.ts.map +1 -0
  97. package/dist/mediation/real-llm-mediation-layer.js +322 -0
  98. package/dist/mediation/real-llm-mediation-layer.js.map +1 -0
  99. package/dist/mediation/verdict-reporter.d.ts +61 -0
  100. package/dist/mediation/verdict-reporter.d.ts.map +1 -0
  101. package/dist/mediation/verdict-reporter.js +178 -0
  102. package/dist/mediation/verdict-reporter.js.map +1 -0
  103. package/dist/models/enums.d.ts +133 -0
  104. package/dist/models/enums.d.ts.map +1 -0
  105. package/dist/models/enums.js +201 -0
  106. package/dist/models/enums.js.map +1 -0
  107. package/dist/models/evidence.d.ts +60 -0
  108. package/dist/models/evidence.d.ts.map +1 -0
  109. package/dist/models/evidence.js +135 -0
  110. package/dist/models/evidence.js.map +1 -0
  111. package/dist/models/execution-result.d.ts +89 -0
  112. package/dist/models/execution-result.d.ts.map +1 -0
  113. package/dist/models/execution-result.js +197 -0
  114. package/dist/models/execution-result.js.map +1 -0
  115. package/dist/models/file-lock.d.ts +62 -0
  116. package/dist/models/file-lock.d.ts.map +1 -0
  117. package/dist/models/file-lock.js +133 -0
  118. package/dist/models/file-lock.js.map +1 -0
  119. package/dist/models/index.d.ts +12 -0
  120. package/dist/models/index.d.ts.map +1 -0
  121. package/dist/models/index.js +91 -0
  122. package/dist/models/index.js.map +1 -0
  123. package/dist/models/repl/index.d.ts +7 -0
  124. package/dist/models/repl/index.d.ts.map +1 -0
  125. package/dist/models/repl/index.js +32 -0
  126. package/dist/models/repl/index.js.map +1 -0
  127. package/dist/models/repl/model-registry.d.ts +73 -0
  128. package/dist/models/repl/model-registry.d.ts.map +1 -0
  129. package/dist/models/repl/model-registry.js +116 -0
  130. package/dist/models/repl/model-registry.js.map +1 -0
  131. package/dist/models/repl/repl-state.d.ts +86 -0
  132. package/dist/models/repl/repl-state.d.ts.map +1 -0
  133. package/dist/models/repl/repl-state.js +152 -0
  134. package/dist/models/repl/repl-state.js.map +1 -0
  135. package/dist/models/repl/task-log.d.ts +247 -0
  136. package/dist/models/repl/task-log.d.ts.map +1 -0
  137. package/dist/models/repl/task-log.js +178 -0
  138. package/dist/models/repl/task-log.js.map +1 -0
  139. package/dist/models/session.d.ts +71 -0
  140. package/dist/models/session.d.ts.map +1 -0
  141. package/dist/models/session.js +140 -0
  142. package/dist/models/session.js.map +1 -0
  143. package/dist/models/supporting.d.ts +97 -0
  144. package/dist/models/supporting.d.ts.map +1 -0
  145. package/dist/models/supporting.js +208 -0
  146. package/dist/models/supporting.js.map +1 -0
  147. package/dist/models/task.d.ts +77 -0
  148. package/dist/models/task.d.ts.map +1 -0
  149. package/dist/models/task.js +170 -0
  150. package/dist/models/task.js.map +1 -0
  151. package/dist/output/output-control-manager.d.ts +217 -0
  152. package/dist/output/output-control-manager.d.ts.map +1 -0
  153. package/dist/output/output-control-manager.js +378 -0
  154. package/dist/output/output-control-manager.js.map +1 -0
  155. package/dist/pool/agent-pool.d.ts +284 -0
  156. package/dist/pool/agent-pool.d.ts.map +1 -0
  157. package/dist/pool/agent-pool.js +451 -0
  158. package/dist/pool/agent-pool.js.map +1 -0
  159. package/dist/repl/commands/index.d.ts +12 -0
  160. package/dist/repl/commands/index.d.ts.map +1 -0
  161. package/dist/repl/commands/index.js +26 -0
  162. package/dist/repl/commands/index.js.map +1 -0
  163. package/dist/repl/commands/init.d.ts +31 -0
  164. package/dist/repl/commands/init.d.ts.map +1 -0
  165. package/dist/repl/commands/init.js +234 -0
  166. package/dist/repl/commands/init.js.map +1 -0
  167. package/dist/repl/commands/keys.d.ts +63 -0
  168. package/dist/repl/commands/keys.d.ts.map +1 -0
  169. package/dist/repl/commands/keys.js +114 -0
  170. package/dist/repl/commands/keys.js.map +1 -0
  171. package/dist/repl/commands/logs.d.ts +91 -0
  172. package/dist/repl/commands/logs.d.ts.map +1 -0
  173. package/dist/repl/commands/logs.js +200 -0
  174. package/dist/repl/commands/logs.js.map +1 -0
  175. package/dist/repl/commands/model.d.ts +85 -0
  176. package/dist/repl/commands/model.d.ts.map +1 -0
  177. package/dist/repl/commands/model.js +225 -0
  178. package/dist/repl/commands/model.js.map +1 -0
  179. package/dist/repl/commands/models.d.ts +50 -0
  180. package/dist/repl/commands/models.d.ts.map +1 -0
  181. package/dist/repl/commands/models.js +180 -0
  182. package/dist/repl/commands/models.js.map +1 -0
  183. package/dist/repl/commands/provider.d.ts +79 -0
  184. package/dist/repl/commands/provider.d.ts.map +1 -0
  185. package/dist/repl/commands/provider.js +291 -0
  186. package/dist/repl/commands/provider.js.map +1 -0
  187. package/dist/repl/commands/session.d.ts +50 -0
  188. package/dist/repl/commands/session.d.ts.map +1 -0
  189. package/dist/repl/commands/session.js +152 -0
  190. package/dist/repl/commands/session.js.map +1 -0
  191. package/dist/repl/commands/status.d.ts +55 -0
  192. package/dist/repl/commands/status.d.ts.map +1 -0
  193. package/dist/repl/commands/status.js +182 -0
  194. package/dist/repl/commands/status.js.map +1 -0
  195. package/dist/repl/index.d.ts +6 -0
  196. package/dist/repl/index.d.ts.map +1 -0
  197. package/dist/repl/index.js +25 -0
  198. package/dist/repl/index.js.map +1 -0
  199. package/dist/repl/repl-interface.d.ts +371 -0
  200. package/dist/repl/repl-interface.d.ts.map +1 -0
  201. package/dist/repl/repl-interface.js +1214 -0
  202. package/dist/repl/repl-interface.js.map +1 -0
  203. package/dist/session/session-manager.d.ts +85 -0
  204. package/dist/session/session-manager.d.ts.map +1 -0
  205. package/dist/session/session-manager.js +217 -0
  206. package/dist/session/session-manager.js.map +1 -0
  207. package/dist/supervisor/executor-supervisor.d.ts +90 -0
  208. package/dist/supervisor/executor-supervisor.d.ts.map +1 -0
  209. package/dist/supervisor/executor-supervisor.js +223 -0
  210. package/dist/supervisor/executor-supervisor.js.map +1 -0
  211. package/dist/supervisor/index.d.ts +5 -0
  212. package/dist/supervisor/index.d.ts.map +1 -0
  213. package/dist/supervisor/index.js +9 -0
  214. package/dist/supervisor/index.js.map +1 -0
  215. package/package.json +57 -0
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ /**
3
+ * Verdict Reporter
4
+ *
5
+ * Separates verdicts for different test categories:
6
+ * - REPL: COMPLETE if core tests pass (no API key required)
7
+ * - Real LLM: COMPLETE only if:
8
+ * 1. GATE: OPEN (LLM_TEST_MODE=1 + API key present)
9
+ * 2. At least one successful LLM evidence exists
10
+ * 3. Evidence integrity verified
11
+ *
12
+ * This ensures honest reporting - Real LLM cannot be marked COMPLETE
13
+ * without actual API calls being made and verified.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.checkExecutionGate = checkExecutionGate;
17
+ exports.generateREPLVerdict = generateREPLVerdict;
18
+ exports.generateRealLLMVerdict = generateRealLLMVerdict;
19
+ exports.generateCombinedVerdict = generateCombinedVerdict;
20
+ exports.formatVerdictSummary = formatVerdictSummary;
21
+ exports.printVerdict = printVerdict;
22
+ /**
23
+ * Check execution gate for Real LLM tests
24
+ */
25
+ function checkExecutionGate() {
26
+ // Gate 1: LLM_TEST_MODE must be set to 1
27
+ if (process.env.LLM_TEST_MODE !== '1') {
28
+ return {
29
+ canExecute: false,
30
+ skipReason: 'LLM_TEST_MODE is not set to 1',
31
+ };
32
+ }
33
+ // Gate 2: API key must be present
34
+ const provider = process.env.LLM_PROVIDER || 'openai';
35
+ const envVar = provider === 'anthropic' ? 'ANTHROPIC_API_KEY' : 'OPENAI_API_KEY';
36
+ if (!process.env[envVar]) {
37
+ return {
38
+ canExecute: false,
39
+ skipReason: `${envVar} is not set`,
40
+ provider,
41
+ envVar,
42
+ };
43
+ }
44
+ return {
45
+ canExecute: true,
46
+ provider,
47
+ envVar,
48
+ };
49
+ }
50
+ /**
51
+ * Generate REPL verdict (based on core test pass rate)
52
+ */
53
+ function generateREPLVerdict(coreTestsPassed) {
54
+ return {
55
+ category: 'REPL',
56
+ verdict: coreTestsPassed ? 'COMPLETE' : 'INCOMPLETE',
57
+ reason: coreTestsPassed
58
+ ? 'Core REPL tests passed'
59
+ : 'Core REPL tests failed',
60
+ details: {
61
+ real_calls_made: false,
62
+ },
63
+ };
64
+ }
65
+ /**
66
+ * Generate Real LLM verdict (requires gate open + evidence)
67
+ */
68
+ function generateRealLLMVerdict(gate, evidenceCount = 0, evidenceVerified = false) {
69
+ // Gate closed = INCOMPLETE (Fail-Closed: no execution = cannot assert completion)
70
+ if (!gate.canExecute) {
71
+ return {
72
+ category: 'REAL_LLM',
73
+ verdict: 'INCOMPLETE',
74
+ reason: `Real LLM tests not executed (gate closed)`,
75
+ details: {
76
+ gate_status: 'CLOSED',
77
+ real_calls_made: false,
78
+ evidence_count: 0,
79
+ evidence_verified: false,
80
+ skip_reason: gate.skipReason,
81
+ },
82
+ };
83
+ }
84
+ // Gate open but no evidence = INCOMPLETE
85
+ if (evidenceCount === 0) {
86
+ return {
87
+ category: 'REAL_LLM',
88
+ verdict: 'INCOMPLETE',
89
+ reason: 'Gate OPEN but no LLM evidence found',
90
+ details: {
91
+ gate_status: 'OPEN',
92
+ real_calls_made: false,
93
+ evidence_count: 0,
94
+ evidence_verified: false,
95
+ },
96
+ };
97
+ }
98
+ // Gate open + evidence exists but not verified = INCOMPLETE
99
+ if (!evidenceVerified) {
100
+ return {
101
+ category: 'REAL_LLM',
102
+ verdict: 'INCOMPLETE',
103
+ reason: 'Evidence exists but integrity verification failed',
104
+ details: {
105
+ gate_status: 'OPEN',
106
+ real_calls_made: true,
107
+ evidence_count: evidenceCount,
108
+ evidence_verified: false,
109
+ },
110
+ };
111
+ }
112
+ // Gate open + evidence verified = COMPLETE
113
+ return {
114
+ category: 'REAL_LLM',
115
+ verdict: 'COMPLETE',
116
+ reason: 'Real LLM API calls made and evidence verified',
117
+ details: {
118
+ gate_status: 'OPEN',
119
+ real_calls_made: true,
120
+ evidence_count: evidenceCount,
121
+ evidence_verified: true,
122
+ },
123
+ };
124
+ }
125
+ /**
126
+ * Generate combined verdict with formatted output
127
+ */
128
+ function generateCombinedVerdict(coreTestsPassed, evidenceCount = 0, evidenceVerified = false) {
129
+ const gate = checkExecutionGate();
130
+ const repl = generateREPLVerdict(coreTestsPassed);
131
+ const real_llm = generateRealLLMVerdict(gate, evidenceCount, evidenceVerified);
132
+ return {
133
+ repl,
134
+ real_llm,
135
+ summary: formatVerdictSummary(repl, real_llm),
136
+ };
137
+ }
138
+ /**
139
+ * Format verdict summary for console output
140
+ */
141
+ function formatVerdictSummary(repl, real_llm) {
142
+ const lines = [];
143
+ lines.push('');
144
+ lines.push('='.repeat(70));
145
+ lines.push('[Verdict Report] Test Execution Summary');
146
+ lines.push('='.repeat(70));
147
+ lines.push('');
148
+ // REPL verdict
149
+ lines.push(`[REPL Enhancement]`);
150
+ lines.push(` VERDICT: ${repl.verdict}`);
151
+ lines.push(` Reason: ${repl.reason}`);
152
+ lines.push('');
153
+ // Real LLM verdict
154
+ lines.push(`[Real LLM Mediation]`);
155
+ lines.push(` VERDICT: ${real_llm.verdict}`);
156
+ lines.push(` Reason: ${real_llm.reason}`);
157
+ lines.push(` GATE: ${real_llm.details.gate_status || 'N/A'}`);
158
+ lines.push(` REAL_CALLS_MADE: ${real_llm.details.real_calls_made}`);
159
+ if (real_llm.details.skip_reason) {
160
+ lines.push(` SKIP_REASON: ${real_llm.details.skip_reason}`);
161
+ }
162
+ if (real_llm.details.evidence_count !== undefined) {
163
+ lines.push(` EVIDENCE_COUNT: ${real_llm.details.evidence_count}`);
164
+ }
165
+ if (real_llm.details.evidence_verified !== undefined) {
166
+ lines.push(` EVIDENCE_VERIFIED: ${real_llm.details.evidence_verified}`);
167
+ }
168
+ lines.push('');
169
+ lines.push('='.repeat(70));
170
+ return lines.join('\n');
171
+ }
172
+ /**
173
+ * Print verdict to console
174
+ */
175
+ function printVerdict(verdict) {
176
+ console.log(verdict.summary);
177
+ }
178
+ //# sourceMappingURL=verdict-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-reporter.js","sourceRoot":"","sources":["../../src/mediation/verdict-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Enumerations for PM Orchestrator Runner
3
+ * Based on 05_DATA_MODELS.md and 03_LIFECYCLE.md specifications
4
+ */
5
+ /**
6
+ * Overall execution status
7
+ * Priority order: INVALID > ERROR > NO_EVIDENCE > INCOMPLETE > COMPLETE
8
+ */
9
+ export declare enum OverallStatus {
10
+ COMPLETE = "COMPLETE",
11
+ INCOMPLETE = "INCOMPLETE",
12
+ ERROR = "ERROR",
13
+ INVALID = "INVALID",
14
+ NO_EVIDENCE = "NO_EVIDENCE"
15
+ }
16
+ /**
17
+ * Task-level status
18
+ */
19
+ export declare enum TaskStatus {
20
+ PENDING = "PENDING",
21
+ IN_PROGRESS = "IN_PROGRESS",
22
+ COMPLETE = "COMPLETE",
23
+ COMPLETED = "COMPLETED",
24
+ INCOMPLETE = "INCOMPLETE",
25
+ ERROR = "ERROR",
26
+ INVALID = "INVALID",
27
+ NO_EVIDENCE = "NO_EVIDENCE"
28
+ }
29
+ /**
30
+ * Phase status
31
+ */
32
+ export declare enum PhaseStatus {
33
+ PENDING = "PENDING",
34
+ IN_PROGRESS = "IN_PROGRESS",
35
+ COMPLETED = "COMPLETED",
36
+ FAILED = "FAILED",
37
+ SKIPPED = "SKIPPED"
38
+ }
39
+ /**
40
+ * Agent types for L1/L2 pools
41
+ */
42
+ export declare enum AgentType {
43
+ READER = "READER",
44
+ WRITER = "WRITER",
45
+ EXECUTOR = "EXECUTOR"
46
+ }
47
+ /**
48
+ * Lifecycle phases in execution order
49
+ * 7-phase lifecycle based on 03_LIFECYCLE.md
50
+ */
51
+ export declare enum Phase {
52
+ REQUIREMENT_ANALYSIS = "REQUIREMENT_ANALYSIS",
53
+ TASK_DECOMPOSITION = "TASK_DECOMPOSITION",
54
+ PLANNING = "PLANNING",
55
+ EXECUTION = "EXECUTION",
56
+ QA = "QA",
57
+ COMPLETION_VALIDATION = "COMPLETION_VALIDATION",
58
+ REPORT = "REPORT"
59
+ }
60
+ /**
61
+ * Alias for Phase for backward compatibility
62
+ */
63
+ export declare const LifecyclePhase: typeof Phase;
64
+ export type LifecyclePhase = Phase;
65
+ /**
66
+ * Lock types for resource locking
67
+ */
68
+ export declare enum LockType {
69
+ READ = "READ",
70
+ WRITE = "WRITE"
71
+ }
72
+ /**
73
+ * Evidence types
74
+ */
75
+ export declare enum EvidenceType {
76
+ FILE = "FILE",
77
+ LOG = "LOG",
78
+ SCREENSHOT = "SCREENSHOT",
79
+ TEST_RESULT = "TEST_RESULT",
80
+ COMMAND_OUTPUT = "COMMAND_OUTPUT",
81
+ DIFF = "DIFF",
82
+ METRIC = "METRIC"
83
+ }
84
+ /**
85
+ * Get the priority value for a status
86
+ * Higher values indicate more severe/important status
87
+ */
88
+ export declare function getStatusPriority(status: OverallStatus): number;
89
+ /**
90
+ * Aggregate multiple statuses into the highest priority status
91
+ */
92
+ export declare function aggregateStatus(statuses: OverallStatus[]): OverallStatus;
93
+ /**
94
+ * Check if a status is terminal (cannot be changed)
95
+ */
96
+ export declare function isTerminalStatus(status: OverallStatus): boolean;
97
+ /**
98
+ * Get the next phase in the lifecycle
99
+ * Returns null if already at the final phase
100
+ */
101
+ export declare function getNextPhase(currentPhase: Phase): Phase | null;
102
+ /**
103
+ * Check if a phase transition is valid
104
+ * Only allows moving to the immediate next phase
105
+ */
106
+ export declare function isValidPhaseTransition(fromPhase: Phase, toPhase: Phase): boolean;
107
+ /**
108
+ * Get the index of a phase in the lifecycle
109
+ */
110
+ export declare function getPhaseIndex(phase: Phase): number;
111
+ /**
112
+ * Get all phases
113
+ */
114
+ export declare function getAllPhases(): Phase[];
115
+ /**
116
+ * Check if phase is the first phase
117
+ */
118
+ export declare function isFirstPhase(phase: Phase): boolean;
119
+ /**
120
+ * Check if phase is the last phase
121
+ */
122
+ export declare function isLastPhase(phase: Phase): boolean;
123
+ /**
124
+ * Executor blocking reasons
125
+ * Per spec 05_DATA_MODELS.md - Property 34-36 non-interactive guarantees
126
+ */
127
+ export type BlockedReason = 'INTERACTIVE_PROMPT' | 'TIMEOUT' | 'STDIN_REQUIRED';
128
+ /**
129
+ * Executor termination triggers
130
+ * Per spec 05_DATA_MODELS.md - Property 34-36 non-interactive guarantees
131
+ */
132
+ export type TerminatedBy = 'REPL_FAIL_CLOSED' | 'USER' | 'TIMEOUT';
133
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/models/enums.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;;GAGG;AACH,oBAAY,KAAK;IACf,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,cAAQ,CAAC;AACpC,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC;AAEnC;;GAEG;AACH,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAaD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,CAiBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAK/D;AAeD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAM9D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,CAGhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,KAAK,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEhF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ /**
3
+ * Enumerations for PM Orchestrator Runner
4
+ * Based on 05_DATA_MODELS.md and 03_LIFECYCLE.md specifications
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EvidenceType = exports.LockType = exports.LifecyclePhase = exports.Phase = exports.AgentType = exports.PhaseStatus = exports.TaskStatus = exports.OverallStatus = void 0;
8
+ exports.getStatusPriority = getStatusPriority;
9
+ exports.aggregateStatus = aggregateStatus;
10
+ exports.isTerminalStatus = isTerminalStatus;
11
+ exports.getNextPhase = getNextPhase;
12
+ exports.isValidPhaseTransition = isValidPhaseTransition;
13
+ exports.getPhaseIndex = getPhaseIndex;
14
+ exports.getAllPhases = getAllPhases;
15
+ exports.isFirstPhase = isFirstPhase;
16
+ exports.isLastPhase = isLastPhase;
17
+ /**
18
+ * Overall execution status
19
+ * Priority order: INVALID > ERROR > NO_EVIDENCE > INCOMPLETE > COMPLETE
20
+ */
21
+ var OverallStatus;
22
+ (function (OverallStatus) {
23
+ OverallStatus["COMPLETE"] = "COMPLETE";
24
+ OverallStatus["INCOMPLETE"] = "INCOMPLETE";
25
+ OverallStatus["ERROR"] = "ERROR";
26
+ OverallStatus["INVALID"] = "INVALID";
27
+ OverallStatus["NO_EVIDENCE"] = "NO_EVIDENCE";
28
+ })(OverallStatus || (exports.OverallStatus = OverallStatus = {}));
29
+ /**
30
+ * Task-level status
31
+ */
32
+ var TaskStatus;
33
+ (function (TaskStatus) {
34
+ TaskStatus["PENDING"] = "PENDING";
35
+ TaskStatus["IN_PROGRESS"] = "IN_PROGRESS";
36
+ TaskStatus["COMPLETE"] = "COMPLETE";
37
+ TaskStatus["COMPLETED"] = "COMPLETED";
38
+ TaskStatus["INCOMPLETE"] = "INCOMPLETE";
39
+ TaskStatus["ERROR"] = "ERROR";
40
+ TaskStatus["INVALID"] = "INVALID";
41
+ TaskStatus["NO_EVIDENCE"] = "NO_EVIDENCE";
42
+ })(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
43
+ /**
44
+ * Phase status
45
+ */
46
+ var PhaseStatus;
47
+ (function (PhaseStatus) {
48
+ PhaseStatus["PENDING"] = "PENDING";
49
+ PhaseStatus["IN_PROGRESS"] = "IN_PROGRESS";
50
+ PhaseStatus["COMPLETED"] = "COMPLETED";
51
+ PhaseStatus["FAILED"] = "FAILED";
52
+ PhaseStatus["SKIPPED"] = "SKIPPED";
53
+ })(PhaseStatus || (exports.PhaseStatus = PhaseStatus = {}));
54
+ /**
55
+ * Agent types for L1/L2 pools
56
+ */
57
+ var AgentType;
58
+ (function (AgentType) {
59
+ AgentType["READER"] = "READER";
60
+ AgentType["WRITER"] = "WRITER";
61
+ AgentType["EXECUTOR"] = "EXECUTOR";
62
+ })(AgentType || (exports.AgentType = AgentType = {}));
63
+ /**
64
+ * Lifecycle phases in execution order
65
+ * 7-phase lifecycle based on 03_LIFECYCLE.md
66
+ */
67
+ var Phase;
68
+ (function (Phase) {
69
+ Phase["REQUIREMENT_ANALYSIS"] = "REQUIREMENT_ANALYSIS";
70
+ Phase["TASK_DECOMPOSITION"] = "TASK_DECOMPOSITION";
71
+ Phase["PLANNING"] = "PLANNING";
72
+ Phase["EXECUTION"] = "EXECUTION";
73
+ Phase["QA"] = "QA";
74
+ Phase["COMPLETION_VALIDATION"] = "COMPLETION_VALIDATION";
75
+ Phase["REPORT"] = "REPORT";
76
+ })(Phase || (exports.Phase = Phase = {}));
77
+ /**
78
+ * Alias for Phase for backward compatibility
79
+ */
80
+ exports.LifecyclePhase = Phase;
81
+ /**
82
+ * Lock types for resource locking
83
+ */
84
+ var LockType;
85
+ (function (LockType) {
86
+ LockType["READ"] = "READ";
87
+ LockType["WRITE"] = "WRITE";
88
+ })(LockType || (exports.LockType = LockType = {}));
89
+ /**
90
+ * Evidence types
91
+ */
92
+ var EvidenceType;
93
+ (function (EvidenceType) {
94
+ EvidenceType["FILE"] = "FILE";
95
+ EvidenceType["LOG"] = "LOG";
96
+ EvidenceType["SCREENSHOT"] = "SCREENSHOT";
97
+ EvidenceType["TEST_RESULT"] = "TEST_RESULT";
98
+ EvidenceType["COMMAND_OUTPUT"] = "COMMAND_OUTPUT";
99
+ EvidenceType["DIFF"] = "DIFF";
100
+ EvidenceType["METRIC"] = "METRIC";
101
+ })(EvidenceType || (exports.EvidenceType = EvidenceType = {}));
102
+ /**
103
+ * Status priority values (higher = more severe)
104
+ */
105
+ const STATUS_PRIORITY = {
106
+ [OverallStatus.COMPLETE]: 0,
107
+ [OverallStatus.INCOMPLETE]: 1,
108
+ [OverallStatus.NO_EVIDENCE]: 2,
109
+ [OverallStatus.ERROR]: 3,
110
+ [OverallStatus.INVALID]: 4,
111
+ };
112
+ /**
113
+ * Get the priority value for a status
114
+ * Higher values indicate more severe/important status
115
+ */
116
+ function getStatusPriority(status) {
117
+ return STATUS_PRIORITY[status];
118
+ }
119
+ /**
120
+ * Aggregate multiple statuses into the highest priority status
121
+ */
122
+ function aggregateStatus(statuses) {
123
+ if (statuses.length === 0) {
124
+ return OverallStatus.COMPLETE;
125
+ }
126
+ let highestStatus = OverallStatus.COMPLETE;
127
+ let highestPriority = 0;
128
+ for (const status of statuses) {
129
+ const priority = getStatusPriority(status);
130
+ if (priority > highestPriority) {
131
+ highestPriority = priority;
132
+ highestStatus = status;
133
+ }
134
+ }
135
+ return highestStatus;
136
+ }
137
+ /**
138
+ * Check if a status is terminal (cannot be changed)
139
+ */
140
+ function isTerminalStatus(status) {
141
+ return status === OverallStatus.COMPLETE ||
142
+ status === OverallStatus.ERROR ||
143
+ status === OverallStatus.INVALID ||
144
+ status === OverallStatus.NO_EVIDENCE;
145
+ }
146
+ /**
147
+ * Phase order for transitions
148
+ */
149
+ const PHASE_ORDER = [
150
+ Phase.REQUIREMENT_ANALYSIS,
151
+ Phase.TASK_DECOMPOSITION,
152
+ Phase.PLANNING,
153
+ Phase.EXECUTION,
154
+ Phase.QA,
155
+ Phase.COMPLETION_VALIDATION,
156
+ Phase.REPORT,
157
+ ];
158
+ /**
159
+ * Get the next phase in the lifecycle
160
+ * Returns null if already at the final phase
161
+ */
162
+ function getNextPhase(currentPhase) {
163
+ const currentIndex = PHASE_ORDER.indexOf(currentPhase);
164
+ if (currentIndex === -1 || currentIndex === PHASE_ORDER.length - 1) {
165
+ return null;
166
+ }
167
+ return PHASE_ORDER[currentIndex + 1];
168
+ }
169
+ /**
170
+ * Check if a phase transition is valid
171
+ * Only allows moving to the immediate next phase
172
+ */
173
+ function isValidPhaseTransition(fromPhase, toPhase) {
174
+ const nextPhase = getNextPhase(fromPhase);
175
+ return nextPhase === toPhase;
176
+ }
177
+ /**
178
+ * Get the index of a phase in the lifecycle
179
+ */
180
+ function getPhaseIndex(phase) {
181
+ return PHASE_ORDER.indexOf(phase);
182
+ }
183
+ /**
184
+ * Get all phases
185
+ */
186
+ function getAllPhases() {
187
+ return [...PHASE_ORDER];
188
+ }
189
+ /**
190
+ * Check if phase is the first phase
191
+ */
192
+ function isFirstPhase(phase) {
193
+ return phase === Phase.REQUIREMENT_ANALYSIS;
194
+ }
195
+ /**
196
+ * Check if phase is the last phase
197
+ */
198
+ function isLastPhase(phase) {
199
+ return phase === Phase.REPORT;
200
+ }
201
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/models/enums.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwGH,8CAEC;AAKD,0CAiBC;AAKD,4CAKC;AAmBD,oCAMC;AAMD,wDAGC;AAKD,sCAEC;AAKD,oCAEC;AAKD,oCAEC;AAKD,kCAEC;AAtMD;;;GAGG;AACH,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;AAC7B,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED;;GAEG;AACH,IAAY,UASX;AATD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IACrB,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;IACzB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,yCAA2B,CAAA;AAC7B,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB;AAED;;GAEG;AACH,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,0CAA2B,CAAA;IAC3B,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED;;GAEG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;AACvB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED;;;GAGG;AACH,IAAY,KAQX;AARD,WAAY,KAAK;IACf,sDAA6C,CAAA;IAC7C,kDAAyC,CAAA;IACzC,8BAAqB,CAAA;IACrB,gCAAuB,CAAA;IACvB,kBAAS,CAAA;IACT,wDAA+C,CAAA;IAC/C,0BAAiB,CAAA;AACnB,CAAC,EARW,KAAK,qBAAL,KAAK,QAQhB;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,KAAK,CAAC;AAGpC;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,2BAAW,CAAA;IACX,yCAAyB,CAAA;IACzB,2CAA2B,CAAA;IAC3B,iDAAiC,CAAA;IACjC,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB;AAED;;GAEG;AACH,MAAM,eAAe,GAAkC;IACrD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3B,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;IAC7B,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9B,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;IACxB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,MAAqB;IACrD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAyB;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC;IAC3C,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;YAC/B,eAAe,GAAG,QAAQ,CAAC;YAC3B,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAqB;IACpD,OAAO,MAAM,KAAK,aAAa,CAAC,QAAQ;QACjC,MAAM,KAAK,aAAa,CAAC,KAAK;QAC9B,MAAM,KAAK,aAAa,CAAC,OAAO;QAChC,MAAM,KAAK,aAAa,CAAC,WAAW,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,WAAW,GAAY;IAC3B,KAAK,CAAC,oBAAoB;IAC1B,KAAK,CAAC,kBAAkB;IACxB,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,EAAE;IACR,KAAK,CAAC,qBAAqB;IAC3B,KAAK,CAAC,MAAM;CACb,CAAC;AAEF;;;GAGG;AACH,SAAgB,YAAY,CAAC,YAAmB;IAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,SAAgB,EAAE,OAAc;IACrE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,SAAS,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAY;IACxC,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAY;IACvC,OAAO,KAAK,KAAK,KAAK,CAAC,oBAAoB,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC;AAChC,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Evidence Model
3
+ * Based on 05_DATA_MODELS.md L39-52
4
+ */
5
+ /**
6
+ * Artifact data structure
7
+ */
8
+ export interface Artifact {
9
+ path: string;
10
+ content?: string;
11
+ type?: string;
12
+ size?: number;
13
+ }
14
+ /**
15
+ * Evidence data structure
16
+ */
17
+ export interface Evidence {
18
+ evidence_id: string;
19
+ timestamp: string;
20
+ operation_type: string;
21
+ executor_id?: string;
22
+ artifacts: Artifact[];
23
+ hash: string;
24
+ raw_logs: string;
25
+ atomic_operation: boolean;
26
+ raw_evidence_refs: string[];
27
+ integrity_validated: boolean;
28
+ }
29
+ /**
30
+ * Evidence validation error
31
+ */
32
+ export declare class EvidenceValidationError extends Error {
33
+ constructor(message: string);
34
+ }
35
+ /**
36
+ * Create a new evidence record
37
+ */
38
+ export declare function createEvidence(operationType: string, artifacts: Artifact[], executorId?: string, rawLogs?: string): Evidence;
39
+ /**
40
+ * Validate an evidence object
41
+ * @throws EvidenceValidationError if validation fails
42
+ */
43
+ export declare function validateEvidence(evidence: Evidence): boolean;
44
+ /**
45
+ * Add artifact to evidence
46
+ */
47
+ export declare function addArtifact(evidence: Evidence, artifact: Artifact): Evidence;
48
+ /**
49
+ * Mark evidence as integrity validated
50
+ */
51
+ export declare function markIntegrityValidated(evidence: Evidence): Evidence;
52
+ /**
53
+ * Add raw evidence reference
54
+ */
55
+ export declare function addRawEvidenceRef(evidence: Evidence, ref: string): Evidence;
56
+ /**
57
+ * Verify evidence hash matches artifacts
58
+ */
59
+ export declare function verifyEvidenceHash(evidence: Evidence): boolean;
60
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/models/evidence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAuBD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,QAAQ,CAaV;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CA4C5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAO5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAKnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAK3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAG9D"}