ralph-starter 0.0.1 → 0.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +707 -17
  2. package/dist/auth/browser.d.ts +10 -0
  3. package/dist/auth/browser.d.ts.map +1 -0
  4. package/dist/auth/browser.js +56 -0
  5. package/dist/auth/browser.js.map +1 -0
  6. package/dist/auth/index.d.ts +5 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +5 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/oauth-server.d.ts +20 -0
  11. package/dist/auth/oauth-server.d.ts.map +1 -0
  12. package/dist/auth/oauth-server.js +168 -0
  13. package/dist/auth/oauth-server.js.map +1 -0
  14. package/dist/auth/pkce.d.ts +46 -0
  15. package/dist/auth/pkce.d.ts.map +1 -0
  16. package/dist/auth/pkce.js +57 -0
  17. package/dist/auth/pkce.js.map +1 -0
  18. package/dist/auth/providers/base.d.ts +52 -0
  19. package/dist/auth/providers/base.d.ts.map +1 -0
  20. package/dist/auth/providers/base.js +70 -0
  21. package/dist/auth/providers/base.js.map +1 -0
  22. package/dist/auth/providers/index.d.ts +23 -0
  23. package/dist/auth/providers/index.d.ts.map +1 -0
  24. package/dist/auth/providers/index.js +39 -0
  25. package/dist/auth/providers/index.js.map +1 -0
  26. package/dist/auth/providers/linear.d.ts +37 -0
  27. package/dist/auth/providers/linear.d.ts.map +1 -0
  28. package/dist/auth/providers/linear.js +46 -0
  29. package/dist/auth/providers/linear.js.map +1 -0
  30. package/dist/auth/providers/notion.d.ts +36 -0
  31. package/dist/auth/providers/notion.d.ts.map +1 -0
  32. package/dist/auth/providers/notion.js +75 -0
  33. package/dist/auth/providers/notion.js.map +1 -0
  34. package/dist/auth/providers/todoist.d.ts +29 -0
  35. package/dist/auth/providers/todoist.d.ts.map +1 -0
  36. package/dist/auth/providers/todoist.js +40 -0
  37. package/dist/auth/providers/todoist.js.map +1 -0
  38. package/dist/automation/git.d.ts +15 -0
  39. package/dist/automation/git.d.ts.map +1 -0
  40. package/dist/automation/git.js +73 -0
  41. package/dist/automation/git.js.map +1 -0
  42. package/dist/cli.d.ts +3 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +192 -19
  45. package/dist/cli.js.map +1 -0
  46. package/dist/commands/auth.d.ts +14 -0
  47. package/dist/commands/auth.d.ts.map +1 -0
  48. package/dist/commands/auth.js +243 -0
  49. package/dist/commands/auth.js.map +1 -0
  50. package/dist/commands/check.d.ts +12 -0
  51. package/dist/commands/check.d.ts.map +1 -0
  52. package/dist/commands/check.js +124 -0
  53. package/dist/commands/check.js.map +1 -0
  54. package/dist/commands/config.d.ts +13 -0
  55. package/dist/commands/config.d.ts.map +1 -0
  56. package/dist/commands/config.js +376 -0
  57. package/dist/commands/config.js.map +1 -0
  58. package/dist/commands/init.d.ts +31 -0
  59. package/dist/commands/init.d.ts.map +1 -0
  60. package/dist/commands/init.js +353 -0
  61. package/dist/commands/init.js.map +1 -0
  62. package/dist/commands/integrations.d.ts +17 -0
  63. package/dist/commands/integrations.d.ts.map +1 -0
  64. package/dist/commands/integrations.js +193 -0
  65. package/dist/commands/integrations.js.map +1 -0
  66. package/dist/commands/plan.d.ts +5 -0
  67. package/dist/commands/plan.d.ts.map +1 -0
  68. package/dist/commands/plan.js +80 -0
  69. package/dist/commands/plan.js.map +1 -0
  70. package/dist/commands/run.d.ts +26 -0
  71. package/dist/commands/run.d.ts.map +1 -0
  72. package/dist/commands/run.js +351 -0
  73. package/dist/commands/run.js.map +1 -0
  74. package/dist/commands/scaffold.d.ts +9 -0
  75. package/dist/commands/scaffold.d.ts.map +1 -0
  76. package/dist/commands/scaffold.js +128 -0
  77. package/dist/commands/scaffold.js.map +1 -0
  78. package/dist/commands/setup.d.ts +12 -0
  79. package/dist/commands/setup.d.ts.map +1 -0
  80. package/dist/commands/setup.js +27 -0
  81. package/dist/commands/setup.js.map +1 -0
  82. package/dist/commands/skill.d.ts +6 -0
  83. package/dist/commands/skill.d.ts.map +1 -0
  84. package/dist/commands/skill.js +151 -0
  85. package/dist/commands/skill.js.map +1 -0
  86. package/dist/commands/source.d.ts +17 -0
  87. package/dist/commands/source.d.ts.map +1 -0
  88. package/dist/commands/source.js +173 -0
  89. package/dist/commands/source.js.map +1 -0
  90. package/dist/config/manager.d.ts +70 -0
  91. package/dist/config/manager.d.ts.map +1 -0
  92. package/dist/config/manager.js +227 -0
  93. package/dist/config/manager.js.map +1 -0
  94. package/dist/index.d.ts +26 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +27 -2
  97. package/dist/index.js.map +1 -0
  98. package/dist/integrations/_template/auth.d.ts +29 -0
  99. package/dist/integrations/_template/auth.d.ts.map +1 -0
  100. package/dist/integrations/_template/auth.js +42 -0
  101. package/dist/integrations/_template/auth.js.map +1 -0
  102. package/dist/integrations/_template/index.d.ts +8 -0
  103. package/dist/integrations/_template/index.d.ts.map +1 -0
  104. package/dist/integrations/_template/index.js +8 -0
  105. package/dist/integrations/_template/index.js.map +1 -0
  106. package/dist/integrations/_template/source.d.ts +34 -0
  107. package/dist/integrations/_template/source.d.ts.map +1 -0
  108. package/dist/integrations/_template/source.js +124 -0
  109. package/dist/integrations/_template/source.js.map +1 -0
  110. package/dist/integrations/base.d.ts +158 -0
  111. package/dist/integrations/base.d.ts.map +1 -0
  112. package/dist/integrations/base.js +109 -0
  113. package/dist/integrations/base.js.map +1 -0
  114. package/dist/integrations/github/index.d.ts +8 -0
  115. package/dist/integrations/github/index.d.ts.map +1 -0
  116. package/dist/integrations/github/index.js +8 -0
  117. package/dist/integrations/github/index.js.map +1 -0
  118. package/dist/integrations/github/source.d.ts +26 -0
  119. package/dist/integrations/github/source.d.ts.map +1 -0
  120. package/dist/integrations/github/source.js +190 -0
  121. package/dist/integrations/github/source.js.map +1 -0
  122. package/dist/integrations/index.d.ts +37 -0
  123. package/dist/integrations/index.d.ts.map +1 -0
  124. package/dist/integrations/index.js +71 -0
  125. package/dist/integrations/index.js.map +1 -0
  126. package/dist/integrations/linear/auth.d.ts +37 -0
  127. package/dist/integrations/linear/auth.d.ts.map +1 -0
  128. package/dist/integrations/linear/auth.js +45 -0
  129. package/dist/integrations/linear/auth.js.map +1 -0
  130. package/dist/integrations/linear/index.d.ts +9 -0
  131. package/dist/integrations/linear/index.d.ts.map +1 -0
  132. package/dist/integrations/linear/index.js +9 -0
  133. package/dist/integrations/linear/index.js.map +1 -0
  134. package/dist/integrations/linear/source.d.ts +26 -0
  135. package/dist/integrations/linear/source.d.ts.map +1 -0
  136. package/dist/integrations/linear/source.js +248 -0
  137. package/dist/integrations/linear/source.js.map +1 -0
  138. package/dist/integrations/notion/index.d.ts +8 -0
  139. package/dist/integrations/notion/index.d.ts.map +1 -0
  140. package/dist/integrations/notion/index.js +8 -0
  141. package/dist/integrations/notion/index.js.map +1 -0
  142. package/dist/integrations/notion/source.d.ts +53 -0
  143. package/dist/integrations/notion/source.d.ts.map +1 -0
  144. package/dist/integrations/notion/source.js +463 -0
  145. package/dist/integrations/notion/source.js.map +1 -0
  146. package/dist/llm/api.d.ts +29 -0
  147. package/dist/llm/api.d.ts.map +1 -0
  148. package/dist/llm/api.js +152 -0
  149. package/dist/llm/api.js.map +1 -0
  150. package/dist/llm/index.d.ts +7 -0
  151. package/dist/llm/index.d.ts.map +1 -0
  152. package/dist/llm/index.js +7 -0
  153. package/dist/llm/index.js.map +1 -0
  154. package/dist/llm/providers.d.ts +24 -0
  155. package/dist/llm/providers.d.ts.map +1 -0
  156. package/dist/llm/providers.js +51 -0
  157. package/dist/llm/providers.js.map +1 -0
  158. package/dist/loop/__tests__/agents.test.d.ts +2 -0
  159. package/dist/loop/__tests__/agents.test.d.ts.map +1 -0
  160. package/dist/loop/__tests__/agents.test.js +183 -0
  161. package/dist/loop/__tests__/agents.test.js.map +1 -0
  162. package/dist/loop/__tests__/circuit-breaker.test.d.ts +2 -0
  163. package/dist/loop/__tests__/circuit-breaker.test.d.ts.map +1 -0
  164. package/dist/loop/__tests__/circuit-breaker.test.js +161 -0
  165. package/dist/loop/__tests__/circuit-breaker.test.js.map +1 -0
  166. package/dist/loop/__tests__/cost-tracker.test.d.ts +2 -0
  167. package/dist/loop/__tests__/cost-tracker.test.d.ts.map +1 -0
  168. package/dist/loop/__tests__/cost-tracker.test.js +200 -0
  169. package/dist/loop/__tests__/cost-tracker.test.js.map +1 -0
  170. package/dist/loop/__tests__/rate-limiter.test.d.ts +2 -0
  171. package/dist/loop/__tests__/rate-limiter.test.d.ts.map +1 -0
  172. package/dist/loop/__tests__/rate-limiter.test.js +198 -0
  173. package/dist/loop/__tests__/rate-limiter.test.js.map +1 -0
  174. package/dist/loop/__tests__/validation.test.d.ts +2 -0
  175. package/dist/loop/__tests__/validation.test.d.ts.map +1 -0
  176. package/dist/loop/__tests__/validation.test.js +234 -0
  177. package/dist/loop/__tests__/validation.test.js.map +1 -0
  178. package/dist/loop/agents.d.ts +26 -0
  179. package/dist/loop/agents.d.ts.map +1 -0
  180. package/dist/loop/agents.js +188 -0
  181. package/dist/loop/agents.js.map +1 -0
  182. package/dist/loop/circuit-breaker.d.ts +61 -0
  183. package/dist/loop/circuit-breaker.d.ts.map +1 -0
  184. package/dist/loop/circuit-breaker.js +143 -0
  185. package/dist/loop/circuit-breaker.js.map +1 -0
  186. package/dist/loop/cost-tracker.d.ts +90 -0
  187. package/dist/loop/cost-tracker.d.ts.map +1 -0
  188. package/dist/loop/cost-tracker.js +229 -0
  189. package/dist/loop/cost-tracker.js.map +1 -0
  190. package/dist/loop/estimator.d.ts +20 -0
  191. package/dist/loop/estimator.d.ts.map +1 -0
  192. package/dist/loop/estimator.js +123 -0
  193. package/dist/loop/estimator.js.map +1 -0
  194. package/dist/loop/executor.d.ts +44 -0
  195. package/dist/loop/executor.d.ts.map +1 -0
  196. package/dist/loop/executor.js +646 -0
  197. package/dist/loop/executor.js.map +1 -0
  198. package/dist/loop/progress.d.ts +34 -0
  199. package/dist/loop/progress.d.ts.map +1 -0
  200. package/dist/loop/progress.js +186 -0
  201. package/dist/loop/progress.js.map +1 -0
  202. package/dist/loop/rate-limiter.d.ts +71 -0
  203. package/dist/loop/rate-limiter.d.ts.map +1 -0
  204. package/dist/loop/rate-limiter.js +151 -0
  205. package/dist/loop/rate-limiter.js.map +1 -0
  206. package/dist/loop/semantic-analyzer.d.ts +33 -0
  207. package/dist/loop/semantic-analyzer.d.ts.map +1 -0
  208. package/dist/loop/semantic-analyzer.js +153 -0
  209. package/dist/loop/semantic-analyzer.js.map +1 -0
  210. package/dist/loop/skills.d.ts +29 -0
  211. package/dist/loop/skills.d.ts.map +1 -0
  212. package/dist/loop/skills.js +174 -0
  213. package/dist/loop/skills.js.map +1 -0
  214. package/dist/loop/step-detector.d.ts +17 -0
  215. package/dist/loop/step-detector.d.ts.map +1 -0
  216. package/dist/loop/step-detector.js +280 -0
  217. package/dist/loop/step-detector.js.map +1 -0
  218. package/dist/loop/task-counter.d.ts +41 -0
  219. package/dist/loop/task-counter.d.ts.map +1 -0
  220. package/dist/loop/task-counter.js +99 -0
  221. package/dist/loop/task-counter.js.map +1 -0
  222. package/dist/loop/validation.d.ts +28 -0
  223. package/dist/loop/validation.d.ts.map +1 -0
  224. package/dist/loop/validation.js +138 -0
  225. package/dist/loop/validation.js.map +1 -0
  226. package/dist/mcp/core/init.d.ts +15 -0
  227. package/dist/mcp/core/init.d.ts.map +1 -0
  228. package/dist/mcp/core/init.js +272 -0
  229. package/dist/mcp/core/init.js.map +1 -0
  230. package/dist/mcp/core/plan.d.ts +15 -0
  231. package/dist/mcp/core/plan.d.ts.map +1 -0
  232. package/dist/mcp/core/plan.js +90 -0
  233. package/dist/mcp/core/plan.js.map +1 -0
  234. package/dist/mcp/core/run.d.ts +26 -0
  235. package/dist/mcp/core/run.d.ts.map +1 -0
  236. package/dist/mcp/core/run.js +114 -0
  237. package/dist/mcp/core/run.js.map +1 -0
  238. package/dist/mcp/prompts.d.ts +10 -0
  239. package/dist/mcp/prompts.d.ts.map +1 -0
  240. package/dist/mcp/prompts.js +163 -0
  241. package/dist/mcp/prompts.js.map +1 -0
  242. package/dist/mcp/resources.d.ts +16 -0
  243. package/dist/mcp/resources.d.ts.map +1 -0
  244. package/dist/mcp/resources.js +114 -0
  245. package/dist/mcp/resources.js.map +1 -0
  246. package/dist/mcp/server.d.ts +10 -0
  247. package/dist/mcp/server.d.ts.map +1 -0
  248. package/dist/mcp/server.js +73 -0
  249. package/dist/mcp/server.js.map +1 -0
  250. package/dist/mcp/tools.d.ts +15 -0
  251. package/dist/mcp/tools.d.ts.map +1 -0
  252. package/dist/mcp/tools.js +316 -0
  253. package/dist/mcp/tools.js.map +1 -0
  254. package/dist/presets/index.d.ts +36 -0
  255. package/dist/presets/index.d.ts.map +1 -0
  256. package/dist/presets/index.js +236 -0
  257. package/dist/presets/index.js.map +1 -0
  258. package/dist/setup/agent-detector.d.ts +57 -0
  259. package/dist/setup/agent-detector.d.ts.map +1 -0
  260. package/dist/setup/agent-detector.js +170 -0
  261. package/dist/setup/agent-detector.js.map +1 -0
  262. package/dist/setup/index.d.ts +7 -0
  263. package/dist/setup/index.d.ts.map +1 -0
  264. package/dist/setup/index.js +7 -0
  265. package/dist/setup/index.js.map +1 -0
  266. package/dist/setup/llm-tester.d.ts +33 -0
  267. package/dist/setup/llm-tester.d.ts.map +1 -0
  268. package/dist/setup/llm-tester.js +105 -0
  269. package/dist/setup/llm-tester.js.map +1 -0
  270. package/dist/setup/wizard.d.ts +19 -0
  271. package/dist/setup/wizard.d.ts.map +1 -0
  272. package/dist/setup/wizard.js +313 -0
  273. package/dist/setup/wizard.js.map +1 -0
  274. package/dist/sources/__tests__/file.test.d.ts +2 -0
  275. package/dist/sources/__tests__/file.test.d.ts.map +1 -0
  276. package/dist/sources/__tests__/file.test.js +126 -0
  277. package/dist/sources/__tests__/file.test.js.map +1 -0
  278. package/dist/sources/__tests__/github.test.d.ts +2 -0
  279. package/dist/sources/__tests__/github.test.d.ts.map +1 -0
  280. package/dist/sources/__tests__/github.test.js +157 -0
  281. package/dist/sources/__tests__/github.test.js.map +1 -0
  282. package/dist/sources/base.d.ts +72 -0
  283. package/dist/sources/base.d.ts.map +1 -0
  284. package/dist/sources/base.js +127 -0
  285. package/dist/sources/base.js.map +1 -0
  286. package/dist/sources/builtin/file.d.ts +21 -0
  287. package/dist/sources/builtin/file.d.ts.map +1 -0
  288. package/dist/sources/builtin/file.js +129 -0
  289. package/dist/sources/builtin/file.js.map +1 -0
  290. package/dist/sources/builtin/github-scraper.d.ts +65 -0
  291. package/dist/sources/builtin/github-scraper.d.ts.map +1 -0
  292. package/dist/sources/builtin/github-scraper.js +324 -0
  293. package/dist/sources/builtin/github-scraper.js.map +1 -0
  294. package/dist/sources/builtin/pdf.d.ts +24 -0
  295. package/dist/sources/builtin/pdf.d.ts.map +1 -0
  296. package/dist/sources/builtin/pdf.js +174 -0
  297. package/dist/sources/builtin/pdf.js.map +1 -0
  298. package/dist/sources/builtin/url.d.ts +47 -0
  299. package/dist/sources/builtin/url.d.ts.map +1 -0
  300. package/dist/sources/builtin/url.js +429 -0
  301. package/dist/sources/builtin/url.js.map +1 -0
  302. package/dist/sources/config.d.ts +72 -0
  303. package/dist/sources/config.d.ts.map +1 -0
  304. package/dist/sources/config.js +215 -0
  305. package/dist/sources/config.js.map +1 -0
  306. package/dist/sources/index.d.ts +47 -0
  307. package/dist/sources/index.d.ts.map +1 -0
  308. package/dist/sources/index.js +210 -0
  309. package/dist/sources/index.js.map +1 -0
  310. package/dist/sources/integrations/github.d.ts +24 -0
  311. package/dist/sources/integrations/github.d.ts.map +1 -0
  312. package/dist/sources/integrations/github.js +193 -0
  313. package/dist/sources/integrations/github.js.map +1 -0
  314. package/dist/sources/integrations/linear.d.ts +18 -0
  315. package/dist/sources/integrations/linear.d.ts.map +1 -0
  316. package/dist/sources/integrations/linear.js +197 -0
  317. package/dist/sources/integrations/linear.js.map +1 -0
  318. package/dist/sources/integrations/notion.d.ts +39 -0
  319. package/dist/sources/integrations/notion.d.ts.map +1 -0
  320. package/dist/sources/integrations/notion.js +343 -0
  321. package/dist/sources/integrations/notion.js.map +1 -0
  322. package/dist/sources/integrations/todoist.d.ts +18 -0
  323. package/dist/sources/integrations/todoist.d.ts.map +1 -0
  324. package/dist/sources/integrations/todoist.js +154 -0
  325. package/dist/sources/integrations/todoist.js.map +1 -0
  326. package/dist/sources/types.d.ts +106 -0
  327. package/dist/sources/types.d.ts.map +1 -0
  328. package/dist/sources/types.js +9 -0
  329. package/dist/sources/types.js.map +1 -0
  330. package/dist/ui/index.d.ts +3 -0
  331. package/dist/ui/index.d.ts.map +1 -0
  332. package/dist/ui/index.js +3 -0
  333. package/dist/ui/index.js.map +1 -0
  334. package/dist/ui/progress-renderer.d.ts +54 -0
  335. package/dist/ui/progress-renderer.d.ts.map +1 -0
  336. package/dist/ui/progress-renderer.js +118 -0
  337. package/dist/ui/progress-renderer.js.map +1 -0
  338. package/dist/ui/shimmer.d.ts +16 -0
  339. package/dist/ui/shimmer.d.ts.map +1 -0
  340. package/dist/ui/shimmer.js +31 -0
  341. package/dist/ui/shimmer.js.map +1 -0
  342. package/dist/wizard/ascii-art.d.ts +93 -0
  343. package/dist/wizard/ascii-art.d.ts.map +1 -0
  344. package/dist/wizard/ascii-art.js +378 -0
  345. package/dist/wizard/ascii-art.js.map +1 -0
  346. package/dist/wizard/idea-prompts.d.ts +18 -0
  347. package/dist/wizard/idea-prompts.d.ts.map +1 -0
  348. package/dist/wizard/idea-prompts.js +154 -0
  349. package/dist/wizard/idea-prompts.js.map +1 -0
  350. package/dist/wizard/idea-ui.d.ts +34 -0
  351. package/dist/wizard/idea-ui.d.ts.map +1 -0
  352. package/dist/wizard/idea-ui.js +225 -0
  353. package/dist/wizard/idea-ui.js.map +1 -0
  354. package/dist/wizard/ideas.d.ts +27 -0
  355. package/dist/wizard/ideas.d.ts.map +1 -0
  356. package/dist/wizard/ideas.js +511 -0
  357. package/dist/wizard/ideas.js.map +1 -0
  358. package/dist/wizard/index.d.ts +11 -0
  359. package/dist/wizard/index.d.ts.map +1 -0
  360. package/dist/wizard/index.js +472 -0
  361. package/dist/wizard/index.js.map +1 -0
  362. package/dist/wizard/llm.d.ts +14 -0
  363. package/dist/wizard/llm.d.ts.map +1 -0
  364. package/dist/wizard/llm.js +420 -0
  365. package/dist/wizard/llm.js.map +1 -0
  366. package/dist/wizard/prompts.d.ts +75 -0
  367. package/dist/wizard/prompts.d.ts.map +1 -0
  368. package/dist/wizard/prompts.js +455 -0
  369. package/dist/wizard/prompts.js.map +1 -0
  370. package/dist/wizard/spec-generator.d.ts +14 -0
  371. package/dist/wizard/spec-generator.d.ts.map +1 -0
  372. package/dist/wizard/spec-generator.js +200 -0
  373. package/dist/wizard/spec-generator.js.map +1 -0
  374. package/dist/wizard/types.d.ts +53 -0
  375. package/dist/wizard/types.d.ts.map +1 -0
  376. package/dist/wizard/types.js +10 -0
  377. package/dist/wizard/types.js.map +1 -0
  378. package/dist/wizard/ui.d.ts +57 -0
  379. package/dist/wizard/ui.d.ts.map +1 -0
  380. package/dist/wizard/ui.js +211 -0
  381. package/dist/wizard/ui.js.map +1 -0
  382. package/package.json +59 -8
@@ -0,0 +1,353 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import chalk from 'chalk';
4
+ import inquirer from 'inquirer';
5
+ import ora from 'ora';
6
+ import YAML from 'yaml';
7
+ import { initGitRepo, isGitRepo } from '../automation/git.js';
8
+ import { detectAvailableAgents, printAgentStatus } from '../loop/agents.js';
9
+ export function detectProject(cwd) {
10
+ // Node.js
11
+ if (existsSync(join(cwd, 'package.json'))) {
12
+ try {
13
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf-8'));
14
+ const scripts = pkg.scripts || {};
15
+ return {
16
+ type: 'nodejs',
17
+ name: pkg.name || 'project',
18
+ testCmd: scripts.test ? 'npm test' : undefined,
19
+ buildCmd: scripts.build ? 'npm run build' : undefined,
20
+ lintCmd: scripts.lint ? 'npm run lint' : undefined,
21
+ };
22
+ }
23
+ catch {
24
+ return { type: 'nodejs', name: 'project' };
25
+ }
26
+ }
27
+ // Python
28
+ if (existsSync(join(cwd, 'pyproject.toml')) || existsSync(join(cwd, 'setup.py'))) {
29
+ return {
30
+ type: 'python',
31
+ name: 'project',
32
+ testCmd: 'pytest',
33
+ lintCmd: 'ruff check .',
34
+ };
35
+ }
36
+ // Rust
37
+ if (existsSync(join(cwd, 'Cargo.toml'))) {
38
+ return {
39
+ type: 'rust',
40
+ name: 'project',
41
+ testCmd: 'cargo test',
42
+ buildCmd: 'cargo build',
43
+ lintCmd: 'cargo clippy',
44
+ };
45
+ }
46
+ // Go
47
+ if (existsSync(join(cwd, 'go.mod'))) {
48
+ return {
49
+ type: 'go',
50
+ name: 'project',
51
+ testCmd: 'go test ./...',
52
+ buildCmd: 'go build ./...',
53
+ lintCmd: 'golangci-lint run',
54
+ };
55
+ }
56
+ return { type: 'unknown', name: 'project' };
57
+ }
58
+ export function detectRalphPlaybook(cwd) {
59
+ const files = {
60
+ agentsMd: existsSync(join(cwd, 'AGENTS.md')),
61
+ implementationPlan: existsSync(join(cwd, 'IMPLEMENTATION_PLAN.md')),
62
+ promptBuild: existsSync(join(cwd, 'PROMPT_build.md')),
63
+ promptPlan: existsSync(join(cwd, 'PROMPT_plan.md')),
64
+ specsDir: existsSync(join(cwd, 'specs')),
65
+ ralphConfig: existsSync(join(cwd, '.ralph', 'config.yaml')),
66
+ };
67
+ // Consider it a playbook if AGENTS.md exists (primary marker)
68
+ const hasPlaybook = files.agentsMd;
69
+ // Check for README.md and extract first paragraph as description
70
+ let readme;
71
+ const readmePath = join(cwd, 'README.md');
72
+ if (existsSync(readmePath)) {
73
+ try {
74
+ const content = readFileSync(readmePath, 'utf-8');
75
+ // Extract first non-heading, non-empty paragraph
76
+ const lines = content.split('\n');
77
+ let description;
78
+ for (const line of lines) {
79
+ const trimmed = line.trim();
80
+ // Skip empty lines, headings, and blockquotes
81
+ if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith('>')) {
82
+ continue;
83
+ }
84
+ // Found first content paragraph
85
+ description = trimmed;
86
+ break;
87
+ }
88
+ readme = { exists: true, description };
89
+ }
90
+ catch {
91
+ readme = { exists: true };
92
+ }
93
+ }
94
+ return { hasPlaybook, files, readme };
95
+ }
96
+ function generateAgentsMd(project) {
97
+ const validationCmds = [project.testCmd, project.buildCmd, project.lintCmd].filter(Boolean);
98
+ return `# AGENTS.md
99
+
100
+ This file defines how Ralph operates in this project.
101
+
102
+ ## Validation Commands
103
+
104
+ Run these after each task to ensure quality:
105
+
106
+ \`\`\`bash
107
+ ${validationCmds.length > 0 ? validationCmds.join('\n') : '# Add your test/build/lint commands here'}
108
+ \`\`\`
109
+
110
+ ## Build Instructions
111
+
112
+ ${project.type === 'nodejs' ? '1. Run `npm install` to install dependencies\n2. Run `npm run build` to build (if applicable)\n3. Run `npm test` to verify' : ''}
113
+ ${project.type === 'python' ? '1. Create virtual environment: `python -m venv venv`\n2. Install dependencies: `pip install -e .`\n3. Run tests: `pytest`' : ''}
114
+ ${project.type === 'rust' ? '1. Run `cargo build` to compile\n2. Run `cargo test` to verify' : ''}
115
+ ${project.type === 'go' ? '1. Run `go mod tidy` to sync dependencies\n2. Run `go build ./...` to compile\n3. Run `go test ./...` to verify' : ''}
116
+ ${project.type === 'unknown' ? '1. Add your build instructions here' : ''}
117
+
118
+ ## Code Patterns
119
+
120
+ - Follow existing code style
121
+ - Add tests for new functionality
122
+ - Keep functions small and focused
123
+ - Use meaningful names
124
+
125
+ ## Task Completion
126
+
127
+ A task is complete when:
128
+ 1. All validation commands pass
129
+ 2. Code is committed (if auto-commit enabled)
130
+ 3. No TODO comments left unaddressed
131
+ `;
132
+ }
133
+ function generatePromptBuild() {
134
+ return `# Building Mode
135
+
136
+ You are in BUILDING mode. Execute tasks from the implementation plan.
137
+
138
+ ## Process
139
+
140
+ 1. Read IMPLEMENTATION_PLAN.md for the current task
141
+ 2. Implement the task following patterns in AGENTS.md
142
+ 3. Run validation commands after each change
143
+ 4. If tests fail, fix the issues before moving on
144
+ 5. Mark the task as complete in IMPLEMENTATION_PLAN.md
145
+ 6. Move to the next task
146
+
147
+ ## Rules
148
+
149
+ - One task at a time
150
+ - Validate after each change
151
+ - Commit working code only
152
+ - Update the plan as you learn
153
+ - Only link to pages that exist - use "#" for placeholder links
154
+ - Use realistic placeholder data (names, dates, content)
155
+
156
+ ## Completion Signal
157
+
158
+ When all tasks are done, output: <TASK_DONE>
159
+ If blocked, output: <TASK_BLOCKED> with explanation
160
+ `;
161
+ }
162
+ function generatePromptPlan() {
163
+ return `# Planning Mode
164
+
165
+ You are in PLANNING mode. Analyze specs and create an implementation plan.
166
+
167
+ ## Process
168
+
169
+ 1. Read all files in specs/ folder
170
+ 2. Analyze existing codebase
171
+ 3. Identify gaps between specs and implementation
172
+ 4. Create prioritized task list in IMPLEMENTATION_PLAN.md
173
+
174
+ ## Task Format
175
+
176
+ Each task in IMPLEMENTATION_PLAN.md should have:
177
+ - [ ] Clear, actionable description
178
+ - Acceptance criteria
179
+ - Dependencies (if any)
180
+
181
+ ## Rules
182
+
183
+ - Do NOT implement anything
184
+ - Only analyze and plan
185
+ - Keep tasks small (< 30 min each)
186
+ - Order by dependencies
187
+
188
+ ## Output
189
+
190
+ Update IMPLEMENTATION_PLAN.md with the task list.
191
+ `;
192
+ }
193
+ function generateImplementationPlan() {
194
+ return `# Implementation Plan
195
+
196
+ > Auto-generated by Ralph. Update as tasks complete.
197
+
198
+ ## Status
199
+
200
+ - [ ] Task 1: (describe first task)
201
+ - [ ] Task 2: (describe second task)
202
+
203
+ ## Notes
204
+
205
+ Add discoveries and learnings here as you work.
206
+ `;
207
+ }
208
+ export async function initCommand(_options) {
209
+ const cwd = process.cwd();
210
+ const spinner = ora();
211
+ console.log();
212
+ console.log(chalk.cyan.bold('Initialize Ralph Wiggum'));
213
+ console.log(chalk.dim('Set up autonomous AI coding loops (Ralph Playbook)'));
214
+ console.log();
215
+ // Check if already initialized
216
+ if (existsSync(join(cwd, 'AGENTS.md'))) {
217
+ console.log(chalk.yellow('Ralph Playbook files already exist.'));
218
+ console.log(chalk.dim('Files: AGENTS.md, PROMPT_*.md, specs/'));
219
+ return;
220
+ }
221
+ // Detect project
222
+ const project = detectProject(cwd);
223
+ console.log(chalk.dim(`Detected: ${project.type === 'unknown' ? 'New project' : project.type}`));
224
+ console.log();
225
+ // Check git
226
+ const hasGit = await isGitRepo(cwd);
227
+ if (!hasGit) {
228
+ const { initGit } = await inquirer.prompt([
229
+ {
230
+ type: 'confirm',
231
+ name: 'initGit',
232
+ message: 'No git repo found. Initialize one?',
233
+ default: true,
234
+ },
235
+ ]);
236
+ if (initGit) {
237
+ await initGitRepo(cwd);
238
+ console.log(chalk.green('Git repository initialized'));
239
+ }
240
+ }
241
+ // Detect available agents
242
+ spinner.start('Detecting available agents...');
243
+ const agents = await detectAvailableAgents();
244
+ const availableAgents = agents.filter((a) => a.available);
245
+ spinner.stop();
246
+ if (availableAgents.length === 0) {
247
+ console.log(chalk.red('No coding agents found!'));
248
+ printAgentStatus(agents);
249
+ console.log(chalk.yellow('Please install one of the agents above first.'));
250
+ return;
251
+ }
252
+ printAgentStatus(agents);
253
+ // Select default agent
254
+ let selectedAgent;
255
+ if (availableAgents.length === 1) {
256
+ selectedAgent = availableAgents[0];
257
+ console.log(chalk.dim(`Using: ${selectedAgent.name}`));
258
+ }
259
+ else {
260
+ const { agent } = await inquirer.prompt([
261
+ {
262
+ type: 'list',
263
+ name: 'agent',
264
+ message: 'Select default coding agent:',
265
+ choices: availableAgents.map((a) => ({
266
+ name: a.name,
267
+ value: a,
268
+ })),
269
+ },
270
+ ]);
271
+ selectedAgent = agent;
272
+ }
273
+ // Create Ralph Playbook files
274
+ spinner.start('Creating Ralph Playbook files...');
275
+ // AGENTS.md
276
+ writeFileSync(join(cwd, 'AGENTS.md'), generateAgentsMd(project));
277
+ // PROMPT files
278
+ writeFileSync(join(cwd, 'PROMPT_build.md'), generatePromptBuild());
279
+ writeFileSync(join(cwd, 'PROMPT_plan.md'), generatePromptPlan());
280
+ // Implementation plan
281
+ writeFileSync(join(cwd, 'IMPLEMENTATION_PLAN.md'), generateImplementationPlan());
282
+ // specs folder (empty - user creates their own specs)
283
+ const specsDir = join(cwd, 'specs');
284
+ if (!existsSync(specsDir)) {
285
+ mkdirSync(specsDir, { recursive: true });
286
+ }
287
+ spinner.succeed('Ralph Playbook files created');
288
+ // Create .ralph config
289
+ const ralphDir = join(cwd, '.ralph');
290
+ if (!existsSync(ralphDir)) {
291
+ mkdirSync(ralphDir, { recursive: true });
292
+ const config = {
293
+ agent: selectedAgent.type,
294
+ auto_commit: true,
295
+ max_iterations: 50,
296
+ validation: {
297
+ test: project.testCmd || null,
298
+ build: project.buildCmd || null,
299
+ lint: project.lintCmd || null,
300
+ },
301
+ };
302
+ writeFileSync(join(ralphDir, 'config.yaml'), YAML.stringify(config));
303
+ }
304
+ // Create .claude/CLAUDE.md if using Claude Code
305
+ if (selectedAgent.type === 'claude-code') {
306
+ const claudeDir = join(cwd, '.claude');
307
+ if (!existsSync(claudeDir)) {
308
+ mkdirSync(claudeDir, { recursive: true });
309
+ }
310
+ const claudeMd = `# Project
311
+
312
+ This project uses Ralph Wiggum methodology for autonomous AI development.
313
+
314
+ ## Quick Reference
315
+
316
+ - **Planning**: \`ralph-starter plan\` - Analyze specs and create task list
317
+ - **Building**: \`ralph-starter run\` - Execute tasks from the plan
318
+ - **Specs**: See \`specs/\` folder for requirements
319
+ - **Plan**: See \`IMPLEMENTATION_PLAN.md\` for current tasks
320
+
321
+ ## Workflow
322
+
323
+ 1. Write specs in \`specs/\` folder
324
+ 2. Run \`ralph-starter plan\` to generate tasks
325
+ 3. Run \`ralph-starter run --commit\` to execute
326
+
327
+ ## Validation
328
+
329
+ Always run these after changes:
330
+ ${project.testCmd ? `- \`${project.testCmd}\`` : ''}
331
+ ${project.buildCmd ? `- \`${project.buildCmd}\`` : ''}
332
+ ${project.lintCmd ? `- \`${project.lintCmd}\`` : ''}
333
+ `;
334
+ writeFileSync(join(claudeDir, 'CLAUDE.md'), claudeMd);
335
+ console.log(chalk.dim('Created .claude/CLAUDE.md'));
336
+ }
337
+ console.log();
338
+ console.log(chalk.green.bold('Ralph Playbook initialized!'));
339
+ console.log();
340
+ console.log(chalk.yellow('Created files:'));
341
+ console.log(chalk.gray(' AGENTS.md # How to build/test'));
342
+ console.log(chalk.gray(' PROMPT_build.md # Building mode instructions'));
343
+ console.log(chalk.gray(' PROMPT_plan.md # Planning mode instructions'));
344
+ console.log(chalk.gray(' IMPLEMENTATION_PLAN.md # Task list'));
345
+ console.log(chalk.gray(' specs/ # Add your specs here'));
346
+ console.log();
347
+ console.log(chalk.yellow('Next steps:'));
348
+ console.log(chalk.gray(' 1. Add your specs to the specs/ folder'));
349
+ console.log(chalk.gray(' 2. Run: ralph-starter plan # Generate task list'));
350
+ console.log(chalk.gray(' 3. Run: ralph-starter run # Execute tasks'));
351
+ console.log();
352
+ }
353
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface IntegrationsCommandOptions {
2
+ project?: string;
3
+ label?: string;
4
+ status?: string;
5
+ limit?: number;
6
+ }
7
+ /**
8
+ * Integrations command - list, help, and test integrations
9
+ *
10
+ * Usage:
11
+ * ralph-starter integrations list - List all integrations with status
12
+ * ralph-starter integrations help <name> - Show help for a specific integration
13
+ * ralph-starter integrations test <name> - Test integration connectivity
14
+ * ralph-starter integrations fetch <name> - Fetch and preview data
15
+ */
16
+ export declare function integrationsCommand(action: string, args: string[], options?: IntegrationsCommandOptions): Promise<void>;
17
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
@@ -0,0 +1,193 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { fetchFromIntegration, getIntegration, getIntegrationsInfo, } from '../integrations/index.js';
4
+ /**
5
+ * Integrations command - list, help, and test integrations
6
+ *
7
+ * Usage:
8
+ * ralph-starter integrations list - List all integrations with status
9
+ * ralph-starter integrations help <name> - Show help for a specific integration
10
+ * ralph-starter integrations test <name> - Test integration connectivity
11
+ * ralph-starter integrations fetch <name> - Fetch and preview data
12
+ */
13
+ export async function integrationsCommand(action, args, options) {
14
+ switch (action) {
15
+ case 'list':
16
+ case 'ls':
17
+ await listIntegrations();
18
+ break;
19
+ case 'help':
20
+ if (args.length < 1) {
21
+ console.error(chalk.red('Usage: ralph-starter integrations help <name>'));
22
+ process.exit(1);
23
+ }
24
+ showIntegrationHelp(args[0]);
25
+ break;
26
+ case 'test':
27
+ if (args.length < 1) {
28
+ console.error(chalk.red('Usage: ralph-starter integrations test <name>'));
29
+ process.exit(1);
30
+ }
31
+ await testIntegration(args[0]);
32
+ break;
33
+ case 'fetch':
34
+ case 'preview':
35
+ if (args.length < 2) {
36
+ console.error(chalk.red('Usage: ralph-starter integrations fetch <name> <identifier>'));
37
+ process.exit(1);
38
+ }
39
+ await fetchAndPreview(args[0], args[1], options);
40
+ break;
41
+ default:
42
+ showCommandHelp();
43
+ break;
44
+ }
45
+ }
46
+ async function listIntegrations() {
47
+ const spinner = ora('Loading integrations...').start();
48
+ try {
49
+ const integrations = await getIntegrationsInfo();
50
+ spinner.stop();
51
+ console.log();
52
+ console.log(chalk.bold.cyan('Available Integrations'));
53
+ console.log(chalk.dim('─'.repeat(60)));
54
+ console.log();
55
+ for (const integration of integrations) {
56
+ // Status indicator
57
+ const statusIcon = integration.available ? chalk.green('✓') : chalk.yellow('○');
58
+ // Auth methods
59
+ const authBadges = integration.authMethods.map((m) => {
60
+ switch (m) {
61
+ case 'cli':
62
+ return chalk.blue('CLI');
63
+ case 'api-key':
64
+ return chalk.magenta('API Key');
65
+ case 'oauth':
66
+ return chalk.cyan('OAuth');
67
+ case 'none':
68
+ return chalk.gray('No Auth');
69
+ default:
70
+ return m;
71
+ }
72
+ });
73
+ // Display
74
+ console.log(` ${statusIcon} ${chalk.bold(integration.displayName)} ${chalk.dim(`(${integration.name})`)}`);
75
+ console.log(` ${chalk.dim(integration.description)}`);
76
+ console.log(` ${chalk.dim('Auth:')} ${authBadges.join(', ')}`);
77
+ if (!integration.available) {
78
+ console.log(` ${chalk.yellow('→')} Run: ${chalk.cyan(`ralph-starter integrations help ${integration.name}`)}`);
79
+ }
80
+ console.log();
81
+ }
82
+ console.log(chalk.dim('─'.repeat(60)));
83
+ console.log(chalk.dim('Use "ralph-starter integrations help <name>" for setup instructions'));
84
+ console.log();
85
+ }
86
+ catch (error) {
87
+ spinner.fail('Failed to load integrations');
88
+ throw error;
89
+ }
90
+ }
91
+ function showIntegrationHelp(name) {
92
+ const integration = getIntegration(name);
93
+ if (!integration) {
94
+ console.error(chalk.red(`Unknown integration: ${name}`));
95
+ console.error(chalk.dim('\nUse "ralph-starter integrations list" to see available integrations'));
96
+ process.exit(1);
97
+ }
98
+ console.log();
99
+ console.log(integration.getHelp());
100
+ console.log();
101
+ }
102
+ async function testIntegration(name) {
103
+ const spinner = ora(`Testing ${name}...`).start();
104
+ const integration = getIntegration(name);
105
+ if (!integration) {
106
+ spinner.fail(`Unknown integration: ${name}`);
107
+ process.exit(1);
108
+ }
109
+ try {
110
+ const available = await integration.isAvailable();
111
+ const authMethod = await integration.getConfiguredAuthMethod();
112
+ if (available && authMethod) {
113
+ spinner.succeed(chalk.green(`${integration.displayName}: Connected via ${authMethod}`));
114
+ }
115
+ else {
116
+ spinner.fail(chalk.yellow(`${integration.displayName}: Not configured`));
117
+ console.log();
118
+ console.log(chalk.dim('Run the following for setup instructions:'));
119
+ console.log(chalk.cyan(` ralph-starter integrations help ${name}`));
120
+ process.exit(1);
121
+ }
122
+ }
123
+ catch (error) {
124
+ spinner.fail(`${integration.displayName}: ${error.message}`);
125
+ process.exit(1);
126
+ }
127
+ }
128
+ async function fetchAndPreview(name, identifier, options) {
129
+ const spinner = ora(`Fetching from ${name}...`).start();
130
+ try {
131
+ const result = await fetchFromIntegration(name, identifier, {
132
+ project: options?.project,
133
+ label: options?.label,
134
+ status: options?.status,
135
+ limit: options?.limit || 5,
136
+ });
137
+ spinner.succeed('Content fetched');
138
+ console.log();
139
+ console.log(chalk.bold.cyan('Source:'), result.source);
140
+ if (result.title) {
141
+ console.log(chalk.bold.cyan('Title:'), result.title);
142
+ }
143
+ if (result.metadata) {
144
+ console.log(chalk.bold.cyan('Metadata:'), JSON.stringify(result.metadata, null, 2));
145
+ }
146
+ console.log();
147
+ console.log(chalk.bold('Preview:'));
148
+ console.log(chalk.dim('─'.repeat(60)));
149
+ // Show first 50 lines
150
+ const lines = result.content.split('\n');
151
+ const preview = lines.slice(0, 50).join('\n');
152
+ console.log(preview);
153
+ if (lines.length > 50) {
154
+ console.log(chalk.dim(`\n... and ${lines.length - 50} more lines`));
155
+ }
156
+ console.log(chalk.dim('─'.repeat(60)));
157
+ }
158
+ catch (error) {
159
+ spinner.fail('Failed to fetch content');
160
+ console.error(chalk.red(error.message));
161
+ process.exit(1);
162
+ }
163
+ }
164
+ function showCommandHelp() {
165
+ console.log(`
166
+ ${chalk.bold('ralph-starter integrations')} - Manage integrations
167
+
168
+ ${chalk.bold('Commands:')}
169
+ list List all integrations with status
170
+ help <name> Show help for a specific integration
171
+ test <name> Test integration connectivity
172
+ fetch <name> <identifier> Fetch and preview data
173
+
174
+ ${chalk.bold('Fetch Options:')}
175
+ --project <name> Project/repo name
176
+ --label <name> Filter by label
177
+ --status <status> Filter by status (e.g., open, closed)
178
+ --limit <n> Maximum items to fetch
179
+
180
+ ${chalk.bold('Available Integrations:')}
181
+ github GitHub issues and PRs
182
+ linear Linear issues
183
+ notion Notion pages (public and private)
184
+
185
+ ${chalk.bold('Examples:')}
186
+ ralph-starter integrations list
187
+ ralph-starter integrations help github
188
+ ralph-starter integrations test linear
189
+ ralph-starter integrations fetch github owner/repo
190
+ ralph-starter integrations fetch notion "https://notion.so/Page-abc123"
191
+ `);
192
+ }
193
+ //# sourceMappingURL=integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AASlC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAc,EACd,OAAoC;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,IAAI;YACP,MAAM,gBAAgB,EAAE,CAAC;YACzB,MAAM;QAER,KAAK,MAAM;YACT,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,MAAM;YACT,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM;QAER,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM;QAER;YACE,eAAe,EAAE,CAAC;YAClB,MAAM;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,mBAAmB;YACnB,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhF,eAAe;YACf,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnD,QAAQ,CAAC,EAAE,CAAC;oBACV,KAAK,KAAK;wBACR,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3B,KAAK,SAAS;wBACZ,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAClC,KAAK,OAAO;wBACV,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7B,KAAK,MAAM;wBACT,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B;wBACE,OAAO,CAAC,CAAC;gBACb,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,UAAU;YACV,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAC/F,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,mCAAmC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CACrG,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CACnF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAElD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,uBAAuB,EAAE,CAAC;QAE/D,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,WAAW,mBAAmB,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,kBAAkB,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,WAAW,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,UAAkB,EAClB,OAAoC;IAEpC,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE;YAC1D,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEnC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,sBAAsB;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CAAC,GAAG,CAAC;EACZ,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC;;EAExC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;EAMvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;;;EAM5B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;;;;;EAKrC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;CAMxB,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface PlanCommandOptions {
2
+ auto?: boolean;
3
+ }
4
+ export declare function planCommand(options: PlanCommandOptions): Promise<void>;
5
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF5E"}