@tienne/gestalt 0.1.1 → 0.5.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 (218) hide show
  1. package/CLAUDE.md +175 -6
  2. package/README.md +381 -14
  3. package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts +94 -0
  4. package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts.map +1 -0
  5. package/dist/benchmarks/runners/passthrough-benchmark-runner.js +454 -0
  6. package/dist/benchmarks/runners/passthrough-benchmark-runner.js.map +1 -0
  7. package/dist/benchmarks/scenarios/api-gateway.scenario.d.ts +3 -0
  8. package/dist/benchmarks/scenarios/api-gateway.scenario.d.ts.map +1 -0
  9. package/dist/benchmarks/scenarios/api-gateway.scenario.js +115 -0
  10. package/dist/benchmarks/scenarios/api-gateway.scenario.js.map +1 -0
  11. package/dist/benchmarks/scenarios/auth-system.scenario.d.ts +3 -0
  12. package/dist/benchmarks/scenarios/auth-system.scenario.d.ts.map +1 -0
  13. package/dist/benchmarks/scenarios/auth-system.scenario.js +114 -0
  14. package/dist/benchmarks/scenarios/auth-system.scenario.js.map +1 -0
  15. package/dist/benchmarks/scenarios/dashboard.scenario.d.ts +3 -0
  16. package/dist/benchmarks/scenarios/dashboard.scenario.d.ts.map +1 -0
  17. package/dist/benchmarks/scenarios/dashboard.scenario.js +110 -0
  18. package/dist/benchmarks/scenarios/dashboard.scenario.js.map +1 -0
  19. package/dist/benchmarks/types.d.ts +148 -0
  20. package/dist/benchmarks/types.d.ts.map +1 -0
  21. package/dist/benchmarks/types.js +2 -0
  22. package/dist/benchmarks/types.js.map +1 -0
  23. package/dist/package.json +61 -0
  24. package/dist/schemas/gestalt.schema.json +98 -0
  25. package/dist/src/agent/parser.d.ts.map +1 -1
  26. package/dist/src/agent/parser.js +2 -0
  27. package/dist/src/agent/parser.js.map +1 -1
  28. package/dist/src/agent/passthrough-generator.d.ts +27 -0
  29. package/dist/src/agent/passthrough-generator.d.ts.map +1 -0
  30. package/dist/src/agent/passthrough-generator.js +133 -0
  31. package/dist/src/agent/passthrough-generator.js.map +1 -0
  32. package/dist/src/agent/registry.d.ts +1 -0
  33. package/dist/src/agent/registry.d.ts.map +1 -1
  34. package/dist/src/agent/registry.js +4 -1
  35. package/dist/src/agent/registry.js.map +1 -1
  36. package/dist/src/agent/role-agent-registry.d.ts +18 -0
  37. package/dist/src/agent/role-agent-registry.d.ts.map +1 -0
  38. package/dist/src/agent/role-agent-registry.js +62 -0
  39. package/dist/src/agent/role-agent-registry.js.map +1 -0
  40. package/dist/src/agent/role-consensus-engine.d.ts +9 -0
  41. package/dist/src/agent/role-consensus-engine.d.ts.map +1 -0
  42. package/dist/src/agent/role-consensus-engine.js +35 -0
  43. package/dist/src/agent/role-consensus-engine.js.map +1 -0
  44. package/dist/src/agent/role-match-engine.d.ts +14 -0
  45. package/dist/src/agent/role-match-engine.d.ts.map +1 -0
  46. package/dist/src/agent/role-match-engine.js +46 -0
  47. package/dist/src/agent/role-match-engine.js.map +1 -0
  48. package/dist/src/agent/role-prompt-generator.d.ts +10 -0
  49. package/dist/src/agent/role-prompt-generator.d.ts.map +1 -0
  50. package/dist/src/agent/role-prompt-generator.js +22 -0
  51. package/dist/src/agent/role-prompt-generator.js.map +1 -0
  52. package/dist/src/cli/commands/interview.js +2 -2
  53. package/dist/src/cli/commands/interview.js.map +1 -1
  54. package/dist/src/cli/commands/monitor.d.ts +2 -0
  55. package/dist/src/cli/commands/monitor.d.ts.map +1 -0
  56. package/dist/src/cli/commands/monitor.js +13 -0
  57. package/dist/src/cli/commands/monitor.js.map +1 -0
  58. package/dist/src/cli/commands/setup.d.ts +2 -0
  59. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  60. package/dist/src/cli/commands/setup.js +20 -0
  61. package/dist/src/cli/commands/setup.js.map +1 -0
  62. package/dist/src/cli/commands/spec.js +2 -2
  63. package/dist/src/cli/commands/spec.js.map +1 -1
  64. package/dist/src/cli/commands/status.d.ts.map +1 -1
  65. package/dist/src/cli/commands/status.js +3 -3
  66. package/dist/src/cli/commands/status.js.map +1 -1
  67. package/dist/src/cli/index.d.ts.map +1 -1
  68. package/dist/src/cli/index.js +16 -1
  69. package/dist/src/cli/index.js.map +1 -1
  70. package/dist/src/core/config.d.ts +80 -17
  71. package/dist/src/core/config.d.ts.map +1 -1
  72. package/dist/src/core/config.js +141 -31
  73. package/dist/src/core/config.js.map +1 -1
  74. package/dist/src/core/constants.d.ts +2 -2
  75. package/dist/src/core/constants.d.ts.map +1 -1
  76. package/dist/src/core/constants.js +2 -2
  77. package/dist/src/core/constants.js.map +1 -1
  78. package/dist/src/core/errors.d.ts +3 -0
  79. package/dist/src/core/errors.d.ts.map +1 -1
  80. package/dist/src/core/errors.js +6 -0
  81. package/dist/src/core/errors.js.map +1 -1
  82. package/dist/src/core/types.d.ts +83 -3
  83. package/dist/src/core/types.d.ts.map +1 -1
  84. package/dist/src/core/version.d.ts +10 -0
  85. package/dist/src/core/version.d.ts.map +1 -0
  86. package/dist/src/core/version.js +89 -0
  87. package/dist/src/core/version.js.map +1 -0
  88. package/dist/src/events/types.d.ts +16 -1
  89. package/dist/src/events/types.d.ts.map +1 -1
  90. package/dist/src/events/types.js +19 -0
  91. package/dist/src/events/types.js.map +1 -1
  92. package/dist/src/execute/passthrough-engine.d.ts +44 -2
  93. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  94. package/dist/src/execute/passthrough-engine.js +245 -10
  95. package/dist/src/execute/passthrough-engine.js.map +1 -1
  96. package/dist/src/execute/repository.d.ts.map +1 -1
  97. package/dist/src/execute/repository.js +24 -0
  98. package/dist/src/execute/repository.js.map +1 -1
  99. package/dist/src/execute/session.d.ts +6 -1
  100. package/dist/src/execute/session.d.ts.map +1 -1
  101. package/dist/src/execute/session.js +60 -0
  102. package/dist/src/execute/session.js.map +1 -1
  103. package/dist/src/mcp/schemas.d.ts +513 -9
  104. package/dist/src/mcp/schemas.d.ts.map +1 -1
  105. package/dist/src/mcp/schemas.js +102 -0
  106. package/dist/src/mcp/schemas.js.map +1 -1
  107. package/dist/src/mcp/server.d.ts.map +1 -1
  108. package/dist/src/mcp/server.js +253 -38
  109. package/dist/src/mcp/server.js.map +1 -1
  110. package/dist/src/mcp/tools/benchmark-passthrough.d.ts +3 -0
  111. package/dist/src/mcp/tools/benchmark-passthrough.d.ts.map +1 -0
  112. package/dist/src/mcp/tools/benchmark-passthrough.js +95 -0
  113. package/dist/src/mcp/tools/benchmark-passthrough.js.map +1 -0
  114. package/dist/src/mcp/tools/create-agent-passthrough.d.ts +5 -0
  115. package/dist/src/mcp/tools/create-agent-passthrough.d.ts.map +1 -0
  116. package/dist/src/mcp/tools/create-agent-passthrough.js +59 -0
  117. package/dist/src/mcp/tools/create-agent-passthrough.js.map +1 -0
  118. package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
  119. package/dist/src/mcp/tools/execute-passthrough.js +126 -0
  120. package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
  121. package/dist/src/mcp/tools/review-passthrough.d.ts +6 -0
  122. package/dist/src/mcp/tools/review-passthrough.d.ts.map +1 -0
  123. package/dist/src/mcp/tools/review-passthrough.js +134 -0
  124. package/dist/src/mcp/tools/review-passthrough.js.map +1 -0
  125. package/dist/src/mcp/tools/status.d.ts +2 -1
  126. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  127. package/dist/src/mcp/tools/status.js +81 -26
  128. package/dist/src/mcp/tools/status.js.map +1 -1
  129. package/dist/src/resilience/lateral.d.ts +17 -0
  130. package/dist/src/resilience/lateral.d.ts.map +1 -0
  131. package/dist/src/resilience/lateral.js +62 -0
  132. package/dist/src/resilience/lateral.js.map +1 -0
  133. package/dist/src/resilience/prompts.d.ts +5 -0
  134. package/dist/src/resilience/prompts.d.ts.map +1 -0
  135. package/dist/src/resilience/prompts.js +130 -0
  136. package/dist/src/resilience/prompts.js.map +1 -0
  137. package/dist/src/resilience/stagnation-detector.d.ts +19 -0
  138. package/dist/src/resilience/stagnation-detector.d.ts.map +1 -0
  139. package/dist/src/resilience/stagnation-detector.js +38 -0
  140. package/dist/src/resilience/stagnation-detector.js.map +1 -0
  141. package/dist/src/resilience/types.d.ts +39 -0
  142. package/dist/src/resilience/types.d.ts.map +1 -0
  143. package/dist/src/resilience/types.js +17 -0
  144. package/dist/src/resilience/types.js.map +1 -0
  145. package/dist/src/review/agent-matcher.d.ts +15 -0
  146. package/dist/src/review/agent-matcher.d.ts.map +1 -0
  147. package/dist/src/review/agent-matcher.js +61 -0
  148. package/dist/src/review/agent-matcher.js.map +1 -0
  149. package/dist/src/review/context-collector.d.ts +7 -0
  150. package/dist/src/review/context-collector.d.ts.map +1 -0
  151. package/dist/src/review/context-collector.js +44 -0
  152. package/dist/src/review/context-collector.js.map +1 -0
  153. package/dist/src/review/passthrough-engine.d.ts +53 -0
  154. package/dist/src/review/passthrough-engine.d.ts.map +1 -0
  155. package/dist/src/review/passthrough-engine.js +257 -0
  156. package/dist/src/review/passthrough-engine.js.map +1 -0
  157. package/dist/src/review/report-generator.d.ts +7 -0
  158. package/dist/src/review/report-generator.d.ts.map +1 -0
  159. package/dist/src/review/report-generator.js +82 -0
  160. package/dist/src/review/report-generator.js.map +1 -0
  161. package/dist/src/tui/components/TUIApp.d.ts +20 -0
  162. package/dist/src/tui/components/TUIApp.d.ts.map +1 -0
  163. package/dist/src/tui/components/TUIApp.js +84 -0
  164. package/dist/src/tui/components/TUIApp.js.map +1 -0
  165. package/dist/src/tui/hooks/event-store-reader.d.ts +28 -0
  166. package/dist/src/tui/hooks/event-store-reader.d.ts.map +1 -0
  167. package/dist/src/tui/hooks/event-store-reader.js +143 -0
  168. package/dist/src/tui/hooks/event-store-reader.js.map +1 -0
  169. package/dist/src/tui/hooks/useEventStorePoller.d.ts +12 -0
  170. package/dist/src/tui/hooks/useEventStorePoller.d.ts.map +1 -0
  171. package/dist/src/tui/hooks/useEventStorePoller.js +86 -0
  172. package/dist/src/tui/hooks/useEventStorePoller.js.map +1 -0
  173. package/dist/src/tui/screens/DashboardScreen.d.ts +4 -0
  174. package/dist/src/tui/screens/DashboardScreen.d.ts.map +1 -0
  175. package/dist/src/tui/screens/DashboardScreen.js +132 -0
  176. package/dist/src/tui/screens/DashboardScreen.js.map +1 -0
  177. package/dist/src/tui/screens/DebugScreen.d.ts +4 -0
  178. package/dist/src/tui/screens/DebugScreen.d.ts.map +1 -0
  179. package/dist/src/tui/screens/DebugScreen.js +40 -0
  180. package/dist/src/tui/screens/DebugScreen.js.map +1 -0
  181. package/dist/src/tui/screens/EvolutionScreen.d.ts +4 -0
  182. package/dist/src/tui/screens/EvolutionScreen.d.ts.map +1 -0
  183. package/dist/src/tui/screens/EvolutionScreen.js +136 -0
  184. package/dist/src/tui/screens/EvolutionScreen.js.map +1 -0
  185. package/dist/src/tui/screens/HUDPanel.d.ts +4 -0
  186. package/dist/src/tui/screens/HUDPanel.d.ts.map +1 -0
  187. package/dist/src/tui/screens/HUDPanel.js +13 -0
  188. package/dist/src/tui/screens/HUDPanel.js.map +1 -0
  189. package/dist/src/tui/screens/InterviewScreen.d.ts +4 -0
  190. package/dist/src/tui/screens/InterviewScreen.d.ts.map +1 -0
  191. package/dist/src/tui/screens/InterviewScreen.js +103 -0
  192. package/dist/src/tui/screens/InterviewScreen.js.map +1 -0
  193. package/dist/src/tui/screens/LogScreen.d.ts +4 -0
  194. package/dist/src/tui/screens/LogScreen.d.ts.map +1 -0
  195. package/dist/src/tui/screens/LogScreen.js +83 -0
  196. package/dist/src/tui/screens/LogScreen.js.map +1 -0
  197. package/dist/src/tui/screens/SessionListScreen.d.ts +4 -0
  198. package/dist/src/tui/screens/SessionListScreen.d.ts.map +1 -0
  199. package/dist/src/tui/screens/SessionListScreen.js +71 -0
  200. package/dist/src/tui/screens/SessionListScreen.js.map +1 -0
  201. package/dist/src/tui/screens/SpecViewerScreen.d.ts +4 -0
  202. package/dist/src/tui/screens/SpecViewerScreen.d.ts.map +1 -0
  203. package/dist/src/tui/screens/SpecViewerScreen.js +73 -0
  204. package/dist/src/tui/screens/SpecViewerScreen.js.map +1 -0
  205. package/dist/src/tui/widgets/DriftMeter.d.ts +15 -0
  206. package/dist/src/tui/widgets/DriftMeter.d.ts.map +1 -0
  207. package/dist/src/tui/widgets/DriftMeter.js +27 -0
  208. package/dist/src/tui/widgets/DriftMeter.js.map +1 -0
  209. package/dist/src/tui/widgets/GestaltPrincipleBar.d.ts +9 -0
  210. package/dist/src/tui/widgets/GestaltPrincipleBar.d.ts.map +1 -0
  211. package/dist/src/tui/widgets/GestaltPrincipleBar.js +35 -0
  212. package/dist/src/tui/widgets/GestaltPrincipleBar.js.map +1 -0
  213. package/dist/src/tui/widgets/TaskDAGTree.d.ts +15 -0
  214. package/dist/src/tui/widgets/TaskDAGTree.d.ts.map +1 -0
  215. package/dist/src/tui/widgets/TaskDAGTree.js +54 -0
  216. package/dist/src/tui/widgets/TaskDAGTree.js.map +1 -0
  217. package/package.json +11 -3
  218. package/schemas/gestalt.schema.json +98 -0
@@ -34,6 +34,9 @@ export const executeInputSchema = z.object({
34
34
  action: z.enum([
35
35
  'start', 'plan_step', 'plan_complete', 'execute_start', 'execute_task', 'evaluate', 'status',
36
36
  'evolve_fix', 'evolve', 'evolve_patch', 'evolve_re_execute',
37
+ 'evolve_lateral', 'evolve_lateral_result',
38
+ 'role_match', 'role_consensus',
39
+ 'review_start', 'review_submit', 'review_consensus', 'review_fix',
37
40
  ]),
38
41
  spec: z.object({
39
42
  version: z.string(),
@@ -143,9 +146,108 @@ export const executeInputSchema = z.object({
143
146
  }).optional().describe('Re-execution task result (required for evolve_re_execute)'),
144
147
  terminateReason: z.enum(['caller']).optional()
145
148
  .describe('Caller-initiated termination (use with evolve action)'),
149
+ // ─── Role Agent System Fields ────────────────────────────
150
+ matchResult: z.array(z.object({
151
+ agentName: z.string(),
152
+ domain: z.array(z.string()),
153
+ relevanceScore: z.number().min(0).max(1),
154
+ reasoning: z.string(),
155
+ })).optional().describe('Role match results from LLM (for role_match action, call 2)'),
156
+ perspectives: z.array(z.object({
157
+ agentName: z.string(),
158
+ perspective: z.string(),
159
+ confidence: z.number().min(0).max(1),
160
+ })).optional().describe('Role perspectives from parallel LLM calls (for role_consensus action, call 1)'),
161
+ consensus: z.object({
162
+ consensus: z.string(),
163
+ conflictResolutions: z.array(z.string()),
164
+ perspectives: z.array(z.object({
165
+ agentName: z.string(),
166
+ perspective: z.string(),
167
+ confidence: z.number().min(0).max(1),
168
+ })),
169
+ }).optional().describe('Synthesized consensus result (for role_consensus action, call 2)'),
170
+ lateralResult: z.object({
171
+ persona: z.enum(['multistability', 'simplicity', 'reification', 'invariance']),
172
+ specPatch: z.object({
173
+ acceptanceCriteria: z.array(z.string()).optional(),
174
+ constraints: z.array(z.string()).optional(),
175
+ ontologySchema: z.object({
176
+ entities: z.array(z.object({
177
+ name: z.string(),
178
+ description: z.string(),
179
+ attributes: z.array(z.string()),
180
+ })).optional(),
181
+ relations: z.array(z.object({
182
+ from: z.string(),
183
+ to: z.string(),
184
+ type: z.string(),
185
+ })).optional(),
186
+ }).optional(),
187
+ }),
188
+ description: z.string(),
189
+ }).optional().describe('Lateral thinking result (required for evolve_lateral_result)'),
190
+ // Code Review
191
+ reviewAgentName: z.string().optional()
192
+ .describe('Review agent name (required for review_submit)'),
193
+ reviewResult: z.object({
194
+ issues: z.array(z.object({
195
+ id: z.string(),
196
+ severity: z.enum(['critical', 'high', 'warning']),
197
+ category: z.string(),
198
+ file: z.string(),
199
+ line: z.number().optional(),
200
+ message: z.string(),
201
+ suggestion: z.string(),
202
+ })),
203
+ approved: z.boolean(),
204
+ summary: z.string(),
205
+ }).optional().describe('Individual agent review result (required for review_submit)'),
206
+ reviewConsensus: z.object({
207
+ mergedIssues: z.array(z.object({
208
+ id: z.string(),
209
+ severity: z.enum(['critical', 'high', 'warning']),
210
+ category: z.string(),
211
+ file: z.string(),
212
+ line: z.number().optional(),
213
+ message: z.string(),
214
+ suggestion: z.string(),
215
+ reportedBy: z.string(),
216
+ })),
217
+ approvedBy: z.array(z.string()),
218
+ blockedBy: z.array(z.string()),
219
+ summary: z.string(),
220
+ overallApproved: z.boolean(),
221
+ }).optional().describe('Merged review consensus (required for review_consensus)'),
222
+ reviewSessionId: z.string().optional()
223
+ .describe('Review session ID (required for review_submit, review_consensus, review_fix)'),
224
+ });
225
+ // ─── Create Agent Tool ──────────────────────────────────────────
226
+ export const agentCreateInputSchema = z.object({
227
+ action: z.enum(['start', 'submit']),
228
+ sessionId: z.string().describe('The interview session ID'),
229
+ agentContent: z.string().optional()
230
+ .describe('Complete AGENT.md content (frontmatter + body) to validate and save (required for submit)'),
231
+ cwd: z.string().optional()
232
+ .describe('Working directory where agents/ will be created (defaults to process.cwd())'),
233
+ });
234
+ // ─── Benchmark Tool ─────────────────────────────────────────────
235
+ export const benchmarkInputSchema = z.object({
236
+ action: z.enum(['start', 'respond', 'status']),
237
+ scenario: z.string().optional()
238
+ .describe('Scenario name (required for start): auth-system, dashboard, api-gateway'),
239
+ benchmarkSessionId: z.string().optional()
240
+ .describe('Benchmark session ID (required for respond/status)'),
241
+ response: z.string().optional()
242
+ .describe('JSON response from the caller LLM (required for respond)'),
243
+ usage: z.object({
244
+ inputTokens: z.number(),
245
+ outputTokens: z.number(),
246
+ }).optional().describe('Token usage from the caller LLM call (optional, for metrics)'),
146
247
  });
147
248
  // ─── Status Tool ────────────────────────────────────────────────
148
249
  export const statusInputSchema = z.object({
149
250
  sessionId: z.string().optional(),
251
+ sessionType: z.enum(['interview', 'execute', 'all']).optional().default('all'),
150
252
  });
151
253
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAUrD,wBAAsB,eAAe,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;;;;;GAqO7E;AAkDD,wBAAsB,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,iBAmB5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAgBrD,wBAAsB,eAAe,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;;;;;GA4U7E;AAiLD,wBAAsB,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,iBA0B5E"}
@@ -3,6 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { z } from 'zod';
4
4
  import { loadConfig } from '../core/config.js';
5
5
  import { log } from '../core/log.js';
6
+ import { getVersion, checkForUpdates, getCachedUpdateResult } from '../core/version.js';
6
7
  import { EventStore } from '../events/store.js';
7
8
  import { AnthropicAdapter } from '../llm/adapter.js';
8
9
  import { InterviewEngine } from '../interview/engine.js';
@@ -16,9 +17,15 @@ import { handleInterviewPassthrough } from './tools/interview-passthrough.js';
16
17
  import { handleSpec } from './tools/spec.js';
17
18
  import { handleSpecPassthrough } from './tools/spec-passthrough.js';
18
19
  import { handleExecutePassthrough } from './tools/execute-passthrough.js';
20
+ import { handleCreateAgentPassthrough } from './tools/create-agent-passthrough.js';
19
21
  import { handleStatus } from './tools/status.js';
20
- import { interviewInputSchema, specInputSchema, executeInputSchema, statusInputSchema } from './schemas.js';
22
+ import { handleBenchmarkPassthrough } from './tools/benchmark-passthrough.js';
23
+ import { handleReviewPassthrough } from './tools/review-passthrough.js';
24
+ import { PassthroughReviewEngine } from '../review/passthrough-engine.js';
25
+ import { interviewInputSchema, specInputSchema, executeInputSchema, agentCreateInputSchema, benchmarkInputSchema, statusInputSchema } from './schemas.js';
21
26
  import { PassthroughExecuteEngine } from '../execute/passthrough-engine.js';
27
+ import { PassthroughAgentGenerator } from '../agent/passthrough-generator.js';
28
+ import { RoleAgentRegistry } from '../agent/role-agent-registry.js';
22
29
  export async function createMcpServer(configOverrides) {
23
30
  const config = loadConfig(configOverrides);
24
31
  const eventStore = new EventStore(config.dbPath);
@@ -26,10 +33,10 @@ export async function createMcpServer(configOverrides) {
26
33
  const agentRegistry = new AgentRegistry(config.agentsDir);
27
34
  skillRegistry.loadAll();
28
35
  agentRegistry.loadAll();
29
- const isPassthrough = !config.anthropicApiKey;
36
+ const isPassthrough = !config.llm.apiKey;
30
37
  const server = new McpServer({
31
38
  name: 'gestalt',
32
- version: '0.1.0',
39
+ version: getVersion(),
33
40
  });
34
41
  if (isPassthrough) {
35
42
  // ─── Passthrough mode: no API key, prompts returned to caller ───
@@ -70,12 +77,18 @@ export async function createMcpServer(configOverrides) {
70
77
  const result = handleSpecPassthrough(ptEngine, ptSpecGen, input);
71
78
  return { content: [{ type: 'text', text: result }] };
72
79
  });
73
- const ptExecuteEngine = new PassthroughExecuteEngine(eventStore, agentRegistry);
74
- server.tool('ges_execute', 'Execute a Spec specification using Gestalt principles (passthrough mode). Actions: start, plan_step, plan_complete, execute_start, execute_task, evaluate, status, evolve_fix, evolve, evolve_patch, evolve_re_execute.', {
80
+ const roleAgentRegistry = new RoleAgentRegistry(config.roleAgentsDir, config.agentsDir);
81
+ roleAgentRegistry.loadAll();
82
+ const ptExecuteEngine = new PassthroughExecuteEngine(eventStore, agentRegistry, roleAgentRegistry);
83
+ const ptReviewEngine = new PassthroughReviewEngine(eventStore);
84
+ server.tool('ges_execute', 'Execute a Spec specification using Gestalt principles (passthrough mode). Actions: start, plan_step, plan_complete, execute_start, execute_task, evaluate, status, evolve_fix, evolve, evolve_patch, evolve_re_execute, evolve_lateral, evolve_lateral_result, review_start, review_submit, review_consensus, review_fix.', {
75
85
  action: z.enum([
76
86
  'start', 'plan_step', 'plan_complete', 'execute_start', 'execute_task', 'evaluate', 'status',
77
87
  'evolve_fix', 'evolve', 'evolve_patch', 'evolve_re_execute',
78
- ]).describe('start: begin execution planning, plan_step: submit a planning step result, plan_complete: assemble final plan, execute_start: start task execution, execute_task: submit task result, evaluate: start/submit evaluation, status: check session status, evolve_fix: start/submit structural fix, evolve: start contextual evolution, evolve_patch: submit spec patch, evolve_re_execute: submit re-execution task result'),
88
+ 'evolve_lateral', 'evolve_lateral_result',
89
+ 'role_match', 'role_consensus',
90
+ 'review_start', 'review_submit', 'review_consensus', 'review_fix',
91
+ ]).describe('start: begin execution planning, plan_step: submit a planning step result, plan_complete: assemble final plan, execute_start: start task execution, execute_task: submit task result, evaluate: start/submit evaluation, status: check session status, evolve_fix: start/submit structural fix, evolve: start contextual evolution, evolve_patch: submit spec patch, evolve_re_execute: submit re-execution task result, evolve_lateral: request next lateral thinking persona, evolve_lateral_result: submit lateral thinking result, review_start: start code review, review_submit: submit agent review, review_consensus: submit merged review, review_fix: start auto-fix loop'),
79
92
  spec: z.object({
80
93
  version: z.string(),
81
94
  goal: z.string(),
@@ -123,6 +136,15 @@ export async function createMcpServer(configOverrides) {
123
136
  goalAlignment: z.number().min(0).max(1).optional().default(0),
124
137
  recommendations: z.array(z.string()),
125
138
  }).optional().describe('Evaluation result (optional for evaluate action)'),
139
+ structuralResult: z.object({
140
+ commands: z.array(z.object({
141
+ name: z.string(),
142
+ command: z.string(),
143
+ exitCode: z.number(),
144
+ output: z.string(),
145
+ })),
146
+ allPassed: z.boolean(),
147
+ }).optional().describe('Structural check results (required for evaluate after structural stage)'),
126
148
  fixTasks: z.array(z.object({
127
149
  taskId: z.string(),
128
150
  failedCommand: z.string(),
@@ -145,22 +167,86 @@ export async function createMcpServer(configOverrides) {
145
167
  artifacts: z.array(z.string()),
146
168
  }).optional().describe('Re-execution task result (for evolve_re_execute)'),
147
169
  terminateReason: z.enum(['caller']).optional().describe('Caller-initiated termination'),
170
+ lateralResult: z.object({
171
+ persona: z.enum(['multistability', 'simplicity', 'reification', 'invariance']),
172
+ specPatch: z.object({
173
+ acceptanceCriteria: z.array(z.string()).optional(),
174
+ constraints: z.array(z.string()).optional(),
175
+ ontologySchema: z.object({
176
+ entities: z.array(z.any()).optional(),
177
+ relations: z.array(z.any()).optional(),
178
+ }).optional(),
179
+ }),
180
+ description: z.string(),
181
+ }).optional().describe('Lateral thinking result (for evolve_lateral_result)'),
182
+ matchResult: z.array(z.object({
183
+ agentName: z.string(),
184
+ domain: z.array(z.string()),
185
+ relevanceScore: z.number().min(0).max(1),
186
+ reasoning: z.string(),
187
+ })).optional().describe('Role match results (for role_match action)'),
188
+ perspectives: z.array(z.object({
189
+ agentName: z.string(),
190
+ perspective: z.string(),
191
+ confidence: z.number().min(0).max(1),
192
+ })).optional().describe('Role perspectives (for role_consensus action)'),
193
+ consensus: z.object({
194
+ consensus: z.string(),
195
+ conflictResolutions: z.array(z.string()),
196
+ perspectives: z.array(z.object({
197
+ agentName: z.string(),
198
+ perspective: z.string(),
199
+ confidence: z.number().min(0).max(1),
200
+ })),
201
+ }).optional().describe('Synthesized consensus (for role_consensus action)'),
148
202
  }, (params) => {
149
203
  const input = executeInputSchema.parse(params);
204
+ // Route review actions to review engine
205
+ if (input.action.startsWith('review_')) {
206
+ const result = handleReviewPassthrough(ptReviewEngine, ptExecuteEngine, roleAgentRegistry, input);
207
+ return { content: [{ type: 'text', text: result }] };
208
+ }
150
209
  const result = handleExecutePassthrough(ptExecuteEngine, input);
151
210
  return { content: [{ type: 'text', text: result }] };
152
211
  });
153
- server.tool('ges_status', 'Check the status of interview sessions.', {
212
+ const ptAgentGen = new PassthroughAgentGenerator(eventStore, roleAgentRegistry);
213
+ server.tool('ges_create_agent', 'Create a custom Role Agent from a completed interview session (passthrough mode). Actions: start, submit.', {
214
+ action: z.enum(['start', 'submit']).describe('start: get agent creation context with prompts, submit: validate and save AGENT.md'),
215
+ sessionId: z.string().describe('The interview session ID'),
216
+ agentContent: z.string().optional().describe('Complete AGENT.md content (frontmatter + body) to validate and save (required for submit)'),
217
+ cwd: z.string().optional().describe('Working directory where agents/{name}/AGENT.md will be created (defaults to process.cwd())'),
218
+ }, (params) => {
219
+ const input = agentCreateInputSchema.parse(params);
220
+ const result = handleCreateAgentPassthrough(ptEngine, ptAgentGen, input);
221
+ return { content: [{ type: 'text', text: result }] };
222
+ });
223
+ server.tool('ges_benchmark', 'Run Gestalt pipeline benchmarks in passthrough mode. Actions: start (begin a scenario), respond (submit LLM response), status (check progress). No API key required — caller acts as the LLM.', {
224
+ action: z.enum(['start', 'respond', 'status']).describe('start: begin benchmark scenario, respond: submit LLM response for current step, status: check benchmark progress'),
225
+ scenario: z.string().optional().describe('Scenario name for start: auth-system, dashboard, api-gateway'),
226
+ benchmarkSessionId: z.string().optional().describe('Benchmark session ID (required for respond/status)'),
227
+ response: z.string().optional().describe('JSON response from the caller LLM (required for respond)'),
228
+ usage: z.object({
229
+ inputTokens: z.number(),
230
+ outputTokens: z.number(),
231
+ }).optional().describe('Token usage from the caller LLM call (optional, for metrics)'),
232
+ }, (params) => {
233
+ const input = benchmarkInputSchema.parse(params);
234
+ const result = handleBenchmarkPassthrough(input);
235
+ return { content: [{ type: 'text', text: result }] };
236
+ });
237
+ server.tool('ges_status', 'Check the status of interview and execute sessions.', {
154
238
  sessionId: z.string().optional().describe('Specific session ID to check (omit for all sessions)'),
239
+ sessionType: z.enum(['interview', 'execute', 'all']).optional().default('all')
240
+ .describe('Filter by session type (default: all)'),
155
241
  }, (params) => {
156
242
  const input = statusInputSchema.parse(params);
157
- const result = handleStatusPassthrough(ptEngine, input);
243
+ const result = handleStatusPassthrough(ptEngine, ptExecuteEngine, input);
158
244
  return { content: [{ type: 'text', text: result }] };
159
245
  });
160
246
  }
161
247
  else {
162
248
  // ─── Normal mode: direct LLM calls ──────────────────────────
163
- const llm = new AnthropicAdapter(config.anthropicApiKey, config.model);
249
+ const llm = new AnthropicAdapter(config.llm.apiKey, config.llm.model);
164
250
  const engine = new InterviewEngine(llm, eventStore);
165
251
  const specGenerator = new SpecGenerator(llm, eventStore);
166
252
  server.tool('ges_interview', 'Conduct a Gestalt-driven interview to clarify project requirements. Actions: start, respond, score, complete.', {
@@ -182,43 +268,66 @@ export async function createMcpServer(configOverrides) {
182
268
  const result = await handleSpec(engine, specGenerator, input);
183
269
  return { content: [{ type: 'text', text: result }] };
184
270
  });
185
- server.tool('ges_status', 'Check the status of interview sessions.', {
271
+ server.tool('ges_status', 'Check the status of interview and execute sessions.', {
186
272
  sessionId: z.string().optional().describe('Specific session ID to check (omit for all sessions)'),
273
+ sessionType: z.enum(['interview', 'execute', 'all']).optional().default('all')
274
+ .describe('Filter by session type (default: all)'),
187
275
  }, (params) => {
188
276
  const input = statusInputSchema.parse(params);
189
- const result = handleStatus(engine, input);
277
+ const result = handleStatus(engine, input, eventStore);
190
278
  return { content: [{ type: 'text', text: result }] };
191
279
  });
192
280
  }
193
281
  return { server, eventStore, skillRegistry, agentRegistry };
194
282
  }
195
- // Status handler for passthrough mode — uses PassthroughEngine instead of InterviewEngine
196
- function handleStatusPassthrough(engine, input) {
283
+ // Status handler for passthrough mode — uses PassthroughEngine + PassthroughExecuteEngine
284
+ function handleStatusPassthrough(engine, executeEngine, input) {
285
+ const updateResult = getCachedUpdateResult();
286
+ const versionInfo = {
287
+ current: getVersion(),
288
+ latest: updateResult?.latestVersion ?? null,
289
+ updateAvailable: updateResult?.updateAvailable ?? false,
290
+ };
291
+ const sessionType = input.sessionType ?? 'all';
197
292
  try {
198
293
  if (input.sessionId) {
199
- const session = engine.getSession(input.sessionId);
200
- return JSON.stringify({
201
- session: {
202
- sessionId: session.sessionId,
203
- topic: session.topic,
204
- status: session.status,
205
- projectType: session.projectType,
206
- totalRounds: session.rounds.length,
207
- answeredRounds: session.rounds.filter((r) => r.userResponse).length,
208
- ambiguityScore: session.ambiguityScore
209
- ? {
210
- overall: session.ambiguityScore.overall.toFixed(2),
211
- isReady: session.ambiguityScore.isReady,
212
- }
213
- : null,
214
- createdAt: session.createdAt,
215
- updatedAt: session.updatedAt,
216
- },
217
- }, null, 2);
294
+ // Try interview first, then execute
295
+ try {
296
+ const session = engine.getSession(input.sessionId);
297
+ return JSON.stringify({
298
+ versionInfo,
299
+ type: 'interview',
300
+ session: {
301
+ sessionId: session.sessionId,
302
+ topic: session.topic,
303
+ status: session.status,
304
+ projectType: session.projectType,
305
+ totalRounds: session.rounds.length,
306
+ answeredRounds: session.rounds.filter((r) => r.userResponse).length,
307
+ ambiguityScore: session.ambiguityScore
308
+ ? {
309
+ overall: session.ambiguityScore.overall.toFixed(2),
310
+ isReady: session.ambiguityScore.isReady,
311
+ }
312
+ : null,
313
+ createdAt: session.createdAt,
314
+ updatedAt: session.updatedAt,
315
+ },
316
+ }, null, 2);
317
+ }
318
+ catch {
319
+ // Not found in interview, try execute
320
+ const session = executeEngine.getSession(input.sessionId);
321
+ return JSON.stringify({
322
+ versionInfo,
323
+ type: 'execute',
324
+ session: formatExecuteSession(session),
325
+ }, null, 2);
326
+ }
218
327
  }
219
- const sessions = engine.listSessions();
220
- return JSON.stringify({
221
- sessions: sessions.map((s) => ({
328
+ // List mode
329
+ const interviewSessions = (sessionType === 'interview' || sessionType === 'all')
330
+ ? engine.listSessions().map((s) => ({
222
331
  sessionId: s.sessionId,
223
332
  topic: s.topic,
224
333
  status: s.status,
@@ -226,8 +335,16 @@ function handleStatusPassthrough(engine, input) {
226
335
  totalRounds: s.rounds.length,
227
336
  ambiguityScore: s.ambiguityScore?.overall.toFixed(2) ?? 'N/A',
228
337
  createdAt: s.createdAt,
229
- })),
230
- total: sessions.length,
338
+ }))
339
+ : [];
340
+ const executeSessions = (sessionType === 'execute' || sessionType === 'all')
341
+ ? executeEngine.listSessions().map((s) => formatExecuteSessionSummary(s))
342
+ : [];
343
+ return JSON.stringify({
344
+ versionInfo,
345
+ interviewSessions,
346
+ executeSessions,
347
+ total: { interview: interviewSessions.length, execute: executeSessions.length },
231
348
  }, null, 2);
232
349
  }
233
350
  catch (e) {
@@ -236,15 +353,113 @@ function handleStatusPassthrough(engine, input) {
236
353
  }, null, 2);
237
354
  }
238
355
  }
356
+ function formatExecuteSessionSummary(session) {
357
+ const totalTasks = session.executionPlan?.atomicTasks.length ?? 0;
358
+ const completedTasks = session.taskResults.filter((t) => t.status === 'completed').length;
359
+ return {
360
+ sessionId: session.sessionId,
361
+ specId: session.specId,
362
+ status: session.status,
363
+ goal: session.spec.goal,
364
+ currentStep: session.currentStep,
365
+ hasPlan: !!session.executionPlan,
366
+ taskProgress: totalTasks > 0 ? `${completedTasks}/${totalTasks}` : null,
367
+ evaluationScore: session.evaluationResult?.overallScore ?? null,
368
+ goalAlignment: session.evaluationResult?.goalAlignment ?? null,
369
+ evaluateStage: session.evaluateStage ?? null,
370
+ evolveStage: session.evolveStage ?? null,
371
+ currentGeneration: session.currentGeneration,
372
+ lateralPersonas: session.lateralTriedPersonas.length > 0 ? session.lateralTriedPersonas : null,
373
+ terminationReason: session.terminationReason ?? null,
374
+ createdAt: session.createdAt,
375
+ };
376
+ }
377
+ function formatExecuteSession(session) {
378
+ const totalTasks = session.executionPlan?.atomicTasks.length ?? 0;
379
+ const completedTasks = session.taskResults.filter((t) => t.status === 'completed').length;
380
+ const failedTasks = session.taskResults.filter((t) => t.status === 'failed').length;
381
+ const pendingTasks = totalTasks - completedTasks - failedTasks;
382
+ const totalACs = session.spec.acceptanceCriteria.length;
383
+ const satisfiedACs = session.evaluationResult
384
+ ? session.evaluationResult.verifications.filter((v) => v.satisfied).length
385
+ : 0;
386
+ return {
387
+ sessionId: session.sessionId,
388
+ specId: session.specId,
389
+ status: session.status,
390
+ goal: session.spec.goal,
391
+ currentStep: session.currentStep,
392
+ stepsCompleted: session.planningSteps.map((s) => s.principle),
393
+ hasPlan: !!session.executionPlan,
394
+ taskProgress: { total: totalTasks, completed: completedTasks, failed: failedTasks, pending: pendingTasks },
395
+ satisfiedACs: `${satisfiedACs}/${totalACs}`,
396
+ evaluateStage: session.evaluateStage ?? null,
397
+ hasEvaluation: !!session.evaluationResult,
398
+ evaluationScore: session.evaluationResult?.overallScore ?? null,
399
+ goalAlignment: session.evaluationResult?.goalAlignment ?? null,
400
+ driftAlerts: session.driftHistory.filter((d) => d.thresholdExceeded).length,
401
+ evolution: session.evolutionHistory.length > 0 ? {
402
+ scoreProgression: session.evolutionHistory.map((gen) => ({
403
+ generation: gen.generation,
404
+ score: gen.evaluationScore,
405
+ goalAlignment: gen.goalAlignment,
406
+ fieldsChanged: Object.keys(gen.delta).filter((k) => {
407
+ const val = gen.delta[k];
408
+ return Array.isArray(val) ? val.length > 0 : val !== undefined;
409
+ }),
410
+ })),
411
+ summary: summarizeEvolution(session),
412
+ } : null,
413
+ evolveStage: session.evolveStage ?? null,
414
+ currentGeneration: session.currentGeneration,
415
+ terminationReason: session.terminationReason ?? null,
416
+ lateral: session.lateralTriedPersonas.length > 0 ? {
417
+ triedPersonas: session.lateralTriedPersonas,
418
+ totalAttempts: session.lateralAttempts,
419
+ currentPersona: session.lateralCurrentPersona ?? null,
420
+ currentPattern: session.lateralCurrentPattern ?? null,
421
+ } : null,
422
+ roleAgent: session.roleMatches ? {
423
+ matchedAgents: session.roleMatches.map((m) => m.agentName),
424
+ hasConsensus: !!session.roleConsensus,
425
+ } : null,
426
+ createdAt: session.createdAt,
427
+ updatedAt: session.updatedAt,
428
+ };
429
+ }
430
+ function summarizeEvolution(session) {
431
+ const history = session.evolutionHistory;
432
+ if (history.length === 0)
433
+ return 'No evolution';
434
+ const first = history[0];
435
+ const last = history[history.length - 1];
436
+ const scoreDelta = (last.evaluationScore - first.evaluationScore).toFixed(2);
437
+ const sign = Number(scoreDelta) >= 0 ? '+' : '';
438
+ const parts = [
439
+ `${history.length} generation${history.length > 1 ? 's' : ''}`,
440
+ `Score: ${first.evaluationScore.toFixed(2)} → ${last.evaluationScore.toFixed(2)} (${sign}${scoreDelta})`,
441
+ `Goal: ${first.goalAlignment.toFixed(2)} → ${last.goalAlignment.toFixed(2)}`,
442
+ ];
443
+ if (session.terminationReason) {
444
+ parts.push(`Terminated: ${session.terminationReason}`);
445
+ }
446
+ return parts.join(' | ');
447
+ }
239
448
  export async function startMcpServer(configOverrides) {
240
449
  const config = loadConfig(configOverrides);
241
- const isPassthrough = !config.anthropicApiKey;
450
+ const isPassthrough = !config.llm.apiKey;
242
451
  const { server, skillRegistry, agentRegistry } = await createMcpServer(configOverrides);
243
452
  skillRegistry.startWatching();
244
453
  agentRegistry.startWatching();
245
454
  const transport = new StdioServerTransport();
246
455
  await server.connect(transport);
247
456
  log(`MCP server started on stdio${isPassthrough ? ' (passthrough mode)' : ''}`);
457
+ checkForUpdates().then((result) => {
458
+ if (result?.updateAvailable) {
459
+ log(`Update available: ${result.currentVersion} → ${result.latestVersion}`);
460
+ log(`Run: npx -y @tienne/gestalt@latest`);
461
+ }
462
+ }).catch(() => { });
248
463
  process.on('SIGINT', async () => {
249
464
  await skillRegistry.stopWatching();
250
465
  await agentRegistry.stopWatching();