feat(scenario): step output, getStepOutput helper, export/import MCP tools, doc restructure

- add output column to ScenarioRunStepEntity; exec step return value is JSON-serialised and stored
- expose helpers.getStepOutput(order) in exec code; negative order is relative to current step
- add get_scenario_run, wait_for_scenario_run, export_scenario, import_scenario MCP tools
- move Architecture, Key descriptors, MCP tools, Scenario, Development docs to docs/
- delete CONTRIBUTING.md (replaced by docs/development.md)
This commit is contained in:
2026-04-08 19:02:36 +03:00
parent e2813208ba
commit 71bcc8faec
17 changed files with 667 additions and 224 deletions
+12 -4
View File
@@ -49,7 +49,9 @@ describe("SessionController", () => {
const res = await request(app.getHttpServer())
.get("/sessions")
.expect(200);
const names = res.body.data.map((s: { sessionName: string }) => s.sessionName);
const names = res.body.data.map(
(s: { sessionName: string }) => s.sessionName,
);
expect(names).toContain("visible-session");
});
@@ -97,7 +99,9 @@ describe("SessionController", () => {
const res = await request(app.getHttpServer())
.get("/sessions?orderBy=sessionName&orderDir=ASC")
.expect(200);
const names: string[] = res.body.data.map((s: { sessionName: string }) => s.sessionName);
const names: string[] = res.body.data.map(
(s: { sessionName: string }) => s.sessionName,
);
expect(names).toEqual([...names].sort());
});
@@ -105,7 +109,9 @@ describe("SessionController", () => {
const res = await request(app.getHttpServer())
.get("/sessions?orderBy=sessionName&orderDir=DESC")
.expect(200);
const names: string[] = res.body.data.map((s: { sessionName: string }) => s.sessionName);
const names: string[] = res.body.data.map(
(s: { sessionName: string }) => s.sessionName,
);
expect(names).toEqual([...names].sort().reverse());
});
@@ -128,7 +134,9 @@ describe("SessionController", () => {
const res = await request(app.getHttpServer())
.get("/sessions")
.expect(200);
const names = res.body.data.map((sess: { sessionName: string }) => sess.sessionName);
const names = res.body.data.map(
(sess: { sessionName: string }) => sess.sessionName,
);
expect(names).not.toContain("delete-me-session");
});