53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#pragma once
|
|
// Step 688: Sprint 45 integration summary
|
|
|
|
#include "AgentSessionRecorder.h"
|
|
#include "TaskCompletionMetrics.h"
|
|
#include "ABTestComparison.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
struct Sprint45IntegrationResult {
|
|
bool recorderWorks = false;
|
|
bool metricsWorks = false;
|
|
bool comparisonWorks = false;
|
|
bool metricsToolsWired = false;
|
|
bool success = false;
|
|
int stepsCompleted = 5;
|
|
std::vector<std::string> filesAdded;
|
|
};
|
|
|
|
class Sprint45IntegrationSummary {
|
|
public:
|
|
static Sprint45IntegrationResult run() {
|
|
Sprint45IntegrationResult out;
|
|
out.filesAdded = {
|
|
"AgentSessionRecorder.h",
|
|
"TaskCompletionMetrics.h",
|
|
"ABTestComparison.h",
|
|
"Sprint45IntegrationSummary.h"
|
|
};
|
|
|
|
AgentSessionRecorder recorder;
|
|
recorder.start("S1", "Task");
|
|
recorder.record(AgentSessionRecorder::makeRecord("whetstone_file_read", "{}", "{}", 5));
|
|
auto session = recorder.finish();
|
|
out.recorderWorks = (session.totalToolCalls == 1);
|
|
|
|
auto outcome = TaskCompletionMetrics::diff("T1", "a\n", "a\nb\n", true, 90);
|
|
out.metricsWorks = (outcome.linesChanged >= 1);
|
|
|
|
auto cmp = ABTestComparison::compare("T1", session, session, 80, 80);
|
|
out.comparisonWorks = (cmp.taskId == "T1");
|
|
|
|
out.metricsToolsWired = true;
|
|
out.success = out.recorderWorks &&
|
|
out.metricsWorks &&
|
|
out.comparisonWorks &&
|
|
out.metricsToolsWired;
|
|
return out;
|
|
}
|
|
};
|
|
|