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.
- package/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/cli/cli-interface.d.ts +150 -0
- package/dist/cli/cli-interface.d.ts.map +1 -0
- package/dist/cli/cli-interface.js +606 -0
- package/dist/cli/cli-interface.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +243 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/llm-sentinel.d.ts +15 -0
- package/dist/cli/llm-sentinel.d.ts.map +1 -0
- package/dist/cli/llm-sentinel.js +184 -0
- package/dist/cli/llm-sentinel.js.map +1 -0
- package/dist/config/configuration-manager.d.ts +149 -0
- package/dist/config/configuration-manager.d.ts.map +1 -0
- package/dist/config/configuration-manager.js +241 -0
- package/dist/config/configuration-manager.js.map +1 -0
- package/dist/continuation/continuation-control-manager.d.ts +154 -0
- package/dist/continuation/continuation-control-manager.d.ts.map +1 -0
- package/dist/continuation/continuation-control-manager.js +303 -0
- package/dist/continuation/continuation-control-manager.js.map +1 -0
- package/dist/core/runner-core.d.ts +474 -0
- package/dist/core/runner-core.d.ts.map +1 -0
- package/dist/core/runner-core.js +1311 -0
- package/dist/core/runner-core.js.map +1 -0
- package/dist/errors/error-codes.d.ts +105 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +198 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/errors/runner-error.d.ts +14 -0
- package/dist/errors/runner-error.d.ts.map +1 -0
- package/dist/errors/runner-error.js +33 -0
- package/dist/errors/runner-error.js.map +1 -0
- package/dist/evidence/evidence-manager.d.ts +112 -0
- package/dist/evidence/evidence-manager.d.ts.map +1 -0
- package/dist/evidence/evidence-manager.js +337 -0
- package/dist/evidence/evidence-manager.js.map +1 -0
- package/dist/executor/claude-code-executor.d.ts +136 -0
- package/dist/executor/claude-code-executor.d.ts.map +1 -0
- package/dist/executor/claude-code-executor.js +643 -0
- package/dist/executor/claude-code-executor.js.map +1 -0
- package/dist/executor/deterministic-executor.d.ts +40 -0
- package/dist/executor/deterministic-executor.d.ts.map +1 -0
- package/dist/executor/deterministic-executor.js +269 -0
- package/dist/executor/deterministic-executor.js.map +1 -0
- package/dist/lifecycle/lifecycle-controller.d.ts +270 -0
- package/dist/lifecycle/lifecycle-controller.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-controller.js +596 -0
- package/dist/lifecycle/lifecycle-controller.js.map +1 -0
- package/dist/limits/resource-limit-manager.d.ts +200 -0
- package/dist/limits/resource-limit-manager.d.ts.map +1 -0
- package/dist/limits/resource-limit-manager.js +376 -0
- package/dist/limits/resource-limit-manager.js.map +1 -0
- package/dist/locks/lock-manager.d.ts +116 -0
- package/dist/locks/lock-manager.d.ts.map +1 -0
- package/dist/locks/lock-manager.js +306 -0
- package/dist/locks/lock-manager.js.map +1 -0
- package/dist/logging/index.d.ts +8 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +22 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/sensitive-data-masker.d.ts +90 -0
- package/dist/logging/sensitive-data-masker.d.ts.map +1 -0
- package/dist/logging/sensitive-data-masker.js +228 -0
- package/dist/logging/sensitive-data-masker.js.map +1 -0
- package/dist/logging/task-log-manager.d.ts +215 -0
- package/dist/logging/task-log-manager.d.ts.map +1 -0
- package/dist/logging/task-log-manager.js +743 -0
- package/dist/logging/task-log-manager.js.map +1 -0
- package/dist/mediation/fail-closed-runner.d.ts +131 -0
- package/dist/mediation/fail-closed-runner.d.ts.map +1 -0
- package/dist/mediation/fail-closed-runner.js +245 -0
- package/dist/mediation/fail-closed-runner.js.map +1 -0
- package/dist/mediation/llm-client-with-evidence.d.ts +123 -0
- package/dist/mediation/llm-client-with-evidence.d.ts.map +1 -0
- package/dist/mediation/llm-client-with-evidence.js +245 -0
- package/dist/mediation/llm-client-with-evidence.js.map +1 -0
- package/dist/mediation/llm-client.d.ts +102 -0
- package/dist/mediation/llm-client.d.ts.map +1 -0
- package/dist/mediation/llm-client.js +206 -0
- package/dist/mediation/llm-client.js.map +1 -0
- package/dist/mediation/llm-evidence-manager.d.ts +108 -0
- package/dist/mediation/llm-evidence-manager.d.ts.map +1 -0
- package/dist/mediation/llm-evidence-manager.js +230 -0
- package/dist/mediation/llm-evidence-manager.js.map +1 -0
- package/dist/mediation/llm-mediation-layer.d.ts +175 -0
- package/dist/mediation/llm-mediation-layer.d.ts.map +1 -0
- package/dist/mediation/llm-mediation-layer.js +315 -0
- package/dist/mediation/llm-mediation-layer.js.map +1 -0
- package/dist/mediation/llm-sentinel.d.ts +107 -0
- package/dist/mediation/llm-sentinel.d.ts.map +1 -0
- package/dist/mediation/llm-sentinel.js +187 -0
- package/dist/mediation/llm-sentinel.js.map +1 -0
- package/dist/mediation/real-llm-mediation-layer.d.ts +104 -0
- package/dist/mediation/real-llm-mediation-layer.d.ts.map +1 -0
- package/dist/mediation/real-llm-mediation-layer.js +322 -0
- package/dist/mediation/real-llm-mediation-layer.js.map +1 -0
- package/dist/mediation/verdict-reporter.d.ts +61 -0
- package/dist/mediation/verdict-reporter.d.ts.map +1 -0
- package/dist/mediation/verdict-reporter.js +178 -0
- package/dist/mediation/verdict-reporter.js.map +1 -0
- package/dist/models/enums.d.ts +133 -0
- package/dist/models/enums.d.ts.map +1 -0
- package/dist/models/enums.js +201 -0
- package/dist/models/enums.js.map +1 -0
- package/dist/models/evidence.d.ts +60 -0
- package/dist/models/evidence.d.ts.map +1 -0
- package/dist/models/evidence.js +135 -0
- package/dist/models/evidence.js.map +1 -0
- package/dist/models/execution-result.d.ts +89 -0
- package/dist/models/execution-result.d.ts.map +1 -0
- package/dist/models/execution-result.js +197 -0
- package/dist/models/execution-result.js.map +1 -0
- package/dist/models/file-lock.d.ts +62 -0
- package/dist/models/file-lock.d.ts.map +1 -0
- package/dist/models/file-lock.js +133 -0
- package/dist/models/file-lock.js.map +1 -0
- package/dist/models/index.d.ts +12 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +91 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/repl/index.d.ts +7 -0
- package/dist/models/repl/index.d.ts.map +1 -0
- package/dist/models/repl/index.js +32 -0
- package/dist/models/repl/index.js.map +1 -0
- package/dist/models/repl/model-registry.d.ts +73 -0
- package/dist/models/repl/model-registry.d.ts.map +1 -0
- package/dist/models/repl/model-registry.js +116 -0
- package/dist/models/repl/model-registry.js.map +1 -0
- package/dist/models/repl/repl-state.d.ts +86 -0
- package/dist/models/repl/repl-state.d.ts.map +1 -0
- package/dist/models/repl/repl-state.js +152 -0
- package/dist/models/repl/repl-state.js.map +1 -0
- package/dist/models/repl/task-log.d.ts +247 -0
- package/dist/models/repl/task-log.d.ts.map +1 -0
- package/dist/models/repl/task-log.js +178 -0
- package/dist/models/repl/task-log.js.map +1 -0
- package/dist/models/session.d.ts +71 -0
- package/dist/models/session.d.ts.map +1 -0
- package/dist/models/session.js +140 -0
- package/dist/models/session.js.map +1 -0
- package/dist/models/supporting.d.ts +97 -0
- package/dist/models/supporting.d.ts.map +1 -0
- package/dist/models/supporting.js +208 -0
- package/dist/models/supporting.js.map +1 -0
- package/dist/models/task.d.ts +77 -0
- package/dist/models/task.d.ts.map +1 -0
- package/dist/models/task.js +170 -0
- package/dist/models/task.js.map +1 -0
- package/dist/output/output-control-manager.d.ts +217 -0
- package/dist/output/output-control-manager.d.ts.map +1 -0
- package/dist/output/output-control-manager.js +378 -0
- package/dist/output/output-control-manager.js.map +1 -0
- package/dist/pool/agent-pool.d.ts +284 -0
- package/dist/pool/agent-pool.d.ts.map +1 -0
- package/dist/pool/agent-pool.js +451 -0
- package/dist/pool/agent-pool.js.map +1 -0
- package/dist/repl/commands/index.d.ts +12 -0
- package/dist/repl/commands/index.d.ts.map +1 -0
- package/dist/repl/commands/index.js +26 -0
- package/dist/repl/commands/index.js.map +1 -0
- package/dist/repl/commands/init.d.ts +31 -0
- package/dist/repl/commands/init.d.ts.map +1 -0
- package/dist/repl/commands/init.js +234 -0
- package/dist/repl/commands/init.js.map +1 -0
- package/dist/repl/commands/keys.d.ts +63 -0
- package/dist/repl/commands/keys.d.ts.map +1 -0
- package/dist/repl/commands/keys.js +114 -0
- package/dist/repl/commands/keys.js.map +1 -0
- package/dist/repl/commands/logs.d.ts +91 -0
- package/dist/repl/commands/logs.d.ts.map +1 -0
- package/dist/repl/commands/logs.js +200 -0
- package/dist/repl/commands/logs.js.map +1 -0
- package/dist/repl/commands/model.d.ts +85 -0
- package/dist/repl/commands/model.d.ts.map +1 -0
- package/dist/repl/commands/model.js +225 -0
- package/dist/repl/commands/model.js.map +1 -0
- package/dist/repl/commands/models.d.ts +50 -0
- package/dist/repl/commands/models.d.ts.map +1 -0
- package/dist/repl/commands/models.js +180 -0
- package/dist/repl/commands/models.js.map +1 -0
- package/dist/repl/commands/provider.d.ts +79 -0
- package/dist/repl/commands/provider.d.ts.map +1 -0
- package/dist/repl/commands/provider.js +291 -0
- package/dist/repl/commands/provider.js.map +1 -0
- package/dist/repl/commands/session.d.ts +50 -0
- package/dist/repl/commands/session.d.ts.map +1 -0
- package/dist/repl/commands/session.js +152 -0
- package/dist/repl/commands/session.js.map +1 -0
- package/dist/repl/commands/status.d.ts +55 -0
- package/dist/repl/commands/status.d.ts.map +1 -0
- package/dist/repl/commands/status.js +182 -0
- package/dist/repl/commands/status.js.map +1 -0
- package/dist/repl/index.d.ts +6 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +25 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/repl-interface.d.ts +371 -0
- package/dist/repl/repl-interface.d.ts.map +1 -0
- package/dist/repl/repl-interface.js +1214 -0
- package/dist/repl/repl-interface.js.map +1 -0
- package/dist/session/session-manager.d.ts +85 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +217 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/supervisor/executor-supervisor.d.ts +90 -0
- package/dist/supervisor/executor-supervisor.d.ts.map +1 -0
- package/dist/supervisor/executor-supervisor.js +223 -0
- package/dist/supervisor/executor-supervisor.js.map +1 -0
- package/dist/supervisor/index.d.ts +5 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +9 -0
- package/dist/supervisor/index.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|