@hoangsonw/forge 0.1.1 → 0.1.2-nightly.20260425

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 (583) hide show
  1. package/README.md +135 -63
  2. package/bin/README.md +118 -0
  3. package/bin/forge.js +2 -0
  4. package/dist/agents/architect.d.ts +8 -0
  5. package/dist/agents/architect.d.ts.map +1 -1
  6. package/dist/agents/architect.js +8 -6
  7. package/dist/agents/architect.js.map +1 -1
  8. package/dist/agents/base.d.ts +5 -0
  9. package/dist/agents/base.d.ts.map +1 -1
  10. package/dist/agents/base.js +5 -0
  11. package/dist/agents/base.js.map +1 -1
  12. package/dist/agents/debugger.d.ts +5 -0
  13. package/dist/agents/debugger.d.ts.map +1 -1
  14. package/dist/agents/debugger.js +5 -0
  15. package/dist/agents/debugger.js.map +1 -1
  16. package/dist/agents/executor.d.ts +5 -0
  17. package/dist/agents/executor.d.ts.map +1 -1
  18. package/dist/agents/executor.js +19 -2
  19. package/dist/agents/executor.js.map +1 -1
  20. package/dist/agents/memory.d.ts +3 -1
  21. package/dist/agents/memory.d.ts.map +1 -1
  22. package/dist/agents/memory.js +7 -5
  23. package/dist/agents/memory.js.map +1 -1
  24. package/dist/agents/narrator.d.ts +70 -0
  25. package/dist/agents/narrator.d.ts.map +1 -0
  26. package/dist/agents/narrator.js +186 -0
  27. package/dist/agents/narrator.js.map +1 -0
  28. package/dist/agents/planner.d.ts +5 -0
  29. package/dist/agents/planner.d.ts.map +1 -1
  30. package/dist/agents/planner.js +24 -2
  31. package/dist/agents/planner.js.map +1 -1
  32. package/dist/agents/registry.d.ts +7 -0
  33. package/dist/agents/registry.d.ts.map +1 -1
  34. package/dist/agents/registry.js +7 -0
  35. package/dist/agents/registry.js.map +1 -1
  36. package/dist/agents/reviewer.d.ts +7 -0
  37. package/dist/agents/reviewer.d.ts.map +1 -1
  38. package/dist/agents/reviewer.js +20 -5
  39. package/dist/agents/reviewer.js.map +1 -1
  40. package/dist/classifier/classifier.d.ts +5 -0
  41. package/dist/classifier/classifier.d.ts.map +1 -1
  42. package/dist/classifier/classifier.js +31 -1
  43. package/dist/classifier/classifier.js.map +1 -1
  44. package/dist/classifier/heuristics.d.ts +23 -0
  45. package/dist/classifier/heuristics.d.ts.map +1 -1
  46. package/dist/classifier/heuristics.js +58 -2
  47. package/dist/classifier/heuristics.js.map +1 -1
  48. package/dist/cli/animations.d.ts +8 -0
  49. package/dist/cli/animations.d.ts.map +1 -1
  50. package/dist/cli/animations.js +8 -6
  51. package/dist/cli/animations.js.map +1 -1
  52. package/dist/cli/banners.d.ts +8 -2
  53. package/dist/cli/banners.d.ts.map +1 -1
  54. package/dist/cli/banners.js +48 -18
  55. package/dist/cli/banners.js.map +1 -1
  56. package/dist/cli/bootstrap.d.ts +5 -0
  57. package/dist/cli/bootstrap.d.ts.map +1 -1
  58. package/dist/cli/bootstrap.js +5 -0
  59. package/dist/cli/bootstrap.js.map +1 -1
  60. package/dist/cli/choose.d.ts +34 -0
  61. package/dist/cli/choose.d.ts.map +1 -0
  62. package/dist/cli/choose.js +219 -0
  63. package/dist/cli/choose.js.map +1 -0
  64. package/dist/cli/commands/bundle.d.ts +5 -0
  65. package/dist/cli/commands/bundle.d.ts.map +1 -1
  66. package/dist/cli/commands/bundle.js +5 -0
  67. package/dist/cli/commands/bundle.js.map +1 -1
  68. package/dist/cli/commands/changelog.d.ts +5 -0
  69. package/dist/cli/commands/changelog.d.ts.map +1 -1
  70. package/dist/cli/commands/changelog.js +5 -0
  71. package/dist/cli/commands/changelog.js.map +1 -1
  72. package/dist/cli/commands/config.d.ts +5 -0
  73. package/dist/cli/commands/config.d.ts.map +1 -1
  74. package/dist/cli/commands/config.js +5 -0
  75. package/dist/cli/commands/config.js.map +1 -1
  76. package/dist/cli/commands/container.d.ts +5 -0
  77. package/dist/cli/commands/container.d.ts.map +1 -1
  78. package/dist/cli/commands/container.js +5 -0
  79. package/dist/cli/commands/container.js.map +1 -1
  80. package/dist/cli/commands/cost.d.ts +5 -0
  81. package/dist/cli/commands/cost.d.ts.map +1 -1
  82. package/dist/cli/commands/cost.js +5 -0
  83. package/dist/cli/commands/cost.js.map +1 -1
  84. package/dist/cli/commands/daemon.d.ts +5 -0
  85. package/dist/cli/commands/daemon.d.ts.map +1 -1
  86. package/dist/cli/commands/daemon.js +5 -0
  87. package/dist/cli/commands/daemon.js.map +1 -1
  88. package/dist/cli/commands/dev.d.ts +5 -0
  89. package/dist/cli/commands/dev.d.ts.map +1 -1
  90. package/dist/cli/commands/dev.js +5 -0
  91. package/dist/cli/commands/dev.js.map +1 -1
  92. package/dist/cli/commands/doctor.d.ts +5 -0
  93. package/dist/cli/commands/doctor.d.ts.map +1 -1
  94. package/dist/cli/commands/doctor.js +5 -0
  95. package/dist/cli/commands/doctor.js.map +1 -1
  96. package/dist/cli/commands/init.d.ts +5 -0
  97. package/dist/cli/commands/init.d.ts.map +1 -1
  98. package/dist/cli/commands/init.js +5 -0
  99. package/dist/cli/commands/init.js.map +1 -1
  100. package/dist/cli/commands/mcp.d.ts +6 -0
  101. package/dist/cli/commands/mcp.d.ts.map +1 -1
  102. package/dist/cli/commands/mcp.js +6 -0
  103. package/dist/cli/commands/mcp.js.map +1 -1
  104. package/dist/cli/commands/memory.d.ts +5 -0
  105. package/dist/cli/commands/memory.d.ts.map +1 -1
  106. package/dist/cli/commands/memory.js +5 -0
  107. package/dist/cli/commands/memory.js.map +1 -1
  108. package/dist/cli/commands/migrate.d.ts +5 -0
  109. package/dist/cli/commands/migrate.d.ts.map +1 -1
  110. package/dist/cli/commands/migrate.js +5 -0
  111. package/dist/cli/commands/migrate.js.map +1 -1
  112. package/dist/cli/commands/model.d.ts +5 -0
  113. package/dist/cli/commands/model.d.ts.map +1 -1
  114. package/dist/cli/commands/model.js +5 -0
  115. package/dist/cli/commands/model.js.map +1 -1
  116. package/dist/cli/commands/permissions.d.ts +5 -0
  117. package/dist/cli/commands/permissions.d.ts.map +1 -1
  118. package/dist/cli/commands/permissions.js +5 -0
  119. package/dist/cli/commands/permissions.js.map +1 -1
  120. package/dist/cli/commands/resume.d.ts +5 -0
  121. package/dist/cli/commands/resume.d.ts.map +1 -1
  122. package/dist/cli/commands/resume.js +5 -0
  123. package/dist/cli/commands/resume.js.map +1 -1
  124. package/dist/cli/commands/run.d.ts +5 -0
  125. package/dist/cli/commands/run.d.ts.map +1 -1
  126. package/dist/cli/commands/run.js +21 -8
  127. package/dist/cli/commands/run.js.map +1 -1
  128. package/dist/cli/commands/session.d.ts +8 -0
  129. package/dist/cli/commands/session.d.ts.map +1 -1
  130. package/dist/cli/commands/session.js +8 -0
  131. package/dist/cli/commands/session.js.map +1 -1
  132. package/dist/cli/commands/skills.d.ts +5 -0
  133. package/dist/cli/commands/skills.d.ts.map +1 -1
  134. package/dist/cli/commands/skills.js +5 -0
  135. package/dist/cli/commands/skills.js.map +1 -1
  136. package/dist/cli/commands/spec.d.ts +6 -0
  137. package/dist/cli/commands/spec.d.ts.map +1 -1
  138. package/dist/cli/commands/spec.js +6 -0
  139. package/dist/cli/commands/spec.js.map +1 -1
  140. package/dist/cli/commands/status.d.ts +5 -0
  141. package/dist/cli/commands/status.d.ts.map +1 -1
  142. package/dist/cli/commands/status.js +5 -0
  143. package/dist/cli/commands/status.js.map +1 -1
  144. package/dist/cli/commands/task.d.ts +8 -0
  145. package/dist/cli/commands/task.d.ts.map +1 -1
  146. package/dist/cli/commands/task.js +76 -0
  147. package/dist/cli/commands/task.js.map +1 -1
  148. package/dist/cli/commands/ui.d.ts +5 -0
  149. package/dist/cli/commands/ui.d.ts.map +1 -1
  150. package/dist/cli/commands/ui.js +5 -0
  151. package/dist/cli/commands/ui.js.map +1 -1
  152. package/dist/cli/commands/update.d.ts +5 -0
  153. package/dist/cli/commands/update.d.ts.map +1 -1
  154. package/dist/cli/commands/update.js +5 -0
  155. package/dist/cli/commands/update.js.map +1 -1
  156. package/dist/cli/commands/web.d.ts +5 -0
  157. package/dist/cli/commands/web.d.ts.map +1 -1
  158. package/dist/cli/commands/web.js +5 -0
  159. package/dist/cli/commands/web.js.map +1 -1
  160. package/dist/cli/help.d.ts +2 -0
  161. package/dist/cli/help.d.ts.map +1 -1
  162. package/dist/cli/help.js +2 -0
  163. package/dist/cli/help.js.map +1 -1
  164. package/dist/cli/index.js +14 -0
  165. package/dist/cli/index.js.map +1 -1
  166. package/dist/cli/markdown.d.ts.map +1 -1
  167. package/dist/cli/markdown.js +115 -10
  168. package/dist/cli/markdown.js.map +1 -1
  169. package/dist/cli/progress.d.ts +42 -0
  170. package/dist/cli/progress.d.ts.map +1 -0
  171. package/dist/cli/progress.js +335 -0
  172. package/dist/cli/progress.js.map +1 -0
  173. package/dist/cli/repl-commands.d.ts +2 -0
  174. package/dist/cli/repl-commands.d.ts.map +1 -1
  175. package/dist/cli/repl-commands.js +2 -0
  176. package/dist/cli/repl-commands.js.map +1 -1
  177. package/dist/cli/repl-input.d.ts +3 -0
  178. package/dist/cli/repl-input.d.ts.map +1 -1
  179. package/dist/cli/repl-input.js +87 -39
  180. package/dist/cli/repl-input.js.map +1 -1
  181. package/dist/cli/repl.d.ts.map +1 -1
  182. package/dist/cli/repl.js +109 -29
  183. package/dist/cli/repl.js.map +1 -1
  184. package/dist/cli/ui.d.ts +9 -0
  185. package/dist/cli/ui.d.ts.map +1 -1
  186. package/dist/cli/ui.js +9 -0
  187. package/dist/cli/ui.js.map +1 -1
  188. package/dist/config/loader.d.ts +5 -0
  189. package/dist/config/loader.d.ts.map +1 -1
  190. package/dist/config/loader.js +5 -0
  191. package/dist/config/loader.js.map +1 -1
  192. package/dist/config/paths.d.ts +8 -0
  193. package/dist/config/paths.d.ts.map +1 -1
  194. package/dist/config/paths.js +8 -0
  195. package/dist/config/paths.js.map +1 -1
  196. package/dist/config/schema.d.ts +17 -0
  197. package/dist/config/schema.d.ts.map +1 -1
  198. package/dist/config/schema.js +17 -0
  199. package/dist/config/schema.js.map +1 -1
  200. package/dist/config/xdg.d.ts.map +1 -1
  201. package/dist/config/xdg.js +2 -0
  202. package/dist/config/xdg.js.map +1 -1
  203. package/dist/core/continuity.d.ts.map +1 -1
  204. package/dist/core/continuity.js +2 -0
  205. package/dist/core/continuity.js.map +1 -1
  206. package/dist/core/conversation.d.ts +2 -0
  207. package/dist/core/conversation.d.ts.map +1 -1
  208. package/dist/core/conversation.js +2 -0
  209. package/dist/core/conversation.js.map +1 -1
  210. package/dist/core/estimation.d.ts +2 -0
  211. package/dist/core/estimation.d.ts.map +1 -1
  212. package/dist/core/estimation.js.map +1 -1
  213. package/dist/core/fork.d.ts.map +1 -1
  214. package/dist/core/fork.js +2 -0
  215. package/dist/core/fork.js.map +1 -1
  216. package/dist/core/interactive-host.d.ts +11 -2
  217. package/dist/core/interactive-host.d.ts.map +1 -1
  218. package/dist/core/interactive-host.js +12 -0
  219. package/dist/core/interactive-host.js.map +1 -1
  220. package/dist/core/loop-detection.d.ts +2 -0
  221. package/dist/core/loop-detection.d.ts.map +1 -1
  222. package/dist/core/loop-detection.js.map +1 -1
  223. package/dist/core/loop.d.ts +11 -0
  224. package/dist/core/loop.d.ts.map +1 -1
  225. package/dist/core/loop.js +244 -26
  226. package/dist/core/loop.js.map +1 -1
  227. package/dist/core/mode-policy.d.ts +2 -0
  228. package/dist/core/mode-policy.d.ts.map +1 -1
  229. package/dist/core/mode-policy.js.map +1 -1
  230. package/dist/core/orchestrator.d.ts +14 -0
  231. package/dist/core/orchestrator.d.ts.map +1 -1
  232. package/dist/core/orchestrator.js +79 -1
  233. package/dist/core/orchestrator.js.map +1 -1
  234. package/dist/core/plan-fixer.d.ts +3 -1
  235. package/dist/core/plan-fixer.d.ts.map +1 -1
  236. package/dist/core/plan-fixer.js +10 -0
  237. package/dist/core/plan-fixer.js.map +1 -1
  238. package/dist/core/signals.d.ts.map +1 -1
  239. package/dist/core/signals.js +2 -0
  240. package/dist/core/signals.js.map +1 -1
  241. package/dist/core/spec.d.ts.map +1 -1
  242. package/dist/core/spec.js +2 -0
  243. package/dist/core/spec.js.map +1 -1
  244. package/dist/core/validation.d.ts.map +1 -1
  245. package/dist/core/validation.js +2 -0
  246. package/dist/core/validation.js.map +1 -1
  247. package/dist/daemon/control.d.ts +5 -0
  248. package/dist/daemon/control.d.ts.map +1 -1
  249. package/dist/daemon/control.js +5 -0
  250. package/dist/daemon/control.js.map +1 -1
  251. package/dist/daemon/server.d.ts +2 -0
  252. package/dist/daemon/server.d.ts.map +1 -1
  253. package/dist/daemon/server.js +7 -5
  254. package/dist/daemon/server.js.map +1 -1
  255. package/dist/daemon/updater.d.ts +5 -0
  256. package/dist/daemon/updater.d.ts.map +1 -1
  257. package/dist/daemon/updater.js +20 -6
  258. package/dist/daemon/updater.js.map +1 -1
  259. package/dist/keychain/index.d.ts.map +1 -1
  260. package/dist/keychain/index.js +2 -0
  261. package/dist/keychain/index.js.map +1 -1
  262. package/dist/keychain/windows.d.ts.map +1 -1
  263. package/dist/keychain/windows.js +2 -0
  264. package/dist/keychain/windows.js.map +1 -1
  265. package/dist/logging/logger.d.ts +9 -0
  266. package/dist/logging/logger.d.ts.map +1 -1
  267. package/dist/logging/logger.js +9 -5
  268. package/dist/logging/logger.js.map +1 -1
  269. package/dist/logging/rotation.d.ts.map +1 -1
  270. package/dist/logging/rotation.js +2 -0
  271. package/dist/logging/rotation.js.map +1 -1
  272. package/dist/logging/trace.d.ts +9 -0
  273. package/dist/logging/trace.d.ts.map +1 -1
  274. package/dist/logging/trace.js +9 -0
  275. package/dist/logging/trace.js.map +1 -1
  276. package/dist/mcp/client.d.ts +2 -0
  277. package/dist/mcp/client.d.ts.map +1 -1
  278. package/dist/mcp/client.js +8 -0
  279. package/dist/mcp/client.js.map +1 -1
  280. package/dist/mcp/http-transport.d.ts.map +1 -1
  281. package/dist/mcp/http-transport.js +2 -0
  282. package/dist/mcp/http-transport.js.map +1 -1
  283. package/dist/mcp/oauth.d.ts.map +1 -1
  284. package/dist/mcp/oauth.js +2 -0
  285. package/dist/mcp/oauth.js.map +1 -1
  286. package/dist/mcp/registry.d.ts +6 -0
  287. package/dist/mcp/registry.d.ts.map +1 -1
  288. package/dist/mcp/registry.js +6 -0
  289. package/dist/mcp/registry.js.map +1 -1
  290. package/dist/memory/cold.d.ts.map +1 -1
  291. package/dist/memory/cold.js +2 -0
  292. package/dist/memory/cold.js.map +1 -1
  293. package/dist/memory/graph.d.ts.map +1 -1
  294. package/dist/memory/graph.js +2 -0
  295. package/dist/memory/graph.js.map +1 -1
  296. package/dist/memory/hot.d.ts +2 -0
  297. package/dist/memory/hot.d.ts.map +1 -1
  298. package/dist/memory/hot.js +2 -0
  299. package/dist/memory/hot.js.map +1 -1
  300. package/dist/memory/learning.d.ts.map +1 -1
  301. package/dist/memory/learning.js +2 -0
  302. package/dist/memory/learning.js.map +1 -1
  303. package/dist/memory/retrieval.d.ts.map +1 -1
  304. package/dist/memory/retrieval.js +2 -0
  305. package/dist/memory/retrieval.js.map +1 -1
  306. package/dist/memory/warm.d.ts.map +1 -1
  307. package/dist/memory/warm.js +2 -0
  308. package/dist/memory/warm.js.map +1 -1
  309. package/dist/migrations/runner.d.ts +2 -0
  310. package/dist/migrations/runner.d.ts.map +1 -1
  311. package/dist/migrations/runner.js +2 -0
  312. package/dist/migrations/runner.js.map +1 -1
  313. package/dist/models/adapter.d.ts +2 -0
  314. package/dist/models/adapter.d.ts.map +1 -1
  315. package/dist/models/adapter.js +14 -0
  316. package/dist/models/adapter.js.map +1 -1
  317. package/dist/models/anthropic.d.ts +11 -1
  318. package/dist/models/anthropic.d.ts.map +1 -1
  319. package/dist/models/anthropic.js +128 -5
  320. package/dist/models/anthropic.js.map +1 -1
  321. package/dist/models/cache.d.ts +9 -0
  322. package/dist/models/cache.d.ts.map +1 -1
  323. package/dist/models/cache.js +9 -7
  324. package/dist/models/cache.js.map +1 -1
  325. package/dist/models/circuit-breaker.d.ts +2 -0
  326. package/dist/models/circuit-breaker.d.ts.map +1 -1
  327. package/dist/models/circuit-breaker.js +8 -0
  328. package/dist/models/circuit-breaker.js.map +1 -1
  329. package/dist/models/cost.d.ts +8 -0
  330. package/dist/models/cost.d.ts.map +1 -1
  331. package/dist/models/cost.js +4 -2
  332. package/dist/models/cost.js.map +1 -1
  333. package/dist/models/llamacpp.d.ts +3 -1
  334. package/dist/models/llamacpp.d.ts.map +1 -1
  335. package/dist/models/llamacpp.js +5 -3
  336. package/dist/models/llamacpp.js.map +1 -1
  337. package/dist/models/lmstudio.d.ts +3 -1
  338. package/dist/models/lmstudio.d.ts.map +1 -1
  339. package/dist/models/lmstudio.js +5 -3
  340. package/dist/models/lmstudio.js.map +1 -1
  341. package/dist/models/local-catalog.d.ts +2 -0
  342. package/dist/models/local-catalog.d.ts.map +1 -1
  343. package/dist/models/local-catalog.js.map +1 -1
  344. package/dist/models/ollama.d.ts +24 -1
  345. package/dist/models/ollama.d.ts.map +1 -1
  346. package/dist/models/ollama.js +158 -1
  347. package/dist/models/ollama.js.map +1 -1
  348. package/dist/models/openai.d.ts +11 -1
  349. package/dist/models/openai.d.ts.map +1 -1
  350. package/dist/models/openai.js +108 -5
  351. package/dist/models/openai.js.map +1 -1
  352. package/dist/models/provider.d.ts +5 -0
  353. package/dist/models/provider.d.ts.map +1 -1
  354. package/dist/models/provider.js +5 -0
  355. package/dist/models/provider.js.map +1 -1
  356. package/dist/models/rate-limit.d.ts +2 -0
  357. package/dist/models/rate-limit.d.ts.map +1 -1
  358. package/dist/models/rate-limit.js +7 -0
  359. package/dist/models/rate-limit.js.map +1 -1
  360. package/dist/models/registry.d.ts +5 -0
  361. package/dist/models/registry.d.ts.map +1 -1
  362. package/dist/models/registry.js +5 -0
  363. package/dist/models/registry.js.map +1 -1
  364. package/dist/models/router.d.ts +24 -0
  365. package/dist/models/router.d.ts.map +1 -1
  366. package/dist/models/router.js +163 -3
  367. package/dist/models/router.js.map +1 -1
  368. package/dist/models/vllm.d.ts +3 -1
  369. package/dist/models/vllm.d.ts.map +1 -1
  370. package/dist/models/vllm.js +5 -3
  371. package/dist/models/vllm.js.map +1 -1
  372. package/dist/notifications/manager.d.ts +7 -0
  373. package/dist/notifications/manager.d.ts.map +1 -1
  374. package/dist/notifications/manager.js +7 -0
  375. package/dist/notifications/manager.js.map +1 -1
  376. package/dist/permissions/manager.d.ts +8 -0
  377. package/dist/permissions/manager.d.ts.map +1 -1
  378. package/dist/permissions/manager.js +33 -18
  379. package/dist/permissions/manager.js.map +1 -1
  380. package/dist/permissions/risk.d.ts +3 -1
  381. package/dist/permissions/risk.d.ts.map +1 -1
  382. package/dist/permissions/risk.js +4 -2
  383. package/dist/permissions/risk.js.map +1 -1
  384. package/dist/persistence/compression.d.ts +8 -0
  385. package/dist/persistence/compression.d.ts.map +1 -1
  386. package/dist/persistence/compression.js +8 -6
  387. package/dist/persistence/compression.js.map +1 -1
  388. package/dist/persistence/conversation-store.d.ts +2 -0
  389. package/dist/persistence/conversation-store.d.ts.map +1 -1
  390. package/dist/persistence/conversation-store.js +2 -0
  391. package/dist/persistence/conversation-store.js.map +1 -1
  392. package/dist/persistence/events.d.ts +35 -0
  393. package/dist/persistence/events.d.ts.map +1 -1
  394. package/dist/persistence/events.js +41 -1
  395. package/dist/persistence/events.js.map +1 -1
  396. package/dist/persistence/index-db.d.ts +12 -0
  397. package/dist/persistence/index-db.d.ts.map +1 -1
  398. package/dist/persistence/index-db.js +20 -1
  399. package/dist/persistence/index-db.js.map +1 -1
  400. package/dist/persistence/jsonl.d.ts +2 -0
  401. package/dist/persistence/jsonl.d.ts.map +1 -1
  402. package/dist/persistence/jsonl.js +6 -4
  403. package/dist/persistence/jsonl.js.map +1 -1
  404. package/dist/persistence/sessions.d.ts +7 -0
  405. package/dist/persistence/sessions.d.ts.map +1 -1
  406. package/dist/persistence/sessions.js +7 -0
  407. package/dist/persistence/sessions.js.map +1 -1
  408. package/dist/persistence/tasks.d.ts +15 -0
  409. package/dist/persistence/tasks.d.ts.map +1 -1
  410. package/dist/persistence/tasks.js +32 -2
  411. package/dist/persistence/tasks.js.map +1 -1
  412. package/dist/prompts/assembler.d.ts +6 -0
  413. package/dist/prompts/assembler.d.ts.map +1 -1
  414. package/dist/prompts/assembler.js +6 -0
  415. package/dist/prompts/assembler.js.map +1 -1
  416. package/dist/prompts/layers.d.ts +5 -0
  417. package/dist/prompts/layers.d.ts.map +1 -1
  418. package/dist/prompts/layers.js +5 -0
  419. package/dist/prompts/layers.js.map +1 -1
  420. package/dist/release/download.d.ts.map +1 -1
  421. package/dist/release/download.js +2 -0
  422. package/dist/release/download.js.map +1 -1
  423. package/dist/release/verify.d.ts.map +1 -1
  424. package/dist/release/verify.js +2 -0
  425. package/dist/release/verify.js.map +1 -1
  426. package/dist/sandbox/file-lock.d.ts +40 -0
  427. package/dist/sandbox/file-lock.d.ts.map +1 -0
  428. package/dist/sandbox/file-lock.js +118 -0
  429. package/dist/sandbox/file-lock.js.map +1 -0
  430. package/dist/sandbox/fs.d.ts +5 -0
  431. package/dist/sandbox/fs.d.ts.map +1 -1
  432. package/dist/sandbox/fs.js +24 -1
  433. package/dist/sandbox/fs.js.map +1 -1
  434. package/dist/sandbox/shell.d.ts +5 -0
  435. package/dist/sandbox/shell.d.ts.map +1 -1
  436. package/dist/sandbox/shell.js +5 -0
  437. package/dist/sandbox/shell.js.map +1 -1
  438. package/dist/scheduler/dag.d.ts +5 -0
  439. package/dist/scheduler/dag.d.ts.map +1 -1
  440. package/dist/scheduler/dag.js +5 -0
  441. package/dist/scheduler/dag.js.map +1 -1
  442. package/dist/scheduler/resource-manager.d.ts +2 -0
  443. package/dist/scheduler/resource-manager.d.ts.map +1 -1
  444. package/dist/scheduler/resource-manager.js +7 -0
  445. package/dist/scheduler/resource-manager.js.map +1 -1
  446. package/dist/security/injection.d.ts +2 -0
  447. package/dist/security/injection.d.ts.map +1 -1
  448. package/dist/security/injection.js +2 -0
  449. package/dist/security/injection.js.map +1 -1
  450. package/dist/security/redact.d.ts +2 -0
  451. package/dist/security/redact.d.ts.map +1 -1
  452. package/dist/security/redact.js +2 -0
  453. package/dist/security/redact.js.map +1 -1
  454. package/dist/skills/loader.d.ts +5 -0
  455. package/dist/skills/loader.d.ts.map +1 -1
  456. package/dist/skills/loader.js +5 -0
  457. package/dist/skills/loader.js.map +1 -1
  458. package/dist/skills/marketplace.d.ts.map +1 -1
  459. package/dist/skills/marketplace.js +2 -0
  460. package/dist/skills/marketplace.js.map +1 -1
  461. package/dist/tools/apply-patch.d.ts +3 -1
  462. package/dist/tools/apply-patch.d.ts.map +1 -1
  463. package/dist/tools/apply-patch.js +11 -0
  464. package/dist/tools/apply-patch.js.map +1 -1
  465. package/dist/tools/ask-user.d.ts +9 -0
  466. package/dist/tools/ask-user.d.ts.map +1 -1
  467. package/dist/tools/ask-user.js +30 -5
  468. package/dist/tools/ask-user.js.map +1 -1
  469. package/dist/tools/delete-file.d.ts +5 -0
  470. package/dist/tools/delete-file.d.ts.map +1 -1
  471. package/dist/tools/delete-file.js +5 -0
  472. package/dist/tools/delete-file.js.map +1 -1
  473. package/dist/tools/edit-file.d.ts +5 -0
  474. package/dist/tools/edit-file.d.ts.map +1 -1
  475. package/dist/tools/edit-file.js +61 -34
  476. package/dist/tools/edit-file.js.map +1 -1
  477. package/dist/tools/format.d.ts +7 -0
  478. package/dist/tools/format.d.ts.map +1 -1
  479. package/dist/tools/format.js +7 -5
  480. package/dist/tools/format.js.map +1 -1
  481. package/dist/tools/git.d.ts +7 -0
  482. package/dist/tools/git.d.ts.map +1 -1
  483. package/dist/tools/git.js +7 -0
  484. package/dist/tools/git.js.map +1 -1
  485. package/dist/tools/glob.d.ts +5 -0
  486. package/dist/tools/glob.d.ts.map +1 -1
  487. package/dist/tools/glob.js +5 -0
  488. package/dist/tools/glob.js.map +1 -1
  489. package/dist/tools/grep.d.ts +5 -0
  490. package/dist/tools/grep.d.ts.map +1 -1
  491. package/dist/tools/grep.js +5 -0
  492. package/dist/tools/grep.js.map +1 -1
  493. package/dist/tools/init.d.ts +5 -0
  494. package/dist/tools/init.d.ts.map +1 -1
  495. package/dist/tools/init.js +5 -0
  496. package/dist/tools/init.js.map +1 -1
  497. package/dist/tools/list-dir.d.ts +5 -0
  498. package/dist/tools/list-dir.d.ts.map +1 -1
  499. package/dist/tools/list-dir.js +5 -0
  500. package/dist/tools/list-dir.js.map +1 -1
  501. package/dist/tools/move-file.d.ts +5 -0
  502. package/dist/tools/move-file.d.ts.map +1 -1
  503. package/dist/tools/move-file.js +9 -2
  504. package/dist/tools/move-file.js.map +1 -1
  505. package/dist/tools/read-file.d.ts +5 -0
  506. package/dist/tools/read-file.d.ts.map +1 -1
  507. package/dist/tools/read-file.js +5 -0
  508. package/dist/tools/read-file.js.map +1 -1
  509. package/dist/tools/registry.d.ts +5 -0
  510. package/dist/tools/registry.d.ts.map +1 -1
  511. package/dist/tools/registry.js +5 -0
  512. package/dist/tools/registry.js.map +1 -1
  513. package/dist/tools/run-command.d.ts +5 -0
  514. package/dist/tools/run-command.d.ts.map +1 -1
  515. package/dist/tools/run-command.js +5 -0
  516. package/dist/tools/run-command.js.map +1 -1
  517. package/dist/tools/run-tests.d.ts +6 -1
  518. package/dist/tools/run-tests.d.ts.map +1 -1
  519. package/dist/tools/run-tests.js +39 -0
  520. package/dist/tools/run-tests.js.map +1 -1
  521. package/dist/tools/web-browse.d.ts +5 -0
  522. package/dist/tools/web-browse.d.ts.map +1 -1
  523. package/dist/tools/web-browse.js +5 -0
  524. package/dist/tools/web-browse.js.map +1 -1
  525. package/dist/tools/web-fetch.d.ts +5 -0
  526. package/dist/tools/web-fetch.d.ts.map +1 -1
  527. package/dist/tools/web-fetch.js +5 -0
  528. package/dist/tools/web-fetch.js.map +1 -1
  529. package/dist/tools/web-search.d.ts +5 -0
  530. package/dist/tools/web-search.d.ts.map +1 -1
  531. package/dist/tools/web-search.js +5 -0
  532. package/dist/tools/web-search.js.map +1 -1
  533. package/dist/tools/write-file.d.ts +5 -0
  534. package/dist/tools/write-file.d.ts.map +1 -1
  535. package/dist/tools/write-file.js +43 -24
  536. package/dist/tools/write-file.js.map +1 -1
  537. package/dist/types/errors.d.ts +5 -0
  538. package/dist/types/errors.d.ts.map +1 -1
  539. package/dist/types/errors.js +5 -0
  540. package/dist/types/errors.js.map +1 -1
  541. package/dist/types/index.d.ts +35 -2
  542. package/dist/types/index.d.ts.map +1 -1
  543. package/dist/types/index.js +2 -0
  544. package/dist/types/index.js.map +1 -1
  545. package/dist/ui/chat.d.ts +2 -0
  546. package/dist/ui/chat.d.ts.map +1 -1
  547. package/dist/ui/chat.js +2 -0
  548. package/dist/ui/chat.js.map +1 -1
  549. package/dist/ui/public/app.js +701 -51
  550. package/dist/ui/public/index.html +4 -1
  551. package/dist/ui/public/markdown.js +108 -13
  552. package/dist/ui/public/styles.css +232 -4
  553. package/dist/ui/server-errors.d.ts +3 -1
  554. package/dist/ui/server-errors.d.ts.map +1 -1
  555. package/dist/ui/server-errors.js +3 -1
  556. package/dist/ui/server-errors.js.map +1 -1
  557. package/dist/ui/server.d.ts.map +1 -1
  558. package/dist/ui/server.js +62 -2
  559. package/dist/ui/server.js.map +1 -1
  560. package/dist/ui/task-runner.d.ts +2 -1
  561. package/dist/ui/task-runner.d.ts.map +1 -1
  562. package/dist/ui/task-runner.js +147 -14
  563. package/dist/ui/task-runner.js.map +1 -1
  564. package/dist/web/browse.d.ts.map +1 -1
  565. package/dist/web/browse.js +3 -1
  566. package/dist/web/browse.js.map +1 -1
  567. package/dist/web/fetch.d.ts.map +1 -1
  568. package/dist/web/fetch.js +3 -1
  569. package/dist/web/fetch.js.map +1 -1
  570. package/dist/web/sanitize.d.ts.map +1 -1
  571. package/dist/web/sanitize.js +2 -0
  572. package/dist/web/sanitize.js.map +1 -1
  573. package/dist/web/search.d.ts.map +1 -1
  574. package/dist/web/search.js +2 -0
  575. package/dist/web/search.js.map +1 -1
  576. package/install/install.ps1 +1 -1
  577. package/install/install.sh +2 -2
  578. package/package.json +5 -5
  579. package/scripts/bundle.js +2 -0
  580. package/scripts/copy-assets.js +2 -0
  581. package/scripts/link.sh +1 -0
  582. package/scripts/metrics.sh +2 -0
  583. package/scripts/postinstall.js +2 -0
package/README.md CHANGED
@@ -4,14 +4,16 @@
4
4
 
5
5
  # Forge
6
6
 
7
- **A local-first, multi-agent, programmable software-engineering runtime.**
7
+ **A local-first, plan-first, multi-agent, and programmable software-engineering runtime.**
8
8
 
9
9
  *Not an assistant. A runtime.* Forge brings its own scheduler, sandbox,
10
10
  permission system, state machine, agentic loop, memory layers, and
11
11
  plugin ecosystem. You pick the model. You approve the actions. Everything
12
12
  is inspectable, replayable, and yours.
13
13
 
14
- **[Install](docs/INSTALL.md) · [Dev setup](docs/SETUP.md) · [Architecture](docs/ARCHITECTURE.md) · [Wiki Page](index.html) · [License](LICENSE)**
14
+ <img src="images/logo.jpeg" alt="Forge logo" width="50%" />
15
+
16
+ **[Install](https://github.com/hoangsonww/Forge-Agentic-Coding-CLI/blob/master/docs/INSTALL.md) · [Dev setup](https://github.com/hoangsonww/Forge-Agentic-Coding-CLI/blob/master/docs/SETUP.md) · [Architecture](https://github.com/hoangsonww/Forge-Agentic-Coding-CLI/blob/master/docs/ARCHITECTURE.md) · [Releases & versioning](https://github.com/hoangsonww/Forge-Agentic-Coding-CLI/blob/master/RELEASES.md) · [Demo walkthrough](DEMO.md) · [Wiki Page](https://hoangsonww.github.io/Forge-Agentic-Coding-CLI/) · [NPM Package](https://www.npmjs.com/package/@hoangsonw/forge) · [License](LICENSE)**
15
17
 
16
18
  </div>
17
19
 
@@ -42,25 +44,25 @@ is inspectable, replayable, and yours.
42
44
 
43
45
  ## At a glance
44
46
 
45
- Forge is a local-first, multi-agent, programmable software-engineering runtime. Unlike Claude Code or OpenAI Codex, Forge is local-first infrastructure, not a hosted assistant. It brings its own scheduler, sandbox, permission system, state machine, agentic loop, memory layers, and plugin ecosystem. You pick & host the model. You approve the actions. Everything is inspectable, replayable, and yours.
47
+ Forge is a local-first, plan-first, multi-agent, and programmable software-engineering runtime. Unlike Claude Code or OpenAI Codex, Forge is local-first infrastructure, not a hosted assistant. It brings its own scheduler, sandbox, permission system, state machine, agentic loop, memory layers, and plugin ecosystem. You pick & host the model. You approve the actions. Everything is inspectable, replayable, and yours.
46
48
 
47
49
  <div align="center">
48
50
 
49
- | | value | reproducer |
50
- |---|---|---|
51
- | ⚡ **`forge doctor` cold-start** | **173 ms** | `time node bin/forge.js doctor --no-banner` |
52
- | ⚡ **`forge --help` cold-start** | **238 ms** | `time node bin/forge.js --help` |
53
- | 📦 **UI shell · zero CDN** | **89 KB** uncompressed | `wc -c src/ui/public/app.js` |
54
- | 🌐 **Provider probe timeout** | **1.5 s** | `src/models/openai.ts#isAvailable` |
55
- | 🔌 **Model providers** (auto-detected) | **6** | ollama · lmstudio · vllm · llama.cpp · openai-compat · anthropic |
56
- | 🧠 **Model families** classified | **41** | Llama / Qwen / DeepSeek / Gemma / Phi / Mistral / Codestral / … |
57
- | 🤖 **Built-in agents** | **6** | planner · architect · executor · reviewer · debugger · memory |
58
- | 🛠 **Tools** available to agents | **18** | read · write · edit · grep · glob · run_command · git · web · … |
59
- | 💬 **CLI subcommands · slash commands** | **24 · 55** | `forge --help` · `/help` in REPL |
60
- | 🎛 **Modes** | **9** | fast · balanced · heavy · plan · execute · audit · debug · architect · offline-safe |
61
- | ✅ **Tests** | **249 / 43 files** · 100% passing · ~3.3 s wall-clock | `npx vitest run` |
62
- | 🐳 **CI jobs · release stages** | **9 · 6** | [`.github/workflows/`](.github/workflows) |
63
- | 📦 **Container image** | ~355 MB · multi-arch · non-root · HEALTHCHECK | `docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest` |
51
+ | | value | reproducer |
52
+ |-----------------------------------------|-------------------------------------------------------|-------------------------------------------------------------------------------------|
53
+ | ⚡ **`forge doctor` cold-start** | **173 ms** | `time node bin/forge.js doctor --no-banner` |
54
+ | ⚡ **`forge --help` cold-start** | **238 ms** | `time node bin/forge.js --help` |
55
+ | 📦 **UI shell · zero CDN** | **90 KB** uncompressed | `wc -c src/ui/public/app.js` |
56
+ | 🌐 **Provider probe timeout** | **1.5 s** | `src/models/openai.ts#isAvailable` |
57
+ | 🔌 **Model providers** (auto-detected) | **6** | ollama · lmstudio · vllm · llama.cpp · openai-compat · anthropic |
58
+ | 🧠 **Model families** classified | **41** | Llama / Qwen / DeepSeek / Gemma / Phi / Mistral / Codestral / … |
59
+ | 🤖 **Built-in agents** | **6** | planner · architect · executor · reviewer · debugger · memory |
60
+ | 🛠 **Tools** available to agents | **18** | read · write · edit · grep · glob · run_command · git · web · … |
61
+ | 💬 **CLI subcommands · slash commands** | **24 · 55** | `forge --help` · `/help` in REPL |
62
+ | 🎛 **Modes** | **9** | fast · balanced · heavy · plan · execute · audit · debug · architect · offline-safe |
63
+ | ✅ **Tests** | **548 / 97 files** · 100% passing · ~5.5 s wall-clock | `npx vitest run` |
64
+ | 🐳 **CI jobs · release stages** | **9 · 6** | [`.github/workflows/`](.github/workflows) |
65
+ | 📦 **Container image** | ~355 MB · multi-arch · non-root · HEALTHCHECK | `docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest` |
64
66
 
65
67
  </div>
66
68
 
@@ -70,7 +72,7 @@ Forge is a local-first, multi-agent, programmable software-engineering runtime.
70
72
  ![Node.js](https://img.shields.io/badge/Node.js%2020+-339933?style=for-the-badge&logo=node.js&logoColor=white)
71
73
  ![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
72
74
  ![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white)
73
- ![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white)
75
+ ![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css&logoColor=white)
74
76
  ![Bash](https://img.shields.io/badge/Bash-4EAA25?style=for-the-badge&logo=gnubash&logoColor=white)
75
77
  ![YAML](https://img.shields.io/badge/YAML-CB171E?style=for-the-badge&logo=yaml&logoColor=white)
76
78
  ![JSON](https://img.shields.io/badge/JSON-000000?style=for-the-badge&logo=json&logoColor=white)
@@ -84,76 +86,74 @@ Forge is a local-first, multi-agent, programmable software-engineering runtime.
84
86
  ![ts-node](https://img.shields.io/badge/ts--node-3178C6?style=for-the-badge&logo=tsnode&logoColor=white)
85
87
  ![Commander](https://img.shields.io/badge/Commander.js-333?style=for-the-badge)
86
88
  ![Zod](https://img.shields.io/badge/Zod-3068B7?style=for-the-badge&logo=zod&logoColor=white)
87
- ![Chalk](https://img.shields.io/badge/Chalk-FF6B6B?style=for-the-badge)
88
- ![Ora](https://img.shields.io/badge/Ora-55ACEE?style=for-the-badge)
89
- ![Prompts](https://img.shields.io/badge/Prompts-9b59b6?style=for-the-badge)
90
- ![Undici](https://img.shields.io/badge/undici-1f6feb?style=for-the-badge)
91
- ![ws](https://img.shields.io/badge/ws-010101?style=for-the-badge&logo=socket.io&logoColor=white)
89
+ ![Chalk](https://img.shields.io/badge/Chalk-FF6B6B?style=for-the-badge&logo=chakraui&logoColor=white)
90
+ ![Ora](https://img.shields.io/badge/Ora-55ACEE?style=for-the-badge&logo=quora&logoColor=white)
91
+ ![Prompts](https://img.shields.io/badge/Prompts-9b59b6?style=for-the-badge&logo=probot&logoColor=white)
92
+ ![Undici](https://img.shields.io/badge/undici-1f6feb?style=for-the-badge&logo=unjs&logoColor=white)
92
93
  ![dotenv](https://img.shields.io/badge/dotenv-ECD53F?style=for-the-badge&logo=dotenv&logoColor=black)
93
- ![semver](https://img.shields.io/badge/semver-CB3837?style=for-the-badge)
94
+ ![semver](https://img.shields.io/badge/semver-CB3837?style=for-the-badge&logo=semver&logoColor=white)
94
95
  ![SQLite](https://img.shields.io/badge/SQLite-003B57?style=for-the-badge&logo=sqlite&logoColor=white)
95
- ![better-sqlite3](https://img.shields.io/badge/better--sqlite3-044a64?style=for-the-badge)
96
+ ![better-sqlite3](https://img.shields.io/badge/better--sqlite3-044a64?style=for-the-badge&logo=sqlite&logoColor=white)
96
97
  ![FTS5](https://img.shields.io/badge/SQLite%20FTS5-003B57?style=for-the-badge&logo=sqlite&logoColor=white)
97
- ![JSONL](https://img.shields.io/badge/JSONL-000?style=for-the-badge)
98
+ ![JSONL](https://img.shields.io/badge/JSONL-000?style=for-the-badge&logo=json&logoColor=white)
98
99
  ![WebSockets](https://img.shields.io/badge/WebSockets-010101?style=for-the-badge&logo=socket.io&logoColor=white)
99
- ![REST](https://img.shields.io/badge/REST-25A162?style=for-the-badge)
100
- ![HTTP](https://img.shields.io/badge/HTTP%2F2-005cc5?style=for-the-badge)
101
- ![POSIX](https://img.shields.io/badge/POSIX-3776AB?style=for-the-badge)
102
- ![XDG](https://img.shields.io/badge/XDG%20Base%20Dir-5E2BFF?style=for-the-badge)
103
- ![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-444?style=for-the-badge)
100
+ ![REST](https://img.shields.io/badge/REST-25A162?style=for-the-badge&logo=resend&logoColor=white)
101
+ ![HTTP](https://img.shields.io/badge/HTTP%2F2-005cc5?style=for-the-badge&logo=htop&logoColor=white)
102
+ ![POSIX](https://img.shields.io/badge/POSIX-3776AB?style=for-the-badge&logo=posit&logoColor=white)
103
+ ![XDG](https://img.shields.io/badge/XDG%20Base%20Dir-5E2BFF?style=for-the-badge&logo=archlinux&logoColor=white)
104
+ ![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-MCP-123?style=for-the-badge&logo=modelcontextprotocol&logoColor=white)
104
105
  ![OAuth2](https://img.shields.io/badge/OAuth%202.0%20%2B%20PKCE-0e8a16?style=for-the-badge&logo=auth0&logoColor=white)
105
106
  ![Ed25519](https://img.shields.io/badge/Ed25519-7C3AED?style=for-the-badge)
106
107
  ![SHA-256](https://img.shields.io/badge/SHA--256-444?style=for-the-badge)
107
108
  ![AES-GCM](https://img.shields.io/badge/AES--GCM-004E8C?style=for-the-badge)
108
- ![DPAPI](https://img.shields.io/badge/DPAPI-0078D4?style=for-the-badge&logo=windows&logoColor=white)
109
- ![libsecret](https://img.shields.io/badge/libsecret-4A90E2?style=for-the-badge)
109
+ ![DPAPI](https://img.shields.io/badge/DPAPI-0078D4?style=for-the-badge&logo=dpd&logoColor=white)
110
+ ![libsecret](https://img.shields.io/badge/libsecret-4A90E2?style=for-the-badge&logo=linux&logoColor=white)
110
111
  ![macOS Keychain](https://img.shields.io/badge/macOS%20Keychain-000?style=for-the-badge&logo=apple&logoColor=white)
111
112
  ![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
112
113
  ![Compose](https://img.shields.io/badge/Docker%20Compose-2496ED?style=for-the-badge&logo=docker&logoColor=white)
113
114
  ![Podman](https://img.shields.io/badge/Podman-892CA0?style=for-the-badge&logo=podman&logoColor=white)
114
115
  ![Buildx](https://img.shields.io/badge/Buildx-2496ED?style=for-the-badge&logo=docker&logoColor=white)
115
116
  ![QEMU](https://img.shields.io/badge/QEMU-FF6600?style=for-the-badge&logo=qemu&logoColor=white)
116
- ![tini](https://img.shields.io/badge/tini-444?style=for-the-badge)
117
- ![OCI](https://img.shields.io/badge/OCI%20Image-262261?style=for-the-badge)
118
- ![ripgrep](https://img.shields.io/badge/ripgrep-333?style=for-the-badge)
117
+ ![tini](https://img.shields.io/badge/tini-444?style=for-the-badge&logo=tina&logoColor=white)
118
+ ![OCI](https://img.shields.io/badge/OCI%20Image-262261?style=for-the-badge&logo=gnusocial&logoColor=white)
119
+ ![ripgrep](https://img.shields.io/badge/ripgrep-333?style=for-the-badge&logo=greptimedb&logoColor=white)
119
120
  ![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white)
120
121
  ![GHCR](https://img.shields.io/badge/GHCR-181717?style=for-the-badge&logo=github&logoColor=white)
121
122
  ![npm Provenance](https://img.shields.io/badge/npm%20Provenance-CB3837?style=for-the-badge&logo=npm&logoColor=white)
122
- ![Sigstore](https://img.shields.io/badge/Sigstore-2B3A67?style=for-the-badge)
123
+ ![Sigstore](https://img.shields.io/badge/Sigstore-2B3A67?style=for-the-badge&logo=simkl&logoColor=white)
123
124
  ![Dependabot](https://img.shields.io/badge/Dependabot-025E8C?style=for-the-badge&logo=dependabot&logoColor=white)
124
125
  ![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-FA6673?style=for-the-badge&logo=conventionalcommits&logoColor=white)
125
126
  ![SemVer](https://img.shields.io/badge/SemVer-3F4551?style=for-the-badge&logo=semver&logoColor=white)
126
127
  ![Ollama](https://img.shields.io/badge/Ollama-000000?style=for-the-badge&logo=ollama&logoColor=white)
127
- ![LM Studio](https://img.shields.io/badge/LM%20Studio-4A90E2?style=for-the-badge&logoColor=white)
128
- ![vLLM](https://img.shields.io/badge/vLLM-FA5C00?style=for-the-badge&logoColor=white)
129
- ![llama.cpp](https://img.shields.io/badge/llama.cpp-FFCE00?style=for-the-badge&logoColor=black)
128
+ ![LM Studio](https://img.shields.io/badge/LM%20Studio-4A90E2?style=for-the-badge&logo=notebooklm&logoColor=white)
129
+ ![vLLM](https://img.shields.io/badge/vLLM-FA5C00?style=for-the-badge&logo=vlcmediaplayer&logoColor=white)
130
+ ![llama.cpp](https://img.shields.io/badge/llama.cpp-FFCE00?style=for-the-badge&logo=lada&logoColor=black)
130
131
  ![Anthropic](https://img.shields.io/badge/Anthropic-D4A27F?style=for-the-badge&logo=anthropic&logoColor=black)
131
- ![OpenAI](https://img.shields.io/badge/OpenAI--compat-412991?style=for-the-badge&logo=openai&logoColor=white)
132
- ![Azure OpenAI](https://img.shields.io/badge/Azure%20OpenAI-0078D4?style=for-the-badge&logo=microsoftazure&logoColor=white)
133
- ![Groq](https://img.shields.io/badge/Groq-F55036?style=for-the-badge)
134
- ![Together AI](https://img.shields.io/badge/Together%20AI-0F6FFF?style=for-the-badge)
135
- ![LocalAI](https://img.shields.io/badge/LocalAI-2a9d8f?style=for-the-badge)
136
- ![Fireworks](https://img.shields.io/badge/Fireworks-6B2CE7?style=for-the-badge)
132
+ ![OpenAI](https://img.shields.io/badge/OpenAI--compat-412991?style=for-the-badge&logo=openaigym&logoColor=white)
133
+ ![Azure OpenAI](https://img.shields.io/badge/Azure%20OpenAI-0078D4?style=for-the-badge&logo=bazel&logoColor=white)
134
+ ![Groq](https://img.shields.io/badge/Groq-F55036?style=for-the-badge&logo=grocy&logoColor=white)
135
+ ![Together AI](https://img.shields.io/badge/Together%20AI-0F6FFF?style=for-the-badge&logo=tether&logoColor=white)
136
+ ![LocalAI](https://img.shields.io/badge/LocalAI-2a9d8f?style=for-the-badge&logo=local&logoColor=white)
137
+ ![Fireworks](https://img.shields.io/badge/Fireworks-6B2CE7?style=for-the-badge&logo=cloudflareworkers&logoColor=white)
137
138
  ![Llama](https://img.shields.io/badge/Llama-0467DF?style=for-the-badge&logo=meta&logoColor=white)
138
139
  ![Qwen](https://img.shields.io/badge/Qwen-615CED?style=for-the-badge&logo=alibabacloud&logoColor=white)
139
- ![DeepSeek](https://img.shields.io/badge/DeepSeek-1E40AF?style=for-the-badge)
140
+ ![DeepSeek](https://img.shields.io/badge/DeepSeek-1E40AF?style=for-the-badge&logo=deepl&logoColor=white)
140
141
  ![Gemma](https://img.shields.io/badge/Gemma-4285F4?style=for-the-badge&logo=google&logoColor=white)
141
- ![Phi](https://img.shields.io/badge/Phi-00A4EF?style=for-the-badge&logo=microsoft&logoColor=white)
142
+ ![Phi](https://img.shields.io/badge/Phi-00A4EF?style=for-the-badge&logo=delphi&logoColor=white)
142
143
  ![Mistral](https://img.shields.io/badge/Mistral-FF7000?style=for-the-badge&logo=mistralai&logoColor=white)
143
- ![Codestral](https://img.shields.io/badge/Codestral-FF7000?style=for-the-badge)
144
+ ![Codestral](https://img.shields.io/badge/Codestral-FF7000?style=for-the-badge&logo=astral&logoColor=white)
144
145
  ![CodeLlama](https://img.shields.io/badge/CodeLlama-0467DF?style=for-the-badge&logo=meta&logoColor=white)
145
146
  ![StarCoder](https://img.shields.io/badge/StarCoder-FFD21E?style=for-the-badge&logo=huggingface&logoColor=black)
146
- ![Granite](https://img.shields.io/badge/Granite-054ADA?style=for-the-badge&logo=ibm&logoColor=white)
147
+ ![Granite](https://img.shields.io/badge/Granite-054ADA?style=for-the-badge&logo=graphite&logoColor=white)
147
148
  ![Command R](https://img.shields.io/badge/Command%20R+-39594D?style=for-the-badge&logo=cohere&logoColor=white)
148
149
  ![macOS](https://img.shields.io/badge/macOS-000?style=for-the-badge&logo=apple&logoColor=white)
149
150
  ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
150
- ![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)
151
- ![WSL2](https://img.shields.io/badge/WSL2-0078D4?style=for-the-badge&logo=windows&logoColor=white)
152
- ![linux/amd64](https://img.shields.io/badge/linux%2Famd64-444?style=for-the-badge)
153
- ![linux/arm64](https://img.shields.io/badge/linux%2Farm64-444?style=for-the-badge)
151
+ ![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windsurf&logoColor=white)
152
+ ![linux/amd64](https://img.shields.io/badge/linux%2Famd64-444?style=for-the-badge&logo=linux&logoColor=white)
153
+ ![linux/arm64](https://img.shields.io/badge/linux%2Farm64-444?style=for-the-badge&logo=linux&logoColor=white)
154
154
  ![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=git&logoColor=white)
155
155
  ![GitHub](https://img.shields.io/badge/GitHub-181717?style=for-the-badge&logo=github&logoColor=white)
156
- ![VS Code](https://img.shields.io/badge/VS%20Code-007ACC?style=for-the-badge&logo=visualstudiocode&logoColor=white)
156
+ ![VS Code](https://img.shields.io/badge/VS%20Code-007ACC?style=for-the-badge&logo=task&logoColor=white)
157
157
  ![EditorConfig](https://img.shields.io/badge/EditorConfig-E0EFEF?style=for-the-badge&logo=editorconfig&logoColor=000)
158
158
 
159
159
  ---
@@ -237,9 +237,38 @@ docker compose -f docker/docker-compose.yml up -d
237
237
  # open http://127.0.0.1:7823
238
238
  ```
239
239
 
240
- **Requirements:** Node ≥ 20 *and/or* Docker ≥ 25. At least one LLM source
241
- (local runtime or API key). See [`docs/INSTALL.md`](docs/INSTALL.md) for
242
- per-OS notes.
240
+ ### System requirements
241
+
242
+ | | Minimum | Notes |
243
+ |---|---|---|
244
+ | **Node.js** | **≥ 20** (22 tested) | Enforced via `package.json#engines`. Not needed if you use Docker. |
245
+ | **OS** | macOS · Linux · Windows (WSL recommended) | `better-sqlite3` ships prebuilds for darwin-x64, darwin-arm64, linux-x64, linux-arm64, win32-x64 — no compile step. |
246
+ | **Disk** | ~150 MB for `node_modules`; state under `~/.forge` grows with history | Override via `FORGE_HOME`. |
247
+ | **RAM** | Forge ~100 MB; your local model consumes its own RAM/VRAM | `forge doctor` cold-starts in ~170 ms. |
248
+ | **Docker** (alt path) | ≥ 25 | Multi-arch (amd64, arm64) image on GHCR. Zero host Node needed. |
249
+ | **At least one model source** | Ollama · LM Studio · vLLM · llama.cpp · Anthropic · OpenAI-compatible | `forge doctor` tells you which are reachable. |
250
+
251
+ **Runtime npm dependencies** (13, zero optional): `@modelcontextprotocol/sdk`, `better-sqlite3` (native, prebuilt), `chalk`, `cli-table3`, `commander`, `dotenv`, `ora`, `prompts`, `semver`, `undici`, `ws`, `yaml`, `zod`. No Python, Rust, or Go toolchain.
252
+
253
+ **Recommended** (not required): `ripgrep` (fast `grep` tool path), `git` (diff/status tools + project-root detection), `$EDITOR` (used when you pick "Edit" on a plan).
254
+
255
+ See [`docs/INSTALL.md`](docs/INSTALL.md) for per-OS notes and [`docs/SETUP.md`](docs/SETUP.md) for contributor setup.
256
+
257
+ ### See it running
258
+
259
+ Three surfaces, one runtime.
260
+
261
+ **REPL (Interactive Terminal) Mode**
262
+
263
+ https://github.com/user-attachments/assets/eb592bbf-62a1-4d74-a540-7e066ebe56a4
264
+
265
+ **CLI (Headless, One-shot run) Mode**
266
+
267
+ https://github.com/user-attachments/assets/bc3b3204-fd87-436f-9467-604535edb4e2
268
+
269
+ **Web UI Dashboard**
270
+
271
+ https://github.com/user-attachments/assets/218cd64f-40fe-4836-9c62-c7a08538056b
243
272
 
244
273
  ---
245
274
 
@@ -498,6 +527,42 @@ warns once, never refuses to route.
498
527
  Unknown models are accepted too — Forge rates them as generic executors
499
528
  rather than refusing to route.
500
529
 
530
+ ### Model size & capability notes
531
+
532
+ The agentic loop is cheap for the runtime but expensive for the *model*.
533
+ Every step is a multi-turn tool-use conversation that returns strict JSON.
534
+ Small models struggle with this in recognisable ways — please pick the
535
+ right tool for the job.
536
+
537
+ | Work you want to do | Safe local floor | What fails below the floor |
538
+ |---|---|---|
539
+ | Pure chat ("explain closures") | any 3B instruct (phi-3:mini, gemma-3:2b) | fine — conversation fast-path bypasses tool use entirely |
540
+ | Summarize a file, explain a snippet | 7B instruct (qwen2.5:7b, llama3.1:8b) | summary is a line of "I read the file" instead of content |
541
+ | Single-file edits / small features | **7B+ code specialist** (deepseek-coder:6.7b, qwen2.5-coder:7b) | picks wrong tool (run_command to write files), splits "create empty + edit" patterns, escalates to ask_user on tool errors |
542
+ | Multi-file refactors, new features | 14B+ code specialist or a hosted frontier model | plan quality drops; step IDs get inconsistent; validation retries exhausted |
543
+ | Architecture-level changes | hosted (Claude Opus/Sonnet, GPT-4 class) realistically | budgets blow out; changes go off-plan |
544
+
545
+ Forge ships with defences so a small model fails *loudly* instead of
546
+ silently corrupting files: the executor prompt spells out step-type →
547
+ tool mappings, `ask_user` rejects empty/too-short questions as
548
+ non-retryable, `edit_file` handles "create empty then fill" gracefully,
549
+ parent directories auto-create, provider warm-up is explicit, and the
550
+ router streams prose without `jsonMode` for narrator/conversation
551
+ paths. The result is that a small model will often tell you it can't
552
+ finish a task; it will rarely write the wrong code into a file.
553
+
554
+ If in doubt: configure a code specialist for the `code` role, keep
555
+ something lighter for `fast`, and set `ANTHROPIC_API_KEY` or
556
+ `OPENAI_API_KEY` as a fallback — the router uses the hosted provider
557
+ automatically when the local one fails or trips its circuit breaker.
558
+
559
+ ```bash
560
+ forge config set models.code deepseek-coder:6.7b
561
+ forge config set models.planner qwen2.5:7b
562
+ forge config set models.fast phi3:mini
563
+ export ANTHROPIC_API_KEY=sk-… # optional fallback
564
+ ```
565
+
501
566
  ---
502
567
 
503
568
  ## Safety model (not optional)
@@ -569,6 +634,8 @@ Each mode is an **enforceable budget** — not a hint to the model. See
569
634
 
570
635
  ## CLI reference
571
636
 
637
+ > **▶ See each surface in action** in [DEMO.md](DEMO.md) — REPL walkthrough, `forge run` one-shots, and the web dashboard.
638
+
572
639
  24 subcommands. Full surface:
573
640
 
574
641
  ```
@@ -580,7 +647,7 @@ forge execute "<prompt>" # auto-approve + execute
580
647
  forge resume [taskId] # resume any prior task (any status)
581
648
  forge status # runtime state
582
649
  forge doctor # health check + role→model mapping
583
- forge task list|search # task history (SQLite-indexed)
650
+ forge task list|search|delete # task history (SQLite-indexed); delete prompts (or -y)
584
651
  forge session list|replay <id> # session JSONL inspection
585
652
  forge model list # probe all providers
586
653
  forge config get|set|path # configuration
@@ -594,7 +661,7 @@ forge cost # USD spend ledger
594
661
  forge ui start # local dashboard at :7823
595
662
  forge bundle {pack|unpack} # offline bundles
596
663
  forge container up|down # compose wrapper
597
- forge update [--check|--force] # self-update
664
+ forge update [--check|--force] # self-update (REPL also checks on start, cache-gated)
598
665
  forge migrate # DB migrations
599
666
  forge changelog # local changelog view
600
667
  forge dev # dev helpers
@@ -699,6 +766,8 @@ API key auth. Tokens stored in the OS keychain.
699
766
  Single hardened image (non-root, HEALTHCHECK, OCI labels, ~355 MB) that
700
767
  serves both CLI and UI.
701
768
 
769
+ > [▶ Dashboard demo](images/UI.mp4) — `forge ui start` driving a full task end-to-end (plan approval, streamed model output, follow-up thread). More in [DEMO.md](DEMO.md).
770
+
702
771
  ```bash
703
772
  # Pull (multi-arch: linux/amd64 + linux/arm64):
704
773
  docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
@@ -779,6 +848,9 @@ Workflows: [`.github/workflows/ci.yml`](.github/workflows/ci.yml),
779
848
  [`.github/workflows/release.yml`](.github/workflows/release.yml),
780
849
  [`.github/workflows/nightly.yml`](.github/workflows/nightly.yml).
781
850
 
851
+ Full versioning & release playbook (SemVer policy, channels, signing,
852
+ hotfix flow, rollback, built-in updater): **[`RELEASES.md`](RELEASES.md)**.
853
+
782
854
  ---
783
855
 
784
856
  ## Architecture map
@@ -858,10 +930,10 @@ xychart-beta
858
930
  ## Development
859
931
 
860
932
  ```bash
861
- git clone https://github.com/hoangsonw/Forge-Agentic-Coding-CLI && cd forge
933
+ git clone https://github.com/hoangsonww/Forge-Agentic-Coding-CLI && cd forge
862
934
  npm install
863
935
  npm run build # tsc + copy-assets
864
- npm test # 249 tests across 43 files; all must pass
936
+ npm test # 548 tests across 97 files; all must pass
865
937
  ./bin/forge.js doctor
866
938
  ```
867
939
 
package/bin/README.md ADDED
@@ -0,0 +1,118 @@
1
+ # `bin/`
2
+
3
+ The thin shim that becomes the `forge` command on `$PATH` when you
4
+ install the npm package.
5
+
6
+ ## What's here
7
+
8
+ ```
9
+ bin/
10
+ ├── README.md ← you are here
11
+ └── forge.js ← the only file that matters; ~30 lines
12
+ ```
13
+
14
+ `bin/forge.js` is a Node shebang script. It does one thing: locate the
15
+ compiled CLI (or fall back to `ts-node` for dev) and forward `argv`.
16
+
17
+ ## How `forge` becomes a command
18
+
19
+ `package.json` declares the binary:
20
+
21
+ ```jsonc
22
+ "bin": {
23
+ "forge": "bin/forge.js"
24
+ }
25
+ ```
26
+
27
+ When you `npm install -g @hoangsonw/forge`, npm:
28
+ 1. Reads the `bin` field.
29
+ 2. Creates a symlink named `forge` in your global `$PATH` (e.g.
30
+ `/usr/local/bin/forge` or `~/.npm-global/bin/forge`).
31
+ 3. Points it at the installed copy of `bin/forge.js`.
32
+
33
+ From then on, typing `forge` on the shell runs this shim, which loads
34
+ the compiled CLI from `dist/`.
35
+
36
+ ## Resolution path at runtime
37
+
38
+ ```mermaid
39
+ flowchart TD
40
+ classDef step fill:#1e1b4b,stroke:#a78bfa,color:#ede9fe,rx:4,ry:4
41
+ classDef ok fill:#14532d,stroke:#86efac,color:#dcfce7,rx:4,ry:4
42
+ classDef fail fill:#7f1d1d,stroke:#fca5a5,color:#fee2e2,rx:4,ry:4
43
+
44
+ START["forge <args>"]:::step
45
+ START --> Q{"exists ../dist/cli/index.js?"}:::step
46
+ Q -->|yes — installed| D["require('dist/cli/index.js')<br/>normal path"]:::ok
47
+ Q -->|no — dev checkout| T["try require('ts-node/register')<br/>+ require('src/cli/index.ts')"]:::step
48
+ T -->|ts-node present| TOK["runs via ts-node"]:::ok
49
+ T -->|not installed| ERR["print helpful error, exit 1<br/>→ 'run npm run build'"]:::fail
50
+ ```
51
+
52
+ Why both paths?
53
+
54
+ - **Installed (`dist/` exists)**: fast cold start (~170 ms for
55
+ `forge doctor`), no ts-node overhead, no TypeScript dependency.
56
+ - **Dev (`dist/` missing)**: lets contributors iterate on `src/*.ts`
57
+ without running `npm run build` between every change.
58
+
59
+ ## Invocation styles
60
+
61
+ Three ways to run Forge locally during dev:
62
+
63
+ | Command | When to use |
64
+ |---|---|
65
+ | `forge ...` | You installed globally (`npm i -g` or `npm link`). Normal user experience. |
66
+ | `./bin/forge.js ...` | From inside a repo checkout. No install needed; uses the shim directly. |
67
+ | `node bin/forge.js ...` | Same as above, explicit. Useful for shell aliases that need `node` flags (e.g., `--inspect`). |
68
+
69
+ All three resolve to the same entry point. Pick whatever is ergonomic.
70
+
71
+ ## Dev loop cheat sheet
72
+
73
+ ```bash
74
+ # Compile once, then use the installed binary.
75
+ npm run build && forge doctor
76
+
77
+ # Dev fallback — skip the build; ts-node compiles on the fly.
78
+ ./bin/forge.js doctor
79
+
80
+ # Debug with the Node inspector.
81
+ node --inspect-brk bin/forge.js run "hello"
82
+
83
+ # Re-link after a clean:
84
+ npm run relink # unlinks, builds, links
85
+ ```
86
+
87
+ ## Node version
88
+
89
+ The shim only requires a working `node` on `$PATH`. Forge itself needs
90
+ **Node 20+** (`engines.node` in `package.json`). If an older Node is
91
+ first on `$PATH`, the CLI exits early with a version check message —
92
+ not the shim's responsibility.
93
+
94
+ ## Platform notes
95
+
96
+ - **Unix (macOS / Linux)**: shebang works directly; the file has the
97
+ executable bit set (`chmod +x bin/forge.js`).
98
+ - **Windows**: npm creates a `.cmd` wrapper alongside the `forge`
99
+ symlink when installing globally. If you run
100
+ `node bin/forge.js ...` on Windows, it works identically; the shim
101
+ doesn't touch paths as strings.
102
+
103
+ ## Troubleshooting
104
+
105
+ | Symptom | Likely cause | Fix |
106
+ |---|---|---|
107
+ | `forge: command not found` | Global bin dir not on `$PATH`. | `npm bin -g` → add that dir to `$PATH`. |
108
+ | `Cannot find module '.../dist/cli/index.js'` | Fresh clone, no build yet. | `npm run build` or install `ts-node`. |
109
+ | `Compiled output not found and ts-node is unavailable.` | Dev fallback exhausted. | The shim's own error — run the build. |
110
+ | Changes to `src/*.ts` don't take effect | You're running the compiled `dist/`, which is stale. | `npm run build` (or use `./bin/forge.js` to force the ts-node path). |
111
+ | `forge` runs an old version after upgrade | Old symlink on `$PATH` ahead of the new one. | `which -a forge` → remove / replace the stale entry. |
112
+
113
+ ## Scope
114
+
115
+ **This directory is stable.** The shim contract — "find the CLI, forward
116
+ argv, fail helpfully" — hasn't changed and isn't expected to. If you're
117
+ looking for the actual CLI implementation, it lives in
118
+ [`src/cli/`](../src/cli/); the compiled output ends up in `dist/cli/`.
package/bin/forge.js CHANGED
@@ -5,6 +5,8 @@
5
5
  * This shim locates the compiled CLI and forwards argv.
6
6
  * In production (installed via npm), dist/ is shipped.
7
7
  * In development, we fall back to ts-node on src/cli/index.ts.
8
+ *
9
+ * @author Son Nguyen <hoangson091104@gmail.com>
8
10
  */
9
11
  'use strict';
10
12
 
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Architect agent — produces a system-level design document (not a plan).
3
+ * Use this explicitly via `--mode architect` when the task is "how should we
4
+ * structure X". No file edits; the output is prose/diagram text the user
5
+ * can decide to feed back in as an approved plan seed.
6
+ *
7
+ * @author Son Nguyen <hoangson091104@gmail.com>
8
+ */
1
9
  import { Agent } from './base';
2
10
  export interface ArchitectureOutput {
3
11
  goal: string;
@@ -1 +1 @@
1
- {"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AA+B5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACpF,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAWD,eAAO,MAAM,cAAc,EAAE,KAiC5B,CAAC"}
1
+ {"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AAwB5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACpF,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAWD,eAAO,MAAM,cAAc,EAAE,KAiC5B,CAAC"}
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ /**
3
+ * Architect agent — produces a system-level design document (not a plan).
4
+ * Use this explicitly via `--mode architect` when the task is "how should we
5
+ * structure X". No file edits; the output is prose/diagram text the user
6
+ * can decide to feed back in as an approved plan seed.
7
+ *
8
+ * @author Son Nguyen <hoangson091104@gmail.com>
9
+ */
2
10
  Object.defineProperty(exports, "__esModule", { value: true });
3
11
  exports.architectAgent = void 0;
4
12
  const router_1 = require("../models/router");
@@ -6,12 +14,6 @@ const assembler_1 = require("../prompts/assembler");
6
14
  const loader_1 = require("../config/loader");
7
15
  const retrieval_1 = require("../memory/retrieval");
8
16
  const logger_1 = require("../logging/logger");
9
- /**
10
- * Architect agent — produces a system-level design document (not a plan).
11
- * Use this explicitly via `--mode architect` when the task is "how should we
12
- * structure X". No file edits; the output is prose/diagram text the user
13
- * can decide to feed back in as an approved plan seed.
14
- */
15
17
  const architectSchema = `You are an Architect. You do NOT modify files — you only produce a design document.
16
18
 
17
19
  Output STRICT JSON:
@@ -1 +1 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":";;;AACA,6CAA6C;AAC7C,oDAA0D;AAC1D,6CAAmF;AACnF,mDAA+C;AAC/C,8CAAwC;AAExC;;;;;GAKG;AAEH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;EAetB,CAAC;AAYH,MAAM,KAAK,GAAG,CAAC,OAAe,EAA6B,EAAE;IAC3D,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAuB,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,cAAc,GAAU;IACnC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,wDAAwD;IACrE,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC;YACzB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;YACzD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;YACjC,kBAAkB,EAAE,IAAA,+BAAsB,GAAE;YAC5C,mBAAmB,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,WAAW,CAAC;YAC7D,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,kBAAkB,EAAE,GAAG,eAAe,iBAAiB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;SACvG,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC3E,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,6CAA6C;AAC7C,oDAA0D;AAC1D,6CAAmF;AACnF,mDAA+C;AAC/C,8CAAwC;AAExC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;EAetB,CAAC;AAYH,MAAM,KAAK,GAAG,CAAC,OAAe,EAA6B,EAAE;IAC3D,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAuB,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,cAAc,GAAU;IACnC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,wDAAwD;IACrE,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC;YACzB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;YACzD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;YACjC,kBAAkB,EAAE,IAAA,+BAAsB,GAAE;YAC5C,mBAAmB,EAAE,IAAA,gCAAuB,EAAC,GAAG,CAAC,WAAW,CAAC;YAC7D,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,kBAAkB,EAAE,GAAG,eAAe,iBAAiB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;SACvG,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC3E,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * This file defines the base interfaces for agents in the system. An agent is a component that can execute tasks based on a given context. The Agent interface specifies the structure that all agents must follow, including a name, description, and a run method that takes an execution context and returns a result.
3
+ *
4
+ * @author Son Nguyen <hoangson091104@gmail.com>
5
+ */
1
6
  import { Mode, Task } from '../types';
2
7
  import { AssembledPrompt } from '../types';
3
8
  export interface AgentExecutionContext {
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,GAAG,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,GAAG,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
@@ -1,3 +1,8 @@
1
1
  "use strict";
2
+ /**
3
+ * This file defines the base interfaces for agents in the system. An agent is a component that can execute tasks based on a given context. The Agent interface specifies the structure that all agents must follow, including a name, description, and a run method that takes an execution context and returns a result.
4
+ *
5
+ * @author Son Nguyen <hoangson091104@gmail.com>
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Debugger agent — performs root-cause analysis on failures. Use this when you have a failure message and want to understand why it happened and how to fix it. The output includes the most likely root cause, a list of hypotheses, a suggested fix, and a confidence level.
3
+ *
4
+ * @author Son Nguyen <hoangson091104@gmail.com>
5
+ */
1
6
  import { Agent } from './base';
2
7
  export interface DebugDiagnosis {
3
8
  rootCause: string;
@@ -1 +1 @@
1
- {"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../src/agents/debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AAM5C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,MAAM,OAAO,UAAU,EAAE,IAAI,KAC5B,OAAO,CAAC,cAAc,CAuDxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC"}
1
+ {"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../src/agents/debugger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AAM5C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,MAAM,OAAO,UAAU,EAAE,IAAI,KAC5B,OAAO,CAAC,cAAc,CAuDxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * Debugger agent — performs root-cause analysis on failures. Use this when you have a failure message and want to understand why it happened and how to fix it. The output includes the most likely root cause, a list of hypotheses, a suggested fix, and a confidence level.
4
+ *
5
+ * @author Son Nguyen <hoangson091104@gmail.com>
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.debuggerAgent = exports.diagnose = void 0;
4
9
  const router_1 = require("../models/router");
@@ -1 +1 @@
1
- {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/agents/debugger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/agents/debugger.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Executor agent — executes a single plan step via iterative tool use. This is the core of the system's ability to carry out complex, multi-step plans that require reasoning and adaptation. The agent receives a step description and a catalog of tools, and can call tools in a loop until it determines the step is complete. The output includes a summary of what was done, the results of each tool call, and any files changed.
3
+ *
4
+ * @author Son Nguyen <hoangson091104@gmail.com>
5
+ */
1
6
  import { Agent } from './base';
2
7
  import { PlanStep, ToolResult } from '../types';
3
8
  import { PermissionFlags } from '../permissions/manager';
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agents/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAgB,QAAQ,EAAe,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3E,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;CACpB;AA8FD,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,UAAU,EAAE,IAAI,CAAC;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/F;AAED,eAAO,MAAM,OAAO,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,kBAAkB,CA2R/E,CAAC;AAmDF,eAAO,MAAM,2BAA2B,YAza7B,MAAM,KACd;IACD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CAqa2C,CAAC;AAC5D,eAAO,MAAM,wBAAwB,UA5YJ;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAwY8B,CAAC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/agents/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAgB,QAAQ,EAAe,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3E,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;CACpB;AA0GD,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,UAAU,EAAE,IAAI,CAAC;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/F;AAED,eAAO,MAAM,OAAO,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,kBAAkB,CA2R/E,CAAC;AAmDF,eAAO,MAAM,2BAA2B,YAza7B,MAAM,KACd;IACD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CAqa2C,CAAC;AAC5D,eAAO,MAAM,wBAAwB,UA5YJ;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAwY8B,CAAC"}