@ginkoai/cli 1.0.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/README.md +19 -0
  2. package/dist/analysis/project-analyzer.d.ts.map +1 -1
  3. package/dist/analysis/project-analyzer.js +68 -4
  4. package/dist/analysis/project-analyzer.js.map +1 -1
  5. package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts.map +1 -1
  6. package/dist/commands/architecture/architecture-pipeline-enhanced.js +10 -6
  7. package/dist/commands/architecture/architecture-pipeline-enhanced.js.map +1 -1
  8. package/dist/commands/backlog/base.d.ts.map +1 -1
  9. package/dist/commands/backlog/base.js +3 -0
  10. package/dist/commands/backlog/base.js.map +1 -1
  11. package/dist/commands/backlog/create.js +20 -20
  12. package/dist/commands/backlog/create.js.map +1 -1
  13. package/dist/commands/backlog/index.d.ts.map +1 -1
  14. package/dist/commands/backlog/index.js +6 -1
  15. package/dist/commands/backlog/index.js.map +1 -1
  16. package/dist/commands/changelog/changelog-reflection.d.ts.map +1 -1
  17. package/dist/commands/changelog/changelog-reflection.js +7 -3
  18. package/dist/commands/changelog/changelog-reflection.js.map +1 -1
  19. package/dist/commands/charter.d.ts +28 -0
  20. package/dist/commands/charter.d.ts.map +1 -0
  21. package/dist/commands/charter.js +434 -0
  22. package/dist/commands/charter.js.map +1 -0
  23. package/dist/commands/documentation/documentation-pipeline.d.ts.map +1 -1
  24. package/dist/commands/documentation/documentation-pipeline.js +15 -7
  25. package/dist/commands/documentation/documentation-pipeline.js.map +1 -1
  26. package/dist/commands/git/git-pipeline.d.ts.map +1 -1
  27. package/dist/commands/git/git-pipeline.js +3 -2
  28. package/dist/commands/git/git-pipeline.js.map +1 -1
  29. package/dist/commands/graph/api-client.d.ts +212 -0
  30. package/dist/commands/graph/api-client.d.ts.map +1 -0
  31. package/dist/commands/graph/api-client.js +143 -0
  32. package/dist/commands/graph/api-client.js.map +1 -0
  33. package/dist/commands/graph/config.d.ts +82 -0
  34. package/dist/commands/graph/config.d.ts.map +1 -0
  35. package/dist/commands/graph/config.js +113 -0
  36. package/dist/commands/graph/config.js.map +1 -0
  37. package/dist/commands/graph/explore.d.ts +19 -0
  38. package/dist/commands/graph/explore.d.ts.map +1 -0
  39. package/dist/commands/graph/explore.js +117 -0
  40. package/dist/commands/graph/explore.js.map +1 -0
  41. package/dist/commands/graph/index.d.ts +17 -0
  42. package/dist/commands/graph/index.d.ts.map +1 -0
  43. package/dist/commands/graph/index.js +104 -0
  44. package/dist/commands/graph/index.js.map +1 -0
  45. package/dist/commands/graph/init.d.ts +21 -0
  46. package/dist/commands/graph/init.d.ts.map +1 -0
  47. package/dist/commands/graph/init.js +173 -0
  48. package/dist/commands/graph/init.js.map +1 -0
  49. package/dist/commands/graph/load.d.ts +21 -0
  50. package/dist/commands/graph/load.d.ts.map +1 -0
  51. package/dist/commands/graph/load.js +224 -0
  52. package/dist/commands/graph/load.js.map +1 -0
  53. package/dist/commands/graph/query.d.ts +23 -0
  54. package/dist/commands/graph/query.d.ts.map +1 -0
  55. package/dist/commands/graph/query.js +145 -0
  56. package/dist/commands/graph/query.js.map +1 -0
  57. package/dist/commands/graph/status.d.ts +15 -0
  58. package/dist/commands/graph/status.d.ts.map +1 -0
  59. package/dist/commands/graph/status.js +88 -0
  60. package/dist/commands/graph/status.js.map +1 -0
  61. package/dist/commands/handoff.d.ts +14 -5
  62. package/dist/commands/handoff.d.ts.map +1 -1
  63. package/dist/commands/handoff.js +84 -142
  64. package/dist/commands/handoff.js.map +1 -1
  65. package/dist/commands/init.d.ts.map +1 -1
  66. package/dist/commands/init.js +88 -41
  67. package/dist/commands/init.js.map +1 -1
  68. package/dist/commands/knowledge/create.d.ts +24 -0
  69. package/dist/commands/knowledge/create.d.ts.map +1 -0
  70. package/dist/commands/knowledge/create.js +180 -0
  71. package/dist/commands/knowledge/create.js.map +1 -0
  72. package/dist/commands/knowledge/graph.d.ts +21 -0
  73. package/dist/commands/knowledge/graph.d.ts.map +1 -0
  74. package/dist/commands/knowledge/graph.js +199 -0
  75. package/dist/commands/knowledge/graph.js.map +1 -0
  76. package/dist/commands/knowledge/index.d.ts +25 -0
  77. package/dist/commands/knowledge/index.d.ts.map +1 -0
  78. package/dist/commands/knowledge/index.js +121 -0
  79. package/dist/commands/knowledge/index.js.map +1 -0
  80. package/dist/commands/knowledge/search.d.ts +23 -0
  81. package/dist/commands/knowledge/search.d.ts.map +1 -0
  82. package/dist/commands/knowledge/search.js +157 -0
  83. package/dist/commands/knowledge/search.js.map +1 -0
  84. package/dist/commands/knowledge/sync.d.ts +28 -0
  85. package/dist/commands/knowledge/sync.d.ts.map +1 -0
  86. package/dist/commands/knowledge/sync.js +251 -0
  87. package/dist/commands/knowledge/sync.js.map +1 -0
  88. package/dist/commands/log.d.ts +32 -0
  89. package/dist/commands/log.d.ts.map +1 -0
  90. package/dist/commands/log.js +632 -0
  91. package/dist/commands/log.js.map +1 -0
  92. package/dist/commands/login.d.ts +27 -0
  93. package/dist/commands/login.d.ts.map +1 -0
  94. package/dist/commands/login.js +177 -0
  95. package/dist/commands/login.js.map +1 -0
  96. package/dist/commands/logout.d.ts +15 -0
  97. package/dist/commands/logout.d.ts.map +1 -0
  98. package/dist/commands/logout.js +31 -0
  99. package/dist/commands/logout.js.map +1 -0
  100. package/dist/commands/project/create.d.ts +22 -0
  101. package/dist/commands/project/create.d.ts.map +1 -0
  102. package/dist/commands/project/create.js +69 -0
  103. package/dist/commands/project/create.js.map +1 -0
  104. package/dist/commands/project/delete.d.ts +19 -0
  105. package/dist/commands/project/delete.d.ts.map +1 -0
  106. package/dist/commands/project/delete.js +73 -0
  107. package/dist/commands/project/delete.js.map +1 -0
  108. package/dist/commands/project/index.d.ts +22 -0
  109. package/dist/commands/project/index.d.ts.map +1 -0
  110. package/dist/commands/project/index.js +134 -0
  111. package/dist/commands/project/index.js.map +1 -0
  112. package/dist/commands/project/info.d.ts +15 -0
  113. package/dist/commands/project/info.d.ts.map +1 -0
  114. package/dist/commands/project/info.js +92 -0
  115. package/dist/commands/project/info.js.map +1 -0
  116. package/dist/commands/project/list.d.ts +20 -0
  117. package/dist/commands/project/list.d.ts.map +1 -0
  118. package/dist/commands/project/list.js +82 -0
  119. package/dist/commands/project/list.js.map +1 -0
  120. package/dist/commands/project/members.d.ts +27 -0
  121. package/dist/commands/project/members.d.ts.map +1 -0
  122. package/dist/commands/project/members.js +140 -0
  123. package/dist/commands/project/members.js.map +1 -0
  124. package/dist/commands/project/update.d.ts +24 -0
  125. package/dist/commands/project/update.d.ts.map +1 -0
  126. package/dist/commands/project/update.js +83 -0
  127. package/dist/commands/project/update.js.map +1 -0
  128. package/dist/commands/reflect.js +0 -3
  129. package/dist/commands/reflect.js.map +1 -1
  130. package/dist/commands/ship.d.ts +3 -1
  131. package/dist/commands/ship.d.ts.map +1 -1
  132. package/dist/commands/ship.js +100 -9
  133. package/dist/commands/ship.js.map +1 -1
  134. package/dist/commands/start/index.d.ts.map +1 -1
  135. package/dist/commands/start/index.js +5 -3
  136. package/dist/commands/start/index.js.map +1 -1
  137. package/dist/commands/start/start-reflection.d.ts +2 -1
  138. package/dist/commands/start/start-reflection.d.ts.map +1 -1
  139. package/dist/commands/start/start-reflection.js +265 -43
  140. package/dist/commands/start/start-reflection.js.map +1 -1
  141. package/dist/commands/status.d.ts +1 -1
  142. package/dist/commands/status.d.ts.map +1 -1
  143. package/dist/commands/status.js +41 -1
  144. package/dist/commands/status.js.map +1 -1
  145. package/dist/commands/team/create.d.ts +15 -0
  146. package/dist/commands/team/create.d.ts.map +1 -0
  147. package/dist/commands/team/create.js +48 -0
  148. package/dist/commands/team/create.js.map +1 -0
  149. package/dist/commands/team/index.d.ts +22 -0
  150. package/dist/commands/team/index.d.ts.map +1 -0
  151. package/dist/commands/team/index.js +109 -0
  152. package/dist/commands/team/index.js.map +1 -0
  153. package/dist/commands/team/list.d.ts +15 -0
  154. package/dist/commands/team/list.d.ts.map +1 -0
  155. package/dist/commands/team/list.js +67 -0
  156. package/dist/commands/team/list.js.map +1 -0
  157. package/dist/commands/team/members.d.ts +27 -0
  158. package/dist/commands/team/members.d.ts.map +1 -0
  159. package/dist/commands/team/members.js +135 -0
  160. package/dist/commands/team/members.js.map +1 -0
  161. package/dist/commands/team/projects.d.ts +19 -0
  162. package/dist/commands/team/projects.d.ts.map +1 -0
  163. package/dist/commands/team/projects.js +107 -0
  164. package/dist/commands/team/projects.js.map +1 -0
  165. package/dist/commands/team.d.ts +22 -0
  166. package/dist/commands/team.d.ts.map +1 -0
  167. package/dist/commands/team.js +238 -0
  168. package/dist/commands/team.js.map +1 -0
  169. package/dist/commands/testing/testing-pipeline-enhanced.d.ts.map +1 -1
  170. package/dist/commands/testing/testing-pipeline-enhanced.js +5 -3
  171. package/dist/commands/testing/testing-pipeline-enhanced.js.map +1 -1
  172. package/dist/commands/testing/testing-pipeline.d.ts.map +1 -1
  173. package/dist/commands/testing/testing-pipeline.js +5 -3
  174. package/dist/commands/testing/testing-pipeline.js.map +1 -1
  175. package/dist/commands/whoami.d.ts +15 -0
  176. package/dist/commands/whoami.d.ts.map +1 -0
  177. package/dist/commands/whoami.js +38 -0
  178. package/dist/commands/whoami.js.map +1 -0
  179. package/dist/core/reflection-pattern.d.ts +1 -1
  180. package/dist/core/reflection-pattern.d.ts.map +1 -1
  181. package/dist/core/reflection-pattern.js +2 -12
  182. package/dist/core/reflection-pattern.js.map +1 -1
  183. package/dist/core/session-log-manager.d.ts +44 -4
  184. package/dist/core/session-log-manager.d.ts.map +1 -1
  185. package/dist/core/session-log-manager.js +132 -31
  186. package/dist/core/session-log-manager.js.map +1 -1
  187. package/dist/index.d.ts +1 -1
  188. package/dist/index.js +116 -17
  189. package/dist/index.js.map +1 -1
  190. package/dist/lib/api/projects-client.d.ts +119 -0
  191. package/dist/lib/api/projects-client.d.ts.map +1 -0
  192. package/dist/lib/api/projects-client.js +125 -0
  193. package/dist/lib/api/projects-client.js.map +1 -0
  194. package/dist/lib/api/teams-client.d.ts +73 -0
  195. package/dist/lib/api/teams-client.d.ts.map +1 -0
  196. package/dist/lib/api/teams-client.js +68 -0
  197. package/dist/lib/api/teams-client.js.map +1 -0
  198. package/dist/lib/charter/charter-editor.d.ts +60 -0
  199. package/dist/lib/charter/charter-editor.d.ts.map +1 -0
  200. package/dist/lib/charter/charter-editor.js +559 -0
  201. package/dist/lib/charter/charter-editor.js.map +1 -0
  202. package/dist/lib/charter/charter-storage.d.ts +92 -0
  203. package/dist/lib/charter/charter-storage.d.ts.map +1 -0
  204. package/dist/lib/charter/charter-storage.js +501 -0
  205. package/dist/lib/charter/charter-storage.js.map +1 -0
  206. package/dist/lib/charter/charter-synthesizer.d.ts +94 -0
  207. package/dist/lib/charter/charter-synthesizer.d.ts.map +1 -0
  208. package/dist/lib/charter/charter-synthesizer.js +521 -0
  209. package/dist/lib/charter/charter-synthesizer.js.map +1 -0
  210. package/dist/lib/charter/charter-versioning.d.ts +57 -0
  211. package/dist/lib/charter/charter-versioning.d.ts.map +1 -0
  212. package/dist/lib/charter/charter-versioning.js +283 -0
  213. package/dist/lib/charter/charter-versioning.js.map +1 -0
  214. package/dist/lib/charter/confidence-scorer.d.ts +263 -0
  215. package/dist/lib/charter/confidence-scorer.d.ts.map +1 -0
  216. package/dist/lib/charter/confidence-scorer.js +737 -0
  217. package/dist/lib/charter/confidence-scorer.js.map +1 -0
  218. package/dist/lib/charter/conversation-context.d.ts +99 -0
  219. package/dist/lib/charter/conversation-context.d.ts.map +1 -0
  220. package/dist/lib/charter/conversation-context.js +297 -0
  221. package/dist/lib/charter/conversation-context.js.map +1 -0
  222. package/dist/lib/charter/conversation-facilitator.d.ts +117 -0
  223. package/dist/lib/charter/conversation-facilitator.d.ts.map +1 -0
  224. package/dist/lib/charter/conversation-facilitator.js +360 -0
  225. package/dist/lib/charter/conversation-facilitator.js.map +1 -0
  226. package/dist/lib/charter/question-templates.d.ts +82 -0
  227. package/dist/lib/charter/question-templates.d.ts.map +1 -0
  228. package/dist/lib/charter/question-templates.js +355 -0
  229. package/dist/lib/charter/question-templates.js.map +1 -0
  230. package/dist/lib/charter/signal-detection.d.ts +49 -0
  231. package/dist/lib/charter/signal-detection.d.ts.map +1 -0
  232. package/dist/lib/charter/signal-detection.js +338 -0
  233. package/dist/lib/charter/signal-detection.js.map +1 -0
  234. package/dist/lib/context-loader-events.d.ts +111 -0
  235. package/dist/lib/context-loader-events.d.ts.map +1 -0
  236. package/dist/lib/context-loader-events.js +475 -0
  237. package/dist/lib/context-loader-events.js.map +1 -0
  238. package/dist/lib/event-logger.d.ts +64 -0
  239. package/dist/lib/event-logger.d.ts.map +1 -0
  240. package/dist/lib/event-logger.js +197 -0
  241. package/dist/lib/event-logger.js.map +1 -0
  242. package/dist/lib/event-queue.d.ts +104 -0
  243. package/dist/lib/event-queue.d.ts.map +1 -0
  244. package/dist/lib/event-queue.js +274 -0
  245. package/dist/lib/event-queue.js.map +1 -0
  246. package/dist/lib/session-cursor.d.ts +80 -0
  247. package/dist/lib/session-cursor.d.ts.map +1 -0
  248. package/dist/lib/session-cursor.js +250 -0
  249. package/dist/lib/session-cursor.js.map +1 -0
  250. package/dist/lib/sync/conflict-detector.d.ts +41 -0
  251. package/dist/lib/sync/conflict-detector.d.ts.map +1 -0
  252. package/dist/lib/sync/conflict-detector.js +124 -0
  253. package/dist/lib/sync/conflict-detector.js.map +1 -0
  254. package/dist/lib/sync/logger.d.ts +89 -0
  255. package/dist/lib/sync/logger.d.ts.map +1 -0
  256. package/dist/lib/sync/logger.js +202 -0
  257. package/dist/lib/sync/logger.js.map +1 -0
  258. package/dist/lib/sync/parser.d.ts +32 -0
  259. package/dist/lib/sync/parser.d.ts.map +1 -0
  260. package/dist/lib/sync/parser.js +180 -0
  261. package/dist/lib/sync/parser.js.map +1 -0
  262. package/dist/lib/sync/scanner.d.ts +34 -0
  263. package/dist/lib/sync/scanner.d.ts.map +1 -0
  264. package/dist/lib/sync/scanner.js +97 -0
  265. package/dist/lib/sync/scanner.js.map +1 -0
  266. package/dist/lib/sync/uploader.d.ts +33 -0
  267. package/dist/lib/sync/uploader.d.ts.map +1 -0
  268. package/dist/lib/sync/uploader.js +188 -0
  269. package/dist/lib/sync/uploader.js.map +1 -0
  270. package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts +77 -0
  271. package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts.map +1 -0
  272. package/dist/lib/write-dispatcher/adapters/graph-adapter.js +178 -0
  273. package/dist/lib/write-dispatcher/adapters/graph-adapter.js.map +1 -0
  274. package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts +133 -0
  275. package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts.map +1 -0
  276. package/dist/lib/write-dispatcher/adapters/local-adapter.js +324 -0
  277. package/dist/lib/write-dispatcher/adapters/local-adapter.js.map +1 -0
  278. package/dist/lib/write-dispatcher/write-dispatcher.d.ts +151 -0
  279. package/dist/lib/write-dispatcher/write-dispatcher.d.ts.map +1 -0
  280. package/dist/lib/write-dispatcher/write-dispatcher.js +197 -0
  281. package/dist/lib/write-dispatcher/write-dispatcher.js.map +1 -0
  282. package/dist/types/charter.d.ts +330 -0
  283. package/dist/types/charter.d.ts.map +1 -0
  284. package/dist/types/charter.js +76 -0
  285. package/dist/types/charter.js.map +1 -0
  286. package/dist/types/config.d.ts +65 -17
  287. package/dist/types/config.d.ts.map +1 -1
  288. package/dist/types/config.js +50 -21
  289. package/dist/types/config.js.map +1 -1
  290. package/dist/utils/api-client.d.ts +36 -0
  291. package/dist/utils/api-client.d.ts.map +1 -0
  292. package/dist/utils/api-client.js +97 -0
  293. package/dist/utils/api-client.js.map +1 -0
  294. package/dist/utils/auth-storage.d.ts +56 -0
  295. package/dist/utils/auth-storage.d.ts.map +1 -0
  296. package/dist/utils/auth-storage.js +133 -0
  297. package/dist/utils/auth-storage.js.map +1 -0
  298. package/dist/utils/cleanup.d.ts +21 -0
  299. package/dist/utils/cleanup.d.ts.map +1 -0
  300. package/dist/utils/cleanup.js +122 -0
  301. package/dist/utils/cleanup.js.map +1 -0
  302. package/dist/utils/config-loader.d.ts +76 -0
  303. package/dist/utils/config-loader.d.ts.map +1 -0
  304. package/dist/utils/config-loader.js +269 -0
  305. package/dist/utils/config-loader.js.map +1 -0
  306. package/dist/utils/context-loader.d.ts +154 -0
  307. package/dist/utils/context-loader.d.ts.map +1 -0
  308. package/dist/utils/context-loader.js +411 -0
  309. package/dist/utils/context-loader.js.map +1 -0
  310. package/dist/utils/dispatcher-logger.d.ts +30 -0
  311. package/dist/utils/dispatcher-logger.d.ts.map +1 -0
  312. package/dist/utils/dispatcher-logger.js +128 -0
  313. package/dist/utils/dispatcher-logger.js.map +1 -0
  314. package/dist/utils/ginko-root.d.ts +3 -2
  315. package/dist/utils/ginko-root.d.ts.map +1 -1
  316. package/dist/utils/ginko-root.js +35 -2
  317. package/dist/utils/ginko-root.js.map +1 -1
  318. package/dist/utils/helpers.d.ts +1 -0
  319. package/dist/utils/helpers.d.ts.map +1 -1
  320. package/dist/utils/helpers.js +3 -0
  321. package/dist/utils/helpers.js.map +1 -1
  322. package/dist/utils/log-quality.d.ts +55 -0
  323. package/dist/utils/log-quality.d.ts.map +1 -0
  324. package/dist/utils/log-quality.js +297 -0
  325. package/dist/utils/log-quality.js.map +1 -0
  326. package/dist/utils/reference-parser.d.ts +164 -0
  327. package/dist/utils/reference-parser.d.ts.map +1 -0
  328. package/dist/utils/reference-parser.js +363 -0
  329. package/dist/utils/reference-parser.js.map +1 -0
  330. package/dist/utils/synthesis.d.ts +180 -0
  331. package/dist/utils/synthesis.d.ts.map +1 -0
  332. package/dist/utils/synthesis.js +724 -0
  333. package/dist/utils/synthesis.js.map +1 -0
  334. package/dist/utils/team-awareness.d.ts +127 -0
  335. package/dist/utils/team-awareness.d.ts.map +1 -0
  336. package/dist/utils/team-awareness.js +385 -0
  337. package/dist/utils/team-awareness.js.map +1 -0
  338. package/package.json +6 -4
  339. package/dist/commands/handoff/handoff-reflection-pipeline.d.ts +0 -106
  340. package/dist/commands/handoff/handoff-reflection-pipeline.d.ts.map +0 -1
  341. package/dist/commands/handoff/handoff-reflection-pipeline.js +0 -534
  342. package/dist/commands/handoff/handoff-reflection-pipeline.js.map +0 -1
  343. package/dist/commands/handoff/handoff-save.d.ts +0 -16
  344. package/dist/commands/handoff/handoff-save.d.ts.map +0 -1
  345. package/dist/commands/handoff/handoff-save.js +0 -72
  346. package/dist/commands/handoff/handoff-save.js.map +0 -1
  347. package/dist/commands/handoff/index.d.ts +0 -19
  348. package/dist/commands/handoff/index.d.ts.map +0 -1
  349. package/dist/commands/handoff/index.js +0 -55
  350. package/dist/commands/handoff/index.js.map +0 -1
  351. package/dist/commands/handoff-ai-orig.d.ts +0 -27
  352. package/dist/commands/handoff-ai-orig.d.ts.map +0 -1
  353. package/dist/commands/handoff-ai-orig.js +0 -405
  354. package/dist/commands/handoff-ai-orig.js.map +0 -1
  355. package/dist/commands/handoff-ai.d.ts +0 -27
  356. package/dist/commands/handoff-ai.d.ts.map +0 -1
  357. package/dist/commands/handoff-ai.js +0 -405
  358. package/dist/commands/handoff-ai.js.map +0 -1
  359. package/dist/commands/handoff-enhanced-orig.d.ts +0 -25
  360. package/dist/commands/handoff-enhanced-orig.d.ts.map +0 -1
  361. package/dist/commands/handoff-enhanced-orig.js +0 -349
  362. package/dist/commands/handoff-enhanced-orig.js.map +0 -1
  363. package/dist/commands/handoff-enhanced.d.ts +0 -25
  364. package/dist/commands/handoff-enhanced.d.ts.map +0 -1
  365. package/dist/commands/handoff-enhanced.js +0 -349
  366. package/dist/commands/handoff-enhanced.js.map +0 -1
  367. package/dist/commands/handoff-orig.d.ts +0 -10
  368. package/dist/commands/handoff-orig.d.ts.map +0 -1
  369. package/dist/commands/handoff-orig.js +0 -167
  370. package/dist/commands/handoff-orig.js.map +0 -1
  371. package/dist/commands/init-enhanced.d.ts +0 -20
  372. package/dist/commands/init-enhanced.d.ts.map +0 -1
  373. package/dist/commands/init-enhanced.js +0 -430
  374. package/dist/commands/init-enhanced.js.map +0 -1
  375. package/dist/commands/prd/prd-reflection-enhanced.d.ts +0 -63
  376. package/dist/commands/prd/prd-reflection-enhanced.d.ts.map +0 -1
  377. package/dist/commands/prd/prd-reflection-enhanced.js +0 -310
  378. package/dist/commands/prd/prd-reflection-enhanced.js.map +0 -1
  379. package/dist/commands/start-enhanced.d.ts +0 -19
  380. package/dist/commands/start-enhanced.d.ts.map +0 -1
  381. package/dist/commands/start-enhanced.js +0 -434
  382. package/dist/commands/start-enhanced.js.map +0 -1
  383. package/dist/commands/start.d.ts +0 -10
  384. package/dist/commands/start.d.ts.map +0 -1
  385. package/dist/commands/start.js +0 -119
  386. package/dist/commands/start.js.map +0 -1
  387. package/dist/core/config/config-aware-reflection.d.ts +0 -37
  388. package/dist/core/config/config-aware-reflection.d.ts.map +0 -1
  389. package/dist/core/config/config-aware-reflection.js +0 -97
  390. package/dist/core/config/config-aware-reflection.js.map +0 -1
  391. package/dist/core/config/config-loader.d.ts +0 -154
  392. package/dist/core/config/config-loader.d.ts.map +0 -1
  393. package/dist/core/config/config-loader.js +0 -424
  394. package/dist/core/config/config-loader.js.map +0 -1
  395. package/dist/core/config/config-migrator.d.ts +0 -150
  396. package/dist/core/config/config-migrator.d.ts.map +0 -1
  397. package/dist/core/config/config-migrator.js +0 -423
  398. package/dist/core/config/config-migrator.js.map +0 -1
  399. package/dist/core/config/config-schema.d.ts +0 -276
  400. package/dist/core/config/config-schema.d.ts.map +0 -1
  401. package/dist/core/config/config-schema.js +0 -277
  402. package/dist/core/config/config-schema.js.map +0 -1
  403. package/dist/core/config/index.d.ts +0 -260
  404. package/dist/core/config/index.d.ts.map +0 -1
  405. package/dist/core/config/index.js +0 -283
  406. package/dist/core/config/index.js.map +0 -1
  407. package/dist/core/config/interactive-config.d.ts +0 -76
  408. package/dist/core/config/interactive-config.d.ts.map +0 -1
  409. package/dist/core/config/interactive-config.js +0 -315
  410. package/dist/core/config/interactive-config.js.map +0 -1
  411. package/dist/core/config/path-config.d.ts +0 -121
  412. package/dist/core/config/path-config.d.ts.map +0 -1
  413. package/dist/core/config/path-config.js +0 -210
  414. package/dist/core/config/path-config.js.map +0 -1
  415. package/dist/core/config/path-resolver.d.ts +0 -151
  416. package/dist/core/config/path-resolver.d.ts.map +0 -1
  417. package/dist/core/config/path-resolver.js +0 -343
  418. package/dist/core/config/path-resolver.js.map +0 -1
  419. package/dist/core/config/project-detector.d.ts +0 -58
  420. package/dist/core/config/project-detector.d.ts.map +0 -1
  421. package/dist/core/config/project-detector.js +0 -310
  422. package/dist/core/config/project-detector.js.map +0 -1
  423. package/dist/core/config-backup/config-aware-reflection.d.ts +0 -37
  424. package/dist/core/config-backup/config-aware-reflection.d.ts.map +0 -1
  425. package/dist/core/config-backup/config-aware-reflection.js +0 -97
  426. package/dist/core/config-backup/config-aware-reflection.js.map +0 -1
  427. package/dist/core/config-backup/config-loader.d.ts +0 -71
  428. package/dist/core/config-backup/config-loader.d.ts.map +0 -1
  429. package/dist/core/config-backup/config-loader.js +0 -288
  430. package/dist/core/config-backup/config-loader.js.map +0 -1
  431. package/dist/core/config-backup/interactive-config.d.ts +0 -76
  432. package/dist/core/config-backup/interactive-config.d.ts.map +0 -1
  433. package/dist/core/config-backup/interactive-config.js +0 -315
  434. package/dist/core/config-backup/interactive-config.js.map +0 -1
  435. package/dist/core/config-backup/path-config.d.ts +0 -121
  436. package/dist/core/config-backup/path-config.d.ts.map +0 -1
  437. package/dist/core/config-backup/path-config.js +0 -210
  438. package/dist/core/config-backup/path-config.js.map +0 -1
  439. package/dist/core/config-backup/project-detector.d.ts +0 -58
  440. package/dist/core/config-backup/project-detector.d.ts.map +0 -1
  441. package/dist/core/config-backup/project-detector.js +0 -310
  442. package/dist/core/config-backup/project-detector.js.map +0 -1
  443. package/dist/core/documents/document-manager.d.ts +0 -97
  444. package/dist/core/documents/document-manager.d.ts.map +0 -1
  445. package/dist/core/documents/document-manager.js +0 -441
  446. package/dist/core/documents/document-manager.js.map +0 -1
  447. package/dist/core/documents/document-migrator.d.ts +0 -138
  448. package/dist/core/documents/document-migrator.d.ts.map +0 -1
  449. package/dist/core/documents/document-migrator.js +0 -349
  450. package/dist/core/documents/document-migrator.js.map +0 -1
  451. package/dist/core/documents/document-namer.d.ts +0 -111
  452. package/dist/core/documents/document-namer.d.ts.map +0 -1
  453. package/dist/core/documents/document-namer.js +0 -225
  454. package/dist/core/documents/document-namer.js.map +0 -1
  455. package/dist/core/documents/examples.d.ts +0 -74
  456. package/dist/core/documents/examples.d.ts.map +0 -1
  457. package/dist/core/documents/examples.js +0 -273
  458. package/dist/core/documents/examples.js.map +0 -1
  459. package/dist/core/documents/file-system.d.ts +0 -93
  460. package/dist/core/documents/file-system.d.ts.map +0 -1
  461. package/dist/core/documents/file-system.js +0 -432
  462. package/dist/core/documents/file-system.js.map +0 -1
  463. package/dist/core/documents/index.d.ts +0 -97
  464. package/dist/core/documents/index.d.ts.map +0 -1
  465. package/dist/core/documents/index.js +0 -119
  466. package/dist/core/documents/index.js.map +0 -1
  467. package/dist/core/documents/markdown-processor.d.ts +0 -84
  468. package/dist/core/documents/markdown-processor.d.ts.map +0 -1
  469. package/dist/core/documents/markdown-processor.js +0 -302
  470. package/dist/core/documents/markdown-processor.js.map +0 -1
  471. package/dist/core/documents/sequence-manager.d.ts +0 -107
  472. package/dist/core/documents/sequence-manager.d.ts.map +0 -1
  473. package/dist/core/documents/sequence-manager.js +0 -246
  474. package/dist/core/documents/sequence-manager.js.map +0 -1
  475. package/dist/core/documents/template-engine.d.ts +0 -101
  476. package/dist/core/documents/template-engine.d.ts.map +0 -1
  477. package/dist/core/documents/template-engine.js +0 -440
  478. package/dist/core/documents/template-engine.js.map +0 -1
  479. package/dist/core/platform/hook-migration.d.ts +0 -73
  480. package/dist/core/platform/hook-migration.d.ts.map +0 -1
  481. package/dist/core/platform/hook-migration.js +0 -339
  482. package/dist/core/platform/hook-migration.js.map +0 -1
  483. package/dist/core/platform/hook-migrator.d.ts +0 -49
  484. package/dist/core/platform/hook-migrator.d.ts.map +0 -1
  485. package/dist/core/platform/hook-migrator.js +0 -305
  486. package/dist/core/platform/hook-migrator.js.map +0 -1
  487. package/dist/core/platform/path-resolver.d.ts +0 -120
  488. package/dist/core/platform/path-resolver.d.ts.map +0 -1
  489. package/dist/core/platform/path-resolver.js +0 -339
  490. package/dist/core/platform/path-resolver.js.map +0 -1
  491. package/dist/core/platform/platform-templates.d.ts +0 -62
  492. package/dist/core/platform/platform-templates.d.ts.map +0 -1
  493. package/dist/core/platform/platform-templates.js +0 -364
  494. package/dist/core/platform/platform-templates.js.map +0 -1
  495. package/dist/core/pressure-monitor.d.ts +0 -76
  496. package/dist/core/pressure-monitor.d.ts.map +0 -1
  497. package/dist/core/pressure-monitor.js +0 -156
  498. package/dist/core/pressure-monitor.js.map +0 -1
  499. package/dist/core/validators/git-validator.test.d.ts +0 -12
  500. package/dist/core/validators/git-validator.test.d.ts.map +0 -1
  501. package/dist/core/validators/git-validator.test.js +0 -40
  502. package/dist/core/validators/git-validator.test.js.map +0 -1
  503. package/dist/core/validators/temp_index.d.ts +0 -56
  504. package/dist/core/validators/temp_index.d.ts.map +0 -1
  505. package/dist/core/validators/temp_index.js +0 -94
  506. package/dist/core/validators/temp_index.js.map +0 -1
@@ -1,97 +0,0 @@
1
- /**
2
- * @fileType: utility
3
- * @status: current
4
- * @updated: 2025-09-21
5
- * @tags: [reflection, config-aware, paths, documents, base-class]
6
- * @related: [reflection-pattern.ts, config-loader.ts, reflectors]
7
- * @priority: high
8
- * @complexity: medium
9
- * @dependencies: [reflection-pattern, config-loader, fs-extra, path, path-config]
10
- */
11
- import { ReflectionCommand } from '../reflection-pattern.js';
12
- import { configLoader } from './config-loader.js';
13
- import { pathManager } from './path-config.js';
14
- import fs from 'fs-extra';
15
- import path from 'path';
16
- import chalk from 'chalk';
17
- /**
18
- * Configuration-aware reflection base class
19
- * Handles path resolution and document naming using pathManager
20
- */
21
- export class ConfigAwareReflectionCommand extends ReflectionCommand {
22
- config = null;
23
- constructor(domain) {
24
- super(domain);
25
- }
26
- /**
27
- * Load configuration before executing
28
- */
29
- async execute(intent, options = {}) {
30
- // Load configuration
31
- this.config = await configLoader.loadConfig();
32
- // Call parent execute
33
- await super.execute(intent, options);
34
- }
35
- /**
36
- * Save artifact using configuration-based paths
37
- */
38
- async saveArtifact(content, filename) {
39
- if (!this.config) {
40
- throw new Error('Configuration not loaded');
41
- }
42
- // Get the configured path for this domain
43
- const documentPath = await this.getDocumentPath();
44
- await fs.ensureDir(documentPath);
45
- // Generate filename if not provided
46
- if (!filename) {
47
- filename = await this.generateDocumentName(content);
48
- }
49
- const filePath = path.join(documentPath, filename);
50
- await fs.writeFile(filePath, content, 'utf8');
51
- console.log(chalk.green(`✓ Saved to: ${filePath}`));
52
- return filePath;
53
- }
54
- /**
55
- * Get document path for this domain using pathManager
56
- */
57
- async getDocumentPath() {
58
- try {
59
- // Map domain to configuration path using pathManager
60
- const pathConfig = pathManager.getConfig();
61
- const pathMapping = {
62
- 'prd': pathConfig.docs.prd,
63
- 'architecture': pathConfig.docs.adr,
64
- 'adr': pathConfig.docs.adr,
65
- 'sprint': pathConfig.docs.sprints,
66
- 'backlog': pathConfig.ginko.backlog,
67
- 'documentation': pathConfig.docs.root
68
- };
69
- const documentPath = pathMapping[this.domain];
70
- if (!documentPath) {
71
- throw new Error(`No path configured for domain: ${this.domain}`);
72
- }
73
- return documentPath;
74
- }
75
- catch (error) {
76
- // Fallback to default paths if configuration fails
77
- console.warn(chalk.yellow(`Warning: Using fallback path for ${this.domain}`));
78
- return this.getFallbackPath();
79
- }
80
- }
81
- /**
82
- * Get fallback path when configuration fails - now using pathManager
83
- */
84
- getFallbackPath() {
85
- const pathConfig = pathManager.getConfig();
86
- const fallbackPaths = {
87
- 'prd': pathConfig.docs.prd,
88
- 'architecture': pathConfig.docs.adr,
89
- 'adr': pathConfig.docs.adr,
90
- 'sprint': pathConfig.docs.sprints,
91
- 'backlog': pathConfig.ginko.backlog,
92
- 'documentation': pathConfig.docs.root
93
- };
94
- return fallbackPaths[this.domain] || pathConfig.docs.root;
95
- }
96
- }
97
- //# sourceMappingURL=config-aware-reflection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-aware-reflection.js","sourceRoot":"","sources":["../../../src/core/config/config-aware-reflection.ts"],"names":[],"mappings":"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"}
@@ -1,154 +0,0 @@
1
- /**
2
- * @fileType: utility
3
- * @status: current
4
- * @updated: 2025-09-19
5
- * @tags: [config, loader, singleton, defaults, caching]
6
- * @related: [config-schema.ts, path-resolver.ts, config-migrator.ts]
7
- * @priority: critical
8
- * @complexity: high
9
- * @dependencies: [fs, path]
10
- */
11
- import { GinkoConfig } from './config-schema.js';
12
- import { PathResolver } from './path-resolver.js';
13
- /**
14
- * Configuration Loader with Singleton Pattern
15
- * Implements ADR-028 First-Use Experience Enhancement Architecture
16
- */
17
- export interface LoaderOptions {
18
- /** Project root directory (defaults to cwd) */
19
- projectRoot?: string;
20
- /** Configuration file name (defaults to 'ginko.json') */
21
- configFileName?: string;
22
- /** Force reload from disk, ignoring cache */
23
- forceReload?: boolean;
24
- /** Enable automatic migration */
25
- autoMigrate?: boolean;
26
- /** Validation strictness level */
27
- validation?: 'strict' | 'loose' | 'none';
28
- }
29
- export interface LoadResult {
30
- /** Loaded configuration */
31
- config: GinkoConfig;
32
- /** Path to configuration file */
33
- configPath: string;
34
- /** Whether config was loaded from file or defaults */
35
- fromFile: boolean;
36
- /** Whether config was migrated */
37
- migrated: boolean;
38
- /** Path resolver instance */
39
- resolver: PathResolver;
40
- /** Validation warnings */
41
- warnings: string[];
42
- /** Load timestamp */
43
- loadedAt: Date;
44
- }
45
- export declare class ConfigLoadError extends Error {
46
- configPath?: string | undefined;
47
- cause?: Error | undefined;
48
- constructor(message: string, configPath?: string | undefined, cause?: Error | undefined);
49
- }
50
- /**
51
- * ConfigLoader singleton for managing ginko configuration
52
- */
53
- export declare class ConfigLoader {
54
- private static instance;
55
- private cachedResult;
56
- private loadPromise;
57
- private constructor();
58
- /**
59
- * Get the singleton instance
60
- */
61
- static getInstance(): ConfigLoader;
62
- /**
63
- * Reset the singleton (useful for testing)
64
- */
65
- static reset(): void;
66
- /**
67
- * Load configuration with caching and graceful fallback
68
- */
69
- load(options?: LoaderOptions): Promise<LoadResult>;
70
- /**
71
- * Internal loading logic
72
- */
73
- private doLoad;
74
- /**
75
- * Save configuration to file
76
- */
77
- save(config: GinkoConfig, options?: LoaderOptions): Promise<void>;
78
- /**
79
- * Create default configuration with platform detection
80
- */
81
- private createDefaultConfig;
82
- /**
83
- * Detect current platform configuration
84
- */
85
- private detectPlatform;
86
- /**
87
- * Get platform-specific configurations
88
- */
89
- private getPlatformSpecific;
90
- /**
91
- * Detect Linux distribution
92
- */
93
- private detectLinuxDistribution;
94
- /**
95
- * Check if configuration needs migration
96
- */
97
- private needsMigration;
98
- /**
99
- * Merge user configuration with defaults
100
- */
101
- private mergeWithDefaults;
102
- /**
103
- * Create path resolver from configuration
104
- */
105
- private createPathResolver;
106
- /**
107
- * Get current configuration without loading
108
- */
109
- getCached(): LoadResult | null;
110
- /**
111
- * Check if configuration exists
112
- */
113
- exists(options?: LoaderOptions): Promise<boolean>;
114
- /**
115
- * Initialize a new configuration file
116
- */
117
- initialize(options?: LoaderOptions): Promise<LoadResult>;
118
- /**
119
- * Invalidate cache
120
- */
121
- invalidateCache(): void;
122
- /**
123
- * Get configuration statistics
124
- */
125
- getStats(): {
126
- cached: boolean;
127
- loadedAt?: Date;
128
- configPath?: string;
129
- fromFile?: boolean;
130
- migrated?: boolean;
131
- };
132
- }
133
- /**
134
- * Convenience functions for common operations
135
- */
136
- export declare namespace ConfigLoaderUtils {
137
- /**
138
- * Quick load with defaults
139
- */
140
- function quickLoad(projectRoot?: string): Promise<GinkoConfig>;
141
- /**
142
- * Get resolved path from configuration
143
- */
144
- function getResolvedPath(pathKey: string, projectRoot?: string): Promise<string>;
145
- /**
146
- * Check if a feature is enabled
147
- */
148
- function isFeatureEnabled(feature: string, projectRoot?: string): Promise<boolean>;
149
- /**
150
- * Update a single configuration value
151
- */
152
- function updateConfig(updates: Partial<GinkoConfig>, projectRoot?: string): Promise<void>;
153
- }
154
- //# sourceMappingURL=config-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -1,424 +0,0 @@
1
- /**
2
- * @fileType: utility
3
- * @status: current
4
- * @updated: 2025-09-19
5
- * @tags: [config, loader, singleton, defaults, caching]
6
- * @related: [config-schema.ts, path-resolver.ts, config-migrator.ts]
7
- * @priority: critical
8
- * @complexity: high
9
- * @dependencies: [fs, path]
10
- */
11
- import * as fs from 'fs/promises';
12
- import * as path from 'path';
13
- import { DEFAULT_CONFIG, validateConfig, ConfigValidationError } from './config-schema.js';
14
- import { PathResolver } from './path-resolver.js';
15
- export class ConfigLoadError extends Error {
16
- configPath;
17
- cause;
18
- constructor(message, configPath, cause) {
19
- super(message);
20
- this.configPath = configPath;
21
- this.cause = cause;
22
- this.name = 'ConfigLoadError';
23
- }
24
- }
25
- /**
26
- * ConfigLoader singleton for managing ginko configuration
27
- */
28
- export class ConfigLoader {
29
- static instance = null;
30
- cachedResult = null;
31
- loadPromise = null;
32
- constructor() {
33
- // Private constructor for singleton
34
- }
35
- /**
36
- * Get the singleton instance
37
- */
38
- static getInstance() {
39
- if (!ConfigLoader.instance) {
40
- ConfigLoader.instance = new ConfigLoader();
41
- }
42
- return ConfigLoader.instance;
43
- }
44
- /**
45
- * Reset the singleton (useful for testing)
46
- */
47
- static reset() {
48
- ConfigLoader.instance = null;
49
- }
50
- /**
51
- * Load configuration with caching and graceful fallback
52
- */
53
- async load(options = {}) {
54
- const { projectRoot = process.cwd(), configFileName = 'ginko.json', forceReload = false, autoMigrate = true, validation = 'strict' } = options;
55
- // Return cached result if available and not forcing reload
56
- if (this.cachedResult && !forceReload) {
57
- return this.cachedResult;
58
- }
59
- // If already loading, return the same promise
60
- if (this.loadPromise && !forceReload) {
61
- return this.loadPromise;
62
- }
63
- // Start loading
64
- this.loadPromise = this.doLoad(projectRoot, configFileName, autoMigrate, validation);
65
- try {
66
- const result = await this.loadPromise;
67
- this.cachedResult = result;
68
- return result;
69
- }
70
- finally {
71
- this.loadPromise = null;
72
- }
73
- }
74
- /**
75
- * Internal loading logic
76
- */
77
- async doLoad(projectRoot, configFileName, autoMigrate, validation) {
78
- const configPath = path.join(projectRoot, configFileName);
79
- const warnings = [];
80
- try {
81
- // Try to load from file
82
- const fileContent = await fs.readFile(configPath, 'utf-8');
83
- let config;
84
- try {
85
- config = JSON.parse(fileContent);
86
- }
87
- catch (parseError) {
88
- throw new ConfigLoadError(`Invalid JSON in configuration file: ${configPath}`, configPath, parseError instanceof Error ? parseError : new Error('Parse error'));
89
- }
90
- // Validate configuration
91
- if (validation !== 'none') {
92
- const validationResult = validateConfig(config);
93
- if (!validationResult.valid) {
94
- if (validation === 'strict') {
95
- throw new ConfigValidationError(`Configuration validation failed: ${validationResult.errors.join(', ')}`);
96
- }
97
- else {
98
- warnings.push(...validationResult.errors);
99
- }
100
- }
101
- }
102
- // Handle migration if needed
103
- let migrated = false;
104
- if (autoMigrate && this.needsMigration(config)) {
105
- const { ConfigMigrator } = await import('./config-migrator.js');
106
- const migrator = new ConfigMigrator();
107
- config = await migrator.migrate(config);
108
- migrated = true;
109
- warnings.push('Configuration was automatically migrated to current version');
110
- }
111
- // Merge with defaults for any missing fields
112
- const mergedConfig = this.mergeWithDefaults(config);
113
- // Create path resolver
114
- const resolver = this.createPathResolver(mergedConfig);
115
- return {
116
- config: mergedConfig,
117
- configPath,
118
- fromFile: true,
119
- migrated,
120
- resolver,
121
- warnings,
122
- loadedAt: new Date()
123
- };
124
- }
125
- catch (error) {
126
- if (error instanceof ConfigLoadError || error instanceof ConfigValidationError) {
127
- throw error;
128
- }
129
- // File doesn't exist or other IO error - use defaults
130
- if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
131
- warnings.push(`Configuration file not found at ${configPath}, using defaults`);
132
- }
133
- else {
134
- warnings.push(`Failed to load configuration: ${error instanceof Error ? error.message : 'Unknown error'}`);
135
- }
136
- const defaultConfig = this.createDefaultConfig();
137
- const resolver = this.createPathResolver(defaultConfig);
138
- return {
139
- config: defaultConfig,
140
- configPath,
141
- fromFile: false,
142
- migrated: false,
143
- resolver,
144
- warnings,
145
- loadedAt: new Date()
146
- };
147
- }
148
- }
149
- /**
150
- * Save configuration to file
151
- */
152
- async save(config, options = {}) {
153
- const { projectRoot = process.cwd(), configFileName = 'ginko.json' } = options;
154
- const configPath = path.join(projectRoot, configFileName);
155
- // Validate before saving
156
- const validationResult = validateConfig(config);
157
- if (!validationResult.valid) {
158
- throw new ConfigValidationError(`Cannot save invalid configuration: ${validationResult.errors.join(', ')}`);
159
- }
160
- // Update metadata
161
- const configWithMetadata = {
162
- ...config,
163
- metadata: {
164
- ...config.metadata,
165
- updatedAt: new Date().toISOString(),
166
- updatedBy: process.env.USER || process.env.USERNAME || 'unknown'
167
- }
168
- };
169
- try {
170
- // Ensure directory exists
171
- await fs.mkdir(path.dirname(configPath), { recursive: true });
172
- // Write file with pretty formatting
173
- await fs.writeFile(configPath, JSON.stringify(configWithMetadata, null, 2) + '\n', 'utf-8');
174
- // Clear cache to force reload
175
- this.cachedResult = null;
176
- }
177
- catch (error) {
178
- throw new ConfigLoadError(`Failed to save configuration to ${configPath}`, configPath, error instanceof Error ? error : new Error('Unknown error'));
179
- }
180
- }
181
- /**
182
- * Create default configuration with platform detection
183
- */
184
- createDefaultConfig() {
185
- const platform = this.detectPlatform();
186
- return {
187
- ...DEFAULT_CONFIG,
188
- platform,
189
- metadata: {
190
- createdAt: new Date().toISOString(),
191
- updatedAt: new Date().toISOString(),
192
- updatedBy: process.env.USER || process.env.USERNAME || 'unknown',
193
- migrationHistory: []
194
- }
195
- };
196
- }
197
- /**
198
- * Detect current platform configuration
199
- */
200
- detectPlatform() {
201
- const type = PathResolver.detectPlatform();
202
- const homeDirectory = require('os').homedir();
203
- // Detect shell
204
- let shell = 'bash';
205
- if (type === 'windows') {
206
- shell = process.env.ComSpec?.includes('powershell') ? 'powershell' : 'cmd';
207
- }
208
- else {
209
- shell = path.basename(process.env.SHELL || 'bash');
210
- }
211
- return {
212
- type,
213
- shell,
214
- pathSeparator: path.sep,
215
- homeDirectory,
216
- specific: this.getPlatformSpecific(type)
217
- };
218
- }
219
- /**
220
- * Get platform-specific configurations
221
- */
222
- getPlatformSpecific(type) {
223
- switch (type) {
224
- case 'windows':
225
- return {
226
- windows: {
227
- useWSL: !!process.env.WSL_DISTRO_NAME,
228
- wslDistro: process.env.WSL_DISTRO_NAME
229
- }
230
- };
231
- case 'macos':
232
- return {
233
- macos: {
234
- brewPrefix: process.env.HOMEBREW_PREFIX || '/opt/homebrew'
235
- }
236
- };
237
- case 'linux':
238
- return {
239
- linux: {
240
- distribution: this.detectLinuxDistribution()
241
- }
242
- };
243
- }
244
- }
245
- /**
246
- * Detect Linux distribution
247
- */
248
- detectLinuxDistribution() {
249
- try {
250
- // This is a simplified detection - could be enhanced
251
- if (process.env.DEBIAN_FRONTEND)
252
- return 'debian';
253
- if (process.env.RHEL_VERSION)
254
- return 'rhel';
255
- return 'unknown';
256
- }
257
- catch {
258
- return 'unknown';
259
- }
260
- }
261
- /**
262
- * Check if configuration needs migration
263
- */
264
- needsMigration(config) {
265
- if (!config.version)
266
- return true;
267
- if (config.version !== DEFAULT_CONFIG.version)
268
- return true;
269
- return false;
270
- }
271
- /**
272
- * Merge user configuration with defaults
273
- */
274
- mergeWithDefaults(userConfig) {
275
- const defaultConfig = this.createDefaultConfig();
276
- return {
277
- version: userConfig.version || defaultConfig.version,
278
- paths: {
279
- docs: { ...defaultConfig.paths.docs, ...userConfig.paths?.docs },
280
- ginko: { ...defaultConfig.paths.ginko, ...userConfig.paths?.ginko }
281
- },
282
- features: { ...defaultConfig.features, ...userConfig.features },
283
- platform: userConfig.platform || defaultConfig.platform,
284
- metadata: { ...defaultConfig.metadata, ...userConfig.metadata }
285
- };
286
- }
287
- /**
288
- * Create path resolver from configuration
289
- */
290
- createPathResolver(config) {
291
- // Flatten path configuration for resolver
292
- const variables = {};
293
- // Add docs paths
294
- for (const [key, value] of Object.entries(config.paths.docs)) {
295
- variables[`docs.${key}`] = value;
296
- }
297
- // Add ginko paths
298
- for (const [key, value] of Object.entries(config.paths.ginko)) {
299
- variables[`ginko.${key}`] = value;
300
- }
301
- return PathResolver.create(variables);
302
- }
303
- /**
304
- * Get current configuration without loading
305
- */
306
- getCached() {
307
- return this.cachedResult;
308
- }
309
- /**
310
- * Check if configuration exists
311
- */
312
- async exists(options = {}) {
313
- const { projectRoot = process.cwd(), configFileName = 'ginko.json' } = options;
314
- const configPath = path.join(projectRoot, configFileName);
315
- try {
316
- await fs.access(configPath);
317
- return true;
318
- }
319
- catch {
320
- return false;
321
- }
322
- }
323
- /**
324
- * Initialize a new configuration file
325
- */
326
- async initialize(options = {}) {
327
- const { projectRoot = process.cwd(), configFileName = 'ginko.json' } = options;
328
- const configPath = path.join(projectRoot, configFileName);
329
- // Check if file already exists
330
- if (await this.exists(options)) {
331
- throw new ConfigLoadError(`Configuration file already exists at ${configPath}`, configPath);
332
- }
333
- // Create default configuration
334
- const config = this.createDefaultConfig();
335
- // Save to file
336
- await this.save(config, options);
337
- // Return load result
338
- return this.load({ ...options, forceReload: true });
339
- }
340
- /**
341
- * Invalidate cache
342
- */
343
- invalidateCache() {
344
- this.cachedResult = null;
345
- }
346
- /**
347
- * Get configuration statistics
348
- */
349
- getStats() {
350
- if (!this.cachedResult) {
351
- return { cached: false };
352
- }
353
- return {
354
- cached: true,
355
- loadedAt: this.cachedResult.loadedAt,
356
- configPath: this.cachedResult.configPath,
357
- fromFile: this.cachedResult.fromFile,
358
- migrated: this.cachedResult.migrated
359
- };
360
- }
361
- }
362
- /**
363
- * Convenience functions for common operations
364
- */
365
- export var ConfigLoaderUtils;
366
- (function (ConfigLoaderUtils) {
367
- /**
368
- * Quick load with defaults
369
- */
370
- async function quickLoad(projectRoot) {
371
- const loader = ConfigLoader.getInstance();
372
- const result = await loader.load({ projectRoot });
373
- return result.config;
374
- }
375
- ConfigLoaderUtils.quickLoad = quickLoad;
376
- /**
377
- * Get resolved path from configuration
378
- */
379
- async function getResolvedPath(pathKey, projectRoot) {
380
- const loader = ConfigLoader.getInstance();
381
- const result = await loader.load({ projectRoot });
382
- // Parse path key (e.g., "docs.adr" or "ginko.sessions")
383
- const [category, key] = pathKey.split('.');
384
- if (!category || !key) {
385
- throw new Error(`Invalid path key: ${pathKey}. Expected format: "category.key"`);
386
- }
387
- const pathTemplate = result.config.paths[category]?.[key];
388
- if (!pathTemplate) {
389
- throw new Error(`Path not found: ${pathKey}`);
390
- }
391
- const resolved = result.resolver.resolve(pathTemplate);
392
- if (!resolved.success) {
393
- throw new Error(`Failed to resolve path ${pathKey}: ${resolved.errors.join(', ')}`);
394
- }
395
- return resolved.resolved;
396
- }
397
- ConfigLoaderUtils.getResolvedPath = getResolvedPath;
398
- /**
399
- * Check if a feature is enabled
400
- */
401
- async function isFeatureEnabled(feature, projectRoot) {
402
- const config = await quickLoad(projectRoot);
403
- return config.features[feature] === true;
404
- }
405
- ConfigLoaderUtils.isFeatureEnabled = isFeatureEnabled;
406
- /**
407
- * Update a single configuration value
408
- */
409
- async function updateConfig(updates, projectRoot) {
410
- const loader = ConfigLoader.getInstance();
411
- const result = await loader.load({ projectRoot });
412
- const updatedConfig = {
413
- ...result.config,
414
- ...updates,
415
- metadata: {
416
- ...result.config.metadata,
417
- updatedAt: new Date().toISOString()
418
- }
419
- };
420
- await loader.save(updatedConfig, { projectRoot });
421
- }
422
- ConfigLoaderUtils.updateConfig = updateConfig;
423
- })(ConfigLoaderUtils || (ConfigLoaderUtils = {}));
424
- //# sourceMappingURL=config-loader.js.map