diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index 4a8faa6..d425279 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -4846,4 +4846,13 @@ target_link_libraries(step662_test PRIVATE tree_sitter_javascript tree_sitter_typescript tree_sitter_java tree_sitter_rust tree_sitter_go) +add_executable(step663_test tests/step663_test.cpp) +target_include_directories(step663_test PRIVATE src) +target_link_libraries(step663_test PRIVATE + nlohmann_json::nlohmann_json + unofficial::tree-sitter::tree-sitter + tree_sitter_python tree_sitter_cpp tree_sitter_elisp + tree_sitter_javascript tree_sitter_typescript + tree_sitter_java tree_sitter_rust tree_sitter_go) + # Step 12: Dear ImGui shell scaffolding created (main.cpp exists but not built due to dependencies) diff --git a/editor/src/Sprint40IntegrationSummary.h b/editor/src/Sprint40IntegrationSummary.h new file mode 100644 index 0000000..7908536 --- /dev/null +++ b/editor/src/Sprint40IntegrationSummary.h @@ -0,0 +1,45 @@ +#pragma once +// Step 663: Sprint 40 integration + final summary + +#include "CrossSessionContextBridge.h" +#include "EnergyContextStatusModel.h" +#include "EntropyScannerModel.h" +#include "HiveMindJobPublisher.h" +#include "InferenceJobGenerator.h" +#include "Phase40aIntegration.h" +#include "PilotQueuePanelModel.h" + +struct Sprint40IntegrationResult { + bool phase40aReady = false; + bool entropyDetected = false; + bool inferenceJobGenerated = false; + bool pilotQueueReady = false; + bool bridgeReady = false; + bool finalSystemReady = false; +}; + +class Sprint40IntegrationSummary { +public: + static Sprint40IntegrationResult run() { + Sprint40IntegrationResult out; + auto phase40a = Phase40aIntegration::run(); + out.phase40aReady = phase40a.integrationReady; + + auto entropy = EntropyScannerModel::scan({"a()","a()"}, {"modA","modB"}, {"x"}, {}); + out.entropyDetected = EntropyScannerModel::shouldSuggestRefactor(entropy, 2); + + auto inference = InferenceJobGenerator::generate("extract duplicates", EntropyScannerModel::entropyScore(entropy), {"a.cpp"}); + out.inferenceJobGenerated = inference.value("success", false); + + PilotQueueItem item{"job-1", "review", true, 0.2}; + out.pilotQueueReady = PilotQueuePanelModel::needsHumanReview(item); + + CrossSessionBridgeRequest req{"job-1", {"a.cpp"}, "/workspace"}; + auto bridge = CrossSessionContextBridge::run(req); + out.bridgeReady = bridge.launchedMcp && bridge.intakeCalled && bridge.fedBackToEditor; + + out.finalSystemReady = out.phase40aReady && out.entropyDetected && out.inferenceJobGenerated && + out.pilotQueueReady && out.bridgeReady; + return out; + } +}; diff --git a/editor/tests/step663_test.cpp b/editor/tests/step663_test.cpp new file mode 100644 index 0000000..8686cb2 --- /dev/null +++ b/editor/tests/step663_test.cpp @@ -0,0 +1,20 @@ +// Step 663: Sprint 40 integration + final summary (8 tests) + +#include "Sprint40IntegrationSummary.h" +#include +static int p=0,f=0; +#define T(n) { std::cout<<" "<<#n<<"... "; } +#define P() { std::cout<<"PASS\n"; ++p; } +#define F(m) { std::cout<<"FAIL: "<