@ginkoai/cli 1.0.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 (711) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -0
  3. package/dist/adapters/ai-adapter.d.ts +25 -0
  4. package/dist/adapters/ai-adapter.d.ts.map +1 -0
  5. package/dist/adapters/ai-adapter.js +21 -0
  6. package/dist/adapters/ai-adapter.js.map +1 -0
  7. package/dist/adapters/ai-completion.d.ts +35 -0
  8. package/dist/adapters/ai-completion.d.ts.map +1 -0
  9. package/dist/adapters/ai-completion.js +118 -0
  10. package/dist/adapters/ai-completion.js.map +1 -0
  11. package/dist/adapters/base.d.ts +64 -0
  12. package/dist/adapters/base.d.ts.map +1 -0
  13. package/dist/adapters/base.js +48 -0
  14. package/dist/adapters/base.js.map +1 -0
  15. package/dist/adapters/claude-adapter.d.ts +18 -0
  16. package/dist/adapters/claude-adapter.d.ts.map +1 -0
  17. package/dist/adapters/claude-adapter.js +73 -0
  18. package/dist/adapters/claude-adapter.js.map +1 -0
  19. package/dist/adapters/claude.d.ts +20 -0
  20. package/dist/adapters/claude.d.ts.map +1 -0
  21. package/dist/adapters/claude.js +91 -0
  22. package/dist/adapters/claude.js.map +1 -0
  23. package/dist/adapters/copilot-adapter.d.ts +16 -0
  24. package/dist/adapters/copilot-adapter.d.ts.map +1 -0
  25. package/dist/adapters/copilot-adapter.js +288 -0
  26. package/dist/adapters/copilot-adapter.js.map +1 -0
  27. package/dist/adapters/cursor-adapter.d.ts +22 -0
  28. package/dist/adapters/cursor-adapter.d.ts.map +1 -0
  29. package/dist/adapters/cursor-adapter.js +108 -0
  30. package/dist/adapters/cursor-adapter.js.map +1 -0
  31. package/dist/adapters/detector.d.ts +29 -0
  32. package/dist/adapters/detector.d.ts.map +1 -0
  33. package/dist/adapters/detector.js +132 -0
  34. package/dist/adapters/detector.js.map +1 -0
  35. package/dist/adapters/generic-adapter.d.ts +18 -0
  36. package/dist/adapters/generic-adapter.d.ts.map +1 -0
  37. package/dist/adapters/generic-adapter.js +37 -0
  38. package/dist/adapters/generic-adapter.js.map +1 -0
  39. package/dist/adapters/gpt4.d.ts +20 -0
  40. package/dist/adapters/gpt4.d.ts.map +1 -0
  41. package/dist/adapters/gpt4.js +114 -0
  42. package/dist/adapters/gpt4.js.map +1 -0
  43. package/dist/adapters/grok-adapter.d.ts +18 -0
  44. package/dist/adapters/grok-adapter.d.ts.map +1 -0
  45. package/dist/adapters/grok-adapter.js +94 -0
  46. package/dist/adapters/grok-adapter.js.map +1 -0
  47. package/dist/adapters/index.d.ts +18 -0
  48. package/dist/adapters/index.d.ts.map +1 -0
  49. package/dist/adapters/index.js +71 -0
  50. package/dist/adapters/index.js.map +1 -0
  51. package/dist/adapters/openai-adapter.d.ts +18 -0
  52. package/dist/adapters/openai-adapter.d.ts.map +1 -0
  53. package/dist/adapters/openai-adapter.js +97 -0
  54. package/dist/adapters/openai-adapter.js.map +1 -0
  55. package/dist/adapters/universal.d.ts +20 -0
  56. package/dist/adapters/universal.d.ts.map +1 -0
  57. package/dist/adapters/universal.js +80 -0
  58. package/dist/adapters/universal.js.map +1 -0
  59. package/dist/analysis/deep-analyzer.d.ts +61 -0
  60. package/dist/analysis/deep-analyzer.d.ts.map +1 -0
  61. package/dist/analysis/deep-analyzer.js +349 -0
  62. package/dist/analysis/deep-analyzer.js.map +1 -0
  63. package/dist/analysis/project-analyzer.d.ts +25 -0
  64. package/dist/analysis/project-analyzer.d.ts.map +1 -0
  65. package/dist/analysis/project-analyzer.js +244 -0
  66. package/dist/analysis/project-analyzer.js.map +1 -0
  67. package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts +82 -0
  68. package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts.map +1 -0
  69. package/dist/commands/architecture/architecture-pipeline-enhanced.js +649 -0
  70. package/dist/commands/architecture/architecture-pipeline-enhanced.js.map +1 -0
  71. package/dist/commands/architecture/architecture-pipeline.d.ts +105 -0
  72. package/dist/commands/architecture/architecture-pipeline.d.ts.map +1 -0
  73. package/dist/commands/architecture/architecture-pipeline.js +510 -0
  74. package/dist/commands/architecture/architecture-pipeline.js.map +1 -0
  75. package/dist/commands/architecture/architecture-reflection.d.ts +67 -0
  76. package/dist/commands/architecture/architecture-reflection.d.ts.map +1 -0
  77. package/dist/commands/architecture/architecture-reflection.js +508 -0
  78. package/dist/commands/architecture/architecture-reflection.js.map +1 -0
  79. package/dist/commands/architecture/index.d.ts +21 -0
  80. package/dist/commands/architecture/index.d.ts.map +1 -0
  81. package/dist/commands/architecture/index.js +41 -0
  82. package/dist/commands/architecture/index.js.map +1 -0
  83. package/dist/commands/architecture.d.ts +20 -0
  84. package/dist/commands/architecture.d.ts.map +1 -0
  85. package/dist/commands/architecture.js +223 -0
  86. package/dist/commands/architecture.js.map +1 -0
  87. package/dist/commands/backlog/ai-enhanced.d.ts +83 -0
  88. package/dist/commands/backlog/ai-enhanced.d.ts.map +1 -0
  89. package/dist/commands/backlog/ai-enhanced.js +462 -0
  90. package/dist/commands/backlog/ai-enhanced.js.map +1 -0
  91. package/dist/commands/backlog/ai-prompt.d.ts +21 -0
  92. package/dist/commands/backlog/ai-prompt.d.ts.map +1 -0
  93. package/dist/commands/backlog/ai-prompt.js +373 -0
  94. package/dist/commands/backlog/ai-prompt.js.map +1 -0
  95. package/dist/commands/backlog/ai-template.d.ts +21 -0
  96. package/dist/commands/backlog/ai-template.d.ts.map +1 -0
  97. package/dist/commands/backlog/ai-template.js +374 -0
  98. package/dist/commands/backlog/ai-template.js.map +1 -0
  99. package/dist/commands/backlog/ai.d.ts +21 -0
  100. package/dist/commands/backlog/ai.d.ts.map +1 -0
  101. package/dist/commands/backlog/ai.js +76 -0
  102. package/dist/commands/backlog/ai.js.map +1 -0
  103. package/dist/commands/backlog/backlog-pipeline.d.ts +103 -0
  104. package/dist/commands/backlog/backlog-pipeline.d.ts.map +1 -0
  105. package/dist/commands/backlog/backlog-pipeline.js +538 -0
  106. package/dist/commands/backlog/backlog-pipeline.js.map +1 -0
  107. package/dist/commands/backlog/backlog-reflection.d.ts +48 -0
  108. package/dist/commands/backlog/backlog-reflection.d.ts.map +1 -0
  109. package/dist/commands/backlog/backlog-reflection.js +231 -0
  110. package/dist/commands/backlog/backlog-reflection.js.map +1 -0
  111. package/dist/commands/backlog/base.d.ts +95 -0
  112. package/dist/commands/backlog/base.d.ts.map +1 -0
  113. package/dist/commands/backlog/base.js +291 -0
  114. package/dist/commands/backlog/base.js.map +1 -0
  115. package/dist/commands/backlog/complete.d.ts +20 -0
  116. package/dist/commands/backlog/complete.d.ts.map +1 -0
  117. package/dist/commands/backlog/complete.js +83 -0
  118. package/dist/commands/backlog/complete.js.map +1 -0
  119. package/dist/commands/backlog/context-gatherer.d.ts +76 -0
  120. package/dist/commands/backlog/context-gatherer.d.ts.map +1 -0
  121. package/dist/commands/backlog/context-gatherer.js +216 -0
  122. package/dist/commands/backlog/context-gatherer.js.map +1 -0
  123. package/dist/commands/backlog/create.d.ts +25 -0
  124. package/dist/commands/backlog/create.d.ts.map +1 -0
  125. package/dist/commands/backlog/create.js +131 -0
  126. package/dist/commands/backlog/create.js.map +1 -0
  127. package/dist/commands/backlog/index.d.ts +17 -0
  128. package/dist/commands/backlog/index.d.ts.map +1 -0
  129. package/dist/commands/backlog/index.js +177 -0
  130. package/dist/commands/backlog/index.js.map +1 -0
  131. package/dist/commands/backlog/list.d.ts +25 -0
  132. package/dist/commands/backlog/list.d.ts.map +1 -0
  133. package/dist/commands/backlog/list.js +136 -0
  134. package/dist/commands/backlog/list.js.map +1 -0
  135. package/dist/commands/backlog/quick-query.d.ts +16 -0
  136. package/dist/commands/backlog/quick-query.d.ts.map +1 -0
  137. package/dist/commands/backlog/quick-query.js +126 -0
  138. package/dist/commands/backlog/quick-query.js.map +1 -0
  139. package/dist/commands/backlog/show.d.ts +20 -0
  140. package/dist/commands/backlog/show.d.ts.map +1 -0
  141. package/dist/commands/backlog/show.js +95 -0
  142. package/dist/commands/backlog/show.js.map +1 -0
  143. package/dist/commands/backlog/update.d.ts +25 -0
  144. package/dist/commands/backlog/update.d.ts.map +1 -0
  145. package/dist/commands/backlog/update.js +113 -0
  146. package/dist/commands/backlog/update.js.map +1 -0
  147. package/dist/commands/bug/bug-context-gatherer.d.ts +58 -0
  148. package/dist/commands/bug/bug-context-gatherer.d.ts.map +1 -0
  149. package/dist/commands/bug/bug-context-gatherer.js +228 -0
  150. package/dist/commands/bug/bug-context-gatherer.js.map +1 -0
  151. package/dist/commands/bug/bug-reflection.d.ts +70 -0
  152. package/dist/commands/bug/bug-reflection.d.ts.map +1 -0
  153. package/dist/commands/bug/bug-reflection.js +343 -0
  154. package/dist/commands/bug/bug-reflection.js.map +1 -0
  155. package/dist/commands/capture/capture-reflection.d.ts +139 -0
  156. package/dist/commands/capture/capture-reflection.d.ts.map +1 -0
  157. package/dist/commands/capture/capture-reflection.js +583 -0
  158. package/dist/commands/capture/capture-reflection.js.map +1 -0
  159. package/dist/commands/capture.d.ts +22 -0
  160. package/dist/commands/capture.d.ts.map +1 -0
  161. package/dist/commands/capture.js +301 -0
  162. package/dist/commands/capture.js.map +1 -0
  163. package/dist/commands/changelog/changelog-reflection.d.ts +65 -0
  164. package/dist/commands/changelog/changelog-reflection.d.ts.map +1 -0
  165. package/dist/commands/changelog/changelog-reflection.js +252 -0
  166. package/dist/commands/changelog/changelog-reflection.js.map +1 -0
  167. package/dist/commands/compact.d.ts +15 -0
  168. package/dist/commands/compact.d.ts.map +1 -0
  169. package/dist/commands/compact.js +113 -0
  170. package/dist/commands/compact.js.map +1 -0
  171. package/dist/commands/config.d.ts +10 -0
  172. package/dist/commands/config.d.ts.map +1 -0
  173. package/dist/commands/config.js +85 -0
  174. package/dist/commands/config.js.map +1 -0
  175. package/dist/commands/context-new.d.ts +18 -0
  176. package/dist/commands/context-new.d.ts.map +1 -0
  177. package/dist/commands/context-new.js +265 -0
  178. package/dist/commands/context-new.js.map +1 -0
  179. package/dist/commands/context.d.ts +16 -0
  180. package/dist/commands/context.d.ts.map +1 -0
  181. package/dist/commands/context.js +82 -0
  182. package/dist/commands/context.js.map +1 -0
  183. package/dist/commands/documentation/documentation-pipeline.d.ts +130 -0
  184. package/dist/commands/documentation/documentation-pipeline.d.ts.map +1 -0
  185. package/dist/commands/documentation/documentation-pipeline.js +716 -0
  186. package/dist/commands/documentation/documentation-pipeline.js.map +1 -0
  187. package/dist/commands/documentation/documentation-reflection.d.ts +54 -0
  188. package/dist/commands/documentation/documentation-reflection.d.ts.map +1 -0
  189. package/dist/commands/documentation/documentation-reflection.js +338 -0
  190. package/dist/commands/documentation/documentation-reflection.js.map +1 -0
  191. package/dist/commands/explore/explore-reflection-pipeline.d.ts +117 -0
  192. package/dist/commands/explore/explore-reflection-pipeline.d.ts.map +1 -0
  193. package/dist/commands/explore/explore-reflection-pipeline.js +503 -0
  194. package/dist/commands/explore/explore-reflection-pipeline.js.map +1 -0
  195. package/dist/commands/explore/index.d.ts +29 -0
  196. package/dist/commands/explore/index.d.ts.map +1 -0
  197. package/dist/commands/explore/index.js +30 -0
  198. package/dist/commands/explore/index.js.map +1 -0
  199. package/dist/commands/explore.d.ts +20 -0
  200. package/dist/commands/explore.d.ts.map +1 -0
  201. package/dist/commands/explore.js +224 -0
  202. package/dist/commands/explore.js.map +1 -0
  203. package/dist/commands/git/git-context-gatherer.d.ts +101 -0
  204. package/dist/commands/git/git-context-gatherer.d.ts.map +1 -0
  205. package/dist/commands/git/git-context-gatherer.js +284 -0
  206. package/dist/commands/git/git-context-gatherer.js.map +1 -0
  207. package/dist/commands/git/git-pipeline.d.ts +75 -0
  208. package/dist/commands/git/git-pipeline.d.ts.map +1 -0
  209. package/dist/commands/git/git-pipeline.js +530 -0
  210. package/dist/commands/git/git-pipeline.js.map +1 -0
  211. package/dist/commands/git/git-reflection.d.ts +50 -0
  212. package/dist/commands/git/git-reflection.d.ts.map +1 -0
  213. package/dist/commands/git/git-reflection.js +193 -0
  214. package/dist/commands/git/git-reflection.js.map +1 -0
  215. package/dist/commands/handoff/handoff-reflection-pipeline.d.ts +106 -0
  216. package/dist/commands/handoff/handoff-reflection-pipeline.d.ts.map +1 -0
  217. package/dist/commands/handoff/handoff-reflection-pipeline.js +534 -0
  218. package/dist/commands/handoff/handoff-reflection-pipeline.js.map +1 -0
  219. package/dist/commands/handoff/handoff-save.d.ts +16 -0
  220. package/dist/commands/handoff/handoff-save.d.ts.map +1 -0
  221. package/dist/commands/handoff/handoff-save.js +72 -0
  222. package/dist/commands/handoff/handoff-save.js.map +1 -0
  223. package/dist/commands/handoff/index.d.ts +19 -0
  224. package/dist/commands/handoff/index.d.ts.map +1 -0
  225. package/dist/commands/handoff/index.js +55 -0
  226. package/dist/commands/handoff/index.js.map +1 -0
  227. package/dist/commands/handoff-ai-orig.d.ts +27 -0
  228. package/dist/commands/handoff-ai-orig.d.ts.map +1 -0
  229. package/dist/commands/handoff-ai-orig.js +405 -0
  230. package/dist/commands/handoff-ai-orig.js.map +1 -0
  231. package/dist/commands/handoff-ai.d.ts +27 -0
  232. package/dist/commands/handoff-ai.d.ts.map +1 -0
  233. package/dist/commands/handoff-ai.js +405 -0
  234. package/dist/commands/handoff-ai.js.map +1 -0
  235. package/dist/commands/handoff-enhanced-orig.d.ts +25 -0
  236. package/dist/commands/handoff-enhanced-orig.d.ts.map +1 -0
  237. package/dist/commands/handoff-enhanced-orig.js +349 -0
  238. package/dist/commands/handoff-enhanced-orig.js.map +1 -0
  239. package/dist/commands/handoff-enhanced.d.ts +25 -0
  240. package/dist/commands/handoff-enhanced.d.ts.map +1 -0
  241. package/dist/commands/handoff-enhanced.js +349 -0
  242. package/dist/commands/handoff-enhanced.js.map +1 -0
  243. package/dist/commands/handoff-orig.d.ts +10 -0
  244. package/dist/commands/handoff-orig.d.ts.map +1 -0
  245. package/dist/commands/handoff-orig.js +167 -0
  246. package/dist/commands/handoff-orig.js.map +1 -0
  247. package/dist/commands/handoff.d.ts +10 -0
  248. package/dist/commands/handoff.d.ts.map +1 -0
  249. package/dist/commands/handoff.js +167 -0
  250. package/dist/commands/handoff.js.map +1 -0
  251. package/dist/commands/init-copilot.d.ts +6 -0
  252. package/dist/commands/init-copilot.d.ts.map +1 -0
  253. package/dist/commands/init-copilot.js +151 -0
  254. package/dist/commands/init-copilot.js.map +1 -0
  255. package/dist/commands/init-cursor.d.ts +5 -0
  256. package/dist/commands/init-cursor.d.ts.map +1 -0
  257. package/dist/commands/init-cursor.js +95 -0
  258. package/dist/commands/init-cursor.js.map +1 -0
  259. package/dist/commands/init-enhanced.d.ts +20 -0
  260. package/dist/commands/init-enhanced.d.ts.map +1 -0
  261. package/dist/commands/init-enhanced.js +430 -0
  262. package/dist/commands/init-enhanced.js.map +1 -0
  263. package/dist/commands/init.d.ts +16 -0
  264. package/dist/commands/init.d.ts.map +1 -0
  265. package/dist/commands/init.js +213 -0
  266. package/dist/commands/init.js.map +1 -0
  267. package/dist/commands/magic-prompt.d.ts +20 -0
  268. package/dist/commands/magic-prompt.d.ts.map +1 -0
  269. package/dist/commands/magic-prompt.js +166 -0
  270. package/dist/commands/magic-prompt.js.map +1 -0
  271. package/dist/commands/magic-simple.d.ts +20 -0
  272. package/dist/commands/magic-simple.d.ts.map +1 -0
  273. package/dist/commands/magic-simple.js +32 -0
  274. package/dist/commands/magic-simple.js.map +1 -0
  275. package/dist/commands/magic.d.ts +20 -0
  276. package/dist/commands/magic.d.ts.map +1 -0
  277. package/dist/commands/magic.js +144 -0
  278. package/dist/commands/magic.js.map +1 -0
  279. package/dist/commands/plan/plan-reflection-pipeline.d.ts +126 -0
  280. package/dist/commands/plan/plan-reflection-pipeline.d.ts.map +1 -0
  281. package/dist/commands/plan/plan-reflection-pipeline.js +554 -0
  282. package/dist/commands/plan/plan-reflection-pipeline.js.map +1 -0
  283. package/dist/commands/plan.d.ts +20 -0
  284. package/dist/commands/plan.d.ts.map +1 -0
  285. package/dist/commands/plan.js +253 -0
  286. package/dist/commands/plan.js.map +1 -0
  287. package/dist/commands/prd/index.d.ts +21 -0
  288. package/dist/commands/prd/index.d.ts.map +1 -0
  289. package/dist/commands/prd/index.js +41 -0
  290. package/dist/commands/prd/index.js.map +1 -0
  291. package/dist/commands/prd/prd-pipeline-enhanced.d.ts +82 -0
  292. package/dist/commands/prd/prd-pipeline-enhanced.d.ts.map +1 -0
  293. package/dist/commands/prd/prd-pipeline-enhanced.js +565 -0
  294. package/dist/commands/prd/prd-pipeline-enhanced.js.map +1 -0
  295. package/dist/commands/prd/prd-pipeline.d.ts +106 -0
  296. package/dist/commands/prd/prd-pipeline.d.ts.map +1 -0
  297. package/dist/commands/prd/prd-pipeline.js +491 -0
  298. package/dist/commands/prd/prd-pipeline.js.map +1 -0
  299. package/dist/commands/prd/prd-reflection-enhanced.d.ts +63 -0
  300. package/dist/commands/prd/prd-reflection-enhanced.d.ts.map +1 -0
  301. package/dist/commands/prd/prd-reflection-enhanced.js +310 -0
  302. package/dist/commands/prd/prd-reflection-enhanced.js.map +1 -0
  303. package/dist/commands/prd/prd-reflection.d.ts +59 -0
  304. package/dist/commands/prd/prd-reflection.d.ts.map +1 -0
  305. package/dist/commands/prd/prd-reflection.js +548 -0
  306. package/dist/commands/prd/prd-reflection.js.map +1 -0
  307. package/dist/commands/reflect.d.ts +24 -0
  308. package/dist/commands/reflect.d.ts.map +1 -0
  309. package/dist/commands/reflect.js +135 -0
  310. package/dist/commands/reflect.js.map +1 -0
  311. package/dist/commands/ship/ship-reflection.d.ts +164 -0
  312. package/dist/commands/ship/ship-reflection.d.ts.map +1 -0
  313. package/dist/commands/ship/ship-reflection.js +732 -0
  314. package/dist/commands/ship/ship-reflection.js.map +1 -0
  315. package/dist/commands/ship-ai.d.ts +28 -0
  316. package/dist/commands/ship-ai.d.ts.map +1 -0
  317. package/dist/commands/ship-ai.js +318 -0
  318. package/dist/commands/ship-ai.js.map +1 -0
  319. package/dist/commands/ship.d.ts +17 -0
  320. package/dist/commands/ship.d.ts.map +1 -0
  321. package/dist/commands/ship.js +175 -0
  322. package/dist/commands/ship.js.map +1 -0
  323. package/dist/commands/sprint/index.d.ts +21 -0
  324. package/dist/commands/sprint/index.d.ts.map +1 -0
  325. package/dist/commands/sprint/index.js +39 -0
  326. package/dist/commands/sprint/index.js.map +1 -0
  327. package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts +142 -0
  328. package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts.map +1 -0
  329. package/dist/commands/sprint/sprint-pipeline-enhanced.js +822 -0
  330. package/dist/commands/sprint/sprint-pipeline-enhanced.js.map +1 -0
  331. package/dist/commands/sprint/sprint-pipeline.d.ts +72 -0
  332. package/dist/commands/sprint/sprint-pipeline.d.ts.map +1 -0
  333. package/dist/commands/sprint/sprint-pipeline.js +363 -0
  334. package/dist/commands/sprint/sprint-pipeline.js.map +1 -0
  335. package/dist/commands/start/index.d.ts +19 -0
  336. package/dist/commands/start/index.d.ts.map +1 -0
  337. package/dist/commands/start/index.js +41 -0
  338. package/dist/commands/start/index.js.map +1 -0
  339. package/dist/commands/start/start-reflection-pipeline.d.ts +99 -0
  340. package/dist/commands/start/start-reflection-pipeline.d.ts.map +1 -0
  341. package/dist/commands/start/start-reflection-pipeline.js +458 -0
  342. package/dist/commands/start/start-reflection-pipeline.js.map +1 -0
  343. package/dist/commands/start/start-reflection.d.ts +89 -0
  344. package/dist/commands/start/start-reflection.d.ts.map +1 -0
  345. package/dist/commands/start/start-reflection.js +572 -0
  346. package/dist/commands/start/start-reflection.js.map +1 -0
  347. package/dist/commands/start/start-with-synthesis.d.ts +20 -0
  348. package/dist/commands/start/start-with-synthesis.d.ts.map +1 -0
  349. package/dist/commands/start/start-with-synthesis.js +134 -0
  350. package/dist/commands/start/start-with-synthesis.js.map +1 -0
  351. package/dist/commands/start-enhanced-orig.d.ts +19 -0
  352. package/dist/commands/start-enhanced-orig.d.ts.map +1 -0
  353. package/dist/commands/start-enhanced-orig.js +434 -0
  354. package/dist/commands/start-enhanced-orig.js.map +1 -0
  355. package/dist/commands/start-enhanced.d.ts +19 -0
  356. package/dist/commands/start-enhanced.d.ts.map +1 -0
  357. package/dist/commands/start-enhanced.js +434 -0
  358. package/dist/commands/start-enhanced.js.map +1 -0
  359. package/dist/commands/start-orig.d.ts +10 -0
  360. package/dist/commands/start-orig.d.ts.map +1 -0
  361. package/dist/commands/start-orig.js +119 -0
  362. package/dist/commands/start-orig.js.map +1 -0
  363. package/dist/commands/start.d.ts +10 -0
  364. package/dist/commands/start.d.ts.map +1 -0
  365. package/dist/commands/start.js +119 -0
  366. package/dist/commands/start.js.map +1 -0
  367. package/dist/commands/status.d.ts +11 -0
  368. package/dist/commands/status.d.ts.map +1 -0
  369. package/dist/commands/status.js +119 -0
  370. package/dist/commands/status.js.map +1 -0
  371. package/dist/commands/testing/index.d.ts +21 -0
  372. package/dist/commands/testing/index.d.ts.map +1 -0
  373. package/dist/commands/testing/index.js +41 -0
  374. package/dist/commands/testing/index.js.map +1 -0
  375. package/dist/commands/testing/testing-pipeline-enhanced.d.ts +94 -0
  376. package/dist/commands/testing/testing-pipeline-enhanced.d.ts.map +1 -0
  377. package/dist/commands/testing/testing-pipeline-enhanced.js +760 -0
  378. package/dist/commands/testing/testing-pipeline-enhanced.js.map +1 -0
  379. package/dist/commands/testing/testing-pipeline.d.ts +77 -0
  380. package/dist/commands/testing/testing-pipeline.d.ts.map +1 -0
  381. package/dist/commands/testing/testing-pipeline.js +479 -0
  382. package/dist/commands/testing/testing-pipeline.js.map +1 -0
  383. package/dist/commands/uninstall-copilot.d.ts +5 -0
  384. package/dist/commands/uninstall-copilot.d.ts.map +1 -0
  385. package/dist/commands/uninstall-copilot.js +143 -0
  386. package/dist/commands/uninstall-copilot.js.map +1 -0
  387. package/dist/commands/uninstall-cursor.d.ts +6 -0
  388. package/dist/commands/uninstall-cursor.d.ts.map +1 -0
  389. package/dist/commands/uninstall-cursor.js +124 -0
  390. package/dist/commands/uninstall-cursor.js.map +1 -0
  391. package/dist/commands/vibecheck-ai.d.ts +25 -0
  392. package/dist/commands/vibecheck-ai.d.ts.map +1 -0
  393. package/dist/commands/vibecheck-ai.js +260 -0
  394. package/dist/commands/vibecheck-ai.js.map +1 -0
  395. package/dist/commands/vibecheck-aware.d.ts +19 -0
  396. package/dist/commands/vibecheck-aware.d.ts.map +1 -0
  397. package/dist/commands/vibecheck-aware.js +350 -0
  398. package/dist/commands/vibecheck-aware.js.map +1 -0
  399. package/dist/commands/vibecheck-final.d.ts +22 -0
  400. package/dist/commands/vibecheck-final.d.ts.map +1 -0
  401. package/dist/commands/vibecheck-final.js +132 -0
  402. package/dist/commands/vibecheck-final.js.map +1 -0
  403. package/dist/commands/vibecheck-natural.d.ts +18 -0
  404. package/dist/commands/vibecheck-natural.d.ts.map +1 -0
  405. package/dist/commands/vibecheck-natural.js +105 -0
  406. package/dist/commands/vibecheck-natural.js.map +1 -0
  407. package/dist/commands/vibecheck-simple.d.ts +20 -0
  408. package/dist/commands/vibecheck-simple.d.ts.map +1 -0
  409. package/dist/commands/vibecheck-simple.js +136 -0
  410. package/dist/commands/vibecheck-simple.js.map +1 -0
  411. package/dist/commands/vibecheck.d.ts +10 -0
  412. package/dist/commands/vibecheck.d.ts.map +1 -0
  413. package/dist/commands/vibecheck.js +95 -0
  414. package/dist/commands/vibecheck.js.map +1 -0
  415. package/dist/core/adapters/path-adapter.d.ts +144 -0
  416. package/dist/core/adapters/path-adapter.d.ts.map +1 -0
  417. package/dist/core/adapters/path-adapter.js +245 -0
  418. package/dist/core/adapters/path-adapter.js.map +1 -0
  419. package/dist/core/command-shortcuts.d.ts +62 -0
  420. package/dist/core/command-shortcuts.d.ts.map +1 -0
  421. package/dist/core/command-shortcuts.js +124 -0
  422. package/dist/core/command-shortcuts.js.map +1 -0
  423. package/dist/core/config/config-aware-reflection.d.ts +37 -0
  424. package/dist/core/config/config-aware-reflection.d.ts.map +1 -0
  425. package/dist/core/config/config-aware-reflection.js +97 -0
  426. package/dist/core/config/config-aware-reflection.js.map +1 -0
  427. package/dist/core/config/config-loader.d.ts +154 -0
  428. package/dist/core/config/config-loader.d.ts.map +1 -0
  429. package/dist/core/config/config-loader.js +424 -0
  430. package/dist/core/config/config-loader.js.map +1 -0
  431. package/dist/core/config/config-migrator.d.ts +150 -0
  432. package/dist/core/config/config-migrator.d.ts.map +1 -0
  433. package/dist/core/config/config-migrator.js +423 -0
  434. package/dist/core/config/config-migrator.js.map +1 -0
  435. package/dist/core/config/config-schema.d.ts +276 -0
  436. package/dist/core/config/config-schema.d.ts.map +1 -0
  437. package/dist/core/config/config-schema.js +277 -0
  438. package/dist/core/config/config-schema.js.map +1 -0
  439. package/dist/core/config/index.d.ts +260 -0
  440. package/dist/core/config/index.d.ts.map +1 -0
  441. package/dist/core/config/index.js +283 -0
  442. package/dist/core/config/index.js.map +1 -0
  443. package/dist/core/config/interactive-config.d.ts +76 -0
  444. package/dist/core/config/interactive-config.d.ts.map +1 -0
  445. package/dist/core/config/interactive-config.js +315 -0
  446. package/dist/core/config/interactive-config.js.map +1 -0
  447. package/dist/core/config/path-config.d.ts +121 -0
  448. package/dist/core/config/path-config.d.ts.map +1 -0
  449. package/dist/core/config/path-config.js +210 -0
  450. package/dist/core/config/path-config.js.map +1 -0
  451. package/dist/core/config/path-resolver.d.ts +151 -0
  452. package/dist/core/config/path-resolver.d.ts.map +1 -0
  453. package/dist/core/config/path-resolver.js +343 -0
  454. package/dist/core/config/path-resolver.js.map +1 -0
  455. package/dist/core/config/project-detector.d.ts +58 -0
  456. package/dist/core/config/project-detector.d.ts.map +1 -0
  457. package/dist/core/config/project-detector.js +310 -0
  458. package/dist/core/config/project-detector.js.map +1 -0
  459. package/dist/core/config-backup/config-aware-reflection.d.ts +37 -0
  460. package/dist/core/config-backup/config-aware-reflection.d.ts.map +1 -0
  461. package/dist/core/config-backup/config-aware-reflection.js +97 -0
  462. package/dist/core/config-backup/config-aware-reflection.js.map +1 -0
  463. package/dist/core/config-backup/config-loader.d.ts +71 -0
  464. package/dist/core/config-backup/config-loader.d.ts.map +1 -0
  465. package/dist/core/config-backup/config-loader.js +288 -0
  466. package/dist/core/config-backup/config-loader.js.map +1 -0
  467. package/dist/core/config-backup/interactive-config.d.ts +76 -0
  468. package/dist/core/config-backup/interactive-config.d.ts.map +1 -0
  469. package/dist/core/config-backup/interactive-config.js +315 -0
  470. package/dist/core/config-backup/interactive-config.js.map +1 -0
  471. package/dist/core/config-backup/path-config.d.ts +121 -0
  472. package/dist/core/config-backup/path-config.d.ts.map +1 -0
  473. package/dist/core/config-backup/path-config.js +210 -0
  474. package/dist/core/config-backup/path-config.js.map +1 -0
  475. package/dist/core/config-backup/project-detector.d.ts +58 -0
  476. package/dist/core/config-backup/project-detector.d.ts.map +1 -0
  477. package/dist/core/config-backup/project-detector.js +310 -0
  478. package/dist/core/config-backup/project-detector.js.map +1 -0
  479. package/dist/core/documents/document-manager.d.ts +97 -0
  480. package/dist/core/documents/document-manager.d.ts.map +1 -0
  481. package/dist/core/documents/document-manager.js +441 -0
  482. package/dist/core/documents/document-manager.js.map +1 -0
  483. package/dist/core/documents/document-migrator.d.ts +138 -0
  484. package/dist/core/documents/document-migrator.d.ts.map +1 -0
  485. package/dist/core/documents/document-migrator.js +349 -0
  486. package/dist/core/documents/document-migrator.js.map +1 -0
  487. package/dist/core/documents/document-namer.d.ts +111 -0
  488. package/dist/core/documents/document-namer.d.ts.map +1 -0
  489. package/dist/core/documents/document-namer.js +225 -0
  490. package/dist/core/documents/document-namer.js.map +1 -0
  491. package/dist/core/documents/examples.d.ts +74 -0
  492. package/dist/core/documents/examples.d.ts.map +1 -0
  493. package/dist/core/documents/examples.js +273 -0
  494. package/dist/core/documents/examples.js.map +1 -0
  495. package/dist/core/documents/file-system.d.ts +93 -0
  496. package/dist/core/documents/file-system.d.ts.map +1 -0
  497. package/dist/core/documents/file-system.js +432 -0
  498. package/dist/core/documents/file-system.js.map +1 -0
  499. package/dist/core/documents/index.d.ts +97 -0
  500. package/dist/core/documents/index.d.ts.map +1 -0
  501. package/dist/core/documents/index.js +119 -0
  502. package/dist/core/documents/index.js.map +1 -0
  503. package/dist/core/documents/markdown-processor.d.ts +84 -0
  504. package/dist/core/documents/markdown-processor.d.ts.map +1 -0
  505. package/dist/core/documents/markdown-processor.js +302 -0
  506. package/dist/core/documents/markdown-processor.js.map +1 -0
  507. package/dist/core/documents/sequence-manager.d.ts +107 -0
  508. package/dist/core/documents/sequence-manager.d.ts.map +1 -0
  509. package/dist/core/documents/sequence-manager.js +246 -0
  510. package/dist/core/documents/sequence-manager.js.map +1 -0
  511. package/dist/core/documents/template-engine.d.ts +101 -0
  512. package/dist/core/documents/template-engine.d.ts.map +1 -0
  513. package/dist/core/documents/template-engine.js +440 -0
  514. package/dist/core/documents/template-engine.js.map +1 -0
  515. package/dist/core/handoff-quality.d.ts +164 -0
  516. package/dist/core/handoff-quality.d.ts.map +1 -0
  517. package/dist/core/handoff-quality.js +590 -0
  518. package/dist/core/handoff-quality.js.map +1 -0
  519. package/dist/core/platform/hook-adapter.d.ts +109 -0
  520. package/dist/core/platform/hook-adapter.d.ts.map +1 -0
  521. package/dist/core/platform/hook-adapter.js +527 -0
  522. package/dist/core/platform/hook-adapter.js.map +1 -0
  523. package/dist/core/platform/hook-migration.d.ts +73 -0
  524. package/dist/core/platform/hook-migration.d.ts.map +1 -0
  525. package/dist/core/platform/hook-migration.js +339 -0
  526. package/dist/core/platform/hook-migration.js.map +1 -0
  527. package/dist/core/platform/hook-migrator.d.ts +49 -0
  528. package/dist/core/platform/hook-migrator.d.ts.map +1 -0
  529. package/dist/core/platform/hook-migrator.js +305 -0
  530. package/dist/core/platform/hook-migrator.js.map +1 -0
  531. package/dist/core/platform/hook-templates.d.ts +60 -0
  532. package/dist/core/platform/hook-templates.d.ts.map +1 -0
  533. package/dist/core/platform/hook-templates.js +352 -0
  534. package/dist/core/platform/hook-templates.js.map +1 -0
  535. package/dist/core/platform/index.d.ts +82 -0
  536. package/dist/core/platform/index.d.ts.map +1 -0
  537. package/dist/core/platform/index.js +173 -0
  538. package/dist/core/platform/index.js.map +1 -0
  539. package/dist/core/platform/path-normalizer.d.ts +117 -0
  540. package/dist/core/platform/path-normalizer.d.ts.map +1 -0
  541. package/dist/core/platform/path-normalizer.js +333 -0
  542. package/dist/core/platform/path-normalizer.js.map +1 -0
  543. package/dist/core/platform/path-resolver.d.ts +120 -0
  544. package/dist/core/platform/path-resolver.d.ts.map +1 -0
  545. package/dist/core/platform/path-resolver.js +339 -0
  546. package/dist/core/platform/path-resolver.js.map +1 -0
  547. package/dist/core/platform/platform-adapter.d.ts +101 -0
  548. package/dist/core/platform/platform-adapter.d.ts.map +1 -0
  549. package/dist/core/platform/platform-adapter.js +243 -0
  550. package/dist/core/platform/platform-adapter.js.map +1 -0
  551. package/dist/core/platform/platform-detector.d.ts +122 -0
  552. package/dist/core/platform/platform-detector.d.ts.map +1 -0
  553. package/dist/core/platform/platform-detector.js +318 -0
  554. package/dist/core/platform/platform-detector.js.map +1 -0
  555. package/dist/core/platform/platform-templates.d.ts +62 -0
  556. package/dist/core/platform/platform-templates.d.ts.map +1 -0
  557. package/dist/core/platform/platform-templates.js +364 -0
  558. package/dist/core/platform/platform-templates.js.map +1 -0
  559. package/dist/core/platform/types.d.ts +54 -0
  560. package/dist/core/platform/types.d.ts.map +1 -0
  561. package/dist/core/platform/types.js +12 -0
  562. package/dist/core/platform/types.js.map +1 -0
  563. package/dist/core/polyglot-example.d.ts +115 -0
  564. package/dist/core/polyglot-example.d.ts.map +1 -0
  565. package/dist/core/polyglot-example.js +341 -0
  566. package/dist/core/polyglot-example.js.map +1 -0
  567. package/dist/core/pressure-monitor.d.ts +76 -0
  568. package/dist/core/pressure-monitor.d.ts.map +1 -0
  569. package/dist/core/pressure-monitor.js +156 -0
  570. package/dist/core/pressure-monitor.js.map +1 -0
  571. package/dist/core/reflection-pattern.d.ts +99 -0
  572. package/dist/core/reflection-pattern.d.ts.map +1 -0
  573. package/dist/core/reflection-pattern.js +294 -0
  574. package/dist/core/reflection-pattern.js.map +1 -0
  575. package/dist/core/session-log-manager.d.ts +83 -0
  576. package/dist/core/session-log-manager.d.ts.map +1 -0
  577. package/dist/core/session-log-manager.js +288 -0
  578. package/dist/core/session-log-manager.js.map +1 -0
  579. package/dist/core/simple-pipeline-base.d.ts +130 -0
  580. package/dist/core/simple-pipeline-base.d.ts.map +1 -0
  581. package/dist/core/simple-pipeline-base.js +240 -0
  582. package/dist/core/simple-pipeline-base.js.map +1 -0
  583. package/dist/core/simple-pipeline.d.ts +70 -0
  584. package/dist/core/simple-pipeline.d.ts.map +1 -0
  585. package/dist/core/simple-pipeline.js +241 -0
  586. package/dist/core/simple-pipeline.js.map +1 -0
  587. package/dist/core/utils/paths.d.ts +50 -0
  588. package/dist/core/utils/paths.d.ts.map +1 -0
  589. package/dist/core/utils/paths.js +75 -0
  590. package/dist/core/utils/paths.js.map +1 -0
  591. package/dist/core/validators/command-argument-validator.d.ts +102 -0
  592. package/dist/core/validators/command-argument-validator.d.ts.map +1 -0
  593. package/dist/core/validators/command-argument-validator.js +377 -0
  594. package/dist/core/validators/command-argument-validator.js.map +1 -0
  595. package/dist/core/validators/config-validator.d.ts +111 -0
  596. package/dist/core/validators/config-validator.d.ts.map +1 -0
  597. package/dist/core/validators/config-validator.js +433 -0
  598. package/dist/core/validators/config-validator.js.map +1 -0
  599. package/dist/core/validators/environment-validator.d.ts +138 -0
  600. package/dist/core/validators/environment-validator.d.ts.map +1 -0
  601. package/dist/core/validators/environment-validator.js +516 -0
  602. package/dist/core/validators/environment-validator.js.map +1 -0
  603. package/dist/core/validators/git-validator.d.ts +100 -0
  604. package/dist/core/validators/git-validator.d.ts.map +1 -0
  605. package/dist/core/validators/git-validator.js +288 -0
  606. package/dist/core/validators/git-validator.js.map +1 -0
  607. package/dist/core/validators/git-validator.test.d.ts +12 -0
  608. package/dist/core/validators/git-validator.test.d.ts.map +1 -0
  609. package/dist/core/validators/git-validator.test.js +40 -0
  610. package/dist/core/validators/git-validator.test.js.map +1 -0
  611. package/dist/core/validators/index.d.ts +90 -0
  612. package/dist/core/validators/index.d.ts.map +1 -0
  613. package/dist/core/validators/index.js +166 -0
  614. package/dist/core/validators/index.js.map +1 -0
  615. package/dist/core/validators/input-validator.d.ts +117 -0
  616. package/dist/core/validators/input-validator.d.ts.map +1 -0
  617. package/dist/core/validators/input-validator.js +368 -0
  618. package/dist/core/validators/input-validator.js.map +1 -0
  619. package/dist/core/validators/temp_index.d.ts +56 -0
  620. package/dist/core/validators/temp_index.d.ts.map +1 -0
  621. package/dist/core/validators/temp_index.js +94 -0
  622. package/dist/core/validators/temp_index.js.map +1 -0
  623. package/dist/core/validators/validation-error-handler.d.ts +107 -0
  624. package/dist/core/validators/validation-error-handler.d.ts.map +1 -0
  625. package/dist/core/validators/validation-error-handler.js +379 -0
  626. package/dist/core/validators/validation-error-handler.js.map +1 -0
  627. package/dist/core/validators/validation-orchestrator.d.ts +128 -0
  628. package/dist/core/validators/validation-orchestrator.d.ts.map +1 -0
  629. package/dist/core/validators/validation-orchestrator.js +301 -0
  630. package/dist/core/validators/validation-orchestrator.js.map +1 -0
  631. package/dist/index.d.ts +11 -0
  632. package/dist/index.d.ts.map +1 -0
  633. package/dist/index.js +316 -0
  634. package/dist/index.js.map +1 -0
  635. package/dist/services/active-context-manager.d.ts +118 -0
  636. package/dist/services/active-context-manager.d.ts.map +1 -0
  637. package/dist/services/active-context-manager.js +435 -0
  638. package/dist/services/active-context-manager.js.map +1 -0
  639. package/dist/services/ai-service.d.ts +71 -0
  640. package/dist/services/ai-service.d.ts.map +1 -0
  641. package/dist/services/ai-service.js +329 -0
  642. package/dist/services/ai-service.js.map +1 -0
  643. package/dist/services/context-search.d.ts +98 -0
  644. package/dist/services/context-search.d.ts.map +1 -0
  645. package/dist/services/context-search.js +289 -0
  646. package/dist/services/context-search.js.map +1 -0
  647. package/dist/services/insight-extractor.d.ts +69 -0
  648. package/dist/services/insight-extractor.d.ts.map +1 -0
  649. package/dist/services/insight-extractor.js +343 -0
  650. package/dist/services/insight-extractor.js.map +1 -0
  651. package/dist/services/insight-quality-controller.d.ts +167 -0
  652. package/dist/services/insight-quality-controller.d.ts.map +1 -0
  653. package/dist/services/insight-quality-controller.js +543 -0
  654. package/dist/services/insight-quality-controller.js.map +1 -0
  655. package/dist/services/module-generator.d.ts +108 -0
  656. package/dist/services/module-generator.d.ts.map +1 -0
  657. package/dist/services/module-generator.js +561 -0
  658. package/dist/services/module-generator.js.map +1 -0
  659. package/dist/services/statusline-tracker.d.ts +139 -0
  660. package/dist/services/statusline-tracker.d.ts.map +1 -0
  661. package/dist/services/statusline-tracker.js +360 -0
  662. package/dist/services/statusline-tracker.js.map +1 -0
  663. package/dist/templates/ai-instructions-template.d.ts +39 -0
  664. package/dist/templates/ai-instructions-template.d.ts.map +1 -0
  665. package/dist/templates/ai-instructions-template.js +222 -0
  666. package/dist/templates/ai-instructions-template.js.map +1 -0
  667. package/dist/types/config.d.ts +128 -0
  668. package/dist/types/config.d.ts.map +1 -0
  669. package/dist/types/config.js +49 -0
  670. package/dist/types/config.js.map +1 -0
  671. package/dist/types/documents.d.ts +87 -0
  672. package/dist/types/documents.d.ts.map +1 -0
  673. package/dist/types/documents.js +12 -0
  674. package/dist/types/documents.js.map +1 -0
  675. package/dist/types/session-log.d.ts +83 -0
  676. package/dist/types/session-log.d.ts.map +1 -0
  677. package/dist/types/session-log.js +12 -0
  678. package/dist/types/session-log.js.map +1 -0
  679. package/dist/types/session.d.ts +257 -0
  680. package/dist/types/session.d.ts.map +1 -0
  681. package/dist/types/session.js +12 -0
  682. package/dist/types/session.js.map +1 -0
  683. package/dist/utils/ai-templates.d.ts +98 -0
  684. package/dist/utils/ai-templates.d.ts.map +1 -0
  685. package/dist/utils/ai-templates.js +179 -0
  686. package/dist/utils/ai-templates.js.map +1 -0
  687. package/dist/utils/ginko-root.d.ts +51 -0
  688. package/dist/utils/ginko-root.d.ts.map +1 -0
  689. package/dist/utils/ginko-root.js +96 -0
  690. package/dist/utils/ginko-root.js.map +1 -0
  691. package/dist/utils/helpers.d.ts +19 -0
  692. package/dist/utils/helpers.d.ts.map +1 -0
  693. package/dist/utils/helpers.js +107 -0
  694. package/dist/utils/helpers.js.map +1 -0
  695. package/dist/utils/progressive-learning.d.ts +42 -0
  696. package/dist/utils/progressive-learning.d.ts.map +1 -0
  697. package/dist/utils/progressive-learning.js +248 -0
  698. package/dist/utils/progressive-learning.js.map +1 -0
  699. package/dist/utils/session-collector.d.ts +81 -0
  700. package/dist/utils/session-collector.d.ts.map +1 -0
  701. package/dist/utils/session-collector.js +387 -0
  702. package/dist/utils/session-collector.js.map +1 -0
  703. package/dist/utils/session-logger.d.ts +125 -0
  704. package/dist/utils/session-logger.d.ts.map +1 -0
  705. package/dist/utils/session-logger.js +359 -0
  706. package/dist/utils/session-logger.js.map +1 -0
  707. package/dist/utils/session-synthesizer.d.ts +36 -0
  708. package/dist/utils/session-synthesizer.d.ts.map +1 -0
  709. package/dist/utils/session-synthesizer.js +239 -0
  710. package/dist/utils/session-synthesizer.js.map +1 -0
  711. package/package.json +76 -0
@@ -0,0 +1,213 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-21
5
+ * @tags: [cli, init, setup, git-native, enhanced, path-config]
6
+ * @related: [path-config.ts, ginko-root.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [path-config, chalk, fs-extra, ora]
10
+ */
11
+ import chalk from 'chalk';
12
+ import fs from 'fs-extra';
13
+ import path from 'path';
14
+ import ora from 'ora';
15
+ import { execSync } from 'child_process';
16
+ import { ProjectAnalyzer } from '../analysis/project-analyzer.js';
17
+ import { AiInstructionsTemplate } from '../templates/ai-instructions-template.js';
18
+ import { findGinkoRoot } from '../utils/ginko-root.js';
19
+ import { pathManager } from '../core/utils/paths.js';
20
+ import { getUserEmail } from '../utils/helpers.js';
21
+ export async function initCommand(options = {}) {
22
+ const spinner = ora('Initializing Ginko...').start();
23
+ let deepAnalysis = null; // Track deep analysis results for output
24
+ try {
25
+ // Get paths from pathManager instead of hardcoding
26
+ const pathConfig = pathManager.getConfig();
27
+ const projectRoot = pathConfig.project.root;
28
+ const ginkoDir = pathConfig.ginko.root;
29
+ // Check if already initialized in current directory
30
+ if (await fs.pathExists(ginkoDir)) {
31
+ spinner.warn('Ginko already initialized in this directory');
32
+ return;
33
+ }
34
+ // Check if already initialized in a parent directory
35
+ const existingRoot = await findGinkoRoot();
36
+ if (existingRoot && existingRoot !== projectRoot) {
37
+ spinner.warn(`Ginko already initialized in parent directory: ${existingRoot}`);
38
+ console.log(chalk.yellow('\nTip: Run ginko commands from any subdirectory - they will use the parent .ginko'));
39
+ return;
40
+ }
41
+ // Create directory structure using pathManager
42
+ await fs.ensureDir(pathConfig.ginko.sessions);
43
+ await fs.ensureDir(pathManager.joinPaths(pathConfig.ginko.root, 'patterns'));
44
+ await fs.ensureDir(pathManager.joinPaths(pathConfig.ginko.root, 'best-practices'));
45
+ await fs.ensureDir(pathConfig.ginko.context);
46
+ await fs.ensureDir(pathManager.joinPaths(pathConfig.ginko.context, 'modules'));
47
+ // Get user info from git config
48
+ let userEmail = 'user@example.com';
49
+ let userName = 'Developer';
50
+ try {
51
+ userEmail = execSync('git config user.email', { encoding: 'utf8' }).trim();
52
+ userName = execSync('git config user.name', { encoding: 'utf8' }).trim();
53
+ }
54
+ catch (e) {
55
+ // Git not configured, use defaults
56
+ }
57
+ // Create user session directory using pathManager
58
+ const userSlug = userEmail.replace('@', '-at-').replace(/\\./g, '-');
59
+ const userSessionsDir = pathManager.joinPaths(pathConfig.ginko.sessions, userSlug);
60
+ await fs.ensureDir(userSessionsDir);
61
+ await fs.ensureDir(pathManager.joinPaths(userSessionsDir, 'archive'));
62
+ // Create default configuration (privacy-first)
63
+ const config = {
64
+ version: '0.1.0',
65
+ user: {
66
+ email: userEmail
67
+ },
68
+ privacy: {
69
+ shareAnonymizedUsage: false,
70
+ trackFeatureUsage: true,
71
+ includeStackTraces: false
72
+ },
73
+ features: {
74
+ deepAnalysis: options.analyze !== false,
75
+ autoBestPractices: true,
76
+ smartTemplates: true
77
+ },
78
+ ai: {
79
+ defaultModel: options.model || 'claude-3-5-sonnet-20241022',
80
+ fallbackModel: 'gpt-4o-mini'
81
+ }
82
+ };
83
+ // Save configuration using pathManager
84
+ const configPath = pathManager.joinPaths(pathConfig.ginko.root, 'config.json');
85
+ await fs.writeJSON(configPath, config, { spaces: 2 });
86
+ // Project analysis step
87
+ if (options.analyze !== false) {
88
+ spinner.text = 'Analyzing project structure...';
89
+ try {
90
+ const analyzer = new ProjectAnalyzer(projectRoot);
91
+ // Perform analysis
92
+ deepAnalysis = await analyzer.analyze();
93
+ // Save analysis results using pathManager
94
+ const analysisPath = pathManager.joinPaths(pathConfig.ginko.context, 'project-analysis.json');
95
+ await fs.writeJSON(analysisPath, deepAnalysis, { spaces: 2 });
96
+ spinner.succeed('Project analysis complete');
97
+ }
98
+ catch (analysisError) {
99
+ spinner.warn('Project analysis failed, continuing with basic setup');
100
+ console.warn(chalk.yellow('Analysis error:', analysisError instanceof Error ? analysisError.message : String(analysisError)));
101
+ }
102
+ }
103
+ // AI instructions generation
104
+ spinner.start('Generating AI collaboration instructions...');
105
+ try {
106
+ const projectContext = deepAnalysis || await new ProjectAnalyzer(projectRoot).analyze();
107
+ // Create template variables
108
+ const variables = {
109
+ projectName: path.basename(projectRoot),
110
+ projectType: projectContext.projectType || 'unknown',
111
+ techStack: projectContext.techStack || [],
112
+ frameworks: projectContext.frameworks || [],
113
+ languages: projectContext.languages || [],
114
+ packageManager: projectContext.packageManager || 'unknown',
115
+ testCommand: projectContext.testCommand || 'npm test',
116
+ buildCommand: projectContext.buildCommand || 'npm run build',
117
+ hasTests: projectContext.hasTests || false,
118
+ userEmail: await getUserEmail(),
119
+ userName: 'Developer',
120
+ date: new Date().toISOString().split('T')[0]
121
+ };
122
+ // Generate instructions
123
+ const instructions = AiInstructionsTemplate.generate(variables);
124
+ // Save instructions using pathManager
125
+ const instructionsPath = pathManager.joinPaths(projectRoot, 'CLAUDE.md');
126
+ await fs.writeFile(instructionsPath, instructions);
127
+ spinner.succeed('AI instructions generated');
128
+ }
129
+ catch (error) {
130
+ spinner.warn('AI instructions generation failed');
131
+ console.warn(chalk.yellow('Instructions error:', error instanceof Error ? error.message : String(error)));
132
+ }
133
+ // Context rules
134
+ spinner.start('Setting up context management...');
135
+ const contextRules = `# Context Management Rules
136
+
137
+ ## Privacy & Security
138
+ - All context stored locally in .ginko/
139
+ - No data leaves your machine without explicit action
140
+ - Handoffs are git-tracked for team collaboration
141
+ - Config (.ginko/config.json) is gitignored
142
+
143
+ ## Best Practices
144
+ - Always run \`ginko handoff\` before switching context
145
+ - Use \`ginko start\` to resume with full context
146
+ - Keep handoffs under 2000 words for clarity
147
+ - Include specific next steps in every handoff
148
+ `;
149
+ const contextPath = pathManager.joinPaths(pathConfig.ginko.context, 'rules.md');
150
+ await fs.writeFile(contextPath, contextRules);
151
+ // Create initial best practice
152
+ const bestPractice = `# Local Development Best Practices
153
+
154
+ ## Session Management
155
+ - \`ginko start\` - Begin new session with context loading
156
+ - \`ginko handoff\` - Save progress for seamless continuation
157
+ - \`ginko vibecheck\` - Quick realignment when stuck
158
+
159
+ ## Development Workflow
160
+ 1. Check what exists: \`ls -la\` relevant directories
161
+ 2. Find examples: Look for similar features already implemented
162
+ 3. Test existing: Try current endpoints/features first
163
+ 4. Plan, implement, test, document
164
+
165
+ *Customize this file for your team's specific practices*
166
+ `;
167
+ const bestPracticePath = pathManager.joinPaths(pathConfig.ginko.root, 'best-practices', 'local.md');
168
+ await fs.writeFile(bestPracticePath, bestPractice);
169
+ // Add .ginko to .gitignore if it doesn't exist
170
+ const gitignorePath = pathManager.joinPaths(projectRoot, '.gitignore');
171
+ if (await fs.pathExists(gitignorePath)) {
172
+ const gitignore = await fs.readFile(gitignorePath, 'utf8');
173
+ if (!gitignore.includes('.ginko/config.json')) {
174
+ await fs.appendFile(gitignorePath, '\n# Ginko - Keep context, ignore private config\n.ginko/config.json\n.ginko/.temp/\n');
175
+ }
176
+ }
177
+ else {
178
+ await fs.writeFile(gitignorePath, '# Ginko - Keep context, ignore private config\n.ginko/config.json\n.ginko/.temp/\n');
179
+ }
180
+ spinner.succeed('Context management configured');
181
+ // Final setup
182
+ spinner.start('Completing setup...');
183
+ // Create initial session marker
184
+ const sessionMarker = pathManager.joinPaths(pathConfig.ginko.sessions, userSlug, '.session-start');
185
+ await fs.writeFile(sessionMarker, new Date().toISOString());
186
+ spinner.succeed('Ginko initialized successfully!');
187
+ // Success message
188
+ console.log('\n' + chalk.green('🎉 Ginko is ready!'));
189
+ console.log('\n' + chalk.blue('Quick start:'));
190
+ console.log(' ' + chalk.cyan('ginko start') + ' - Begin your first session');
191
+ console.log(' ' + chalk.cyan('ginko handoff "Initial setup complete"') + ' - Save your progress');
192
+ if (deepAnalysis) {
193
+ console.log('\n' + chalk.blue('Project analysis:'));
194
+ console.log(' 📊 ' + chalk.yellow('Type:') + ' ' + (deepAnalysis.type || 'Unknown'));
195
+ console.log(' 🔧 ' + chalk.yellow('Languages:') + ' ' + (deepAnalysis.languages?.join(', ') || 'None detected'));
196
+ console.log(' 📦 ' + chalk.yellow('Frameworks:') + ' ' + (deepAnalysis.frameworks?.join(', ') || 'None detected'));
197
+ console.log(' ⚗️ ' + chalk.yellow('Package Manager:') + ' ' + (deepAnalysis.packageManager || 'Unknown'));
198
+ if (deepAnalysis.commands?.length > 0) {
199
+ console.log(' 🎯 ' + chalk.yellow('Quick Commands:') + ' ' + deepAnalysis.commands.slice(0, 3).join(', '));
200
+ }
201
+ }
202
+ console.log('\n' + chalk.gray('Files created:'));
203
+ console.log(' 📁 ' + chalk.gray(pathManager.getRelativePath(ginkoDir)));
204
+ console.log(' 📄 ' + chalk.gray('CLAUDE.md (AI instructions)'));
205
+ console.log(' 🔒 ' + chalk.gray('.gitignore (updated)'));
206
+ }
207
+ catch (error) {
208
+ spinner.fail('Initialization failed');
209
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
210
+ process.exit(1);
211
+ }
212
+ }
213
+ //# 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,20 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, ai, natural-language, prompts, router]
6
+ * @related: [backlog/ai-prompt.ts]
7
+ * @priority: critical
8
+ * @complexity: low
9
+ * @dependencies: [chalk]
10
+ */
11
+ interface MagicOptions {
12
+ verbose?: boolean;
13
+ raw?: boolean;
14
+ }
15
+ /**
16
+ * Magic command - outputs prompts for ambient AI based on domain
17
+ */
18
+ export declare function magicPromptCommand(request: string, options?: MagicOptions): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=magic-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-prompt.d.ts","sourceRoot":"","sources":["../../src/commands/magic-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,iBAmCnF"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, ai, natural-language, prompts, router]
6
+ * @related: [backlog/ai-prompt.ts]
7
+ * @priority: critical
8
+ * @complexity: low
9
+ * @dependencies: [chalk]
10
+ */
11
+ import chalk from 'chalk';
12
+ import { aiPromptCommand } from './backlog/ai-prompt.js';
13
+ /**
14
+ * Magic command - outputs prompts for ambient AI based on domain
15
+ */
16
+ export async function magicPromptCommand(request, options = {}) {
17
+ try {
18
+ // Detect domain from request
19
+ const domain = detectDomain(request);
20
+ if (options.verbose) {
21
+ console.log(chalk.dim(`Detected domain: ${domain}`));
22
+ }
23
+ // Route to appropriate prompt generator
24
+ switch (domain) {
25
+ case 'backlog':
26
+ return aiPromptCommand(request, options);
27
+ case 'git':
28
+ outputGitPrompt(request);
29
+ break;
30
+ case 'session':
31
+ outputSessionPrompt(request);
32
+ break;
33
+ case 'context':
34
+ outputContextPrompt(request);
35
+ break;
36
+ default:
37
+ outputGeneralPrompt(request);
38
+ }
39
+ }
40
+ catch (error) {
41
+ console.error(chalk.red('Failed to generate prompt'));
42
+ console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
43
+ process.exit(1);
44
+ }
45
+ }
46
+ /**
47
+ * Detect which domain the request belongs to
48
+ */
49
+ function detectDomain(request) {
50
+ const lower = request.toLowerCase();
51
+ // Backlog keywords
52
+ if (lower.match(/(feature|story|task|backlog|create|add|todo|priority|assign|complete|done|work on|plan)/)) {
53
+ return 'backlog';
54
+ }
55
+ // Git keywords
56
+ if (lower.match(/(commit|push|pull|branch|merge|checkout|stash|diff|git)/)) {
57
+ return 'git';
58
+ }
59
+ // Session keywords
60
+ if (lower.match(/(handoff|session|capture|vibecheck)/)) {
61
+ return 'session';
62
+ }
63
+ // Context keywords
64
+ if (lower.match(/(context|remember|learned|insight)/)) {
65
+ return 'context';
66
+ }
67
+ return 'general';
68
+ }
69
+ /**
70
+ * Output git operation prompt
71
+ */
72
+ function outputGitPrompt(request) {
73
+ console.log(chalk.cyan('═══ AI Task ═══════════════════════════════════════════'));
74
+ console.log(`
75
+ <ai-task>
76
+ Help with git operation.
77
+
78
+ USER REQUEST: "${request}"
79
+
80
+ COMMON COMMANDS:
81
+ \`\`\`bash
82
+ git add . # Stage all changes
83
+ git commit -m "message" # Commit with message
84
+ git push # Push to remote
85
+ git pull # Pull from remote
86
+ git status # Check status
87
+ git diff # View changes
88
+ git log --oneline -10 # Recent commits
89
+ git checkout -b feature-branch # Create new branch
90
+ \`\`\`
91
+
92
+ Execute the appropriate git command(s) based on the request.
93
+ </ai-task>`);
94
+ console.log(chalk.cyan('═══════════════════════════════════════════════════════'));
95
+ }
96
+ /**
97
+ * Output session management prompt
98
+ */
99
+ function outputSessionPrompt(request) {
100
+ console.log(chalk.cyan('═══ AI Task ═══════════════════════════════════════════'));
101
+ console.log(`
102
+ <ai-task>
103
+ Help with session management.
104
+
105
+ USER REQUEST: "${request}"
106
+
107
+ AVAILABLE COMMANDS:
108
+ \`\`\`bash
109
+ ginko handoff "message" # Save session progress
110
+ ginko status # Show current status
111
+ ginko vibecheck # Quick recalibration
112
+ ginko capture "insight" # Capture a learning
113
+ \`\`\`
114
+
115
+ Execute the appropriate command based on the request.
116
+ </ai-task>`);
117
+ console.log(chalk.cyan('═══════════════════════════════════════════════════════'));
118
+ }
119
+ /**
120
+ * Output context management prompt
121
+ */
122
+ function outputContextPrompt(request) {
123
+ console.log(chalk.cyan('═══ AI Task ═══════════════════════════════════════════'));
124
+ console.log(`
125
+ <ai-task>
126
+ Help with context management.
127
+
128
+ USER REQUEST: "${request}"
129
+
130
+ AVAILABLE COMMANDS:
131
+ \`\`\`bash
132
+ ginko context # Show current context
133
+ ginko context -a file.ts # Add file to context
134
+ ginko context -r file.ts # Remove from context
135
+ ginko capture "learning" # Capture an insight
136
+ \`\`\`
137
+
138
+ Execute the appropriate command based on the request.
139
+ </ai-task>`);
140
+ console.log(chalk.cyan('═══════════════════════════════════════════════════════'));
141
+ }
142
+ /**
143
+ * Output general help prompt
144
+ */
145
+ function outputGeneralPrompt(request) {
146
+ console.log(chalk.cyan('═══ AI Task ═══════════════════════════════════════════'));
147
+ console.log(`
148
+ <ai-task>
149
+ Help with Ginko command.
150
+
151
+ USER REQUEST: "${request}"
152
+
153
+ MAIN GINKO COMMANDS:
154
+ - ginko init # Initialize project
155
+ - ginko start # Start session
156
+ - ginko handoff "message" # Save progress
157
+ - ginko backlog [command] # Manage backlog
158
+ - ginko ship "message" # Create PR
159
+ - ginko vibecheck # Recalibrate
160
+ - ginko --help # Show all commands
161
+
162
+ Determine what the user wants and execute the appropriate command.
163
+ </ai-task>`);
164
+ console.log(chalk.cyan('═══════════════════════════════════════════════════════'));
165
+ }
166
+ //# sourceMappingURL=magic-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-prompt.js","sourceRoot":"","sources":["../../src/commands/magic-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, router, simple]
6
+ * @related: [backlog/ai-template.ts]
7
+ * @priority: high
8
+ * @complexity: low
9
+ * @dependencies: [chalk]
10
+ */
11
+ interface MagicOptions {
12
+ verbose?: boolean;
13
+ }
14
+ /**
15
+ * Simple magic command router
16
+ * Only generates templates when valuable, otherwise tells user to ask AI directly
17
+ */
18
+ export declare function magicSimpleCommand(request: string, options?: MagicOptions): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=magic-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-simple.d.ts","sourceRoot":"","sources":["../../src/commands/magic-simple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,iBAgBnF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, router, simple]
6
+ * @related: [backlog/ai-template.ts]
7
+ * @priority: high
8
+ * @complexity: low
9
+ * @dependencies: [chalk]
10
+ */
11
+ import chalk from 'chalk';
12
+ import { aiTemplateCommand } from './backlog/ai-template.js';
13
+ /**
14
+ * Simple magic command router
15
+ * Only generates templates when valuable, otherwise tells user to ask AI directly
16
+ */
17
+ export async function magicSimpleCommand(request, options = {}) {
18
+ const lower = request.toLowerCase();
19
+ // Route content generation to template system
20
+ if (lower.match(/create|write|plan|decompose|break.*down/)) {
21
+ return aiTemplateCommand(request, options);
22
+ }
23
+ // For simple queries, just tell user to ask AI
24
+ console.log(chalk.yellow('Just ask me (the AI) directly!'));
25
+ console.log(chalk.dim('\nI can run commands like:'));
26
+ console.log(chalk.green(' ginko backlog list'));
27
+ console.log(chalk.green(' ginko backlog show FEATURE-001'));
28
+ console.log(chalk.green(' ginko status'));
29
+ console.log(chalk.dim('\nOr for content creation, use:'));
30
+ console.log(chalk.green(' ginko backlog ai "create feature for [description]"'));
31
+ }
32
+ //# sourceMappingURL=magic-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-simple.js","sourceRoot":"","sources":["../../src/commands/magic-simple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,UAAwB,EAAE;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,8CAA8C;IAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,EAAE,CAAC;QAC3D,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,+CAA+C;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;AACpF,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, ai, natural-language, router]
6
+ * @related: [backlog/ai-enhanced.ts]
7
+ * @priority: critical
8
+ * @complexity: high
9
+ * @dependencies: [chalk, ora]
10
+ */
11
+ interface MagicOptions {
12
+ verbose?: boolean;
13
+ dryRun?: boolean;
14
+ }
15
+ /**
16
+ * Magic command router - determines domain and routes to appropriate AI handler
17
+ */
18
+ export declare function magicCommand(request: string, options?: MagicOptions): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=magic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic.d.ts","sourceRoot":"","sources":["../../src/commands/magic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,iBAqD7E"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2025-09-11
5
+ * @tags: [magic, ai, natural-language, router]
6
+ * @related: [backlog/ai-enhanced.ts]
7
+ * @priority: critical
8
+ * @complexity: high
9
+ * @dependencies: [chalk, ora]
10
+ */
11
+ import chalk from 'chalk';
12
+ import ora from 'ora';
13
+ import { aiEnhancedCommand } from './backlog/ai-enhanced.js';
14
+ import { getAiAdapter } from '../adapters/ai-completion.js';
15
+ /**
16
+ * Magic command router - determines domain and routes to appropriate AI handler
17
+ */
18
+ export async function magicCommand(request, options = {}) {
19
+ const spinner = ora('✨ Analyzing request...').start();
20
+ try {
21
+ // Detect domain from request
22
+ const domain = await detectDomain(request);
23
+ if (options.verbose) {
24
+ spinner.stop();
25
+ console.log(chalk.dim(`Detected domain: ${domain}`));
26
+ spinner.start();
27
+ }
28
+ spinner.text = `Processing ${domain} request...`;
29
+ // Route to appropriate handler
30
+ switch (domain) {
31
+ case 'backlog':
32
+ spinner.stop();
33
+ return aiEnhancedCommand(request, options);
34
+ case 'git':
35
+ spinner.succeed('Git operations coming soon!');
36
+ console.log(chalk.dim('For now, use: git commit -m "message"'));
37
+ break;
38
+ case 'session':
39
+ spinner.succeed('Session management coming soon!');
40
+ console.log(chalk.dim('For now, use: ginko handoff "message"'));
41
+ break;
42
+ case 'context':
43
+ spinner.succeed('Context management coming soon!');
44
+ console.log(chalk.dim('For now, use: ginko context'));
45
+ break;
46
+ default:
47
+ spinner.stop();
48
+ return handleGeneralRequest(request);
49
+ }
50
+ }
51
+ catch (error) {
52
+ spinner.fail('Failed to process magic command');
53
+ console.error(chalk.red(error instanceof Error ? error.message : 'Unknown error'));
54
+ // Suggest specific commands
55
+ console.log(chalk.dim('\nTry a more specific command:'));
56
+ console.log(chalk.green(' ginko backlog ai "your request"'));
57
+ console.log(chalk.green(' ginko handoff "your message"'));
58
+ console.log(chalk.green(' ginko vibecheck'));
59
+ process.exit(1);
60
+ }
61
+ }
62
+ /**
63
+ * Detect which domain the request belongs to
64
+ */
65
+ async function detectDomain(request) {
66
+ const lower = request.toLowerCase();
67
+ // Quick pattern matching for obvious domains
68
+ const backlogKeywords = [
69
+ 'feature', 'story', 'task', 'backlog', 'create', 'add', 'todo',
70
+ 'priority', 'assign', 'complete', 'done', 'finish', 'work on',
71
+ 'what should i', 'next', 'plan'
72
+ ];
73
+ const gitKeywords = [
74
+ 'commit', 'push', 'pull', 'branch', 'merge', 'checkout', 'stash',
75
+ 'diff', 'log', 'status', 'git'
76
+ ];
77
+ const sessionKeywords = [
78
+ 'handoff', 'session', 'capture', 'context', 'vibecheck', 'status'
79
+ ];
80
+ // Check patterns
81
+ if (backlogKeywords.some(keyword => lower.includes(keyword))) {
82
+ return 'backlog';
83
+ }
84
+ if (gitKeywords.some(keyword => lower.includes(keyword))) {
85
+ return 'git';
86
+ }
87
+ if (sessionKeywords.some(keyword => lower.includes(keyword))) {
88
+ return 'session';
89
+ }
90
+ // If unclear, use AI to determine
91
+ try {
92
+ const adapter = await getAiAdapter();
93
+ const prompt = `
94
+ Categorize this request into one of these domains:
95
+ - backlog: Managing tasks, features, stories, work items
96
+ - git: Version control operations
97
+ - session: Session management, handoffs, context
98
+ - general: General questions or help
99
+
100
+ Request: "${request}"
101
+
102
+ Respond with just the domain name.`;
103
+ const response = await adapter.complete(prompt, {
104
+ temperature: 0.1,
105
+ maxTokens: 10
106
+ });
107
+ const domain = response.trim().toLowerCase();
108
+ if (['backlog', 'git', 'session', 'context', 'general'].includes(domain)) {
109
+ return domain;
110
+ }
111
+ }
112
+ catch (error) {
113
+ // Fallback to general if AI fails
114
+ }
115
+ return 'general';
116
+ }
117
+ /**
118
+ * Handle general requests that don't fit a specific domain
119
+ */
120
+ async function handleGeneralRequest(request) {
121
+ try {
122
+ const adapter = await getAiAdapter();
123
+ const prompt = `
124
+ You are Ginko, a helpful AI assistant for developers. Answer this request concisely:
125
+
126
+ "${request}"
127
+
128
+ If this is about using Ginko, suggest specific commands.
129
+ Keep your response brief and actionable.`;
130
+ const response = await adapter.complete(prompt, {
131
+ temperature: 0.7
132
+ });
133
+ console.log(response);
134
+ }
135
+ catch (error) {
136
+ console.log(chalk.yellow('I understand you want help with: ') + request);
137
+ console.log(chalk.dim('\nAvailable commands:'));
138
+ console.log(chalk.green(' ginko backlog ai "manage work items"'));
139
+ console.log(chalk.green(' ginko handoff "save progress"'));
140
+ console.log(chalk.green(' ginko vibecheck'));
141
+ console.log(chalk.green(' ginko --help'));
142
+ }
143
+ }
144
+ //# sourceMappingURL=magic.js.map