@interf/compiler 0.1.12 → 0.2.1

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 (282) hide show
  1. package/README.md +197 -192
  2. package/dist/commands/benchmark.d.ts.map +1 -1
  3. package/dist/commands/benchmark.js +65 -84
  4. package/dist/commands/benchmark.js.map +1 -1
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +19 -3
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/create.d.ts +3 -0
  9. package/dist/commands/create.d.ts.map +1 -1
  10. package/dist/commands/create.js +39 -14
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/default.d.ts.map +1 -1
  13. package/dist/commands/default.js +2 -0
  14. package/dist/commands/default.js.map +1 -1
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +8 -63
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/index.d.ts +11 -29
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +7 -16
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/agent-args.d.ts +4 -0
  23. package/dist/lib/agent-args.d.ts.map +1 -0
  24. package/dist/lib/agent-args.js +42 -0
  25. package/dist/lib/agent-args.js.map +1 -0
  26. package/dist/lib/agent-constants.d.ts +6 -0
  27. package/dist/lib/agent-constants.d.ts.map +1 -0
  28. package/dist/lib/agent-constants.js +29 -0
  29. package/dist/lib/agent-constants.js.map +1 -0
  30. package/dist/lib/agent-detection.d.ts +8 -0
  31. package/dist/lib/agent-detection.d.ts.map +1 -0
  32. package/dist/lib/agent-detection.js +66 -0
  33. package/dist/lib/agent-detection.js.map +1 -0
  34. package/dist/lib/agent-execution.d.ts +3 -0
  35. package/dist/lib/agent-execution.d.ts.map +1 -0
  36. package/dist/lib/agent-execution.js +207 -0
  37. package/dist/lib/agent-execution.js.map +1 -0
  38. package/dist/lib/agent-logs.d.ts +3 -0
  39. package/dist/lib/agent-logs.d.ts.map +1 -0
  40. package/dist/lib/agent-logs.js +18 -0
  41. package/dist/lib/agent-logs.js.map +1 -0
  42. package/dist/lib/agent-preflight.d.ts +8 -0
  43. package/dist/lib/agent-preflight.d.ts.map +1 -0
  44. package/dist/lib/agent-preflight.js +77 -0
  45. package/dist/lib/agent-preflight.js.map +1 -0
  46. package/dist/lib/agent-render.d.ts +9 -0
  47. package/dist/lib/agent-render.d.ts.map +1 -0
  48. package/dist/lib/agent-render.js +219 -0
  49. package/dist/lib/agent-render.js.map +1 -0
  50. package/dist/lib/agent-status.d.ts +4 -0
  51. package/dist/lib/agent-status.d.ts.map +1 -0
  52. package/dist/lib/agent-status.js +59 -0
  53. package/dist/lib/agent-status.js.map +1 -0
  54. package/dist/lib/agent-types.d.ts +31 -0
  55. package/dist/lib/agent-types.d.ts.map +1 -0
  56. package/dist/lib/agent-types.js +2 -0
  57. package/dist/lib/agent-types.js.map +1 -0
  58. package/dist/lib/agents.d.ts +7 -49
  59. package/dist/lib/agents.d.ts.map +1 -1
  60. package/dist/lib/agents.js +8 -554
  61. package/dist/lib/agents.js.map +1 -1
  62. package/dist/lib/benchmark-execution.d.ts +9 -0
  63. package/dist/lib/benchmark-execution.d.ts.map +1 -0
  64. package/dist/lib/benchmark-execution.js +488 -0
  65. package/dist/lib/benchmark-execution.js.map +1 -0
  66. package/dist/lib/benchmark-paths.d.ts +11 -0
  67. package/dist/lib/benchmark-paths.d.ts.map +1 -0
  68. package/dist/lib/benchmark-paths.js +38 -0
  69. package/dist/lib/benchmark-paths.js.map +1 -0
  70. package/dist/lib/benchmark-specs.d.ts +8 -0
  71. package/dist/lib/benchmark-specs.d.ts.map +1 -0
  72. package/dist/lib/benchmark-specs.js +115 -0
  73. package/dist/lib/benchmark-specs.js.map +1 -0
  74. package/dist/lib/benchmark-targets.d.ts +5 -0
  75. package/dist/lib/benchmark-targets.d.ts.map +1 -0
  76. package/dist/lib/benchmark-targets.js +72 -0
  77. package/dist/lib/benchmark-targets.js.map +1 -0
  78. package/dist/lib/benchmark-types.d.ts +19 -0
  79. package/dist/lib/benchmark-types.d.ts.map +1 -0
  80. package/dist/lib/benchmark-types.js +2 -0
  81. package/dist/lib/benchmark-types.js.map +1 -0
  82. package/dist/lib/benchmark.d.ts +4 -29
  83. package/dist/lib/benchmark.d.ts.map +1 -1
  84. package/dist/lib/benchmark.js +3 -324
  85. package/dist/lib/benchmark.js.map +1 -1
  86. package/dist/lib/bundled-templates.d.ts +5 -0
  87. package/dist/lib/bundled-templates.d.ts.map +1 -0
  88. package/dist/lib/bundled-templates.js +23 -0
  89. package/dist/lib/bundled-templates.js.map +1 -0
  90. package/dist/lib/config.d.ts +1 -0
  91. package/dist/lib/config.d.ts.map +1 -1
  92. package/dist/lib/config.js +2 -0
  93. package/dist/lib/config.js.map +1 -1
  94. package/dist/lib/eval-packs.d.ts +204 -0
  95. package/dist/lib/eval-packs.d.ts.map +1 -0
  96. package/dist/lib/eval-packs.js +177 -0
  97. package/dist/lib/eval-packs.js.map +1 -0
  98. package/dist/lib/execution-profile.d.ts +18 -0
  99. package/dist/lib/execution-profile.d.ts.map +1 -0
  100. package/dist/lib/execution-profile.js +85 -0
  101. package/dist/lib/execution-profile.js.map +1 -0
  102. package/dist/lib/interf-bootstrap.d.ts +4 -0
  103. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  104. package/dist/lib/interf-bootstrap.js +71 -68
  105. package/dist/lib/interf-bootstrap.js.map +1 -1
  106. package/dist/lib/interf-compile-plan.d.ts +12 -0
  107. package/dist/lib/interf-compile-plan.d.ts.map +1 -0
  108. package/dist/lib/interf-compile-plan.js +143 -0
  109. package/dist/lib/interf-compile-plan.js.map +1 -0
  110. package/dist/lib/interf-detect.d.ts.map +1 -1
  111. package/dist/lib/interf-detect.js +11 -10
  112. package/dist/lib/interf-detect.js.map +1 -1
  113. package/dist/lib/interf-scaffold.d.ts +1 -10
  114. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  115. package/dist/lib/interf-scaffold.js +25 -362
  116. package/dist/lib/interf-scaffold.js.map +1 -1
  117. package/dist/lib/interf-workflow-package.d.ts +4 -0
  118. package/dist/lib/interf-workflow-package.d.ts.map +1 -0
  119. package/dist/lib/interf-workflow-package.js +131 -0
  120. package/dist/lib/interf-workflow-package.js.map +1 -0
  121. package/dist/lib/interf.d.ts +2 -1
  122. package/dist/lib/interf.d.ts.map +1 -1
  123. package/dist/lib/interf.js +2 -1
  124. package/dist/lib/interf.js.map +1 -1
  125. package/dist/lib/local-workflows.d.ts.map +1 -1
  126. package/dist/lib/local-workflows.js +8 -12
  127. package/dist/lib/local-workflows.js.map +1 -1
  128. package/dist/lib/logger.d.ts +4 -0
  129. package/dist/lib/logger.d.ts.map +1 -0
  130. package/dist/lib/logger.js +11 -0
  131. package/dist/lib/logger.js.map +1 -0
  132. package/dist/lib/obsidian.d.ts.map +1 -1
  133. package/dist/lib/obsidian.js +7 -3
  134. package/dist/lib/obsidian.js.map +1 -1
  135. package/dist/lib/parse.d.ts +2 -2
  136. package/dist/lib/parse.d.ts.map +1 -1
  137. package/dist/lib/parse.js +11 -7
  138. package/dist/lib/parse.js.map +1 -1
  139. package/dist/lib/registry.js +3 -3
  140. package/dist/lib/registry.js.map +1 -1
  141. package/dist/lib/runtime-acceptance.d.ts +4 -0
  142. package/dist/lib/runtime-acceptance.d.ts.map +1 -0
  143. package/dist/lib/runtime-acceptance.js +123 -0
  144. package/dist/lib/runtime-acceptance.js.map +1 -0
  145. package/dist/lib/runtime-contracts.d.ts +4 -0
  146. package/dist/lib/runtime-contracts.d.ts.map +1 -0
  147. package/dist/lib/runtime-contracts.js +63 -0
  148. package/dist/lib/runtime-contracts.js.map +1 -0
  149. package/dist/lib/runtime-paths.d.ts +8 -0
  150. package/dist/lib/runtime-paths.d.ts.map +1 -0
  151. package/dist/lib/runtime-paths.js +28 -0
  152. package/dist/lib/runtime-paths.js.map +1 -0
  153. package/dist/lib/runtime-prompt.d.ts +3 -0
  154. package/dist/lib/runtime-prompt.d.ts.map +1 -0
  155. package/dist/lib/runtime-prompt.js +59 -0
  156. package/dist/lib/runtime-prompt.js.map +1 -0
  157. package/dist/lib/runtime-reconcile.d.ts +6 -0
  158. package/dist/lib/runtime-reconcile.d.ts.map +1 -0
  159. package/dist/lib/runtime-reconcile.js +339 -0
  160. package/dist/lib/runtime-reconcile.js.map +1 -0
  161. package/dist/lib/runtime-runs.d.ts +12 -0
  162. package/dist/lib/runtime-runs.d.ts.map +1 -0
  163. package/dist/lib/runtime-runs.js +337 -0
  164. package/dist/lib/runtime-runs.js.map +1 -0
  165. package/dist/lib/runtime-types.d.ts +42 -0
  166. package/dist/lib/runtime-types.d.ts.map +1 -0
  167. package/dist/lib/runtime-types.js +2 -0
  168. package/dist/lib/runtime-types.js.map +1 -0
  169. package/dist/lib/runtime.d.ts +6 -58
  170. package/dist/lib/runtime.d.ts.map +1 -1
  171. package/dist/lib/runtime.js +5 -614
  172. package/dist/lib/runtime.js.map +1 -1
  173. package/dist/lib/schema.d.ts +156 -13
  174. package/dist/lib/schema.d.ts.map +1 -1
  175. package/dist/lib/schema.js +113 -4
  176. package/dist/lib/schema.js.map +1 -1
  177. package/dist/lib/source-config.d.ts +13 -0
  178. package/dist/lib/source-config.d.ts.map +1 -0
  179. package/dist/lib/source-config.js +75 -0
  180. package/dist/lib/source-config.js.map +1 -0
  181. package/dist/lib/state-artifacts.d.ts +15 -0
  182. package/dist/lib/state-artifacts.d.ts.map +1 -0
  183. package/dist/lib/state-artifacts.js +24 -0
  184. package/dist/lib/state-artifacts.js.map +1 -0
  185. package/dist/lib/state-health.d.ts +9 -0
  186. package/dist/lib/state-health.d.ts.map +1 -0
  187. package/dist/lib/state-health.js +330 -0
  188. package/dist/lib/state-health.js.map +1 -0
  189. package/dist/lib/state-io.d.ts +15 -0
  190. package/dist/lib/state-io.d.ts.map +1 -0
  191. package/dist/lib/state-io.js +219 -0
  192. package/dist/lib/state-io.js.map +1 -0
  193. package/dist/lib/state-paths.d.ts +5 -0
  194. package/dist/lib/state-paths.d.ts.map +1 -0
  195. package/dist/lib/state-paths.js +19 -0
  196. package/dist/lib/state-paths.js.map +1 -0
  197. package/dist/lib/state-view.d.ts +7 -0
  198. package/dist/lib/state-view.d.ts.map +1 -0
  199. package/dist/lib/state-view.js +147 -0
  200. package/dist/lib/state-view.js.map +1 -0
  201. package/dist/lib/state.d.ts +6 -46
  202. package/dist/lib/state.d.ts.map +1 -1
  203. package/dist/lib/state.js +5 -632
  204. package/dist/lib/state.js.map +1 -1
  205. package/dist/lib/summarize-plan.d.ts +1 -0
  206. package/dist/lib/summarize-plan.d.ts.map +1 -1
  207. package/dist/lib/summarize-plan.js +10 -0
  208. package/dist/lib/summarize-plan.js.map +1 -1
  209. package/dist/lib/user-config.js +2 -2
  210. package/dist/lib/user-config.js.map +1 -1
  211. package/dist/lib/validate-helpers.d.ts +21 -0
  212. package/dist/lib/validate-helpers.d.ts.map +1 -0
  213. package/dist/lib/validate-helpers.js +72 -0
  214. package/dist/lib/validate-helpers.js.map +1 -0
  215. package/dist/lib/validate-interface.d.ts +2 -0
  216. package/dist/lib/validate-interface.d.ts.map +1 -1
  217. package/dist/lib/validate-interface.js +103 -53
  218. package/dist/lib/validate-interface.js.map +1 -1
  219. package/dist/lib/validate-kb.d.ts +8 -0
  220. package/dist/lib/validate-kb.d.ts.map +1 -1
  221. package/dist/lib/validate-kb.js +53 -24
  222. package/dist/lib/validate-kb.js.map +1 -1
  223. package/dist/lib/validate.d.ts +1 -1
  224. package/dist/lib/validate.d.ts.map +1 -1
  225. package/dist/lib/validate.js +5 -2
  226. package/dist/lib/validate.js.map +1 -1
  227. package/dist/lib/workflow-definitions.d.ts +1 -1
  228. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  229. package/dist/lib/workflow-definitions.js +90 -166
  230. package/dist/lib/workflow-definitions.js.map +1 -1
  231. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  232. package/dist/lib/workflow-helpers.js +6 -3
  233. package/dist/lib/workflow-helpers.js.map +1 -1
  234. package/dist/lib/workflow-stage-runner.d.ts +41 -0
  235. package/dist/lib/workflow-stage-runner.d.ts.map +1 -0
  236. package/dist/lib/workflow-stage-runner.js +106 -0
  237. package/dist/lib/workflow-stage-runner.js.map +1 -0
  238. package/dist/lib/workflow-starter-docs.d.ts +9 -0
  239. package/dist/lib/workflow-starter-docs.d.ts.map +1 -0
  240. package/dist/lib/workflow-starter-docs.js +18 -0
  241. package/dist/lib/workflow-starter-docs.js.map +1 -0
  242. package/dist/lib/workflows-interface-contracts.d.ts +24 -0
  243. package/dist/lib/workflows-interface-contracts.d.ts.map +1 -0
  244. package/dist/lib/workflows-interface-contracts.js +304 -0
  245. package/dist/lib/workflows-interface-contracts.js.map +1 -0
  246. package/dist/lib/workflows-interface.d.ts +3 -10
  247. package/dist/lib/workflows-interface.d.ts.map +1 -1
  248. package/dist/lib/workflows-interface.js +117 -365
  249. package/dist/lib/workflows-interface.js.map +1 -1
  250. package/dist/lib/workflows-kb.d.ts.map +1 -1
  251. package/dist/lib/workflows-kb.js +79 -55
  252. package/dist/lib/workflows-kb.js.map +1 -1
  253. package/dist/lib/workflows.d.ts.map +1 -1
  254. package/dist/lib/workflows.js +1 -1
  255. package/dist/lib/workflows.js.map +1 -1
  256. package/package.json +15 -4
  257. package/skills/interface/analyze/SKILL.md +79 -28
  258. package/skills/interface/compile/SKILL.md +27 -28
  259. package/skills/interface/create/SKILL.md +53 -230
  260. package/skills/interface/create/references/compile-plan-format.md +31 -31
  261. package/skills/interface/create/references/workflows.md +17 -32
  262. package/skills/interface/query/SKILL.md +15 -1
  263. package/skills/interface/retrieve/SKILL.md +32 -65
  264. package/skills/knowledge-base/compile/SKILL.md +59 -83
  265. package/skills/knowledge-base/compile/references/stage-claims.md +1 -1
  266. package/skills/knowledge-base/compile/references/stage-entities.md +2 -2
  267. package/skills/knowledge-base/query/SKILL.md +13 -1
  268. package/skills/knowledge-base/summarize/SKILL.md +54 -24
  269. package/templates/interface/README.md +13 -12
  270. package/templates/interface/interfaces.md +14 -11
  271. package/templates/knowledge-base/README.md +0 -1
  272. package/templates/knowledge-base/registry.md +15 -15
  273. package/templates/workflow-package/README.md +16 -0
  274. package/templates/workflow-package/create/SKILL.md +8 -0
  275. package/templates/workflow-package/interface-query/SKILL.md +29 -0
  276. package/templates/workflow-package/interface-stage/SKILL.md +13 -0
  277. package/templates/workflow-package/knowledge-base-query/SKILL.md +36 -0
  278. package/templates/workflow-package/knowledge-base-stage/SKILL.md +13 -0
  279. package/templates/workflow-starters/interface/interf/README.md +13 -0
  280. package/templates/workflow-starters/interface/interf/create/SKILL.md +15 -0
  281. package/templates/workflow-starters/knowledge-base/interf/README.md +13 -0
  282. package/templates/workflow-starters/knowledge-base/karpathy/README.md +13 -0
@@ -1,560 +1,14 @@
1
- import { appendFileSync, existsSync, mkdirSync, mkdtempSync, rmSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { homedir, tmpdir } from "node:os";
4
- import { execFileSync, spawn, spawnSync } from "node:child_process";
5
- import { loadUserConfig } from "./user-config.js";
6
- import { ensureRequiredSkill, extractRequiredSkill, installSkills as installSkillsCore, } from "./agent-skills.js";
7
- import chalk from "chalk";
1
+ import { installSkills as installSkillsCore } from "./agent-skills.js";
2
+ import { detectAgents } from "./agent-detection.js";
8
3
  // Re-export skill functions so existing imports from "./agents.js" still resolve.
9
4
  export { refreshInterfSkills, inspectInterfSkills, ensureRequiredSkill, extractRequiredSkill, } from "./agent-skills.js";
10
- /**
11
- * Install bundled Interf skills to the given agents (or all detected agents).
12
- * Wrapper preserves the optional-agents API from the original single-module surface.
13
- */
5
+ export { detectAgents, supportsAutomatedRuns, resolveAgent, } from "./agent-detection.js";
6
+ export { buildAgentPreflightPrompt, runAgentPreflight, ensureAgentAutomatedRunReady, } from "./agent-preflight.js";
7
+ export { spawnAgent, } from "./agent-execution.js";
8
+ export { buildAgentArgs } from "./agent-args.js";
9
+ export { extractAgentFailureStatus, classifyTerminalVisibleStatus, hasAgentStalled, } from "./agent-status.js";
10
+ // Keep the legacy facade shape so existing "./agents.js" imports stay stable.
14
11
  export function installSkills(agents) {
15
12
  return installSkillsCore(agents ?? detectAgents());
16
13
  }
17
- const SHOW_AGENT_TOOL_EVENTS = process.env.INTERF_DEBUG_AGENT_TOOLS === "1";
18
- const AGENTS = [
19
- {
20
- name: "claude-code",
21
- displayName: "Claude Code",
22
- skillsDir: join(homedir(), ".claude", "skills"),
23
- command: "claude",
24
- },
25
- {
26
- name: "codex",
27
- displayName: "Codex",
28
- skillsDir: join(homedir(), ".codex", "skills"),
29
- command: "codex",
30
- },
31
- {
32
- name: "cursor",
33
- displayName: "Cursor",
34
- skillsDir: join(homedir(), ".cursor", "skills"),
35
- command: "cursor",
36
- },
37
- ];
38
- const CODEX_NOISE_PATTERNS = [
39
- /codex_core_skills::loader: failed to stat skills entry .*\/(interf-[^ ]+|knowledge-base\/[^ ]+|interface\/[^ ]+) \(symlink\): No such file or directory/,
40
- /codex_core::codex: failed to load skill .*\/gstack\/SKILL\.md: invalid description: exceeds maximum length of 1024 characters/,
41
- ];
42
- const VISIBLE_STATUS_PREFIXES = ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"];
43
- const successfulPreflightAgents = new Set();
44
- export function detectAgents() {
45
- return AGENTS.filter((a) => {
46
- const dir = join(homedir(), `.${a.name === "claude-code" ? "claude" : a.name}`);
47
- return existsSync(dir);
48
- });
49
- }
50
- function commandExists(command) {
51
- try {
52
- execFileSync("which", [command], { stdio: "ignore" });
53
- return true;
54
- }
55
- catch {
56
- return false;
57
- }
58
- }
59
- export function supportsAutomatedRuns(agent) {
60
- return agent.name === "claude-code" || agent.name === "codex";
61
- }
62
- export function resolveAgent() {
63
- const config = loadUserConfig();
64
- if (config) {
65
- const configured = AGENTS.find((a) => a.command === config.agentCommand) ??
66
- AGENTS.find((a) => a.name === config.agent) ??
67
- AGENTS.find((a) => a.displayName === config.agent);
68
- if (!configured) {
69
- return {
70
- agent: null,
71
- error: `Configured agent "${config.agent}" is not supported by this Interf build. Run \`interf init\` to choose a supported agent.`,
72
- };
73
- }
74
- if (!commandExists(configured.command)) {
75
- return {
76
- agent: null,
77
- error: `Configured agent "${configured.displayName}" is not available in PATH. Run \`interf init\` to reconfigure.`,
78
- };
79
- }
80
- if (!supportsAutomatedRuns(configured)) {
81
- return {
82
- agent: null,
83
- error: `Configured agent "${configured.displayName}" is detected, but this Interf build can only automate Claude Code or Codex. Run \`interf init\` and choose one of those agents.`,
84
- };
85
- }
86
- return { agent: configured };
87
- }
88
- const detected = detectAgents().filter((a) => commandExists(a.command) && supportsAutomatedRuns(a));
89
- if (detected.length === 0) {
90
- return {
91
- agent: null,
92
- error: "No coding agent detected. Install Claude Code or Codex.",
93
- };
94
- }
95
- if (detected.length > 1) {
96
- return {
97
- agent: null,
98
- error: "Multiple coding agents detected but no default is configured. Run `interf init` to choose which agent compile commands should use.",
99
- };
100
- }
101
- return { agent: detected[0] };
102
- }
103
- function appendAgentEventLog(eventLogPath, event) {
104
- if (!eventLogPath)
105
- return;
106
- mkdirSync(dirname(eventLogPath), { recursive: true });
107
- appendFileSync(eventLogPath, `${JSON.stringify({
108
- timestamp: new Date().toISOString(),
109
- ...event,
110
- })}\n`);
111
- }
112
- function appendAgentStatusLog(statusLogPath, text) {
113
- if (!statusLogPath)
114
- return;
115
- mkdirSync(dirname(statusLogPath), { recursive: true });
116
- appendFileSync(statusLogPath, `${new Date().toISOString()} ${text}\n`);
117
- }
118
- function emitVisibleAgentText(text, statusLogPath, lastVisibleText) {
119
- if (lastVisibleText?.terminated) {
120
- return false;
121
- }
122
- let displayed = false;
123
- const lines = text
124
- .split(/\r?\n/)
125
- .map((line) => line.trim())
126
- .filter((line) => shouldDisplayAgentText(line));
127
- for (const line of lines) {
128
- if (lastVisibleText && lastVisibleText.current === line) {
129
- continue;
130
- }
131
- console.log(chalk.dim(` ${line}`));
132
- appendAgentStatusLog(statusLogPath, line);
133
- if (lastVisibleText) {
134
- lastVisibleText.current = line;
135
- if (isTerminalVisibleStatus(line)) {
136
- lastVisibleText.terminated = true;
137
- }
138
- }
139
- displayed = true;
140
- }
141
- return displayed;
142
- }
143
- export function spawnAgent(agent, dirPath, prompt, options = {}) {
144
- const requiredSkill = extractRequiredSkill(prompt);
145
- const skillError = ensureRequiredSkill(agent, requiredSkill);
146
- if (skillError) {
147
- console.log(chalk.red(` ${skillError}`));
148
- return Promise.resolve(1);
149
- }
150
- return new Promise((resolve, reject) => {
151
- const args = buildAgentArgs(agent, prompt, options.executionProfile);
152
- appendAgentEventLog(options.eventLogPath, {
153
- type: "spawn",
154
- command: agent.command,
155
- args,
156
- cwd: dirPath,
157
- });
158
- const launchLine = `Launching ${agent.displayName}...`;
159
- console.log(chalk.dim(` ${launchLine}`));
160
- appendAgentStatusLog(options.statusLogPath, launchLine);
161
- const proc = spawn(agent.command, args, {
162
- cwd: dirPath,
163
- stdio: ["ignore", "pipe", "pipe"],
164
- });
165
- const timeoutMs = options.executionProfile?.timeoutMs ?? null;
166
- // Parse streaming NDJSON events and show progress
167
- let buffer = "";
168
- let stderrBuffer = "";
169
- let lastRawOutputAt = Date.now();
170
- let lastVisibleOutputAt = Date.now();
171
- let lastHeartbeatAt = 0;
172
- let sawRawOutput = false;
173
- let sawVisibleEvent = false;
174
- let timedOut = false;
175
- let completionSatisfied = false;
176
- let failureStatus = null;
177
- const lastVisibleText = { current: null };
178
- const heartbeat = setInterval(() => {
179
- const now = Date.now();
180
- const minQuietMs = sawVisibleEvent ? 15000 : 8000;
181
- const minHeartbeatGapMs = sawVisibleEvent ? 30000 : 12000;
182
- if (now - lastVisibleOutputAt < minQuietMs)
183
- return;
184
- if (now - lastHeartbeatAt < minHeartbeatGapMs)
185
- return;
186
- lastHeartbeatAt = now;
187
- const seconds = Math.floor((now - lastVisibleOutputAt) / 1000);
188
- const label = sawVisibleEvent
189
- ? `${agent.displayName} is still running... (${seconds}s since last output)`
190
- : sawRawOutput
191
- ? `${agent.displayName} is active, but has not emitted visible progress yet... (${seconds}s)`
192
- : `${agent.displayName} started, but has not emitted visible progress yet... (${seconds}s)`;
193
- console.log(chalk.dim(` ${label}`));
194
- }, 5000);
195
- const forwardSignal = () => {
196
- proc.kill("SIGINT");
197
- };
198
- const timeout = typeof timeoutMs === "number" && timeoutMs > 0
199
- ? setTimeout(() => {
200
- timedOut = true;
201
- appendAgentEventLog(options.eventLogPath, {
202
- type: "timeout",
203
- timeout_ms: timeoutMs,
204
- });
205
- console.log(chalk.red(` ${agent.displayName} timed out after ${Math.round(timeoutMs / 1000)}s.`));
206
- proc.kill("SIGINT");
207
- }, timeoutMs)
208
- : null;
209
- const completionPoll = options.completionCheck
210
- ? setInterval(() => {
211
- if (timedOut || completionSatisfied)
212
- return;
213
- try {
214
- if (!options.completionCheck?.())
215
- return;
216
- completionSatisfied = true;
217
- appendAgentEventLog(options.eventLogPath, {
218
- type: "completion-check-satisfied",
219
- });
220
- proc.kill("SIGINT");
221
- }
222
- catch {
223
- // Ignore completion check failures and let the agent continue.
224
- }
225
- }, 1000)
226
- : null;
227
- process.once("SIGINT", forwardSignal);
228
- proc.stdout?.on("data", (chunk) => {
229
- lastRawOutputAt = Date.now();
230
- sawRawOutput = true;
231
- buffer += chunk.toString();
232
- const lines = buffer.split("\n");
233
- buffer = lines.pop() ?? "";
234
- for (const line of lines) {
235
- if (!line.trim())
236
- continue;
237
- appendAgentEventLog(options.eventLogPath, {
238
- type: "stdout",
239
- line,
240
- });
241
- try {
242
- const event = JSON.parse(line);
243
- failureStatus ||= extractAgentFailureStatus(event);
244
- if (displayEvent(event, options.statusLogPath, lastVisibleText)) {
245
- sawVisibleEvent = true;
246
- lastVisibleOutputAt = Date.now();
247
- }
248
- }
249
- catch {
250
- if (emitVisibleAgentText(line, options.statusLogPath, lastVisibleText)) {
251
- sawVisibleEvent = true;
252
- lastVisibleOutputAt = Date.now();
253
- }
254
- }
255
- }
256
- });
257
- proc.stderr?.on("data", (chunk) => {
258
- stderrBuffer += chunk.toString();
259
- const lines = stderrBuffer.split("\n");
260
- stderrBuffer = lines.pop() ?? "";
261
- for (const line of lines) {
262
- if (!line.trim())
263
- continue;
264
- appendAgentEventLog(options.eventLogPath, {
265
- type: "stderr",
266
- line,
267
- });
268
- if (CODEX_NOISE_PATTERNS.some((pattern) => pattern.test(line)))
269
- continue;
270
- lastRawOutputAt = Date.now();
271
- sawRawOutput = true;
272
- lastVisibleOutputAt = Date.now();
273
- process.stderr.write(line + "\n");
274
- sawVisibleEvent = true;
275
- }
276
- });
277
- proc.on("close", (code) => {
278
- clearInterval(heartbeat);
279
- if (timeout)
280
- clearTimeout(timeout);
281
- if (completionPoll)
282
- clearInterval(completionPoll);
283
- process.removeListener("SIGINT", forwardSignal);
284
- const finalCode = timedOut ? 124 : completionSatisfied ? 0 : failureStatus ? 1 : (code ?? 0);
285
- appendAgentEventLog(options.eventLogPath, {
286
- type: "close",
287
- code: finalCode,
288
- failure_status: failureStatus,
289
- });
290
- resolve(finalCode);
291
- });
292
- proc.on("error", () => {
293
- clearInterval(heartbeat);
294
- if (timeout)
295
- clearTimeout(timeout);
296
- if (completionPoll)
297
- clearInterval(completionPoll);
298
- process.removeListener("SIGINT", forwardSignal);
299
- appendAgentEventLog(options.eventLogPath, {
300
- type: "error",
301
- message: `Failed to start ${agent.displayName}`,
302
- });
303
- console.log(chalk.red(` Failed to start ${agent.displayName}.`));
304
- resolve(1);
305
- });
306
- });
307
- }
308
- export function buildAgentArgs(agent, prompt, executionProfile = {}) {
309
- if (agent.name === "claude-code") {
310
- const args = [
311
- "-p",
312
- prompt,
313
- "--output-format",
314
- "stream-json",
315
- "--verbose",
316
- "--allowedTools",
317
- "Read,Write,Edit,Bash,Grep,Glob,Agent",
318
- ];
319
- if (executionProfile.model) {
320
- args.push("--model", executionProfile.model);
321
- }
322
- if (executionProfile.effort) {
323
- args.push("--effort", executionProfile.effort);
324
- }
325
- return args;
326
- }
327
- if (agent.name === "codex") {
328
- const args = [
329
- "exec",
330
- "--json",
331
- "-s",
332
- "workspace-write",
333
- "--skip-git-repo-check",
334
- ];
335
- if (executionProfile.model) {
336
- args.push("--model", executionProfile.model);
337
- }
338
- if (executionProfile.profile) {
339
- args.push("--profile", executionProfile.profile);
340
- }
341
- if (executionProfile.effort) {
342
- args.push("-c", `model_reasoning_effort=${JSON.stringify(executionProfile.effort)}`);
343
- }
344
- args.push(prompt);
345
- return args;
346
- }
347
- throw new Error(`Agent "${agent.displayName}" is not yet supported for automated compile runs.`);
348
- }
349
- export function buildAgentPreflightPrompt() {
350
- return [
351
- "Interf doctor preflight.",
352
- 'Reply with exactly one line: "DONE: Interf doctor ok".',
353
- "Do not use tools.",
354
- "Do not read files.",
355
- "Do not write files.",
356
- ].join(" ");
357
- }
358
- export function runAgentPreflight(agent, options = {}) {
359
- const timeoutMs = options.timeoutMs ?? 30000;
360
- const spawnSyncImpl = options.spawnSyncImpl ?? spawnSync;
361
- const dirPath = mkdtempSync(join(tmpdir(), "interf-doctor-"));
362
- try {
363
- const result = spawnSyncImpl(agent.command, buildAgentArgs(agent, buildAgentPreflightPrompt()), {
364
- cwd: dirPath,
365
- encoding: "utf8",
366
- timeout: timeoutMs,
367
- });
368
- const stdout = typeof result.stdout === "string" ? result.stdout.trim() : "";
369
- const stderr = sanitizeAgentStderr(typeof result.stderr === "string" ? result.stderr : "");
370
- const timedOut = result.error?.name === "Error" && result.error.message.includes("timed out");
371
- if (result.error) {
372
- return {
373
- ok: false,
374
- code: typeof result.status === "number" ? result.status : null,
375
- timedOut,
376
- stdout,
377
- stderr,
378
- error: result.error.message,
379
- };
380
- }
381
- return {
382
- ok: result.status === 0,
383
- code: typeof result.status === "number" ? result.status : null,
384
- timedOut: false,
385
- stdout,
386
- stderr,
387
- error: result.status === 0 ? null : `Exited with code ${result.status ?? "unknown"}`,
388
- };
389
- }
390
- finally {
391
- rmSync(dirPath, { recursive: true, force: true });
392
- }
393
- }
394
- export function ensureAgentAutomatedRunReady(agent, options = {}) {
395
- if (!options.force && successfulPreflightAgents.has(agent.name)) {
396
- return { ok: true };
397
- }
398
- const runPreflight = options.runPreflight ?? runAgentPreflight;
399
- const result = runPreflight(agent);
400
- if (!result.ok) {
401
- const details = [result.error, result.stderr].filter(Boolean).join(" ");
402
- return {
403
- ok: false,
404
- error: `${agent.displayName} failed Interf executor preflight. Run \`interf doctor --live\` for details.${details ? ` ${details}` : ""}`,
405
- };
406
- }
407
- successfulPreflightAgents.add(agent.name);
408
- return { ok: true };
409
- }
410
- function displayEvent(event, statusLogPath, lastVisibleText) {
411
- const type = event.type;
412
- let displayed = false;
413
- // Tool use — show tool name + brief input
414
- if (type === "tool_use" && SHOW_AGENT_TOOL_EVENTS) {
415
- const name = event.name ?? "unknown";
416
- const input = event.input;
417
- let detail = "";
418
- if (input) {
419
- // Show file path for Read/Write/Edit/Glob
420
- const path = (input.file_path ?? input.path ?? input.pattern ?? input.command ?? "");
421
- if (path)
422
- detail = chalk.dim(` ${path.slice(0, 80)}`);
423
- }
424
- console.log(chalk.blue(` → ${name}`) + detail);
425
- displayed = true;
426
- }
427
- // Tool result — skip (too verbose)
428
- // Assistant text — show thinking/status messages
429
- if (type === "assistant") {
430
- const msg = event.message;
431
- const content = msg?.content;
432
- if (Array.isArray(content)) {
433
- for (const block of content) {
434
- if (block.type === "text" && block.text) {
435
- const text = block.text.trim();
436
- displayed = emitVisibleAgentText(text, statusLogPath, lastVisibleText) || displayed;
437
- }
438
- if (block.type === "tool_use" && SHOW_AGENT_TOOL_EVENTS) {
439
- const name = block.name;
440
- const input = block.input;
441
- let detail = "";
442
- if (input) {
443
- const path = (input.file_path ?? input.path ?? input.pattern ?? input.command ?? "");
444
- if (path)
445
- detail = chalk.dim(` ${path.slice(0, 80)}`);
446
- }
447
- console.log(chalk.blue(` → ${name}`) + detail);
448
- displayed = true;
449
- }
450
- }
451
- }
452
- }
453
- if (type === "item.started" || type === "item.completed") {
454
- const item = event.item;
455
- if (item) {
456
- displayed = displayItemEvent(type, item, statusLogPath, lastVisibleText) || displayed;
457
- }
458
- }
459
- // Result — show final summary
460
- if (type === "result") {
461
- const result = event.result;
462
- const subtype = event.subtype;
463
- if (result && subtype !== "tool_result") {
464
- const lines = result.split("\n");
465
- for (const line of lines) {
466
- displayed = emitVisibleAgentText(line, statusLogPath, lastVisibleText) || displayed;
467
- }
468
- }
469
- }
470
- const message = pickString(event.message) ??
471
- pickString(event.text) ??
472
- pickString(event.content) ??
473
- pickString(event.output) ??
474
- pickString(event.summary);
475
- if (message && type !== "assistant" && type !== "result") {
476
- const text = message.trim();
477
- displayed = emitVisibleAgentText(text, statusLogPath, lastVisibleText) || displayed;
478
- }
479
- return displayed;
480
- }
481
- function pickString(value) {
482
- if (typeof value === "string")
483
- return value;
484
- if (!Array.isArray(value))
485
- return null;
486
- for (const entry of value) {
487
- if (typeof entry === "string")
488
- return entry;
489
- if (entry && typeof entry === "object" && "text" in entry && typeof entry.text === "string") {
490
- return entry.text;
491
- }
492
- }
493
- return null;
494
- }
495
- function displayItemEvent(type, item, statusLogPath, lastVisibleText) {
496
- const itemType = item.type;
497
- if (itemType === "agent_message") {
498
- const text = item.text?.trim();
499
- return text ? emitVisibleAgentText(text, statusLogPath, lastVisibleText) : false;
500
- }
501
- if (!SHOW_AGENT_TOOL_EVENTS) {
502
- return false;
503
- }
504
- const title = pickString(item.title) ?? pickString(item.name);
505
- const input = item.input;
506
- const detail = input ? describeInput(input) : "";
507
- if (type === "item.started" && title) {
508
- console.log(chalk.blue(` → ${title}`) + detail);
509
- return true;
510
- }
511
- if (type === "item.completed" && title) {
512
- console.log(chalk.blue(` → ${title}`) + detail);
513
- return true;
514
- }
515
- return false;
516
- }
517
- function describeInput(input) {
518
- const path = (input.file_path ?? input.path ?? input.pattern ?? input.command ?? "");
519
- return path ? chalk.dim(` ${path.slice(0, 80)}`) : "";
520
- }
521
- function shouldDisplayAgentText(text) {
522
- if (text.length === 0 || text.length >= 300)
523
- return false;
524
- return VISIBLE_STATUS_PREFIXES.some((prefix) => text.startsWith(prefix));
525
- }
526
- function isTerminalVisibleStatus(text) {
527
- return text.startsWith("DONE:") || text.startsWith("BLOCKED:") || text.startsWith("ERROR:");
528
- }
529
- export function extractAgentFailureStatus(event) {
530
- const candidates = [];
531
- const directMessage = pickString(event.message) ??
532
- pickString(event.text) ??
533
- pickString(event.content) ??
534
- pickString(event.output) ??
535
- pickString(event.summary);
536
- if (directMessage)
537
- candidates.push(directMessage);
538
- const item = event.item;
539
- if (item && typeof item === "object") {
540
- const itemText = pickString(item.text);
541
- if (itemText)
542
- candidates.push(itemText);
543
- }
544
- for (const candidate of candidates) {
545
- const text = candidate.trim();
546
- if (text.startsWith("BLOCKED:") || text.startsWith("ERROR:")) {
547
- return text;
548
- }
549
- }
550
- return null;
551
- }
552
- function sanitizeAgentStderr(stderr) {
553
- return stderr
554
- .split("\n")
555
- .filter((line) => line.trim().length > 0)
556
- .filter((line) => !CODEX_NOISE_PATTERNS.some((pattern) => pattern.test(line)))
557
- .join("\n")
558
- .trim();
559
- }
560
14
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,IAAI,iBAAiB,GACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,kFAAkF;AAClF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAgB;IAC5C,OAAO,iBAAiB,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;AACrD,CAAC;AASD,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC;AAE5E,MAAM,MAAM,GAAY;IACtB;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC/C,OAAO,EAAE,QAAQ;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC9C,OAAO,EAAE,OAAO;KACjB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC/C,OAAO,EAAE,QAAQ;KAClB;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,yJAAyJ;IACzJ,+HAA+H;CAChI,CAAC;AACF,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AA4B3E,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEpD,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAY;IAChD,OAAO,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,qBAAqB,MAAM,CAAC,KAAK,2FAA2F;aACpI,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,qBAAqB,UAAU,CAAC,WAAW,iEAAiE;aACpH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,qBAAqB,UAAU,CAAC,WAAW,kIAAkI;aACrL,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,yDAAyD;SACjE,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,oIAAoI;SAC5I,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAuC,EACvC,KAA8B;IAE9B,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,cAAc,CACZ,YAAY,EACZ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC,IAAI,CACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,aAAwC,EACxC,IAAY;IAEZ,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,cAAc,CACZ,aAAa,EACb,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CACxC,CAAC;AACJ,CAAC;AAOD,SAAS,oBAAoB,CAC3B,IAAY,EACZ,aAAwC,EACxC,eAAkC;IAElC,IAAI,eAAe,EAAE,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,eAAe,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAY,EACZ,OAAe,EACf,MAAc,EACd,UAA6B,EAAE;IAE/B,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACrE,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;YACxC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,KAAK,CAAC,WAAW,KAAK,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1C,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACtC,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,SAAS,IAAI,IAAI,CAAC;QAE9D,kDAAkD;QAClD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,MAAM,eAAe,GAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1D,IAAI,GAAG,GAAG,mBAAmB,GAAG,UAAU;gBAAE,OAAO;YACnD,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB;gBAAE,OAAO;YAEtD,eAAe,GAAG,GAAG,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,eAAe;gBAC3B,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,yBAAyB,OAAO,sBAAsB;gBAC5E,CAAC,CAAC,YAAY;oBACZ,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,4DAA4D,OAAO,IAAI;oBAC7F,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,0DAA0D,OAAO,IAAI,CAAC;YAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,OAAO,GACX,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC;YAC5C,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;oBACxC,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,oBAAoB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC,EAAE,SAAS,CAAC;YACf,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;YAC5C,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;gBACf,IAAI,QAAQ,IAAI,mBAAmB;oBAAE,OAAO;gBAC5C,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE;wBAAE,OAAO;oBACzC,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;wBACxC,IAAI,EAAE,4BAA4B;qBACnC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;gBACjE,CAAC;YACH,CAAC,EAAE,IAAI,CAAC;YACV,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;oBACxC,IAAI,EAAE,QAAQ;oBACd,IAAI;iBACL,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC/B,aAAa,KAAK,yBAAyB,CAAC,KAAK,CAAC,CAAC;oBACnD,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;wBAChE,eAAe,GAAG,IAAI,CAAC;wBACvB,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;wBACvE,eAAe,GAAG,IAAI,CAAC;wBACvB,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;oBACxC,IAAI,EAAE,QAAQ;oBACd,IAAI;iBACL,CAAC,CAAC;gBACH,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACzE,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,YAAY,GAAG,IAAI,CAAC;gBACpB,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBAClC,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,aAAa,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,cAAc;gBAAE,aAAa,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC7F,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;gBACxC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAC;YACH,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,aAAa,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,cAAc;gBAAE,aAAa,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAChD,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE;gBACxC,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,mBAAmB,KAAK,CAAC,WAAW,EAAE;aAChD,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAY,EACZ,MAAc,EACd,mBAA6C,EAAE;IAE/C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,MAAM;YACN,iBAAiB;YACjB,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,sCAAsC;SACvC,CAAC;QACF,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG;YACX,MAAM;YACN,QAAQ;YACR,IAAI;YACJ,iBAAiB;YACjB,uBAAuB;SACxB,CAAC;QACF,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,WAAW,oDAAoD,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,0BAA0B;QAC1B,wDAAwD;QACxD,mBAAmB;QACnB,oBAAoB;QACpB,qBAAqB;KACtB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAY,EACZ,UAAiC,EAAE;IAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC,EAAE;YAC9F,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE9F,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;gBAC9D,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;aAC5B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YACvB,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAC9D,QAAQ,EAAE,KAAK;YACf,MAAM;YACN,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;SACrF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAY,EACZ,UAGI,EAAE;IAEN,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,iBAAiB,CAAC;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,+EAA+E,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;SACzI,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CACnB,KAA8B,EAC9B,aAAwC,EACxC,eAAiC;IAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,0CAA0C;IAC1C,IAAI,IAAI,KAAK,UAAU,IAAI,sBAAsB,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,IAAI,SAAS,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAA4C,CAAC;QACjE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,0CAA0C;YAC1C,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAW,CAAC;YAC/F,IAAI,IAAI;gBAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAChD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,mCAAmC;IAEnC,iDAAiD;IACjD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAA8C,CAAC;QACjE,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAyC,EAAE,CAAC;gBAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,GAAI,KAAK,CAAC,IAAe,CAAC,IAAI,EAAE,CAAC;oBAC3C,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,SAAS,CAAC;gBACtF,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,sBAAsB,EAAE,CAAC;oBACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;oBAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAA4C,CAAC;oBACjE,IAAI,MAAM,GAAG,EAAE,CAAC;oBAChB,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAW,CAAC;wBAC/F,IAAI,IAAI;4BAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;oBACxD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;oBAChD,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,SAAS,CAAC;QACxF,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAA6B,CAAC;QACpD,IAAI,MAAM,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,SAAS,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GACX,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QACxB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE5B,IAAI,OAAO,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,SAAS,CAAC;IACtF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5F,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAY,EACZ,IAA6B,EAC7B,aAAwC,EACxC,eAAiC;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAA0B,CAAC;IAEjD,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjC,MAAM,IAAI,GAAI,IAAI,CAAC,IAA2B,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4C,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjD,IAAI,IAAI,KAAK,cAAc,IAAI,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,KAAK,gBAAgB,IAAI,KAAK,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAA8B;IACnD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAW,CAAC;IAC/F,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAA8B;IACtE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,aAAa,GACjB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QACxB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,aAAa;QAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAE,IAAgC,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7E,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,kFAAkF;AAClF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,MAAgB;IAC5C,OAAO,iBAAiB,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type WorkflowExecutor } from "./executors.js";
2
+ import type { BenchmarkRunResult, BenchmarkTargetCandidate, LoadedBenchmarkSpec } from "./benchmark-types.js";
3
+ export declare function runBenchmark(sourcePath: string, spec: LoadedBenchmarkSpec, targets: BenchmarkTargetCandidate[]): BenchmarkRunResult;
4
+ export declare function runBenchmarkWithJudge(sourcePath: string, spec: LoadedBenchmarkSpec, targets: BenchmarkTargetCandidate[], executor: WorkflowExecutor): Promise<BenchmarkRunResult>;
5
+ export declare function runBenchmarkAuto(sourcePath: string, spec: LoadedBenchmarkSpec, targets: BenchmarkTargetCandidate[], options?: {
6
+ executor?: WorkflowExecutor | null;
7
+ }): Promise<BenchmarkRunResult>;
8
+ export declare function saveBenchmarkRun(sourcePath: string, result: BenchmarkRunResult): string;
9
+ //# sourceMappingURL=benchmark-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-execution.d.ts","sourceRoot":"","sources":["../../src/lib/benchmark-execution.ts"],"names":[],"mappings":"AAUA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAIV,kBAAkB,EAClB,wBAAwB,EAExB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAmgB9B,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,wBAAwB,EAAE,GAClC,kBAAkB,CAmBpB;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,wBAAwB,EAAE,EACnC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,wBAAwB,EAAE,EACnC,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC,GACA,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAkCR"}