agentrix 0.0.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 (402) hide show
  1. package/README.md +235 -0
  2. package/bin/agentrix.js +5 -0
  3. package/dist/api/auth.d.ts +10 -0
  4. package/dist/api/auth.d.ts.map +1 -0
  5. package/dist/api/auth.js +30 -0
  6. package/dist/api/auth.js.map +1 -0
  7. package/dist/api/automation.d.ts +52 -0
  8. package/dist/api/automation.d.ts.map +1 -0
  9. package/dist/api/automation.js +181 -0
  10. package/dist/api/automation.js.map +1 -0
  11. package/dist/api/base-handler.d.ts +62 -0
  12. package/dist/api/base-handler.d.ts.map +1 -0
  13. package/dist/api/base-handler.js +55 -0
  14. package/dist/api/base-handler.js.map +1 -0
  15. package/dist/api/config.d.ts +5 -0
  16. package/dist/api/config.d.ts.map +1 -0
  17. package/dist/api/config.js +14 -0
  18. package/dist/api/config.js.map +1 -0
  19. package/dist/api/create-plan.d.ts +8 -0
  20. package/dist/api/create-plan.d.ts.map +1 -0
  21. package/dist/api/create-plan.js +77 -0
  22. package/dist/api/create-plan.js.map +1 -0
  23. package/dist/api/git-status.d.ts +6 -0
  24. package/dist/api/git-status.d.ts.map +1 -0
  25. package/dist/api/git-status.js +57 -0
  26. package/dist/api/git-status.js.map +1 -0
  27. package/dist/api/plans.d.ts +6 -0
  28. package/dist/api/plans.d.ts.map +1 -0
  29. package/dist/api/plans.js +75 -0
  30. package/dist/api/plans.js.map +1 -0
  31. package/dist/api/repo-dashboard.d.ts +13 -0
  32. package/dist/api/repo-dashboard.d.ts.map +1 -0
  33. package/dist/api/repo-dashboard.js +47 -0
  34. package/dist/api/repo-dashboard.js.map +1 -0
  35. package/dist/api/repo-issue.d.ts +12 -0
  36. package/dist/api/repo-issue.d.ts.map +1 -0
  37. package/dist/api/repo-issue.js +47 -0
  38. package/dist/api/repo-issue.js.map +1 -0
  39. package/dist/api/repos.d.ts +9 -0
  40. package/dist/api/repos.d.ts.map +1 -0
  41. package/dist/api/repos.js +46 -0
  42. package/dist/api/repos.js.map +1 -0
  43. package/dist/api/sessions.d.ts +5 -0
  44. package/dist/api/sessions.d.ts.map +1 -0
  45. package/dist/api/sessions.js +19 -0
  46. package/dist/api/sessions.js.map +1 -0
  47. package/dist/api/tasks.d.ts +6 -0
  48. package/dist/api/tasks.d.ts.map +1 -0
  49. package/dist/api/tasks.js +22 -0
  50. package/dist/api/tasks.js.map +1 -0
  51. package/dist/api/terminal.d.ts +7 -0
  52. package/dist/api/terminal.d.ts.map +1 -0
  53. package/dist/api/terminal.js +16 -0
  54. package/dist/api/terminal.js.map +1 -0
  55. package/dist/api/worktrees.d.ts +7 -0
  56. package/dist/api/worktrees.d.ts.map +1 -0
  57. package/dist/api/worktrees.js +26 -0
  58. package/dist/api/worktrees.js.map +1 -0
  59. package/dist/cli/arg-parser.d.ts +3 -0
  60. package/dist/cli/arg-parser.d.ts.map +1 -0
  61. package/dist/cli/arg-parser.js +243 -0
  62. package/dist/cli/arg-parser.js.map +1 -0
  63. package/dist/cli/config-resolver.d.ts +29 -0
  64. package/dist/cli/config-resolver.d.ts.map +1 -0
  65. package/dist/cli/config-resolver.js +139 -0
  66. package/dist/cli/config-resolver.js.map +1 -0
  67. package/dist/cli/config.d.ts +5 -0
  68. package/dist/cli/config.d.ts.map +1 -0
  69. package/dist/cli/config.js +224 -0
  70. package/dist/cli/config.js.map +1 -0
  71. package/dist/cli/constants.d.ts +7 -0
  72. package/dist/cli/constants.d.ts.map +1 -0
  73. package/dist/cli/constants.js +15 -0
  74. package/dist/cli/constants.js.map +1 -0
  75. package/dist/cli/help.d.ts +3 -0
  76. package/dist/cli/help.d.ts.map +1 -0
  77. package/dist/cli/help.js +35 -0
  78. package/dist/cli/help.js.map +1 -0
  79. package/dist/cli/index.d.ts +23 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +23 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/plans-command.d.ts +3 -0
  84. package/dist/cli/plans-command.d.ts.map +1 -0
  85. package/dist/cli/plans-command.js +151 -0
  86. package/dist/cli/plans-command.js.map +1 -0
  87. package/dist/cli/server-starter.d.ts +26 -0
  88. package/dist/cli/server-starter.d.ts.map +1 -0
  89. package/dist/cli/server-starter.js +72 -0
  90. package/dist/cli/server-starter.js.map +1 -0
  91. package/dist/cli/types.d.ts +46 -0
  92. package/dist/cli/types.d.ts.map +1 -0
  93. package/dist/cli/types.js +2 -0
  94. package/dist/cli/types.js.map +1 -0
  95. package/dist/cli/validation.d.ts +14 -0
  96. package/dist/cli/validation.d.ts.map +1 -0
  97. package/dist/cli/validation.js +99 -0
  98. package/dist/cli/validation.js.map +1 -0
  99. package/dist/cli.d.ts +5 -0
  100. package/dist/cli.d.ts.map +1 -0
  101. package/dist/cli.js +73 -0
  102. package/dist/cli.js.map +1 -0
  103. package/dist/config/agent-commands.d.ts +27 -0
  104. package/dist/config/agent-commands.d.ts.map +1 -0
  105. package/dist/config/agent-commands.js +56 -0
  106. package/dist/config/agent-commands.js.map +1 -0
  107. package/dist/config/constants.d.ts +35 -0
  108. package/dist/config/constants.d.ts.map +1 -0
  109. package/dist/config/constants.js +35 -0
  110. package/dist/config/constants.js.map +1 -0
  111. package/dist/config/developer-messages.d.ts +2 -0
  112. package/dist/config/developer-messages.d.ts.map +1 -0
  113. package/dist/config/developer-messages.js +43 -0
  114. package/dist/config/developer-messages.js.map +1 -0
  115. package/dist/core/agents.d.ts +23 -0
  116. package/dist/core/agents.d.ts.map +1 -0
  117. package/dist/core/agents.js +91 -0
  118. package/dist/core/agents.js.map +1 -0
  119. package/dist/core/auth.d.ts +3 -0
  120. package/dist/core/auth.d.ts.map +1 -0
  121. package/dist/core/auth.js +69 -0
  122. package/dist/core/auth.js.map +1 -0
  123. package/dist/core/automation/branch.d.ts +18 -0
  124. package/dist/core/automation/branch.d.ts.map +1 -0
  125. package/dist/core/automation/branch.js +29 -0
  126. package/dist/core/automation/branch.js.map +1 -0
  127. package/dist/core/automation/git-orchestration.d.ts +51 -0
  128. package/dist/core/automation/git-orchestration.d.ts.map +1 -0
  129. package/dist/core/automation/git-orchestration.js +25 -0
  130. package/dist/core/automation/git-orchestration.js.map +1 -0
  131. package/dist/core/automation/plan.d.ts +15 -0
  132. package/dist/core/automation/plan.d.ts.map +1 -0
  133. package/dist/core/automation/plan.js +25 -0
  134. package/dist/core/automation/plan.js.map +1 -0
  135. package/dist/core/automation/request-validation.d.ts +45 -0
  136. package/dist/core/automation/request-validation.d.ts.map +1 -0
  137. package/dist/core/automation/request-validation.js +144 -0
  138. package/dist/core/automation/request-validation.js.map +1 -0
  139. package/dist/core/automation/task-runner.d.ts +42 -0
  140. package/dist/core/automation/task-runner.d.ts.map +1 -0
  141. package/dist/core/automation/task-runner.js +215 -0
  142. package/dist/core/automation/task-runner.js.map +1 -0
  143. package/dist/core/branch-name.d.ts +13 -0
  144. package/dist/core/branch-name.d.ts.map +1 -0
  145. package/dist/core/branch-name.js +429 -0
  146. package/dist/core/branch-name.js.map +1 -0
  147. package/dist/core/default-branch.d.ts +12 -0
  148. package/dist/core/default-branch.d.ts.map +1 -0
  149. package/dist/core/default-branch.js +78 -0
  150. package/dist/core/default-branch.js.map +1 -0
  151. package/dist/core/event-bus.d.ts +73 -0
  152. package/dist/core/event-bus.d.ts.map +1 -0
  153. package/dist/core/event-bus.js +127 -0
  154. package/dist/core/event-bus.js.map +1 -0
  155. package/dist/core/git.d.ts +13 -0
  156. package/dist/core/git.d.ts.map +1 -0
  157. package/dist/core/git.js +15 -0
  158. package/dist/core/git.js.map +1 -0
  159. package/dist/core/github.d.ts +10 -0
  160. package/dist/core/github.d.ts.map +1 -0
  161. package/dist/core/github.js +245 -0
  162. package/dist/core/github.js.map +1 -0
  163. package/dist/core/plan-storage.d.ts +46 -0
  164. package/dist/core/plan-storage.d.ts.map +1 -0
  165. package/dist/core/plan-storage.js +237 -0
  166. package/dist/core/plan-storage.js.map +1 -0
  167. package/dist/core/plan.d.ts +23 -0
  168. package/dist/core/plan.d.ts.map +1 -0
  169. package/dist/core/plan.js +445 -0
  170. package/dist/core/plan.js.map +1 -0
  171. package/dist/core/repositories.d.ts +2 -0
  172. package/dist/core/repositories.d.ts.map +1 -0
  173. package/dist/core/repositories.js +58 -0
  174. package/dist/core/repositories.js.map +1 -0
  175. package/dist/core/repository-config.d.ts +9 -0
  176. package/dist/core/repository-config.d.ts.map +1 -0
  177. package/dist/core/repository-config.js +65 -0
  178. package/dist/core/repository-config.js.map +1 -0
  179. package/dist/core/task-store.d.ts +14 -0
  180. package/dist/core/task-store.d.ts.map +1 -0
  181. package/dist/core/task-store.js +105 -0
  182. package/dist/core/task-store.js.map +1 -0
  183. package/dist/core/tasks.d.ts +62 -0
  184. package/dist/core/tasks.d.ts.map +1 -0
  185. package/dist/core/tasks.js +582 -0
  186. package/dist/core/tasks.js.map +1 -0
  187. package/dist/core/terminal-sessions.d.ts +18 -0
  188. package/dist/core/terminal-sessions.d.ts.map +1 -0
  189. package/dist/core/terminal-sessions.js +539 -0
  190. package/dist/core/terminal-sessions.js.map +1 -0
  191. package/dist/core/tmux.d.ts +29 -0
  192. package/dist/core/tmux.d.ts.map +1 -0
  193. package/dist/core/tmux.js +151 -0
  194. package/dist/core/tmux.js.map +1 -0
  195. package/dist/core/workdir.d.ts +8 -0
  196. package/dist/core/workdir.d.ts.map +1 -0
  197. package/dist/core/workdir.js +26 -0
  198. package/dist/core/workdir.js.map +1 -0
  199. package/dist/domain/branch-validator.d.ts +51 -0
  200. package/dist/domain/branch-validator.d.ts.map +1 -0
  201. package/dist/domain/branch-validator.js +88 -0
  202. package/dist/domain/branch-validator.js.map +1 -0
  203. package/dist/domain/git-url-parser.d.ts +27 -0
  204. package/dist/domain/git-url-parser.d.ts.map +1 -0
  205. package/dist/domain/git-url-parser.js +84 -0
  206. package/dist/domain/git-url-parser.js.map +1 -0
  207. package/dist/domain/index.d.ts +8 -0
  208. package/dist/domain/index.d.ts.map +1 -0
  209. package/dist/domain/index.js +5 -0
  210. package/dist/domain/index.js.map +1 -0
  211. package/dist/domain/repository.d.ts +55 -0
  212. package/dist/domain/repository.d.ts.map +1 -0
  213. package/dist/domain/repository.js +73 -0
  214. package/dist/domain/repository.js.map +1 -0
  215. package/dist/domain/worktree.d.ts +43 -0
  216. package/dist/domain/worktree.d.ts.map +1 -0
  217. package/dist/domain/worktree.js +57 -0
  218. package/dist/domain/worktree.js.map +1 -0
  219. package/dist/infrastructure/cookies/cookie-manager.d.ts +18 -0
  220. package/dist/infrastructure/cookies/cookie-manager.d.ts.map +1 -0
  221. package/dist/infrastructure/cookies/cookie-manager.js +20 -0
  222. package/dist/infrastructure/cookies/cookie-manager.js.map +1 -0
  223. package/dist/infrastructure/cookies/cookie-parser.d.ts +43 -0
  224. package/dist/infrastructure/cookies/cookie-parser.d.ts.map +1 -0
  225. package/dist/infrastructure/cookies/cookie-parser.js +88 -0
  226. package/dist/infrastructure/cookies/cookie-parser.js.map +1 -0
  227. package/dist/infrastructure/cookies/cookie-security.d.ts +15 -0
  228. package/dist/infrastructure/cookies/cookie-security.d.ts.map +1 -0
  229. package/dist/infrastructure/cookies/cookie-security.js +35 -0
  230. package/dist/infrastructure/cookies/cookie-security.js.map +1 -0
  231. package/dist/infrastructure/cookies/index.d.ts +7 -0
  232. package/dist/infrastructure/cookies/index.d.ts.map +1 -0
  233. package/dist/infrastructure/cookies/index.js +4 -0
  234. package/dist/infrastructure/cookies/index.js.map +1 -0
  235. package/dist/infrastructure/errors/error-handler.d.ts +22 -0
  236. package/dist/infrastructure/errors/error-handler.d.ts.map +1 -0
  237. package/dist/infrastructure/errors/error-handler.js +89 -0
  238. package/dist/infrastructure/errors/error-handler.js.map +1 -0
  239. package/dist/infrastructure/errors/http-error.d.ts +30 -0
  240. package/dist/infrastructure/errors/http-error.d.ts.map +1 -0
  241. package/dist/infrastructure/errors/http-error.js +46 -0
  242. package/dist/infrastructure/errors/http-error.js.map +1 -0
  243. package/dist/infrastructure/errors/index.d.ts +5 -0
  244. package/dist/infrastructure/errors/index.d.ts.map +1 -0
  245. package/dist/infrastructure/errors/index.js +5 -0
  246. package/dist/infrastructure/errors/index.js.map +1 -0
  247. package/dist/infrastructure/errors/not-found-error.d.ts +8 -0
  248. package/dist/infrastructure/errors/not-found-error.d.ts.map +1 -0
  249. package/dist/infrastructure/errors/not-found-error.js +13 -0
  250. package/dist/infrastructure/errors/not-found-error.js.map +1 -0
  251. package/dist/infrastructure/errors/validation-error.d.ts +21 -0
  252. package/dist/infrastructure/errors/validation-error.d.ts.map +1 -0
  253. package/dist/infrastructure/errors/validation-error.js +31 -0
  254. package/dist/infrastructure/errors/validation-error.js.map +1 -0
  255. package/dist/infrastructure/logging/index.d.ts +3 -0
  256. package/dist/infrastructure/logging/index.d.ts.map +1 -0
  257. package/dist/infrastructure/logging/index.js +2 -0
  258. package/dist/infrastructure/logging/index.js.map +1 -0
  259. package/dist/infrastructure/logging/logger.d.ts +21 -0
  260. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  261. package/dist/infrastructure/logging/logger.js +49 -0
  262. package/dist/infrastructure/logging/logger.js.map +1 -0
  263. package/dist/repositories/git-repository.d.ts +67 -0
  264. package/dist/repositories/git-repository.d.ts.map +1 -0
  265. package/dist/repositories/git-repository.js +111 -0
  266. package/dist/repositories/git-repository.js.map +1 -0
  267. package/dist/repositories/git-status-repository.d.ts +22 -0
  268. package/dist/repositories/git-status-repository.d.ts.map +1 -0
  269. package/dist/repositories/git-status-repository.js +620 -0
  270. package/dist/repositories/git-status-repository.js.map +1 -0
  271. package/dist/repositories/repository-repository.d.ts +44 -0
  272. package/dist/repositories/repository-repository.d.ts.map +1 -0
  273. package/dist/repositories/repository-repository.js +155 -0
  274. package/dist/repositories/repository-repository.js.map +1 -0
  275. package/dist/repositories/worktree-repository.d.ts +66 -0
  276. package/dist/repositories/worktree-repository.d.ts.map +1 -0
  277. package/dist/repositories/worktree-repository.js +330 -0
  278. package/dist/repositories/worktree-repository.js.map +1 -0
  279. package/dist/server/cookies.d.ts +6 -0
  280. package/dist/server/cookies.d.ts.map +1 -0
  281. package/dist/server/cookies.js +6 -0
  282. package/dist/server/cookies.js.map +1 -0
  283. package/dist/server/events.d.ts +8 -0
  284. package/dist/server/events.d.ts.map +1 -0
  285. package/dist/server/events.js +128 -0
  286. package/dist/server/events.js.map +1 -0
  287. package/dist/server/index.d.ts +18 -0
  288. package/dist/server/index.d.ts.map +1 -0
  289. package/dist/server/index.js +173 -0
  290. package/dist/server/index.js.map +1 -0
  291. package/dist/server/router.d.ts +16 -0
  292. package/dist/server/router.d.ts.map +1 -0
  293. package/dist/server/router.js +256 -0
  294. package/dist/server/router.js.map +1 -0
  295. package/dist/server/ui.d.ts +8 -0
  296. package/dist/server/ui.d.ts.map +1 -0
  297. package/dist/server/ui.js +211 -0
  298. package/dist/server/ui.js.map +1 -0
  299. package/dist/server/websocket.d.ts +9 -0
  300. package/dist/server/websocket.d.ts.map +1 -0
  301. package/dist/server/websocket.js +116 -0
  302. package/dist/server/websocket.js.map +1 -0
  303. package/dist/services/auth-service.d.ts +49 -0
  304. package/dist/services/auth-service.d.ts.map +1 -0
  305. package/dist/services/auth-service.js +53 -0
  306. package/dist/services/auth-service.js.map +1 -0
  307. package/dist/services/index.d.ts +11 -0
  308. package/dist/services/index.d.ts.map +1 -0
  309. package/dist/services/index.js +6 -0
  310. package/dist/services/index.js.map +1 -0
  311. package/dist/services/repository-service.d.ts +57 -0
  312. package/dist/services/repository-service.d.ts.map +1 -0
  313. package/dist/services/repository-service.js +62 -0
  314. package/dist/services/repository-service.js.map +1 -0
  315. package/dist/services/session-service.d.ts +31 -0
  316. package/dist/services/session-service.d.ts.map +1 -0
  317. package/dist/services/session-service.js +134 -0
  318. package/dist/services/session-service.js.map +1 -0
  319. package/dist/services/terminal-service.d.ts +43 -0
  320. package/dist/services/terminal-service.d.ts.map +1 -0
  321. package/dist/services/terminal-service.js +85 -0
  322. package/dist/services/terminal-service.js.map +1 -0
  323. package/dist/services/worktree-service.d.ts +39 -0
  324. package/dist/services/worktree-service.d.ts.map +1 -0
  325. package/dist/services/worktree-service.js +208 -0
  326. package/dist/services/worktree-service.js.map +1 -0
  327. package/dist/types/auth.d.ts +35 -0
  328. package/dist/types/auth.d.ts.map +1 -0
  329. package/dist/types/auth.js +2 -0
  330. package/dist/types/auth.js.map +1 -0
  331. package/dist/types/config.d.ts +46 -0
  332. package/dist/types/config.d.ts.map +1 -0
  333. package/dist/types/config.js +5 -0
  334. package/dist/types/config.js.map +1 -0
  335. package/dist/types/git.d.ts +190 -0
  336. package/dist/types/git.d.ts.map +1 -0
  337. package/dist/types/git.js +5 -0
  338. package/dist/types/git.js.map +1 -0
  339. package/dist/types/http.d.ts +46 -0
  340. package/dist/types/http.d.ts.map +1 -0
  341. package/dist/types/http.js +2 -0
  342. package/dist/types/http.js.map +1 -0
  343. package/dist/types/index.d.ts +8 -0
  344. package/dist/types/index.d.ts.map +1 -0
  345. package/dist/types/index.js +2 -0
  346. package/dist/types/index.js.map +1 -0
  347. package/dist/types/plan.d.ts +31 -0
  348. package/dist/types/plan.d.ts.map +1 -0
  349. package/dist/types/plan.js +5 -0
  350. package/dist/types/plan.js.map +1 -0
  351. package/dist/types/services.d.ts +99 -0
  352. package/dist/types/services.d.ts.map +1 -0
  353. package/dist/types/services.js +2 -0
  354. package/dist/types/services.js.map +1 -0
  355. package/dist/types/tasks.d.ts +68 -0
  356. package/dist/types/tasks.d.ts.map +1 -0
  357. package/dist/types/tasks.js +5 -0
  358. package/dist/types/tasks.js.map +1 -0
  359. package/dist/types/terminal.d.ts +60 -0
  360. package/dist/types/terminal.d.ts.map +1 -0
  361. package/dist/types/terminal.js +2 -0
  362. package/dist/types/terminal.js.map +1 -0
  363. package/dist/utils/cookies.d.ts +7 -0
  364. package/dist/utils/cookies.d.ts.map +1 -0
  365. package/dist/utils/cookies.js +6 -0
  366. package/dist/utils/cookies.js.map +1 -0
  367. package/dist/utils/http.d.ts +23 -0
  368. package/dist/utils/http.d.ts.map +1 -0
  369. package/dist/utils/http.js +58 -0
  370. package/dist/utils/http.js.map +1 -0
  371. package/dist/utils/random.d.ts +12 -0
  372. package/dist/utils/random.d.ts.map +1 -0
  373. package/dist/utils/random.js +25 -0
  374. package/dist/utils/random.js.map +1 -0
  375. package/dist/utils/repository-cache.d.ts +8 -0
  376. package/dist/utils/repository-cache.d.ts.map +1 -0
  377. package/dist/utils/repository-cache.js +13 -0
  378. package/dist/utils/repository-cache.js.map +1 -0
  379. package/dist/validation/index.d.ts +9 -0
  380. package/dist/validation/index.d.ts.map +1 -0
  381. package/dist/validation/index.js +6 -0
  382. package/dist/validation/index.js.map +1 -0
  383. package/dist/validation/request-validator.d.ts +99 -0
  384. package/dist/validation/request-validator.d.ts.map +1 -0
  385. package/dist/validation/request-validator.js +189 -0
  386. package/dist/validation/request-validator.js.map +1 -0
  387. package/dist/validation/schemas/repository-schema.d.ts +26 -0
  388. package/dist/validation/schemas/repository-schema.d.ts.map +1 -0
  389. package/dist/validation/schemas/repository-schema.js +31 -0
  390. package/dist/validation/schemas/repository-schema.js.map +1 -0
  391. package/dist/validation/schemas/terminal-schema.d.ts +21 -0
  392. package/dist/validation/schemas/terminal-schema.d.ts.map +1 -0
  393. package/dist/validation/schemas/terminal-schema.js +38 -0
  394. package/dist/validation/schemas/terminal-schema.js.map +1 -0
  395. package/dist/validation/schemas/worktree-schema.d.ts +21 -0
  396. package/dist/validation/schemas/worktree-schema.d.ts.map +1 -0
  397. package/dist/validation/schemas/worktree-schema.js +29 -0
  398. package/dist/validation/schemas/worktree-schema.js.map +1 -0
  399. package/package.json +79 -0
  400. package/ui/dist/assets/index-BDDrbP3l.js +354 -0
  401. package/ui/dist/assets/index-CwB7gOl4.css +41 -0
  402. package/ui/dist/index.html +13 -0
@@ -0,0 +1,72 @@
1
+ import { startServer, generateRandomPassword } from '../server/index.js';
2
+ export async function startAppServer(config) {
3
+ const chosenPassword = config.password || generateRandomPassword();
4
+ const passwordWasProvided = config.password !== null;
5
+ const shouldPrintPassword = config.showPassword || !passwordWasProvided;
6
+ const commandOverrides = {
7
+ codex: config.codexCommand,
8
+ claude: config.claudeCommand,
9
+ cursor: config.cursorCommand ?? config.ideCommand,
10
+ ide: config.ideCommand,
11
+ vscode: config.vscodeCommand,
12
+ };
13
+ const ngrokOptions = config.ngrokApiKey && config.ngrokDomain
14
+ ? { apiKey: config.ngrokApiKey, domain: config.ngrokDomain }
15
+ : undefined;
16
+ const hasDefaultBranchConfig = Boolean(config.defaultBranch) || Boolean(config.defaultBranches);
17
+ const defaultBranchConfig = hasDefaultBranchConfig
18
+ ? {
19
+ global: config.defaultBranch ?? undefined,
20
+ overrides: config.defaultBranches || undefined,
21
+ }
22
+ : undefined;
23
+ const { server: _server, host, port, uiPath: resolvedUi, close, password: serverPassword, publicUrl, } = await startServer({
24
+ uiPath: config.uiPath,
25
+ port: config.port,
26
+ host: config.host,
27
+ workdir: config.workdir,
28
+ password: chosenPassword,
29
+ commandOverrides: commandOverrides,
30
+ ngrok: ngrokOptions,
31
+ automationApiKey: (config.automationApiKey ?? undefined),
32
+ openaiApiKey: (config.openaiApiKey ?? undefined),
33
+ branchNameLlm: (config.branchNameLlm ?? undefined),
34
+ planLlm: (config.planLlm ?? undefined),
35
+ defaultBranches: defaultBranchConfig,
36
+ cookieSecure: (config.cookieSecure ?? undefined),
37
+ terminalSessionMode: (config.terminalSessionMode ?? undefined),
38
+ });
39
+ const localAddress = host === '0.0.0.0' ? 'localhost' : host;
40
+ process.stdout.write(`Serving UI from ${resolvedUi}\n`);
41
+ process.stdout.write(`Working directory set to ${config.workdir}\n`);
42
+ process.stdout.write(`Listening on http://${localAddress}:${port}\n`);
43
+ const effectivePassword = serverPassword || chosenPassword;
44
+ if (shouldPrintPassword) {
45
+ process.stdout.write(`Password: ${effectivePassword}\n`);
46
+ }
47
+ else {
48
+ process.stdout.write('Password logging suppressed (operator-provided password). Use --show-password to print.\n');
49
+ }
50
+ if (publicUrl) {
51
+ process.stdout.write(`Public URL (ngrok): ${publicUrl}\n`);
52
+ }
53
+ setupShutdownHandlers(close);
54
+ }
55
+ function setupShutdownHandlers(close) {
56
+ let shuttingDown = false;
57
+ const shutdown = () => {
58
+ if (shuttingDown) {
59
+ return;
60
+ }
61
+ shuttingDown = true;
62
+ process.stdout.write('\nShutting down...\n');
63
+ close()
64
+ .catch((error) => {
65
+ process.stderr.write(`Error during shutdown: ${error.message}\n`);
66
+ })
67
+ .finally(() => process.exit(0));
68
+ };
69
+ process.on('SIGINT', shutdown);
70
+ process.on('SIGTERM', shutdown);
71
+ }
72
+ //# sourceMappingURL=server-starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-starter.js","sourceRoot":"","sources":["../../src/cli/server-starter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export interface CliConfig {
2
+ port: number;
3
+ host: string;
4
+ ui: string | null;
5
+ workdir: string | null;
6
+ password: string | null;
7
+ cookieSecure: string | null;
8
+ defaultBranch: string | null;
9
+ defaultBranches?: Record<string, string>;
10
+ showPassword: boolean;
11
+ codexCommand: string | null;
12
+ claudeCommand: string | null;
13
+ cursorCommand: string | null;
14
+ ideCommand: string | null;
15
+ vscodeCommand: string | null;
16
+ ngrokApiKey: string | null;
17
+ ngrokDomain: string | null;
18
+ automationApiKey?: string | null;
19
+ openaiApiKey: string | null;
20
+ branchNameLlm?: string | null;
21
+ planLlm?: string | null;
22
+ terminalSessionMode: string | null;
23
+ save: boolean;
24
+ help: boolean;
25
+ version: boolean;
26
+ }
27
+ export interface ParsedArgs extends CliConfig {
28
+ _provided: Record<string, boolean>;
29
+ }
30
+ export interface PlansOptions {
31
+ org: string;
32
+ repo: string;
33
+ branch: string;
34
+ planId: string;
35
+ limit?: number;
36
+ workdir: string;
37
+ help: boolean;
38
+ }
39
+ export interface NormalizedConfig {
40
+ values: Record<string, unknown>;
41
+ path: string | null;
42
+ }
43
+ export type TerminalSessionMode = 'auto' | 'tmux' | 'pty';
44
+ export type BranchLlm = 'codex' | 'claude' | 'cursor';
45
+ export type CookieSecureMode = 'true' | 'false' | 'auto';
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export declare class ValidationError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare function warnConfig(message: string): void;
5
+ export declare function validatePort(value: unknown, name: string, configPath: string): number | undefined;
6
+ export declare function validateString(value: unknown, name: string, configPath: string): string | undefined;
7
+ export declare function validateBranchLlm(value: unknown, name: string, configPath: string): string | undefined;
8
+ export declare function validateTerminalSessionMode(value: unknown, name: string, configPath: string): string | undefined;
9
+ export declare function validateCookieSecure(value: unknown, name: string, configPath: string): string | undefined;
10
+ export declare function pickFirst<T>(sources: Array<{
11
+ value: unknown;
12
+ name: string;
13
+ }>, validator: (value: unknown, name: string, configPath: string) => T | undefined, configPath: string): T | undefined;
14
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":"AAMA,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqBjG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBnG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBtG;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBhH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezG;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,EAC9E,UAAU,EAAE,MAAM,GACjB,CAAC,GAAG,SAAS,CAWf"}
@@ -0,0 +1,99 @@
1
+ import { VALID_BRANCH_LLMS, VALID_TERMINAL_SESSION_MODES, VALID_COOKIE_SECURE_MODES, } from './constants.js';
2
+ export class ValidationError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = 'ValidationError';
6
+ }
7
+ }
8
+ export function warnConfig(message) {
9
+ process.stderr.write(`[agentrix] ${message}\n`);
10
+ }
11
+ export function validatePort(value, name, configPath) {
12
+ if (value === undefined || value === null) {
13
+ return undefined;
14
+ }
15
+ let portValue = value;
16
+ if (typeof portValue === 'string') {
17
+ const trimmed = portValue.trim();
18
+ if (!trimmed) {
19
+ warnConfig(`Ignoring empty ${name} in ${configPath || 'config'}`);
20
+ return undefined;
21
+ }
22
+ portValue = Number.parseInt(trimmed, 10);
23
+ }
24
+ if (!Number.isInteger(portValue) || portValue < 1 || portValue > 65535) {
25
+ warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected port between 1-65535.`);
26
+ return undefined;
27
+ }
28
+ return portValue;
29
+ }
30
+ export function validateString(value, name, configPath) {
31
+ if (value === undefined || value === null) {
32
+ return undefined;
33
+ }
34
+ if (typeof value !== 'string') {
35
+ warnConfig(`Ignoring non-string ${name} in ${configPath || 'config'}.`);
36
+ return undefined;
37
+ }
38
+ const trimmed = value.trim();
39
+ if (!trimmed) {
40
+ warnConfig(`Ignoring empty ${name} in ${configPath || 'config'}.`);
41
+ return undefined;
42
+ }
43
+ return trimmed;
44
+ }
45
+ export function validateBranchLlm(value, name, configPath) {
46
+ const stringValue = validateString(value, name, configPath);
47
+ if (stringValue === undefined) {
48
+ return undefined;
49
+ }
50
+ const lower = stringValue.toLowerCase();
51
+ if (!VALID_BRANCH_LLMS.has(lower)) {
52
+ warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected one of ${[
53
+ ...VALID_BRANCH_LLMS,
54
+ ].join(', ')}.`);
55
+ return undefined;
56
+ }
57
+ return lower;
58
+ }
59
+ export function validateTerminalSessionMode(value, name, configPath) {
60
+ const stringValue = validateString(value, name, configPath);
61
+ if (stringValue === undefined) {
62
+ return undefined;
63
+ }
64
+ const lower = stringValue.toLowerCase();
65
+ if (!VALID_TERMINAL_SESSION_MODES.has(lower)) {
66
+ warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected one of ${[
67
+ ...VALID_TERMINAL_SESSION_MODES,
68
+ ].join(', ')}.`);
69
+ return undefined;
70
+ }
71
+ return lower;
72
+ }
73
+ export function validateCookieSecure(value, name, configPath) {
74
+ if (typeof value === 'string') {
75
+ const trimmed = value.trim().toLowerCase();
76
+ if (VALID_COOKIE_SECURE_MODES.has(trimmed)) {
77
+ return trimmed;
78
+ }
79
+ warnConfig(`Ignoring invalid ${name} in ${configPath || 'config'}; expected true, false, or auto.`);
80
+ return undefined;
81
+ }
82
+ if (typeof value === 'boolean') {
83
+ return value ? 'true' : 'false';
84
+ }
85
+ return undefined;
86
+ }
87
+ export function pickFirst(sources, validator, configPath) {
88
+ for (const { value, name } of sources) {
89
+ if (value === undefined || value === null) {
90
+ continue;
91
+ }
92
+ const validated = validator(value, name, configPath);
93
+ if (validated !== undefined) {
94
+ return validated;
95
+ }
96
+ }
97
+ return undefined;
98
+ }
99
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,IAAY,EAAE,UAAkB;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,SAAS,GAAqB,KAAK,CAAC;IACxC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,kBAAkB,IAAI,OAAO,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAmB,CAAC,IAAK,SAAoB,GAAG,CAAC,IAAK,SAAoB,GAAG,KAAK,EAAE,CAAC;QACzG,UAAU,CAAC,oBAAoB,IAAI,OAAO,UAAU,IAAI,QAAQ,kCAAkC,CAAC,CAAC;QACpG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,UAAkB;IAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,uBAAuB,IAAI,OAAO,UAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,UAAU,CAAC,kBAAkB,IAAI,OAAO,UAAU,IAAI,QAAQ,GAAG,CAAC,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,IAAY,EAAE,UAAkB;IAChF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,UAAU,CACR,oBAAoB,IAAI,OAAO,UAAU,IAAI,QAAQ,qBAAqB;YACxE,GAAG,iBAAiB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc,EAAE,IAAY,EAAE,UAAkB;IAC1F,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,UAAU,CACR,oBAAoB,IAAI,OAAO,UAAU,IAAI,QAAQ,qBAAqB;YACxE,GAAG,4BAA4B;SAChC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,IAAY,EAAE,UAAkB;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,UAAU,CAAC,oBAAoB,IAAI,OAAO,UAAU,IAAI,QAAQ,kCAAkC,CAAC,CAAC;QACpG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,OAAgD,EAChD,SAA8E,EAC9E,UAAkB;IAElB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import { parseArgs } from './cli/arg-parser.js';
3
+ declare function main(argv?: string[]): Promise<void>;
4
+ export { main, parseArgs };
5
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,iBAAe,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEzE;AAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC"}
package/dist/cli.js ADDED
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+ import { parseArgs } from './cli/arg-parser.js';
3
+ import { loadConfig, saveConfig } from './cli/config.js';
4
+ import { resolveConfig, validateNgrokConfig, buildConfigToSave } from './cli/config-resolver.js';
5
+ import { printHelp, printVersion } from './cli/help.js';
6
+ import { handlePlansCommand } from './cli/plans-command.js';
7
+ import { startAppServer } from './cli/server-starter.js';
8
+ async function main(argv = process.argv.slice(2)) {
9
+ // Handle plans subcommand
10
+ if (argv[0] === 'plans') {
11
+ await handlePlansCommand(argv.slice(1));
12
+ return;
13
+ }
14
+ // Parse CLI arguments
15
+ let args;
16
+ try {
17
+ args = parseArgs(argv);
18
+ }
19
+ catch (err) {
20
+ const error = err;
21
+ process.stderr.write(`${error?.message || String(err)}\n`);
22
+ process.stderr.write('Use --help to see usage.\n');
23
+ process.exitCode = 1;
24
+ return;
25
+ }
26
+ // Handle help and version flags
27
+ if (args.help) {
28
+ printHelp();
29
+ return;
30
+ }
31
+ if (args.version) {
32
+ await printVersion();
33
+ return;
34
+ }
35
+ // Load and merge configuration
36
+ const { values: fileConfig } = await loadConfig();
37
+ const config = resolveConfig(args, fileConfig);
38
+ // Validate configuration
39
+ try {
40
+ validateNgrokConfig(config);
41
+ }
42
+ catch (err) {
43
+ const error = err;
44
+ process.stderr.write(`${error?.message || String(err)}\n`);
45
+ process.exitCode = 1;
46
+ return;
47
+ }
48
+ // Handle save command
49
+ if (args.save) {
50
+ const configToSave = buildConfigToSave(config, args, fileConfig);
51
+ try {
52
+ const savedPath = await saveConfig(configToSave);
53
+ process.stdout.write(`Config saved to ${savedPath}\n`);
54
+ }
55
+ catch (error) {
56
+ const err = error;
57
+ process.stderr.write(`Failed to save config: ${err?.message || String(error)}\n`);
58
+ process.exitCode = 1;
59
+ }
60
+ return;
61
+ }
62
+ // Start the server
63
+ try {
64
+ await startAppServer(config);
65
+ }
66
+ catch (err) {
67
+ const error = err;
68
+ process.stderr.write(`Failed to start server: ${error?.message || String(err)}\n`);
69
+ process.exitCode = 1;
70
+ }
71
+ }
72
+ export { main, parseArgs };
73
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export declare const DEFAULT_AGENT_COMMANDS: {
2
+ readonly codex: "codex";
3
+ readonly codexDangerous: "codex --dangerously-bypass-approvals-and-sandbox";
4
+ readonly claude: "claude";
5
+ readonly claudeDangerous: "claude --dangerously-skip-permissions";
6
+ readonly cursor: "cursor-agent";
7
+ readonly vscode: "code .";
8
+ };
9
+ export interface AgentCommands {
10
+ codex: string;
11
+ codexDangerous: string;
12
+ claude: string;
13
+ claudeDangerous: string;
14
+ cursor: string;
15
+ vscode: string;
16
+ }
17
+ export interface AgentCommandOverrides {
18
+ codex?: string;
19
+ codexDangerous?: string;
20
+ claude?: string;
21
+ claudeDangerous?: string;
22
+ cursor?: string;
23
+ ide?: string;
24
+ vscode?: string;
25
+ }
26
+ export declare function createAgentCommands(overrides?: AgentCommandOverrides): AgentCommands;
27
+ //# sourceMappingURL=agent-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../src/config/agent-commands.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,qBAA0B,GAAG,aAAa,CAyCxF"}
@@ -0,0 +1,56 @@
1
+ const DEFAULT_CODEX_COMMAND = 'codex';
2
+ const DEFAULT_CODEX_DANGEROUS_SUFFIX = '--dangerously-bypass-approvals-and-sandbox';
3
+ const DEFAULT_CLAUDE_COMMAND = 'claude';
4
+ const DEFAULT_CLAUDE_DANGEROUS_SUFFIX = '--dangerously-skip-permissions';
5
+ const DEFAULT_CURSOR_COMMAND = 'cursor-agent';
6
+ const DEFAULT_VSCODE_COMMAND = 'code .';
7
+ export const DEFAULT_AGENT_COMMANDS = {
8
+ codex: `${DEFAULT_CODEX_COMMAND}`,
9
+ codexDangerous: `${DEFAULT_CODEX_COMMAND} ${DEFAULT_CODEX_DANGEROUS_SUFFIX}`,
10
+ claude: `${DEFAULT_CLAUDE_COMMAND}`,
11
+ claudeDangerous: `${DEFAULT_CLAUDE_COMMAND} ${DEFAULT_CLAUDE_DANGEROUS_SUFFIX}`,
12
+ cursor: `${DEFAULT_CURSOR_COMMAND}`,
13
+ vscode: `${DEFAULT_VSCODE_COMMAND}`,
14
+ };
15
+ function appendDangerSuffix(base, suffix) {
16
+ const trimmed = typeof base === 'string' ? base.trim() : '';
17
+ if (!trimmed) {
18
+ return '';
19
+ }
20
+ return `${trimmed} ${suffix}`.trim();
21
+ }
22
+ export function createAgentCommands(overrides = {}) {
23
+ const codexBase = typeof overrides.codex === 'string' && overrides.codex.trim()
24
+ ? overrides.codex.trim()
25
+ : DEFAULT_AGENT_COMMANDS.codex;
26
+ const claudeBase = typeof overrides.claude === 'string' && overrides.claude.trim()
27
+ ? overrides.claude.trim()
28
+ : DEFAULT_AGENT_COMMANDS.claude;
29
+ const cursorCommand = (() => {
30
+ if (typeof overrides.cursor === 'string' && overrides.cursor.trim()) {
31
+ return overrides.cursor.trim();
32
+ }
33
+ if (typeof overrides.ide === 'string' && overrides.ide.trim()) {
34
+ return overrides.ide.trim();
35
+ }
36
+ return DEFAULT_AGENT_COMMANDS.cursor;
37
+ })();
38
+ const vscodeCommand = typeof overrides.vscode === 'string' && overrides.vscode.trim()
39
+ ? overrides.vscode.trim()
40
+ : DEFAULT_AGENT_COMMANDS.vscode;
41
+ const codexDangerous = typeof overrides.codexDangerous === 'string' && overrides.codexDangerous.trim()
42
+ ? overrides.codexDangerous.trim()
43
+ : appendDangerSuffix(codexBase, DEFAULT_CODEX_DANGEROUS_SUFFIX);
44
+ const claudeDangerous = typeof overrides.claudeDangerous === 'string' && overrides.claudeDangerous.trim()
45
+ ? overrides.claudeDangerous.trim()
46
+ : appendDangerSuffix(claudeBase, DEFAULT_CLAUDE_DANGEROUS_SUFFIX);
47
+ return {
48
+ codex: codexBase,
49
+ codexDangerous,
50
+ claude: claudeBase,
51
+ claudeDangerous,
52
+ cursor: cursorCommand,
53
+ vscode: vscodeCommand,
54
+ };
55
+ }
56
+ //# sourceMappingURL=agent-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-commands.js","sourceRoot":"","sources":["../../src/config/agent-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export declare const DEFAULT_HOST = "0.0.0.0";
2
+ export declare const DEFAULT_PORT = 3414;
3
+ export declare const MAX_TERMINAL_BUFFER = 200000;
4
+ export declare const PASSWORD_LENGTH = 12;
5
+ export declare const SESSION_COOKIE_NAME = "terminal_worktree_session";
6
+ export declare const SESSION_MAX_AGE_SECONDS: number;
7
+ export declare const TMUX_BIN = "tmux";
8
+ export declare const TMUX_SESSION_PREFIX = "tw-";
9
+ export declare const MAX_REQUEST_BODY_SIZE: number;
10
+ /** HTTP Status Codes */
11
+ export declare const HTTP_STATUS: {
12
+ readonly OK: 200;
13
+ readonly CREATED: 201;
14
+ readonly ACCEPTED: 202;
15
+ readonly NO_CONTENT: 204;
16
+ readonly BAD_REQUEST: 400;
17
+ readonly UNAUTHORIZED: 401;
18
+ readonly FORBIDDEN: 403;
19
+ readonly NOT_FOUND: 404;
20
+ readonly METHOD_NOT_ALLOWED: 405;
21
+ readonly INTERNAL_SERVER_ERROR: 500;
22
+ readonly BAD_GATEWAY: 502;
23
+ readonly SERVICE_UNAVAILABLE: 503;
24
+ };
25
+ /** Common error messages */
26
+ export declare const ERROR_MESSAGES: {
27
+ readonly AUTH_REQUIRED: "Authentication required";
28
+ readonly INVALID_PASSWORD: "Invalid password";
29
+ readonly INVALID_PAYLOAD: "Invalid request payload";
30
+ readonly REPOSITORY_NOT_FOUND: "Repository not found";
31
+ readonly WORKTREE_NOT_FOUND: "Worktree not found";
32
+ readonly SESSION_NOT_FOUND: "Terminal session not found";
33
+ readonly METHOD_NOT_ALLOWED: "Method Not Allowed";
34
+ };
35
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,QAAc,CAAC;AACnD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAEjD,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,4BAA4B;AAC5B,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC"}
@@ -0,0 +1,35 @@
1
+ export const DEFAULT_HOST = '0.0.0.0';
2
+ export const DEFAULT_PORT = 3414;
3
+ export const MAX_TERMINAL_BUFFER = 200000;
4
+ export const PASSWORD_LENGTH = 12;
5
+ export const SESSION_COOKIE_NAME = 'terminal_worktree_session';
6
+ export const SESSION_MAX_AGE_SECONDS = 60 * 60 * 8;
7
+ export const TMUX_BIN = 'tmux';
8
+ export const TMUX_SESSION_PREFIX = 'tw-';
9
+ export const MAX_REQUEST_BODY_SIZE = 1024 * 1024;
10
+ /** HTTP Status Codes */
11
+ export const HTTP_STATUS = {
12
+ OK: 200,
13
+ CREATED: 201,
14
+ ACCEPTED: 202,
15
+ NO_CONTENT: 204,
16
+ BAD_REQUEST: 400,
17
+ UNAUTHORIZED: 401,
18
+ FORBIDDEN: 403,
19
+ NOT_FOUND: 404,
20
+ METHOD_NOT_ALLOWED: 405,
21
+ INTERNAL_SERVER_ERROR: 500,
22
+ BAD_GATEWAY: 502,
23
+ SERVICE_UNAVAILABLE: 503,
24
+ };
25
+ /** Common error messages */
26
+ export const ERROR_MESSAGES = {
27
+ AUTH_REQUIRED: 'Authentication required',
28
+ INVALID_PASSWORD: 'Invalid password',
29
+ INVALID_PAYLOAD: 'Invalid request payload',
30
+ REPOSITORY_NOT_FOUND: 'Repository not found',
31
+ WORKTREE_NOT_FOUND: 'Worktree not found',
32
+ SESSION_NOT_FOUND: 'Terminal session not found',
33
+ METHOD_NOT_ALLOWED: 'Method Not Allowed',
34
+ };
35
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,GAAG;CAChB,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa,EAAE,yBAAyB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,yBAAyB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,4BAA4B;IAC/C,kBAAkB,EAAE,oBAAoB;CAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function loadDeveloperMessage(slug: string, fallback?: string): Promise<string>;
2
+ //# sourceMappingURL=developer-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-messages.d.ts","sourceRoot":"","sources":["../../src/config/developer-messages.ts"],"names":[],"mappings":"AAkBA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/F"}
@@ -0,0 +1,43 @@
1
+ import fs from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ const CONFIG_DIR_NAME = '.agentrix';
5
+ const CACHE = new Map();
6
+ function getDeveloperMessagePath(slug) {
7
+ if (!slug) {
8
+ return null;
9
+ }
10
+ const homeDir = os.homedir();
11
+ if (!homeDir) {
12
+ return null;
13
+ }
14
+ return path.join(homeDir, CONFIG_DIR_NAME, `${slug}.md`);
15
+ }
16
+ export async function loadDeveloperMessage(slug, fallback = '') {
17
+ if (CACHE.has(slug)) {
18
+ return CACHE.get(slug);
19
+ }
20
+ const defaultMessage = typeof fallback === 'string' ? fallback : '';
21
+ const filePath = getDeveloperMessagePath(slug);
22
+ if (!filePath) {
23
+ CACHE.set(slug, defaultMessage);
24
+ return defaultMessage;
25
+ }
26
+ let message = defaultMessage;
27
+ try {
28
+ const raw = await fs.readFile(filePath, 'utf8');
29
+ const trimmed = raw.trim();
30
+ if (trimmed) {
31
+ message = trimmed;
32
+ }
33
+ }
34
+ catch (error) {
35
+ const err = error;
36
+ if (err && err.code !== 'ENOENT') {
37
+ console.warn(`[agentrix] Failed to read developer message override at ${filePath}:`, err?.message || error);
38
+ }
39
+ }
40
+ CACHE.set(slug, message);
41
+ return message;
42
+ }
43
+ //# sourceMappingURL=developer-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-messages.js","sourceRoot":"","sources":["../../src/config/developer-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,SAAS,uBAAuB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE;IAC5E,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,GAAG,cAAc,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA4C,CAAC;QACzD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,2DAA2D,QAAQ,GAAG,EACtE,GAAG,EAAE,OAAO,IAAI,KAAK,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface LaunchAgentParams {
2
+ command: string;
3
+ workdir: string;
4
+ org: string;
5
+ repo: string;
6
+ branch: string;
7
+ prompt: string;
8
+ }
9
+ export interface LaunchAgentResult {
10
+ pid: number | null;
11
+ command: string;
12
+ sessionId: string;
13
+ tmuxSessionName: string | null;
14
+ usingTmux: boolean;
15
+ createdSession: boolean;
16
+ }
17
+ /**
18
+ * Launches an automation agent command inside the managed terminal session for a worktree.
19
+ * Commands run inside the same tmux-backed terminal infrastructure used by the UI so that
20
+ * automation launches remain observable and attachable from the frontend.
21
+ */
22
+ export declare function launchAgentProcess({ command, workdir, org, repo, branch, prompt, }: LaunchAgentParams): Promise<LaunchAgentResult>;
23
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/core/agents.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkDhD"}