@tienne/gestalt 0.84.2 → 0.85.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 (204) hide show
  1. package/CLAUDE.md +4 -4
  2. package/README.ko.md +72 -22
  3. package/README.md +73 -23
  4. package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts.map +1 -1
  5. package/dist/benchmarks/runners/passthrough-benchmark-runner.js +8 -7
  6. package/dist/benchmarks/runners/passthrough-benchmark-runner.js.map +1 -1
  7. package/dist/bin/gestalt.js +2 -2
  8. package/dist/package.json +1 -1
  9. package/dist/plugin/skills/dispatch/SKILL.md +14 -2
  10. package/dist/plugin/skills/execute/SKILL.md +219 -52
  11. package/dist/plugin/skills/interview/SKILL.md +15 -2
  12. package/dist/plugin/skills/solve/SKILL.md +20 -5
  13. package/dist/plugin/skills/spec/SKILL.md +2 -0
  14. package/dist/src/cli/commands/interview.d.ts.map +1 -1
  15. package/dist/src/cli/commands/interview.js +16 -4
  16. package/dist/src/cli/commands/interview.js.map +1 -1
  17. package/dist/src/cli/commands/memory-merge.d.ts +2 -0
  18. package/dist/src/cli/commands/memory-merge.d.ts.map +1 -0
  19. package/dist/src/cli/commands/memory-merge.js +13 -0
  20. package/dist/src/cli/commands/memory-merge.js.map +1 -0
  21. package/dist/src/cli/index.d.ts.map +1 -1
  22. package/dist/src/cli/index.js +7 -0
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/core/constants.d.ts +4 -0
  25. package/dist/src/core/constants.d.ts.map +1 -1
  26. package/dist/src/core/constants.js +8 -0
  27. package/dist/src/core/constants.js.map +1 -1
  28. package/dist/src/core/errors.d.ts +3 -0
  29. package/dist/src/core/errors.d.ts.map +1 -1
  30. package/dist/src/core/errors.js +7 -0
  31. package/dist/src/core/errors.js.map +1 -1
  32. package/dist/src/core/file-lock.d.ts +37 -0
  33. package/dist/src/core/file-lock.d.ts.map +1 -0
  34. package/dist/src/core/file-lock.js +143 -0
  35. package/dist/src/core/file-lock.js.map +1 -0
  36. package/dist/src/core/json-file.d.ts +40 -0
  37. package/dist/src/core/json-file.d.ts.map +1 -0
  38. package/dist/src/core/json-file.js +82 -0
  39. package/dist/src/core/json-file.js.map +1 -0
  40. package/dist/src/core/types.d.ts +86 -9
  41. package/dist/src/core/types.d.ts.map +1 -1
  42. package/dist/src/events/store.d.ts +6 -0
  43. package/dist/src/events/store.d.ts.map +1 -1
  44. package/dist/src/events/store.js +12 -0
  45. package/dist/src/events/store.js.map +1 -1
  46. package/dist/src/events/types.d.ts +7 -0
  47. package/dist/src/events/types.d.ts.map +1 -1
  48. package/dist/src/events/types.js +7 -0
  49. package/dist/src/events/types.js.map +1 -1
  50. package/dist/src/execute/artifact-verifier.d.ts +12 -0
  51. package/dist/src/execute/artifact-verifier.d.ts.map +1 -0
  52. package/dist/src/execute/artifact-verifier.js +211 -0
  53. package/dist/src/execute/artifact-verifier.js.map +1 -0
  54. package/dist/src/execute/drift-detector.d.ts +2 -0
  55. package/dist/src/execute/drift-detector.d.ts.map +1 -1
  56. package/dist/src/execute/drift-detector.js +9 -13
  57. package/dist/src/execute/drift-detector.js.map +1 -1
  58. package/dist/src/execute/orchestrators/evaluation.d.ts +5 -1
  59. package/dist/src/execute/orchestrators/evaluation.d.ts.map +1 -1
  60. package/dist/src/execute/orchestrators/evaluation.js +48 -41
  61. package/dist/src/execute/orchestrators/evaluation.js.map +1 -1
  62. package/dist/src/execute/orchestrators/evolution.d.ts +17 -3
  63. package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -1
  64. package/dist/src/execute/orchestrators/evolution.js +102 -53
  65. package/dist/src/execute/orchestrators/evolution.js.map +1 -1
  66. package/dist/src/execute/orchestrators/execution.d.ts +17 -2
  67. package/dist/src/execute/orchestrators/execution.d.ts.map +1 -1
  68. package/dist/src/execute/orchestrators/execution.js +99 -3
  69. package/dist/src/execute/orchestrators/execution.js.map +1 -1
  70. package/dist/src/execute/orchestrators/planning.d.ts +18 -4
  71. package/dist/src/execute/orchestrators/planning.d.ts.map +1 -1
  72. package/dist/src/execute/orchestrators/planning.js +62 -21
  73. package/dist/src/execute/orchestrators/planning.js.map +1 -1
  74. package/dist/src/execute/orchestrators/types.d.ts +12 -1
  75. package/dist/src/execute/orchestrators/types.d.ts.map +1 -1
  76. package/dist/src/execute/passthrough-engine.d.ts +12 -5
  77. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  78. package/dist/src/execute/passthrough-engine.js +10 -4
  79. package/dist/src/execute/passthrough-engine.js.map +1 -1
  80. package/dist/src/execute/repository.d.ts +11 -1
  81. package/dist/src/execute/repository.d.ts.map +1 -1
  82. package/dist/src/execute/repository.js +138 -19
  83. package/dist/src/execute/repository.js.map +1 -1
  84. package/dist/src/execute/session.d.ts +26 -4
  85. package/dist/src/execute/session.d.ts.map +1 -1
  86. package/dist/src/execute/session.js +165 -48
  87. package/dist/src/execute/session.js.map +1 -1
  88. package/dist/src/execute/structural-commands.d.ts +23 -0
  89. package/dist/src/execute/structural-commands.d.ts.map +1 -0
  90. package/dist/src/execute/structural-commands.js +139 -0
  91. package/dist/src/execute/structural-commands.js.map +1 -0
  92. package/dist/src/interview/engine.d.ts +1 -1
  93. package/dist/src/interview/engine.d.ts.map +1 -1
  94. package/dist/src/interview/engine.js +3 -3
  95. package/dist/src/interview/engine.js.map +1 -1
  96. package/dist/src/interview/passthrough-engine.d.ts +1 -1
  97. package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
  98. package/dist/src/interview/passthrough-engine.js +20 -3
  99. package/dist/src/interview/passthrough-engine.js.map +1 -1
  100. package/dist/src/interview/repository.d.ts +8 -0
  101. package/dist/src/interview/repository.d.ts.map +1 -1
  102. package/dist/src/interview/repository.js +16 -1
  103. package/dist/src/interview/repository.js.map +1 -1
  104. package/dist/src/interview/session.d.ts +15 -2
  105. package/dist/src/interview/session.d.ts.map +1 -1
  106. package/dist/src/interview/session.js +67 -23
  107. package/dist/src/interview/session.js.map +1 -1
  108. package/dist/src/knowledge-base/embedding.d.ts +6 -1
  109. package/dist/src/knowledge-base/embedding.d.ts.map +1 -1
  110. package/dist/src/knowledge-base/embedding.js +19 -6
  111. package/dist/src/knowledge-base/embedding.js.map +1 -1
  112. package/dist/src/local-pr/registry.d.ts +1 -21
  113. package/dist/src/local-pr/registry.d.ts.map +1 -1
  114. package/dist/src/local-pr/registry.js +7 -113
  115. package/dist/src/local-pr/registry.js.map +1 -1
  116. package/dist/src/mcp/input-guard.d.ts +17 -0
  117. package/dist/src/mcp/input-guard.d.ts.map +1 -1
  118. package/dist/src/mcp/input-guard.js +1 -1
  119. package/dist/src/mcp/input-guard.js.map +1 -1
  120. package/dist/src/mcp/schemas.d.ts +62 -7
  121. package/dist/src/mcp/schemas.d.ts.map +1 -1
  122. package/dist/src/mcp/schemas.js +28 -1
  123. package/dist/src/mcp/schemas.js.map +1 -1
  124. package/dist/src/mcp/server.d.ts.map +1 -1
  125. package/dist/src/mcp/server.js +26 -40
  126. package/dist/src/mcp/server.js.map +1 -1
  127. package/dist/src/mcp/tools/execute/evaluate.d.ts.map +1 -1
  128. package/dist/src/mcp/tools/execute/evaluate.js +15 -9
  129. package/dist/src/mcp/tools/execute/evaluate.js.map +1 -1
  130. package/dist/src/mcp/tools/execute/evolve.d.ts +1 -0
  131. package/dist/src/mcp/tools/execute/evolve.d.ts.map +1 -1
  132. package/dist/src/mcp/tools/execute/evolve.js +102 -37
  133. package/dist/src/mcp/tools/execute/evolve.js.map +1 -1
  134. package/dist/src/mcp/tools/execute/execution.d.ts.map +1 -1
  135. package/dist/src/mcp/tools/execute/execution.js +66 -7
  136. package/dist/src/mcp/tools/execute/execution.js.map +1 -1
  137. package/dist/src/mcp/tools/execute/planning.d.ts.map +1 -1
  138. package/dist/src/mcp/tools/execute/planning.js +34 -2
  139. package/dist/src/mcp/tools/execute/planning.js.map +1 -1
  140. package/dist/src/mcp/tools/execute/roles.d.ts.map +1 -1
  141. package/dist/src/mcp/tools/execute/roles.js +13 -5
  142. package/dist/src/mcp/tools/execute/roles.js.map +1 -1
  143. package/dist/src/mcp/tools/execute/utility.d.ts.map +1 -1
  144. package/dist/src/mcp/tools/execute/utility.js +26 -0
  145. package/dist/src/mcp/tools/execute/utility.js.map +1 -1
  146. package/dist/src/mcp/tools/execute/utils.d.ts +1 -0
  147. package/dist/src/mcp/tools/execute/utils.d.ts.map +1 -1
  148. package/dist/src/mcp/tools/execute/utils.js +15 -0
  149. package/dist/src/mcp/tools/execute/utils.js.map +1 -1
  150. package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
  151. package/dist/src/mcp/tools/execute-passthrough.js +21 -1
  152. package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
  153. package/dist/src/mcp/tools/interview-passthrough.d.ts +2 -1
  154. package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
  155. package/dist/src/mcp/tools/interview-passthrough.js +4 -3
  156. package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
  157. package/dist/src/mcp/tools/interview.d.ts.map +1 -1
  158. package/dist/src/mcp/tools/interview.js +2 -1
  159. package/dist/src/mcp/tools/interview.js.map +1 -1
  160. package/dist/src/mcp/tools/review-passthrough.js +15 -19
  161. package/dist/src/mcp/tools/review-passthrough.js.map +1 -1
  162. package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
  163. package/dist/src/mcp/tools/spec-passthrough.js +16 -8
  164. package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
  165. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  166. package/dist/src/mcp/tools/status.js +4 -0
  167. package/dist/src/mcp/tools/status.js.map +1 -1
  168. package/dist/src/memory/memory-context-injector.d.ts +22 -8
  169. package/dist/src/memory/memory-context-injector.d.ts.map +1 -1
  170. package/dist/src/memory/memory-context-injector.js +85 -13
  171. package/dist/src/memory/memory-context-injector.js.map +1 -1
  172. package/dist/src/memory/memory-merge.d.ts +19 -0
  173. package/dist/src/memory/memory-merge.d.ts.map +1 -0
  174. package/dist/src/memory/memory-merge.js +120 -0
  175. package/dist/src/memory/memory-merge.js.map +1 -0
  176. package/dist/src/memory/project-memory-store.d.ts +15 -11
  177. package/dist/src/memory/project-memory-store.d.ts.map +1 -1
  178. package/dist/src/memory/project-memory-store.js +97 -120
  179. package/dist/src/memory/project-memory-store.js.map +1 -1
  180. package/dist/src/memory/semantic-search.d.ts +4 -1
  181. package/dist/src/memory/semantic-search.d.ts.map +1 -1
  182. package/dist/src/memory/semantic-search.js +66 -19
  183. package/dist/src/memory/semantic-search.js.map +1 -1
  184. package/dist/src/resilience/lateral.d.ts +8 -1
  185. package/dist/src/resilience/lateral.d.ts.map +1 -1
  186. package/dist/src/resilience/lateral.js +52 -4
  187. package/dist/src/resilience/lateral.js.map +1 -1
  188. package/package.json +1 -1
  189. package/plugin/.codex-plugin/plugin.json +1 -1
  190. package/plugin/.mcp.json +1 -1
  191. package/plugin/mcp.json +1 -1
  192. package/plugin/skills/dispatch/SKILL.md +14 -2
  193. package/plugin/skills/execute/SKILL.md +219 -52
  194. package/plugin/skills/interview/SKILL.md +15 -2
  195. package/plugin/skills/solve/SKILL.md +20 -5
  196. package/plugin/skills/spec/SKILL.md +2 -0
  197. package/dist/src/interview/mini-interview-engine.d.ts +0 -33
  198. package/dist/src/interview/mini-interview-engine.d.ts.map +0 -1
  199. package/dist/src/interview/mini-interview-engine.js +0 -102
  200. package/dist/src/interview/mini-interview-engine.js.map +0 -1
  201. package/dist/src/memory/user-profile-store.d.ts +0 -13
  202. package/dist/src/memory/user-profile-store.d.ts.map +0 -1
  203. package/dist/src/memory/user-profile-store.js +0 -85
  204. package/dist/src/memory/user-profile-store.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/execute/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/execute/repository.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,46 @@
1
- import type { ExecuteSession, ExecutionPlan, PlanningStepResult, Spec, TaskExecutionResult, EvaluationResult, StructuralResult, DriftScore, SpecPatch, SpecDelta, FixTask, EvolutionGeneration, TerminationReason, RoleMatch, RoleConsensus, SubTask, AuditResult } from '../core/types.js';
1
+ import type { ExecuteSession, ExecutionPlan, PlanningStepResult, Spec, TaskExecutionResult, EvaluationResult, StructuralResult, DriftScore, SpecPatch, SpecDelta, FixTask, EvolutionGeneration, TerminationReason, RoleMatch, RoleConsensus, SubTask, AuditResult, StructuralCommand, BaselineCapture, HumanGate, HumanGateResolution } from '../core/types.js';
2
2
  import type { IEventStore } from '../events/store.js';
3
+ /**
4
+ * 실행 세션의 인메모리 캐시. 기준은 이벤트 스토어다.
5
+ *
6
+ * 같은 DB를 여러 MCP 프로세스(dispatch 워커 등)가 함께 쓴다. 그래서 캐시가 담은
7
+ * 세션마다 그때까지 반영한 이벤트 수를 들고 있다가, get()에서 스토어의 수와 다르면
8
+ * 다시 재구성한다. 모든 변경 메서드가 get()부터 부르므로 쓰기도 최신 상태 위에서 한다.
9
+ */
3
10
  export declare class ExecuteSessionManager {
4
11
  private eventStore;
5
12
  private sessions;
13
+ private eventCounts;
14
+ private memoryOnlyBaselines;
15
+ private repo;
6
16
  constructor(eventStore: IEventStore);
7
17
  /**
8
18
  * EventStore에서 기존 세션을 복원하여 메모리 Map에 로드한다.
9
19
  * 서버 시작 시 한 번 호출.
10
20
  */
11
21
  loadFromStore(): void;
22
+ private reload;
23
+ private record;
12
24
  create(spec: Spec, opts?: {
13
25
  codeGraphRepoRoot?: string;
14
26
  }): ExecuteSession;
15
27
  /**
16
28
  * updatedAt(마지막 활동) 기준으로 ttlMs를 초과한 인메모리 세션을 제거한다.
17
- * SQLite 이벤트 원장은 보존되므로 재시작 시 loadFromStore로 복원 가능.
29
+ * SQLite 이벤트 원장은 보존되므로 지운 세션도 get()이 다시 재구성한다.
18
30
  * @returns 제거된 세션 수
19
31
  */
20
32
  cleanup(ttlMs?: number): number;
21
33
  get(sessionId: string): ExecuteSession;
22
34
  addPlanningStep(sessionId: string, stepResult: PlanningStepResult): void;
35
+ /**
36
+ * planningSteps를 앞에서 keepSteps개만 남기고 잘라낸다. DAG가 무효일 때 closure부터 다시 받으려고 쓴다.
37
+ * replay도 같은 길이로 잘라야 하므로 keepSteps를 이벤트에 그대로 싣는다.
38
+ */
39
+ rewindPlanning(sessionId: string, keepSteps: number, detail: Record<string, unknown>): void;
23
40
  completePlan(sessionId: string, plan: ExecutionPlan): void;
24
- startExecution(sessionId: string): void;
41
+ startExecution(sessionId: string, capture?: BaselineCapture): void;
25
42
  addTaskResult(sessionId: string, taskResult: TaskExecutionResult): void;
26
- startStructuralEvaluation(sessionId: string): void;
43
+ startStructuralEvaluation(sessionId: string, commands: StructuralCommand[]): void;
27
44
  completeStructuralStage(sessionId: string, structuralResult: StructuralResult): void;
28
45
  startContextualEvaluation(sessionId: string): void;
29
46
  shortCircuitEvaluation(sessionId: string, reason: string): void;
@@ -42,6 +59,11 @@ export declare class ExecuteSessionManager {
42
59
  setAuditResult(sessionId: string, auditResult: AuditResult): void;
43
60
  startLateral(sessionId: string, persona: string, pattern: string): void;
44
61
  completeLateral(sessionId: string, persona: string, description: string): void;
62
+ openHumanGate(sessionId: string, gate: HumanGate, detail: {
63
+ triedPersonas: string[];
64
+ bestScore: number;
65
+ }): void;
66
+ resolveHumanGate(sessionId: string, gateId: string, resolution: HumanGateResolution, resumes: boolean): void;
45
67
  terminate(sessionId: string, reason: TerminationReason): void;
46
68
  fail(sessionId: string, reason: string): void;
47
69
  list(): ExecuteSession[];
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/execute/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/execute/session.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,78 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { ExecuteSessionNotFoundError } from '../core/errors.js';
3
- import { DEFAULT_SESSION_TTL_MS } from '../core/constants.js';
3
+ import { BASELINE_EVENT_DIRTY_LIMIT, DEFAULT_SESSION_TTL_MS } from '../core/constants.js';
4
4
  import { logger } from '../core/logger.js';
5
5
  import { EventType } from '../events/types.js';
6
- import { ExecuteSessionRepository } from './repository.js';
6
+ import { ExecuteSessionRepository, buildShortCircuitEvaluation } from './repository.js';
7
7
  import { computeReadyTaskIds } from './parallel-groups.js';
8
+ import { redactSecrets } from '../mcp/input-guard.js';
9
+ // evolve_fix 프롬프트가 출력 끝 500자를 쓰므로 그보다 넉넉히 끝을 남긴다
10
+ const EVENT_OUTPUT_TAIL = 2000;
11
+ /**
12
+ * 구조 평가 결과를 이벤트에 싣는 꼴로 바꾼다. 원장은 지워지지 않으므로 빌드 로그 원문을
13
+ * 남기지 않는다. 토큰은 원문 전체에서 가린 뒤 자른다 — 잘린 조각에서는 패턴이 안 걸린다.
14
+ * 메모리의 세션은 원문을 그대로 둔다.
15
+ */
16
+ function toEventStructuralResult(result) {
17
+ if (!result)
18
+ return undefined;
19
+ return {
20
+ ...result,
21
+ commands: result.commands.map((c) => {
22
+ const output = redactSecrets(c.output);
23
+ return {
24
+ ...c,
25
+ command: redactSecrets(c.command),
26
+ output: output.length <= EVENT_OUTPUT_TAIL
27
+ ? output
28
+ : `…(앞 ${output.length - EVENT_OUTPUT_TAIL}자 생략)\n${output.slice(-EVENT_OUTPUT_TAIL)}`,
29
+ };
30
+ }),
31
+ };
32
+ }
33
+ /**
34
+ * 실행 세션의 인메모리 캐시. 기준은 이벤트 스토어다.
35
+ *
36
+ * 같은 DB를 여러 MCP 프로세스(dispatch 워커 등)가 함께 쓴다. 그래서 캐시가 담은
37
+ * 세션마다 그때까지 반영한 이벤트 수를 들고 있다가, get()에서 스토어의 수와 다르면
38
+ * 다시 재구성한다. 모든 변경 메서드가 get()부터 부르므로 쓰기도 최신 상태 위에서 한다.
39
+ */
8
40
  export class ExecuteSessionManager {
9
41
  eventStore;
10
42
  sessions = new Map();
43
+ eventCounts = new Map();
44
+ // 이벤트에 못 남긴 기준 트리(baseline_truncated). 재구성은 이벤트만 보므로 여기 따로 두고 다시 얹는다.
45
+ // 세션당 실행 시작은 한 번뿐이라 세션 id로 묶어도 다른 시작의 기준 트리와 섞이지 않는다
46
+ memoryOnlyBaselines = new Map();
47
+ repo;
11
48
  constructor(eventStore) {
12
49
  this.eventStore = eventStore;
50
+ this.repo = new ExecuteSessionRepository(eventStore);
13
51
  }
14
52
  /**
15
53
  * EventStore에서 기존 세션을 복원하여 메모리 Map에 로드한다.
16
54
  * 서버 시작 시 한 번 호출.
17
55
  */
18
56
  loadFromStore() {
19
- const repo = new ExecuteSessionRepository(this.eventStore);
20
- const restored = repo.reconstructAll();
21
- for (const session of restored) {
22
- this.sessions.set(session.sessionId, session);
57
+ for (const id of this.repo.list())
58
+ this.reload(id);
59
+ }
60
+ reload(sessionId) {
61
+ const loaded = this.repo.load(sessionId);
62
+ if (!loaded)
63
+ return null;
64
+ const kept = this.memoryOnlyBaselines.get(sessionId);
65
+ if (kept && loaded.session.workingTreeBaselineSkipped === 'baseline_truncated') {
66
+ loaded.session.workingTreeBaseline = kept;
67
+ loaded.session.workingTreeBaselineSkipped = undefined;
23
68
  }
69
+ this.sessions.set(sessionId, loaded.session);
70
+ this.eventCounts.set(sessionId, loaded.eventCount);
71
+ return loaded.session;
72
+ }
73
+ record(sessionId, eventType, payload) {
74
+ this.eventStore.append('execute', sessionId, eventType, payload);
75
+ this.eventCounts.set(sessionId, (this.eventCounts.get(sessionId) ?? 0) + 1);
24
76
  }
25
77
  create(spec, opts = {}) {
26
78
  const session = {
@@ -40,12 +92,13 @@ export class ExecuteSessionManager {
40
92
  currentGeneration: 0,
41
93
  lateralTriedPersonas: [],
42
94
  lateralAttempts: 0,
95
+ humanGates: [],
43
96
  codeGraphRepoRoot: opts.codeGraphRepoRoot,
44
97
  createdAt: new Date().toISOString(),
45
98
  updatedAt: new Date().toISOString(),
46
99
  };
47
100
  this.sessions.set(session.sessionId, session);
48
- this.eventStore.append('execute', session.sessionId, EventType.EXECUTE_SESSION_STARTED, {
101
+ this.record(session.sessionId, EventType.EXECUTE_SESSION_STARTED, {
49
102
  specId: spec.metadata.specId,
50
103
  goal: spec.goal,
51
104
  acCount: spec.acceptanceCriteria.length,
@@ -62,7 +115,7 @@ export class ExecuteSessionManager {
62
115
  }
63
116
  /**
64
117
  * updatedAt(마지막 활동) 기준으로 ttlMs를 초과한 인메모리 세션을 제거한다.
65
- * SQLite 이벤트 원장은 보존되므로 재시작 시 loadFromStore로 복원 가능.
118
+ * SQLite 이벤트 원장은 보존되므로 지운 세션도 get()이 다시 재구성한다.
66
119
  * @returns 제거된 세션 수
67
120
  */
68
121
  cleanup(ttlMs = DEFAULT_SESSION_TTL_MS) {
@@ -71,13 +124,19 @@ export class ExecuteSessionManager {
71
124
  for (const [id, session] of this.sessions) {
72
125
  if (now - new Date(session.updatedAt).getTime() > ttlMs) {
73
126
  this.sessions.delete(id);
127
+ this.eventCounts.delete(id);
74
128
  removed++;
75
129
  }
76
130
  }
77
131
  return removed;
78
132
  }
79
133
  get(sessionId) {
80
- const session = this.sessions.get(sessionId);
134
+ const cached = this.sessions.get(sessionId);
135
+ if (cached &&
136
+ this.eventCounts.get(sessionId) === this.eventStore.countByAggregate('execute', sessionId)) {
137
+ return cached;
138
+ }
139
+ const session = this.reload(sessionId);
81
140
  if (!session)
82
141
  throw new ExecuteSessionNotFoundError(sessionId);
83
142
  return session;
@@ -87,31 +146,56 @@ export class ExecuteSessionManager {
87
146
  session.planningSteps.push(stepResult);
88
147
  session.currentStep = session.planningSteps.length + 1;
89
148
  session.updatedAt = new Date().toISOString();
90
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_PLANNING_STEP_COMPLETED, {
149
+ this.record(sessionId, EventType.EXECUTE_PLANNING_STEP_COMPLETED, {
91
150
  principle: stepResult.principle,
92
151
  stepNumber: session.planningSteps.length,
93
152
  stepResult,
94
153
  });
95
154
  }
155
+ /**
156
+ * planningSteps를 앞에서 keepSteps개만 남기고 잘라낸다. DAG가 무효일 때 closure부터 다시 받으려고 쓴다.
157
+ * replay도 같은 길이로 잘라야 하므로 keepSteps를 이벤트에 그대로 싣는다.
158
+ */
159
+ rewindPlanning(sessionId, keepSteps, detail) {
160
+ const session = this.get(sessionId);
161
+ session.planningSteps.splice(keepSteps);
162
+ session.currentStep = session.planningSteps.length + 1;
163
+ session.updatedAt = new Date().toISOString();
164
+ this.record(sessionId, EventType.EXECUTE_PLANNING_REWOUND, { ...detail, keepSteps });
165
+ }
96
166
  completePlan(sessionId, plan) {
97
167
  const session = this.get(sessionId);
98
168
  session.executionPlan = plan;
99
169
  session.status = 'plan_complete';
100
170
  session.updatedAt = new Date().toISOString();
101
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_PLAN_COMPLETED, {
171
+ this.record(sessionId, EventType.EXECUTE_PLAN_COMPLETED, {
102
172
  planId: plan.planId,
103
173
  taskCount: plan.atomicTasks.length,
104
174
  groupCount: plan.taskGroups.length,
105
175
  executionPlan: plan,
106
176
  });
107
177
  }
108
- startExecution(sessionId) {
178
+ startExecution(sessionId, capture) {
109
179
  const session = this.get(sessionId);
180
+ const baseline = capture?.baseline;
110
181
  session.status = 'executing';
182
+ session.workingTreeBaseline = baseline;
183
+ session.workingTreeBaselineSkipped = baseline ? undefined : capture?.skipped;
111
184
  session.updatedAt = new Date().toISOString();
112
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_EXECUTION_STARTED, {
185
+ // 해시가 너무 많으면 이벤트에는 사유만 남긴다. 이 프로세스가 사는 동안은 메모리의 기준 트리로 대조한다
186
+ const dirtyCount = baseline ? Object.keys(baseline.dirty).length : 0;
187
+ const truncated = dirtyCount > BASELINE_EVENT_DIRTY_LIMIT;
188
+ if (baseline && truncated)
189
+ this.memoryOnlyBaselines.set(sessionId, baseline);
190
+ const eventSkipped = truncated
191
+ ? 'baseline_truncated'
192
+ : session.workingTreeBaselineSkipped;
193
+ this.record(sessionId, EventType.EXECUTE_EXECUTION_STARTED, {
113
194
  planId: session.executionPlan?.planId,
114
195
  taskCount: session.executionPlan?.atomicTasks.length,
196
+ ...(baseline && !truncated ? { workingTreeBaseline: baseline } : {}),
197
+ ...(eventSkipped ? { workingTreeBaselineSkipped: eventSkipped } : {}),
198
+ ...(truncated ? { baselineDirtyCount: dirtyCount } : {}),
115
199
  });
116
200
  }
117
201
  addTaskResult(sessionId, taskResult) {
@@ -136,11 +220,12 @@ export class ExecuteSessionManager {
136
220
  session.nextTaskId = session.nextTaskIds[0] ?? null;
137
221
  }
138
222
  session.updatedAt = new Date().toISOString();
139
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_TASK_COMPLETED, {
223
+ this.record(sessionId, EventType.EXECUTE_TASK_COMPLETED, {
140
224
  taskId: taskResult.taskId,
141
225
  status: taskResult.status,
142
226
  output: taskResult.output,
143
227
  artifacts: taskResult.artifacts,
228
+ ...(taskResult.noCodeChange ? { noCodeChange: true } : {}),
144
229
  });
145
230
  logger.info('execute.task_completed', {
146
231
  module: 'execute',
@@ -149,28 +234,32 @@ export class ExecuteSessionManager {
149
234
  status: taskResult.status,
150
235
  });
151
236
  }
152
- startStructuralEvaluation(sessionId) {
237
+ startStructuralEvaluation(sessionId, commands) {
153
238
  const session = this.get(sessionId);
154
239
  session.evaluateStage = 'structural';
240
+ session.structuralCommands = commands;
155
241
  session.updatedAt = new Date().toISOString();
156
- this.eventStore.append('execute', sessionId, EventType.EVALUATE_STRUCTURAL_STARTED, {
242
+ this.record(sessionId, EventType.EVALUATE_STRUCTURAL_STARTED, {
157
243
  taskResultCount: session.taskResults.length,
244
+ commands,
158
245
  });
159
246
  }
160
247
  completeStructuralStage(sessionId, structuralResult) {
161
248
  const session = this.get(sessionId);
162
249
  session.structuralResult = structuralResult;
163
250
  session.updatedAt = new Date().toISOString();
164
- this.eventStore.append('execute', sessionId, EventType.EVALUATE_STRUCTURAL_COMPLETED, {
251
+ this.record(sessionId, EventType.EVALUATE_STRUCTURAL_COMPLETED, {
165
252
  allPassed: structuralResult.allPassed,
253
+ // 축약 commands는 structuralResult를 모르는 이전 버전이 이 원장을 읽을 때 쓴다
166
254
  commands: structuralResult.commands.map((c) => ({ name: c.name, exitCode: c.exitCode })),
255
+ structuralResult: toEventStructuralResult(structuralResult),
167
256
  });
168
257
  }
169
258
  startContextualEvaluation(sessionId) {
170
259
  const session = this.get(sessionId);
171
260
  session.evaluateStage = 'contextual';
172
261
  session.updatedAt = new Date().toISOString();
173
- this.eventStore.append('execute', sessionId, EventType.EVALUATE_CONTEXTUAL_STARTED, {
262
+ this.record(sessionId, EventType.EVALUATE_CONTEXTUAL_STARTED, {
174
263
  structuralPassed: session.structuralResult?.allPassed ?? false,
175
264
  });
176
265
  }
@@ -178,23 +267,14 @@ export class ExecuteSessionManager {
178
267
  const session = this.get(sessionId);
179
268
  session.evaluateStage = 'complete';
180
269
  session.status = 'completed';
181
- session.evaluationResult = {
182
- verifications: session.spec.acceptanceCriteria.map((_, i) => ({
183
- acIndex: i,
184
- satisfied: false,
185
- evidence: 'Short-circuited due to structural failure',
186
- gaps: [reason],
187
- })),
188
- overallScore: 0,
189
- goalAlignment: 0,
190
- recommendations: ['Fix structural issues before contextual evaluation'],
191
- };
270
+ session.evaluationResult = buildShortCircuitEvaluation(session.spec, reason);
192
271
  session.updatedAt = new Date().toISOString();
193
- this.eventStore.append('execute', sessionId, EventType.EVALUATE_SHORT_CIRCUITED, {
272
+ this.record(sessionId, EventType.EVALUATE_SHORT_CIRCUITED, {
194
273
  reason,
195
- structuralResult: session.structuralResult,
274
+ structuralResult: toEventStructuralResult(session.structuralResult),
275
+ evaluationResult: session.evaluationResult,
196
276
  });
197
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_SESSION_COMPLETED, {
277
+ this.record(sessionId, EventType.EXECUTE_SESSION_COMPLETED, {
198
278
  overallScore: 0,
199
279
  shortCircuited: true,
200
280
  });
@@ -205,14 +285,14 @@ export class ExecuteSessionManager {
205
285
  session.evaluateStage = 'complete';
206
286
  session.status = 'completed';
207
287
  session.updatedAt = new Date().toISOString();
208
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_EVALUATION_COMPLETED, {
288
+ this.record(sessionId, EventType.EXECUTE_EVALUATION_COMPLETED, {
209
289
  overallScore: evaluationResult.overallScore,
210
290
  goalAlignment: evaluationResult.goalAlignment,
211
291
  satisfiedCount: evaluationResult.verifications.filter((v) => v.satisfied).length,
212
292
  totalCount: evaluationResult.verifications.length,
213
293
  evaluationResult,
214
294
  });
215
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_SESSION_COMPLETED, {
295
+ this.record(sessionId, EventType.EXECUTE_SESSION_COMPLETED, {
216
296
  overallScore: evaluationResult.overallScore,
217
297
  });
218
298
  logger.info('execute.completed', {
@@ -226,11 +306,12 @@ export class ExecuteSessionManager {
226
306
  const session = this.get(sessionId);
227
307
  session.driftHistory.push(driftScore);
228
308
  session.updatedAt = new Date().toISOString();
229
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_DRIFT_MEASURED, {
309
+ this.record(sessionId, EventType.EXECUTE_DRIFT_MEASURED, {
230
310
  taskId: driftScore.taskId,
231
311
  overall: driftScore.overall,
232
312
  thresholdExceeded: driftScore.thresholdExceeded,
233
313
  dimensions: driftScore.dimensions,
314
+ driftScore,
234
315
  });
235
316
  }
236
317
  // ─── Evolution Loop Methods ─────────────────────────────────
@@ -239,9 +320,9 @@ export class ExecuteSessionManager {
239
320
  session.evolveStage = 'fix';
240
321
  session.status = 'executing';
241
322
  session.updatedAt = new Date().toISOString();
242
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_STRUCTURAL_FIX_STARTED, {
323
+ this.record(sessionId, EventType.EVOLVE_STRUCTURAL_FIX_STARTED, {
243
324
  generation: session.currentGeneration,
244
- structuralResult: session.structuralResult,
325
+ structuralResult: toEventStructuralResult(session.structuralResult),
245
326
  });
246
327
  }
247
328
  completeStructuralFix(sessionId, fixTasks) {
@@ -253,7 +334,7 @@ export class ExecuteSessionManager {
253
334
  session.evaluationResult = undefined;
254
335
  session.status = 'executing';
255
336
  session.updatedAt = new Date().toISOString();
256
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_STRUCTURAL_FIX_COMPLETED, {
337
+ this.record(sessionId, EventType.EVOLVE_STRUCTURAL_FIX_COMPLETED, {
257
338
  generation,
258
339
  fixCount: fixTasks.length,
259
340
  fixTasks,
@@ -272,7 +353,7 @@ export class ExecuteSessionManager {
272
353
  session.spec = newSpec;
273
354
  session.evolveStage = 'patch';
274
355
  session.updatedAt = new Date().toISOString();
275
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_SPEC_PATCHED, {
356
+ this.record(sessionId, EventType.EVOLVE_SPEC_PATCHED, {
276
357
  generation: session.currentGeneration,
277
358
  patch,
278
359
  spec: newSpec,
@@ -286,7 +367,7 @@ export class ExecuteSessionManager {
286
367
  // Clear results for tasks being re-executed
287
368
  session.taskResults = session.taskResults.filter((r) => !taskIds.includes(r.taskId));
288
369
  session.updatedAt = new Date().toISOString();
289
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_RE_EXECUTION_STARTED, {
370
+ this.record(sessionId, EventType.EVOLVE_RE_EXECUTION_STARTED, {
290
371
  generation: session.currentGeneration,
291
372
  taskIds,
292
373
  });
@@ -301,7 +382,7 @@ export class ExecuteSessionManager {
301
382
  session.taskResults.push(taskResult);
302
383
  }
303
384
  session.updatedAt = new Date().toISOString();
304
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_TASK_COMPLETED, {
385
+ this.record(sessionId, EventType.EVOLVE_TASK_COMPLETED, {
305
386
  generation: session.currentGeneration,
306
387
  taskId: taskResult.taskId,
307
388
  status: taskResult.status,
@@ -321,20 +402,22 @@ export class ExecuteSessionManager {
321
402
  session.roleMatches = [];
322
403
  session.roleMatches = matches;
323
404
  session.updatedAt = new Date().toISOString();
324
- this.eventStore.append('execute', sessionId, EventType.ROLE_MATCH_COMPLETED, {
405
+ this.record(sessionId, EventType.ROLE_MATCH_COMPLETED, {
325
406
  taskId,
326
407
  matchCount: matches.length,
327
408
  agents: matches.map((m) => m.agentName),
409
+ matches,
328
410
  });
329
411
  }
330
412
  setRoleConsensus(sessionId, taskId, consensus) {
331
413
  const session = this.get(sessionId);
332
414
  session.roleConsensus = consensus;
333
415
  session.updatedAt = new Date().toISOString();
334
- this.eventStore.append('execute', sessionId, EventType.ROLE_CONSENSUS_COMPLETED, {
416
+ this.record(sessionId, EventType.ROLE_CONSENSUS_COMPLETED, {
335
417
  taskId,
336
418
  participatingAgents: consensus.perspectives.map((p) => p.agentName),
337
419
  conflictCount: consensus.conflictResolutions.length,
420
+ consensus,
338
421
  });
339
422
  }
340
423
  clearRoleState(sessionId) {
@@ -342,23 +425,26 @@ export class ExecuteSessionManager {
342
425
  session.roleMatches = undefined;
343
426
  session.roleConsensus = undefined;
344
427
  session.updatedAt = new Date().toISOString();
428
+ this.record(sessionId, EventType.ROLE_STATE_CLEARED, {});
345
429
  }
346
430
  // ─── Sub-task Methods ───────────────────────────────────────
347
431
  addSubTasks(sessionId, subTasks) {
348
432
  const session = this.get(sessionId);
349
433
  session.subTasks.push(...subTasks);
350
434
  session.updatedAt = new Date().toISOString();
351
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_TASK_COMPLETED, {
435
+ this.record(sessionId, EventType.EXECUTE_TASK_COMPLETED, {
352
436
  type: 'sub_tasks_spawned',
353
437
  parentTaskId: subTasks[0]?.parentTaskId,
354
438
  count: subTasks.length,
355
439
  taskIds: subTasks.map((t) => t.taskId),
440
+ subTasks,
356
441
  });
357
442
  }
358
443
  setAuditResult(sessionId, auditResult) {
359
444
  const session = this.get(sessionId);
360
445
  session.auditResult = auditResult;
361
446
  session.updatedAt = new Date().toISOString();
447
+ this.record(sessionId, EventType.EXECUTE_AUDIT_COMPLETED, { auditResult });
362
448
  }
363
449
  // ─── Lateral Thinking Methods ───────────────────────────────
364
450
  startLateral(sessionId, persona, pattern) {
@@ -368,7 +454,7 @@ export class ExecuteSessionManager {
368
454
  session.lateralCurrentPersona = persona;
369
455
  session.lateralCurrentPattern = pattern;
370
456
  session.updatedAt = new Date().toISOString();
371
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_LATERAL_STARTED, {
457
+ this.record(sessionId, EventType.EVOLVE_LATERAL_STARTED, {
372
458
  generation: session.currentGeneration,
373
459
  persona,
374
460
  pattern,
@@ -382,20 +468,51 @@ export class ExecuteSessionManager {
382
468
  session.lateralCurrentPersona = undefined;
383
469
  session.lateralCurrentPattern = undefined;
384
470
  session.updatedAt = new Date().toISOString();
385
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_LATERAL_COMPLETED, {
471
+ this.record(sessionId, EventType.EVOLVE_LATERAL_COMPLETED, {
386
472
  generation: session.currentGeneration,
387
473
  persona,
388
474
  description,
389
475
  attemptNumber: session.lateralAttempts,
390
476
  });
391
477
  }
478
+ // ─── Human Gate Methods ─────────────────────────────────────
479
+ openHumanGate(sessionId, gate, detail) {
480
+ const session = this.get(sessionId);
481
+ const open = session.humanGates.find((g) => g.status === 'open');
482
+ if (open)
483
+ throw new Error(`Human gate already open: ${open.gateId}`);
484
+ session.humanGates.push(gate);
485
+ session.status = 'awaiting_human';
486
+ session.evolveStage = undefined;
487
+ session.updatedAt = new Date().toISOString();
488
+ this.record(sessionId, EventType.EVOLVE_HUMAN_ESCALATION, {
489
+ ...detail,
490
+ gate,
491
+ });
492
+ }
493
+ resolveHumanGate(sessionId, gateId, resolution, resumes) {
494
+ const session = this.get(sessionId);
495
+ const gate = session.humanGates.find((g) => g.gateId === gateId);
496
+ if (!gate)
497
+ throw new Error(`Gate not found: ${gateId}`);
498
+ gate.status = 'resolved';
499
+ gate.resolution = resolution;
500
+ if (resumes)
501
+ session.status = 'executing';
502
+ session.updatedAt = new Date().toISOString();
503
+ this.record(sessionId, EventType.EVOLVE_HUMAN_GATE_RESOLVED, {
504
+ gateId,
505
+ resolution,
506
+ resumes,
507
+ });
508
+ }
392
509
  terminate(sessionId, reason) {
393
510
  const session = this.get(sessionId);
394
511
  session.terminationReason = reason;
395
512
  session.status = reason === 'success' ? 'completed' : 'failed';
396
513
  session.evolveStage = undefined;
397
514
  session.updatedAt = new Date().toISOString();
398
- this.eventStore.append('execute', sessionId, EventType.EVOLVE_TERMINATED, {
515
+ this.record(sessionId, EventType.EVOLVE_TERMINATED, {
399
516
  reason,
400
517
  generation: session.currentGeneration,
401
518
  scoreHistory: session.evolutionHistory.map((g) => g.evaluationScore),
@@ -406,7 +523,7 @@ export class ExecuteSessionManager {
406
523
  const session = this.get(sessionId);
407
524
  session.status = 'failed';
408
525
  session.updatedAt = new Date().toISOString();
409
- this.eventStore.append('execute', sessionId, EventType.EXECUTE_SESSION_FAILED, {
526
+ this.record(sessionId, EventType.EXECUTE_SESSION_FAILED, {
410
527
  reason,
411
528
  });
412
529
  logger.warn('execute.failed', {