@flaid/devmap 0.2.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 (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +168 -0
  3. package/dist/ai/completion.d.ts +7 -0
  4. package/dist/ai/completion.d.ts.map +1 -0
  5. package/dist/ai/completion.js +27 -0
  6. package/dist/ai/completion.js.map +1 -0
  7. package/dist/ai/contextBuilder.d.ts +42 -0
  8. package/dist/ai/contextBuilder.d.ts.map +1 -0
  9. package/dist/ai/contextBuilder.js +632 -0
  10. package/dist/ai/contextBuilder.js.map +1 -0
  11. package/dist/ai/groq.d.ts +36 -0
  12. package/dist/ai/groq.d.ts.map +1 -0
  13. package/dist/ai/groq.js +368 -0
  14. package/dist/ai/groq.js.map +1 -0
  15. package/dist/ai/openrouter.d.ts +20 -0
  16. package/dist/ai/openrouter.d.ts.map +1 -0
  17. package/dist/ai/openrouter.js +187 -0
  18. package/dist/ai/openrouter.js.map +1 -0
  19. package/dist/ai/prompts.d.ts +7 -0
  20. package/dist/ai/prompts.d.ts.map +1 -0
  21. package/dist/ai/prompts.js +88 -0
  22. package/dist/ai/prompts.js.map +1 -0
  23. package/dist/ai/provider.d.ts +15 -0
  24. package/dist/ai/provider.d.ts.map +1 -0
  25. package/dist/ai/provider.js +28 -0
  26. package/dist/ai/provider.js.map +1 -0
  27. package/dist/ai/snapshotEnrichment.d.ts +4 -0
  28. package/dist/ai/snapshotEnrichment.d.ts.map +1 -0
  29. package/dist/ai/snapshotEnrichment.js +188 -0
  30. package/dist/ai/snapshotEnrichment.js.map +1 -0
  31. package/dist/ai/types.d.ts +29 -0
  32. package/dist/ai/types.d.ts.map +1 -0
  33. package/dist/ai/types.js +2 -0
  34. package/dist/ai/types.js.map +1 -0
  35. package/dist/analyzers/analysis/extractors/fallbackExtractor.d.ts +30 -0
  36. package/dist/analyzers/analysis/extractors/fallbackExtractor.d.ts.map +1 -0
  37. package/dist/analyzers/analysis/extractors/fallbackExtractor.js +114 -0
  38. package/dist/analyzers/analysis/extractors/fallbackExtractor.js.map +1 -0
  39. package/dist/analyzers/analysis/extractors/index.d.ts +16 -0
  40. package/dist/analyzers/analysis/extractors/index.d.ts.map +1 -0
  41. package/dist/analyzers/analysis/extractors/index.js +135 -0
  42. package/dist/analyzers/analysis/extractors/index.js.map +1 -0
  43. package/dist/analyzers/analysis/extractors/prismaExtractor.d.ts +15 -0
  44. package/dist/analyzers/analysis/extractors/prismaExtractor.d.ts.map +1 -0
  45. package/dist/analyzers/analysis/extractors/prismaExtractor.js +183 -0
  46. package/dist/analyzers/analysis/extractors/prismaExtractor.js.map +1 -0
  47. package/dist/analyzers/analysis/extractors/sqlExtractor.d.ts +14 -0
  48. package/dist/analyzers/analysis/extractors/sqlExtractor.d.ts.map +1 -0
  49. package/dist/analyzers/analysis/extractors/sqlExtractor.js +163 -0
  50. package/dist/analyzers/analysis/extractors/sqlExtractor.js.map +1 -0
  51. package/dist/analyzers/analysis/extractors/types.d.ts +76 -0
  52. package/dist/analyzers/analysis/extractors/types.d.ts.map +1 -0
  53. package/dist/analyzers/analysis/extractors/types.js +2 -0
  54. package/dist/analyzers/analysis/extractors/types.js.map +1 -0
  55. package/dist/analyzers/analysis/fileAnalysis.d.ts +36 -0
  56. package/dist/analyzers/analysis/fileAnalysis.d.ts.map +1 -0
  57. package/dist/analyzers/analysis/fileAnalysis.js +2 -0
  58. package/dist/analyzers/analysis/fileAnalysis.js.map +1 -0
  59. package/dist/analyzers/analysis/fileRole.d.ts +30 -0
  60. package/dist/analyzers/analysis/fileRole.d.ts.map +1 -0
  61. package/dist/analyzers/analysis/fileRole.js +242 -0
  62. package/dist/analyzers/analysis/fileRole.js.map +1 -0
  63. package/dist/analyzers/analysis/fileScanner.d.ts +10 -0
  64. package/dist/analyzers/analysis/fileScanner.d.ts.map +1 -0
  65. package/dist/analyzers/analysis/fileScanner.js +44 -0
  66. package/dist/analyzers/analysis/fileScanner.js.map +1 -0
  67. package/dist/analyzers/analysis/filterEngine.d.ts +2 -0
  68. package/dist/analyzers/analysis/filterEngine.d.ts.map +1 -0
  69. package/dist/analyzers/analysis/filterEngine.js +110 -0
  70. package/dist/analyzers/analysis/filterEngine.js.map +1 -0
  71. package/dist/analyzers/analysis/index.d.ts +12 -0
  72. package/dist/analyzers/analysis/index.d.ts.map +1 -0
  73. package/dist/analyzers/analysis/index.js +8 -0
  74. package/dist/analyzers/analysis/index.js.map +1 -0
  75. package/dist/analyzers/analysis/preprocessors/astroPreprocessor.d.ts +23 -0
  76. package/dist/analyzers/analysis/preprocessors/astroPreprocessor.d.ts.map +1 -0
  77. package/dist/analyzers/analysis/preprocessors/astroPreprocessor.js +40 -0
  78. package/dist/analyzers/analysis/preprocessors/astroPreprocessor.js.map +1 -0
  79. package/dist/analyzers/analysis/preprocessors/index.d.ts +5 -0
  80. package/dist/analyzers/analysis/preprocessors/index.d.ts.map +1 -0
  81. package/dist/analyzers/analysis/preprocessors/index.js +4 -0
  82. package/dist/analyzers/analysis/preprocessors/index.js.map +1 -0
  83. package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.d.ts +27 -0
  84. package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.d.ts.map +1 -0
  85. package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.js +50 -0
  86. package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.js.map +1 -0
  87. package/dist/analyzers/analysis/preprocessors/types.d.ts +45 -0
  88. package/dist/analyzers/analysis/preprocessors/types.d.ts.map +1 -0
  89. package/dist/analyzers/analysis/preprocessors/types.js +2 -0
  90. package/dist/analyzers/analysis/preprocessors/types.js.map +1 -0
  91. package/dist/analyzers/analysis/preprocessors/vuePreprocessor.d.ts +21 -0
  92. package/dist/analyzers/analysis/preprocessors/vuePreprocessor.d.ts.map +1 -0
  93. package/dist/analyzers/analysis/preprocessors/vuePreprocessor.js +44 -0
  94. package/dist/analyzers/analysis/preprocessors/vuePreprocessor.js.map +1 -0
  95. package/dist/analyzers/analysis/tsMorphAnalyzer.d.ts +10 -0
  96. package/dist/analyzers/analysis/tsMorphAnalyzer.d.ts.map +1 -0
  97. package/dist/analyzers/analysis/tsMorphAnalyzer.js +190 -0
  98. package/dist/analyzers/analysis/tsMorphAnalyzer.js.map +1 -0
  99. package/dist/analyzers/detectors/capabilityDetector.d.ts +28 -0
  100. package/dist/analyzers/detectors/capabilityDetector.d.ts.map +1 -0
  101. package/dist/analyzers/detectors/capabilityDetector.js +288 -0
  102. package/dist/analyzers/detectors/capabilityDetector.js.map +1 -0
  103. package/dist/analyzers/detectors/databaseDetector.d.ts +7 -0
  104. package/dist/analyzers/detectors/databaseDetector.d.ts.map +1 -0
  105. package/dist/analyzers/detectors/databaseDetector.js +71 -0
  106. package/dist/analyzers/detectors/databaseDetector.js.map +1 -0
  107. package/dist/analyzers/detectors/frameworkDetector.d.ts +22 -0
  108. package/dist/analyzers/detectors/frameworkDetector.d.ts.map +1 -0
  109. package/dist/analyzers/detectors/frameworkDetector.js +160 -0
  110. package/dist/analyzers/detectors/frameworkDetector.js.map +1 -0
  111. package/dist/analyzers/detectors/frontendFeatureDetector.d.ts +26 -0
  112. package/dist/analyzers/detectors/frontendFeatureDetector.d.ts.map +1 -0
  113. package/dist/analyzers/detectors/frontendFeatureDetector.js +269 -0
  114. package/dist/analyzers/detectors/frontendFeatureDetector.js.map +1 -0
  115. package/dist/analyzers/detectors/index.d.ts +11 -0
  116. package/dist/analyzers/detectors/index.d.ts.map +1 -0
  117. package/dist/analyzers/detectors/index.js +7 -0
  118. package/dist/analyzers/detectors/index.js.map +1 -0
  119. package/dist/analyzers/detectors/nestRouteDetector.d.ts +13 -0
  120. package/dist/analyzers/detectors/nestRouteDetector.d.ts.map +1 -0
  121. package/dist/analyzers/detectors/nestRouteDetector.js +69 -0
  122. package/dist/analyzers/detectors/nestRouteDetector.js.map +1 -0
  123. package/dist/analyzers/detectors/routeDetector.d.ts +22 -0
  124. package/dist/analyzers/detectors/routeDetector.d.ts.map +1 -0
  125. package/dist/analyzers/detectors/routeDetector.js +368 -0
  126. package/dist/analyzers/detectors/routeDetector.js.map +1 -0
  127. package/dist/analyzers/detectors/serviceDetector.d.ts +3 -0
  128. package/dist/analyzers/detectors/serviceDetector.d.ts.map +1 -0
  129. package/dist/analyzers/detectors/serviceDetector.js +81 -0
  130. package/dist/analyzers/detectors/serviceDetector.js.map +1 -0
  131. package/dist/analyzers/features/featureDetector.d.ts +22 -0
  132. package/dist/analyzers/features/featureDetector.d.ts.map +1 -0
  133. package/dist/analyzers/features/featureDetector.js +821 -0
  134. package/dist/analyzers/features/featureDetector.js.map +1 -0
  135. package/dist/analyzers/features/featureMerge.d.ts +65 -0
  136. package/dist/analyzers/features/featureMerge.d.ts.map +1 -0
  137. package/dist/analyzers/features/featureMerge.js +168 -0
  138. package/dist/analyzers/features/featureMerge.js.map +1 -0
  139. package/dist/analyzers/features/featureSimilarity.d.ts +152 -0
  140. package/dist/analyzers/features/featureSimilarity.d.ts.map +1 -0
  141. package/dist/analyzers/features/featureSimilarity.js +264 -0
  142. package/dist/analyzers/features/featureSimilarity.js.map +1 -0
  143. package/dist/analyzers/features/index.d.ts +6 -0
  144. package/dist/analyzers/features/index.d.ts.map +1 -0
  145. package/dist/analyzers/features/index.js +4 -0
  146. package/dist/analyzers/features/index.js.map +1 -0
  147. package/dist/analyzers/graph/dependencyGraph.d.ts +5 -0
  148. package/dist/analyzers/graph/dependencyGraph.d.ts.map +1 -0
  149. package/dist/analyzers/graph/dependencyGraph.js +88 -0
  150. package/dist/analyzers/graph/dependencyGraph.js.map +1 -0
  151. package/dist/analyzers/graph/dependencyMap.d.ts +43 -0
  152. package/dist/analyzers/graph/dependencyMap.d.ts.map +1 -0
  153. package/dist/analyzers/graph/dependencyMap.js +85 -0
  154. package/dist/analyzers/graph/dependencyMap.js.map +1 -0
  155. package/dist/analyzers/graph/entryPoints.d.ts +3 -0
  156. package/dist/analyzers/graph/entryPoints.d.ts.map +1 -0
  157. package/dist/analyzers/graph/entryPoints.js +21 -0
  158. package/dist/analyzers/graph/entryPoints.js.map +1 -0
  159. package/dist/analyzers/graph/index.d.ts +7 -0
  160. package/dist/analyzers/graph/index.d.ts.map +1 -0
  161. package/dist/analyzers/graph/index.js +5 -0
  162. package/dist/analyzers/graph/index.js.map +1 -0
  163. package/dist/analyzers/graph/sourceScope.d.ts +2 -0
  164. package/dist/analyzers/graph/sourceScope.d.ts.map +1 -0
  165. package/dist/analyzers/graph/sourceScope.js +30 -0
  166. package/dist/analyzers/graph/sourceScope.js.map +1 -0
  167. package/dist/analyzers/inference/domainInference.d.ts +58 -0
  168. package/dist/analyzers/inference/domainInference.d.ts.map +1 -0
  169. package/dist/analyzers/inference/domainInference.js +234 -0
  170. package/dist/analyzers/inference/domainInference.js.map +1 -0
  171. package/dist/analyzers/inference/index.d.ts +5 -0
  172. package/dist/analyzers/inference/index.d.ts.map +1 -0
  173. package/dist/analyzers/inference/index.js +3 -0
  174. package/dist/analyzers/inference/index.js.map +1 -0
  175. package/dist/analyzers/inference/ownershipTopology.d.ts +8 -0
  176. package/dist/analyzers/inference/ownershipTopology.d.ts.map +1 -0
  177. package/dist/analyzers/inference/ownershipTopology.js +65 -0
  178. package/dist/analyzers/inference/ownershipTopology.js.map +1 -0
  179. package/dist/analyzers/pipeline/analyzerRegistry.d.ts +9 -0
  180. package/dist/analyzers/pipeline/analyzerRegistry.d.ts.map +1 -0
  181. package/dist/analyzers/pipeline/analyzerRegistry.js +35 -0
  182. package/dist/analyzers/pipeline/analyzerRegistry.js.map +1 -0
  183. package/dist/analyzers/pipeline/heuristicAnalyzer.d.ts +12 -0
  184. package/dist/analyzers/pipeline/heuristicAnalyzer.d.ts.map +1 -0
  185. package/dist/analyzers/pipeline/heuristicAnalyzer.js +150 -0
  186. package/dist/analyzers/pipeline/heuristicAnalyzer.js.map +1 -0
  187. package/dist/analyzers/pipeline/index.d.ts +7 -0
  188. package/dist/analyzers/pipeline/index.d.ts.map +1 -0
  189. package/dist/analyzers/pipeline/index.js +5 -0
  190. package/dist/analyzers/pipeline/index.js.map +1 -0
  191. package/dist/analyzers/pipeline/projectMap.d.ts +120 -0
  192. package/dist/analyzers/pipeline/projectMap.d.ts.map +1 -0
  193. package/dist/analyzers/pipeline/projectMap.js +726 -0
  194. package/dist/analyzers/pipeline/projectMap.js.map +1 -0
  195. package/dist/analyzers/pipeline/projectMetadata.d.ts +19 -0
  196. package/dist/analyzers/pipeline/projectMetadata.d.ts.map +1 -0
  197. package/dist/analyzers/pipeline/projectMetadata.js +149 -0
  198. package/dist/analyzers/pipeline/projectMetadata.js.map +1 -0
  199. package/dist/analyzers/pipeline/reasonTags.d.ts +6 -0
  200. package/dist/analyzers/pipeline/reasonTags.d.ts.map +1 -0
  201. package/dist/analyzers/pipeline/reasonTags.js +6 -0
  202. package/dist/analyzers/pipeline/reasonTags.js.map +1 -0
  203. package/dist/analyzers/registry/ai-providers.d.ts +3 -0
  204. package/dist/analyzers/registry/ai-providers.d.ts.map +1 -0
  205. package/dist/analyzers/registry/ai-providers.js +94 -0
  206. package/dist/analyzers/registry/ai-providers.js.map +1 -0
  207. package/dist/analyzers/registry/analytics.d.ts +3 -0
  208. package/dist/analyzers/registry/analytics.d.ts.map +1 -0
  209. package/dist/analyzers/registry/analytics.js +15 -0
  210. package/dist/analyzers/registry/analytics.js.map +1 -0
  211. package/dist/analyzers/registry/auth.d.ts +3 -0
  212. package/dist/analyzers/registry/auth.d.ts.map +1 -0
  213. package/dist/analyzers/registry/auth.js +18 -0
  214. package/dist/analyzers/registry/auth.js.map +1 -0
  215. package/dist/analyzers/registry/background-jobs.d.ts +3 -0
  216. package/dist/analyzers/registry/background-jobs.d.ts.map +1 -0
  217. package/dist/analyzers/registry/background-jobs.js +14 -0
  218. package/dist/analyzers/registry/background-jobs.js.map +1 -0
  219. package/dist/analyzers/registry/caching.d.ts +3 -0
  220. package/dist/analyzers/registry/caching.d.ts.map +1 -0
  221. package/dist/analyzers/registry/caching.js +13 -0
  222. package/dist/analyzers/registry/caching.js.map +1 -0
  223. package/dist/analyzers/registry/cms-content.d.ts +3 -0
  224. package/dist/analyzers/registry/cms-content.d.ts.map +1 -0
  225. package/dist/analyzers/registry/cms-content.js +15 -0
  226. package/dist/analyzers/registry/cms-content.js.map +1 -0
  227. package/dist/analyzers/registry/database.d.ts +3 -0
  228. package/dist/analyzers/registry/database.d.ts.map +1 -0
  229. package/dist/analyzers/registry/database.js +13 -0
  230. package/dist/analyzers/registry/database.js.map +1 -0
  231. package/dist/analyzers/registry/email.d.ts +3 -0
  232. package/dist/analyzers/registry/email.d.ts.map +1 -0
  233. package/dist/analyzers/registry/email.js +19 -0
  234. package/dist/analyzers/registry/email.js.map +1 -0
  235. package/dist/analyzers/registry/file-upload.d.ts +3 -0
  236. package/dist/analyzers/registry/file-upload.d.ts.map +1 -0
  237. package/dist/analyzers/registry/file-upload.js +19 -0
  238. package/dist/analyzers/registry/file-upload.js.map +1 -0
  239. package/dist/analyzers/registry/firebase.d.ts +3 -0
  240. package/dist/analyzers/registry/firebase.d.ts.map +1 -0
  241. package/dist/analyzers/registry/firebase.js +8 -0
  242. package/dist/analyzers/registry/firebase.js.map +1 -0
  243. package/dist/analyzers/registry/index.d.ts +16 -0
  244. package/dist/analyzers/registry/index.d.ts.map +1 -0
  245. package/dist/analyzers/registry/index.js +88 -0
  246. package/dist/analyzers/registry/index.js.map +1 -0
  247. package/dist/analyzers/registry/internationalization.d.ts +3 -0
  248. package/dist/analyzers/registry/internationalization.d.ts.map +1 -0
  249. package/dist/analyzers/registry/internationalization.js +13 -0
  250. package/dist/analyzers/registry/internationalization.js.map +1 -0
  251. package/dist/analyzers/registry/logging-monitoring.d.ts +3 -0
  252. package/dist/analyzers/registry/logging-monitoring.d.ts.map +1 -0
  253. package/dist/analyzers/registry/logging-monitoring.js +14 -0
  254. package/dist/analyzers/registry/logging-monitoring.js.map +1 -0
  255. package/dist/analyzers/registry/notifications.d.ts +3 -0
  256. package/dist/analyzers/registry/notifications.d.ts.map +1 -0
  257. package/dist/analyzers/registry/notifications.js +14 -0
  258. package/dist/analyzers/registry/notifications.js.map +1 -0
  259. package/dist/analyzers/registry/payments.d.ts +3 -0
  260. package/dist/analyzers/registry/payments.d.ts.map +1 -0
  261. package/dist/analyzers/registry/payments.js +23 -0
  262. package/dist/analyzers/registry/payments.js.map +1 -0
  263. package/dist/analyzers/registry/rate-limiting.d.ts +3 -0
  264. package/dist/analyzers/registry/rate-limiting.d.ts.map +1 -0
  265. package/dist/analyzers/registry/rate-limiting.js +13 -0
  266. package/dist/analyzers/registry/rate-limiting.js.map +1 -0
  267. package/dist/analyzers/registry/search.d.ts +3 -0
  268. package/dist/analyzers/registry/search.d.ts.map +1 -0
  269. package/dist/analyzers/registry/search.js +15 -0
  270. package/dist/analyzers/registry/search.js.map +1 -0
  271. package/dist/analyzers/registry/testing.d.ts +3 -0
  272. package/dist/analyzers/registry/testing.d.ts.map +1 -0
  273. package/dist/analyzers/registry/testing.js +13 -0
  274. package/dist/analyzers/registry/testing.js.map +1 -0
  275. package/dist/analyzers/registry/types.d.ts +14 -0
  276. package/dist/analyzers/registry/types.d.ts.map +1 -0
  277. package/dist/analyzers/registry/types.js +2 -0
  278. package/dist/analyzers/registry/types.js.map +1 -0
  279. package/dist/cache/agentNavigation.d.ts +7 -0
  280. package/dist/cache/agentNavigation.d.ts.map +1 -0
  281. package/dist/cache/agentNavigation.js +253 -0
  282. package/dist/cache/agentNavigation.js.map +1 -0
  283. package/dist/cache/fileHash.d.ts +2 -0
  284. package/dist/cache/fileHash.d.ts.map +1 -0
  285. package/dist/cache/fileHash.js +5 -0
  286. package/dist/cache/fileHash.js.map +1 -0
  287. package/dist/cache/snapshot.d.ts +20 -0
  288. package/dist/cache/snapshot.d.ts.map +1 -0
  289. package/dist/cache/snapshot.js +184 -0
  290. package/dist/cache/snapshot.js.map +1 -0
  291. package/dist/commands/analyze.d.ts +12 -0
  292. package/dist/commands/analyze.d.ts.map +1 -0
  293. package/dist/commands/analyze.js +201 -0
  294. package/dist/commands/analyze.js.map +1 -0
  295. package/dist/commands/config.d.ts +10 -0
  296. package/dist/commands/config.d.ts.map +1 -0
  297. package/dist/commands/config.js +65 -0
  298. package/dist/commands/config.js.map +1 -0
  299. package/dist/commands/doctor.d.ts +11 -0
  300. package/dist/commands/doctor.d.ts.map +1 -0
  301. package/dist/commands/doctor.js +141 -0
  302. package/dist/commands/doctor.js.map +1 -0
  303. package/dist/commands/explain.d.ts +37 -0
  304. package/dist/commands/explain.d.ts.map +1 -0
  305. package/dist/commands/explain.js +101 -0
  306. package/dist/commands/explain.js.map +1 -0
  307. package/dist/commands/flow.d.ts +34 -0
  308. package/dist/commands/flow.d.ts.map +1 -0
  309. package/dist/commands/flow.js +151 -0
  310. package/dist/commands/flow.js.map +1 -0
  311. package/dist/commands/init.d.ts +16 -0
  312. package/dist/commands/init.d.ts.map +1 -0
  313. package/dist/commands/init.js +197 -0
  314. package/dist/commands/init.js.map +1 -0
  315. package/dist/commands/map.d.ts +24 -0
  316. package/dist/commands/map.d.ts.map +1 -0
  317. package/dist/commands/map.js +282 -0
  318. package/dist/commands/map.js.map +1 -0
  319. package/dist/commands/onboarding.d.ts +36 -0
  320. package/dist/commands/onboarding.d.ts.map +1 -0
  321. package/dist/commands/onboarding.js +226 -0
  322. package/dist/commands/onboarding.js.map +1 -0
  323. package/dist/index.d.ts +3 -0
  324. package/dist/index.d.ts.map +1 -0
  325. package/dist/index.js +104 -0
  326. package/dist/index.js.map +1 -0
  327. package/dist/onboarding/model.d.ts +27 -0
  328. package/dist/onboarding/model.d.ts.map +1 -0
  329. package/dist/onboarding/model.js +2 -0
  330. package/dist/onboarding/model.js.map +1 -0
  331. package/dist/onboarding/modelBuilder.d.ts +4 -0
  332. package/dist/onboarding/modelBuilder.d.ts.map +1 -0
  333. package/dist/onboarding/modelBuilder.js +330 -0
  334. package/dist/onboarding/modelBuilder.js.map +1 -0
  335. package/dist/utils/agentsFile.d.ts +6 -0
  336. package/dist/utils/agentsFile.d.ts.map +1 -0
  337. package/dist/utils/agentsFile.js +85 -0
  338. package/dist/utils/agentsFile.js.map +1 -0
  339. package/dist/utils/config.d.ts +20 -0
  340. package/dist/utils/config.d.ts.map +1 -0
  341. package/dist/utils/config.js +88 -0
  342. package/dist/utils/config.js.map +1 -0
  343. package/dist/utils/devmapFile.d.ts +3 -0
  344. package/dist/utils/devmapFile.d.ts.map +1 -0
  345. package/dist/utils/devmapFile.js +43 -0
  346. package/dist/utils/devmapFile.js.map +1 -0
  347. package/dist/utils/errors.d.ts +8 -0
  348. package/dist/utils/errors.d.ts.map +1 -0
  349. package/dist/utils/errors.js +92 -0
  350. package/dist/utils/errors.js.map +1 -0
  351. package/dist/utils/gitignore.d.ts +2 -0
  352. package/dist/utils/gitignore.d.ts.map +1 -0
  353. package/dist/utils/gitignore.js +22 -0
  354. package/dist/utils/gitignore.js.map +1 -0
  355. package/dist/utils/help.d.ts +3 -0
  356. package/dist/utils/help.d.ts.map +1 -0
  357. package/dist/utils/help.js +19 -0
  358. package/dist/utils/help.js.map +1 -0
  359. package/dist/utils/mapRenderer.d.ts +39 -0
  360. package/dist/utils/mapRenderer.d.ts.map +1 -0
  361. package/dist/utils/mapRenderer.js +90 -0
  362. package/dist/utils/mapRenderer.js.map +1 -0
  363. package/dist/utils/markdownTerminal.d.ts +6 -0
  364. package/dist/utils/markdownTerminal.d.ts.map +1 -0
  365. package/dist/utils/markdownTerminal.js +153 -0
  366. package/dist/utils/markdownTerminal.js.map +1 -0
  367. package/dist/utils/output.d.ts +29 -0
  368. package/dist/utils/output.d.ts.map +1 -0
  369. package/dist/utils/output.js +108 -0
  370. package/dist/utils/output.js.map +1 -0
  371. package/dist/utils/packageMetadata.d.ts +2 -0
  372. package/dist/utils/packageMetadata.d.ts.map +1 -0
  373. package/dist/utils/packageMetadata.js +5 -0
  374. package/dist/utils/packageMetadata.js.map +1 -0
  375. package/dist/utils/prompt.d.ts +11 -0
  376. package/dist/utils/prompt.d.ts.map +1 -0
  377. package/dist/utils/prompt.js +81 -0
  378. package/dist/utils/prompt.js.map +1 -0
  379. package/dist/utils/slug.d.ts +2 -0
  380. package/dist/utils/slug.d.ts.map +1 -0
  381. package/dist/utils/slug.js +8 -0
  382. package/dist/utils/slug.js.map +1 -0
  383. package/dist/utils/targetResolver.d.ts +7 -0
  384. package/dist/utils/targetResolver.d.ts.map +1 -0
  385. package/dist/utils/targetResolver.js +15 -0
  386. package/dist/utils/targetResolver.js.map +1 -0
  387. package/dist/utils/welcome.d.ts +10 -0
  388. package/dist/utils/welcome.d.ts.map +1 -0
  389. package/dist/utils/welcome.js +80 -0
  390. package/dist/utils/welcome.js.map +1 -0
  391. package/package.json +61 -0
@@ -0,0 +1,282 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import { join, resolve } from "node:path";
3
+ import { buildBoundedTree, buildReverseGraph, DEFAULT_MAX_CHILDREN } from "../analyzers/graph/index.js";
4
+ import { isSnapshotStale, readSnapshotOrThrow } from "../cache/snapshot.js";
5
+ import { DevmapError } from "../utils/errors.js";
6
+ import { slugifyMapName } from "../utils/slug.js";
7
+ import { resolveFileTarget } from "../utils/targetResolver.js";
8
+ import { buildMapMarkdown, renderFlatList, renderMermaid, renderTree } from "../utils/mapRenderer.js";
9
+ import { output, withJsonOutput } from "../utils/output.js";
10
+ const USES_DEPTH = 2;
11
+ const USED_BY_DEPTH = 1;
12
+ const FEATURE_MAP_DEPTH = 4;
13
+ export async function mapCommand(target, options = {}) {
14
+ if (options.json) {
15
+ await withJsonOutput(async () => {
16
+ output.json(await runMap(target, options));
17
+ });
18
+ return;
19
+ }
20
+ const result = await runMap(target, options);
21
+ output.section(`DevMap — map: ${result.target}`);
22
+ if (result.snapshot.stale) {
23
+ output.warning("Snapshot is stale: this map may not reflect the latest code.");
24
+ output.note("Run devmap analyze --fresh, then repeat devmap map.");
25
+ }
26
+ output.markdown(result.markdown);
27
+ output.success(`Wrote ${result.writtenPaths.markdown}`);
28
+ output.success(`Wrote ${result.writtenPaths.mermaid}`);
29
+ }
30
+ async function runMap(target, options) {
31
+ const projectRoot = resolve(options.projectRoot ?? ".");
32
+ const snapshot = await readSnapshotOrThrow(projectRoot);
33
+ const stale = await isSnapshotStale(projectRoot, snapshot);
34
+ const resolved = resolveMapTarget(snapshot, target);
35
+ const built = resolved.mode === "file"
36
+ ? buildFileMap(snapshot, resolved.value, options.depth, options.all)
37
+ : resolved.mode === "feature"
38
+ ? buildFeatureMap(snapshot, resolved.value, options.depth, options.all)
39
+ : buildProjectMap(snapshot, options.all);
40
+ const slug = slugifyMapName(resolved.value);
41
+ const mapsDir = join(projectRoot, ".devmap", "maps");
42
+ await mkdir(mapsDir, { recursive: true });
43
+ const markdownPath = join(mapsDir, `${slug}.md`);
44
+ const mermaidPath = join(mapsDir, `${slug}.mermaid`);
45
+ await writeFile(markdownPath, built.markdown, "utf8");
46
+ await writeFile(mermaidPath, `${built.mermaid}\n`, "utf8");
47
+ return {
48
+ status: "ok",
49
+ mode: resolved.mode,
50
+ target: resolved.value,
51
+ markdown: built.markdown,
52
+ mermaid: built.mermaid,
53
+ writtenPaths: {
54
+ markdown: `.devmap/maps/${slug}.md`,
55
+ mermaid: `.devmap/maps/${slug}.mermaid`
56
+ },
57
+ snapshot: { generatedAt: snapshot.generatedAt, stale }
58
+ };
59
+ }
60
+ function resolveMapTarget(snapshot, target) {
61
+ if (!target || target.trim() === "") {
62
+ return { mode: "project", value: "project" };
63
+ }
64
+ const feature = snapshot.features.find((candidate) => candidate.name.toLowerCase() === target.toLowerCase());
65
+ if (feature) {
66
+ return { mode: "feature", value: feature.name };
67
+ }
68
+ const fileTarget = resolveFileTarget(snapshot, target);
69
+ if (fileTarget) {
70
+ return fileTarget;
71
+ }
72
+ const featureNames = snapshot.features.map((f) => f.name).join(", ") || "(none detected)";
73
+ throw new DevmapError(`"${target}" isn't a known file or feature.`, `Known features: ${featureNames}. For a file, use its path relative to the project root.`);
74
+ }
75
+ function buildFileMap(snapshot, path, depth, all) {
76
+ const reverseGraph = buildReverseGraph(snapshot.fileGraph);
77
+ const maxChildren = all ? Infinity : DEFAULT_MAX_CHILDREN;
78
+ const usesTree = buildBoundedTree(snapshot.fileGraph, path, depth ?? USES_DEPTH, { maxChildren });
79
+ const usedByTree = buildBoundedTree(reverseGraph, path, depth ?? USED_BY_DEPTH, { maxChildren });
80
+ const mermaidEdges = [
81
+ ...collectEdgesFromTree(path, usesTree, "forward"),
82
+ ...collectEdgesFromTree(path, usedByTree, "reverse")
83
+ ];
84
+ return {
85
+ markdown: buildMapMarkdown({
86
+ title: path,
87
+ sections: [
88
+ { heading: "Uses", body: renderTree(usesTree) },
89
+ { heading: "Used by", body: renderTree(usedByTree) }
90
+ ],
91
+ mermaid: renderMermaid(mermaidEdges)
92
+ }),
93
+ mermaid: renderMermaid(mermaidEdges)
94
+ };
95
+ }
96
+ function collectEdgesFromTree(root, node, direction, parent = root) {
97
+ const edges = [];
98
+ for (const child of node.children) {
99
+ edges.push(direction === "forward"
100
+ ? { from: parent, to: child.path }
101
+ : { from: child.path, to: parent });
102
+ if (!child.isCycle) {
103
+ edges.push(...collectEdgesFromTree(root, child, direction, child.path));
104
+ }
105
+ }
106
+ return edges;
107
+ }
108
+ function buildFeatureMap(snapshot, name, depth, all) {
109
+ const feature = snapshot.features.find((candidate) => candidate.name === name);
110
+ if (!feature) {
111
+ throw new DevmapError(`Feature "${name}" not found in the current snapshot.`);
112
+ }
113
+ const featureFiles = new Set(feature.files);
114
+ const reverseGraph = buildReverseGraph(snapshot.fileGraph);
115
+ const root = feature.entryPoint ?? feature.files[0];
116
+ const maxChildren = all ? Infinity : DEFAULT_MAX_CHILDREN;
117
+ const listCap = all ? Infinity : DEFAULT_MAX_CHILDREN;
118
+ const internalTree = root
119
+ ? buildBoundedTree(snapshot.fileGraph, root, depth ?? FEATURE_MAP_DEPTH, {
120
+ filter: (path) => featureFiles.has(path),
121
+ maxChildren
122
+ })
123
+ : { path: name, children: [], isCycle: false };
124
+ const reached = new Set();
125
+ if (root)
126
+ collectTreePaths(internalTree, reached);
127
+ const unreached = feature.files.filter((path) => path !== root && !reached.has(path));
128
+ const externalDependencies = new Set();
129
+ for (const file of feature.files) {
130
+ for (const dependency of snapshot.fileGraph[file] ?? []) {
131
+ if (!featureFiles.has(dependency))
132
+ externalDependencies.add(dependency);
133
+ }
134
+ }
135
+ const externalDependents = new Set();
136
+ for (const file of feature.files) {
137
+ for (const dependent of reverseGraph[file] ?? []) {
138
+ if (!featureFiles.has(dependent))
139
+ externalDependents.add(dependent);
140
+ }
141
+ }
142
+ // Cap which files are actually drawn as edges to match the (possibly
143
+ // truncated) flat lists below — otherwise the mermaid diagram could still
144
+ // balloon even after the text list is capped.
145
+ const shownDependencies = Number.isFinite(listCap)
146
+ ? new Set([...externalDependencies].slice(0, listCap))
147
+ : externalDependencies;
148
+ const shownDependents = Number.isFinite(listCap)
149
+ ? new Set([...externalDependents].slice(0, listCap))
150
+ : externalDependents;
151
+ const dependencyEdges = [];
152
+ for (const file of feature.files) {
153
+ for (const dependency of snapshot.fileGraph[file] ?? []) {
154
+ if (shownDependencies.has(dependency))
155
+ dependencyEdges.push({ from: file, to: dependency });
156
+ }
157
+ }
158
+ const dependentEdges = [];
159
+ for (const file of feature.files) {
160
+ for (const dependent of reverseGraph[file] ?? []) {
161
+ if (shownDependents.has(dependent))
162
+ dependentEdges.push({ from: dependent, to: file });
163
+ }
164
+ }
165
+ const internalEdges = root ? collectEdgesFromTree(root, internalTree, "forward") : [];
166
+ const mermaidEdges = [...internalEdges, ...dependencyEdges, ...dependentEdges];
167
+ const sections = [
168
+ {
169
+ heading: "Internal structure",
170
+ body: root ? `${root}\n${renderTree(internalTree)}` : renderTree(internalTree)
171
+ }
172
+ ];
173
+ if (unreached.length > 0) {
174
+ sections.push({
175
+ heading: "Other files in this feature",
176
+ body: renderFlatList(unreached, { cap: listCap })
177
+ });
178
+ }
179
+ sections.push({
180
+ heading: "Depends on (outside this feature)",
181
+ body: renderFlatList([...externalDependencies], { cap: listCap })
182
+ }, {
183
+ heading: "Used by (outside this feature)",
184
+ body: renderFlatList([...externalDependents], { cap: listCap })
185
+ });
186
+ return {
187
+ markdown: buildMapMarkdown({ title: name, sections, mermaid: renderMermaid(mermaidEdges) }),
188
+ mermaid: renderMermaid(mermaidEdges)
189
+ };
190
+ }
191
+ function collectTreePaths(node, into) {
192
+ into.add(node.path);
193
+ if (!node.isCycle) {
194
+ for (const child of node.children)
195
+ collectTreePaths(child, into);
196
+ }
197
+ }
198
+ function buildProjectMap(snapshot, all) {
199
+ if (all) {
200
+ return buildFullProjectDump(snapshot);
201
+ }
202
+ const features = snapshot.features;
203
+ const fileToFeature = new Map();
204
+ for (const feature of features) {
205
+ for (const file of feature.files) {
206
+ if (!fileToFeature.has(file))
207
+ fileToFeature.set(file, feature.name);
208
+ }
209
+ }
210
+ const featureSummaries = features.map((feature) => `${feature.name} (${feature.files.length} file${feature.files.length === 1 ? "" : "s"})`);
211
+ const crossFeatureEdgeKeys = new Set();
212
+ const mermaidEdges = [];
213
+ for (const feature of features) {
214
+ for (const file of feature.files) {
215
+ for (const dependency of snapshot.fileGraph[file] ?? []) {
216
+ const dependencyFeature = fileToFeature.get(dependency);
217
+ if (dependencyFeature && dependencyFeature !== feature.name) {
218
+ const key = `${feature.name}=>${dependencyFeature}`;
219
+ if (!crossFeatureEdgeKeys.has(key)) {
220
+ crossFeatureEdgeKeys.add(key);
221
+ mermaidEdges.push({ from: feature.name, to: dependencyFeature });
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ const relationshipLines = [...crossFeatureEdgeKeys].map((key) => {
228
+ const [from, to] = key.split("=>");
229
+ return ` - ${from} → ${to}`;
230
+ });
231
+ const totalFiles = Object.keys(snapshot.fileIndex).length;
232
+ const mappedFiles = fileToFeature.size;
233
+ const coverageNote = totalFiles > 0
234
+ ? `${mappedFiles} of ${totalFiles} files belong to a detected feature. The rest (config, infra, tests, etc.) aren't shown here — use "devmap map <file>" for any specific file.`
235
+ : "(no files scanned)";
236
+ const sections = [
237
+ {
238
+ heading: "Features",
239
+ body: featureSummaries.length > 0 ? renderFlatList(featureSummaries) : "(none detected)"
240
+ },
241
+ {
242
+ heading: "Feature relationships",
243
+ body: relationshipLines.length > 0
244
+ ? relationshipLines.join("\n")
245
+ : "(no cross-feature dependencies detected)"
246
+ },
247
+ { heading: "Entry points", body: renderFlatList(snapshot.entryPoints) },
248
+ { heading: "Coverage", body: coverageNote }
249
+ ];
250
+ return {
251
+ markdown: buildMapMarkdown({ title: "Project", sections, mermaid: renderMermaid(mermaidEdges) }),
252
+ mermaid: renderMermaid(mermaidEdges)
253
+ };
254
+ }
255
+ function buildFullProjectDump(snapshot) {
256
+ const files = Object.keys(snapshot.fileGraph).sort();
257
+ const mermaidEdges = [];
258
+ const lines = [];
259
+ for (const file of files) {
260
+ const dependencies = snapshot.fileGraph[file] ?? [];
261
+ lines.push(dependencies.length > 0
262
+ ? ` - ${file} → ${dependencies.join(", ")}`
263
+ : ` - ${file}`);
264
+ for (const dependency of dependencies) {
265
+ mermaidEdges.push({ from: file, to: dependency });
266
+ }
267
+ }
268
+ return {
269
+ markdown: buildMapMarkdown({
270
+ title: "Project (full)",
271
+ sections: [
272
+ {
273
+ heading: "All files",
274
+ body: lines.length > 0 ? lines.join("\n") : "(no files scanned)"
275
+ }
276
+ ],
277
+ mermaid: renderMermaid(mermaidEdges)
278
+ }),
279
+ mermaid: renderMermaid(mermaidEdges)
280
+ };
281
+ }
282
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/commands/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ProjectMap } from "../analyzers/pipeline/index.js";
2
+ import type { OnboardingLanguage, OnboardingModel, ConceptualStep, FeatureSummary, StartHereItem } from "../onboarding/model.js";
3
+ import { type Prompt } from "../utils/prompt.js";
4
+ export type { OnboardingLanguage } from "../onboarding/model.js";
5
+ export type OnboardingOptions = {
6
+ json?: boolean;
7
+ language?: string;
8
+ projectRoot?: string;
9
+ prompt?: Prompt;
10
+ target?: string;
11
+ write?: boolean;
12
+ };
13
+ export type OnboardingGuide = {
14
+ status: "ok";
15
+ language: OnboardingLanguage;
16
+ projectName: string;
17
+ tagline: string;
18
+ stackLine: string;
19
+ whatThisIs: string;
20
+ howItWorks: ConceptualStep[];
21
+ features: FeatureSummary[];
22
+ startHere: StartHereItem[];
23
+ snapshot: {
24
+ generatedAt: string;
25
+ stale: boolean;
26
+ };
27
+ markdown: string;
28
+ writtenPath: string | null;
29
+ };
30
+ export declare function onboardingCommand(options?: OnboardingOptions): Promise<void>;
31
+ export declare function buildOnboardingMarkdown(model: OnboardingModel, options?: {
32
+ stale?: boolean;
33
+ language?: OnboardingLanguage;
34
+ flows?: ProjectMap["flows"];
35
+ }): string;
36
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/commands/onboarding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEjI,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoCD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CACxB,GACL,MAAM,CA4ER"}
@@ -0,0 +1,226 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import { join, resolve } from "node:path";
3
+ import { isSnapshotStale, readSnapshotOrThrow } from "../cache/snapshot.js";
4
+ import { buildOnboardingModel } from "../onboarding/modelBuilder.js";
5
+ import { output, withJsonOutput } from "../utils/output.js";
6
+ import { createPrompt } from "../utils/prompt.js";
7
+ export async function onboardingCommand(options = {}) {
8
+ if (options.json) {
9
+ await withJsonOutput(async () => {
10
+ output.json(await runOnboarding(options));
11
+ });
12
+ return;
13
+ }
14
+ const guide = await runOnboarding(options);
15
+ output.section("DevMap Onboarding");
16
+ if (guide.snapshot.stale) {
17
+ output.warning("Snapshot is stale: this guide may use outdated project structure.");
18
+ output.note("Run devmap analyze --fresh, then repeat devmap onboarding.");
19
+ }
20
+ output.markdown(guide.markdown);
21
+ if (guide.writtenPath) {
22
+ output.success(`Wrote ${guide.writtenPath}`);
23
+ }
24
+ else {
25
+ output.note("To write this guide to ONBOARDING.md, run devmap onboarding --write.");
26
+ }
27
+ }
28
+ async function runOnboarding(options) {
29
+ const projectRoot = resolve(options.projectRoot ?? options.target ?? ".");
30
+ const snapshot = await readSnapshotOrThrow(projectRoot);
31
+ const stale = await isSnapshotStale(projectRoot, snapshot);
32
+ const language = await resolveOnboardingLanguage(options);
33
+ const model = buildOnboardingModel(snapshot, language);
34
+ model.isStale = stale;
35
+ const markdown = buildOnboardingMarkdown(model, { stale, language, flows: snapshot.flows });
36
+ const writtenPath = options.write ? "ONBOARDING.md" : null;
37
+ if (writtenPath) {
38
+ await writeFile(join(projectRoot, writtenPath), `${markdown}\n`, "utf8");
39
+ }
40
+ return {
41
+ status: "ok",
42
+ language,
43
+ projectName: model.projectName,
44
+ tagline: model.tagline,
45
+ stackLine: model.stackLine,
46
+ whatThisIs: model.whatThisIs,
47
+ howItWorks: model.howItWorks,
48
+ features: model.features,
49
+ startHere: model.startHere,
50
+ snapshot: {
51
+ generatedAt: snapshot.generatedAt,
52
+ stale
53
+ },
54
+ markdown,
55
+ writtenPath
56
+ };
57
+ }
58
+ export function buildOnboardingMarkdown(model, options = {}) {
59
+ const lang = options.language ?? model.language;
60
+ const sections = [];
61
+ // Header
62
+ sections.push(`# ${model.projectName}`);
63
+ sections.push("");
64
+ sections.push(model.tagline);
65
+ if (model.stackLine)
66
+ sections.push(`\`${model.stackLine}\``);
67
+ sections.push("");
68
+ // Stale warning
69
+ if (options.stale || model.isStale) {
70
+ sections.push(lang === "id"
71
+ ? "> ⚠ Snapshot stale — jalankan `devmap analyze --fresh` sebelum mengandalkan guide ini."
72
+ : "> ⚠ Snapshot is stale — run `devmap analyze --fresh` before relying on this guide.");
73
+ sections.push("");
74
+ }
75
+ sections.push("---");
76
+ sections.push("");
77
+ // Section 1: What this is
78
+ sections.push(lang === "id" ? "## Tentang project ini" : "## What this is");
79
+ sections.push("");
80
+ sections.push(model.whatThisIs);
81
+ sections.push("");
82
+ // Section 2: How it works
83
+ sections.push(lang === "id" ? "## Cara kerjanya" : "## How it works");
84
+ sections.push("");
85
+ for (let i = 0; i < model.howItWorks.length; i++) {
86
+ sections.push(`${i + 1}. ${model.howItWorks[i].step}`);
87
+ }
88
+ sections.push("");
89
+ // Section 3: What's inside
90
+ if (model.features.length > 0) {
91
+ sections.push(lang === "id" ? "## Fitur yang ada" : "## What's inside");
92
+ sections.push("");
93
+ sections.push(...renderFeatureTable(model.features, lang));
94
+ sections.push("");
95
+ }
96
+ // Section 4: Start here
97
+ if (model.startHere.length > 0) {
98
+ sections.push(lang === "id" ? "## Mulai dari sini" : "## Start here");
99
+ sections.push("");
100
+ sections.push(...renderStartHereTable(model.startHere, lang));
101
+ sections.push("");
102
+ }
103
+ // Section 5: Key flows (optional, dari snapshot langsung)
104
+ const flows = options.flows ?? [];
105
+ if (flows.length > 0) {
106
+ sections.push(lang === "id" ? "## Flow utama" : "## Key flows");
107
+ sections.push("");
108
+ sections.push(...renderKeyFlows(flows, lang));
109
+ sections.push("");
110
+ }
111
+ // Section 6: Go deeper (statik)
112
+ sections.push(lang === "id" ? "## Lebih dalam" : "## Go deeper");
113
+ sections.push("");
114
+ sections.push(...renderGoDeeper(lang));
115
+ sections.push("");
116
+ // Footer
117
+ sections.push("---");
118
+ sections.push(lang === "id"
119
+ ? "*Dibuat oleh DevMap · Jalankan `devmap analyze` untuk refresh*"
120
+ : "*Generated by DevMap · Run `devmap analyze` to refresh*");
121
+ return sections.join("\n").replace(/\n{3,}/g, "\n\n");
122
+ }
123
+ function renderFeatureTable(features, lang) {
124
+ const header = lang === "id"
125
+ ? ["| Fitur | Fungsi |", "|-------|--------|"]
126
+ : ["| Feature | What it does |", "|---------|-------------|"];
127
+ const rows = features.map((f) => {
128
+ const entryNote = f.entryFile ? ` Entry: \`${f.entryFile}\`` : "";
129
+ return `| ${f.name} | ${f.what}${entryNote} |`;
130
+ });
131
+ return [...header, ...rows];
132
+ }
133
+ function renderStartHereTable(items, lang) {
134
+ const header = lang === "id"
135
+ ? ["| # | File | Kenapa baca ini |", "|---|------|-----------------|"]
136
+ : ["| # | File | Why read this |", "|---|------|---------------|"];
137
+ const rows = items.map((item) => `| ${item.order} | \`${item.path}\` | ${item.reason} |`);
138
+ return [...header, ...rows];
139
+ }
140
+ function renderKeyFlows(flows, lang) {
141
+ const lines = [];
142
+ const topFlows = flows
143
+ .filter((f) => f.steps.length > 1)
144
+ .slice(0, 3);
145
+ for (const flow of topFlows) {
146
+ lines.push(`### ${flow.name}`);
147
+ lines.push("");
148
+ if (flow.entryPoint) {
149
+ lines.push(`\`${flow.entryPoint}\``);
150
+ }
151
+ for (let i = 0; i < flow.steps.length; i++) {
152
+ const step = flow.steps[i];
153
+ const isLast = i === flow.steps.length - 1;
154
+ const fileLabel = step.file ? `\`${step.file}\`` : step.label;
155
+ const purposeNote = step.purpose ? ` — ${step.purpose}` : "";
156
+ const prefix = isLast ? " └─" : " ├─";
157
+ lines.push(`${prefix} ${fileLabel}${purposeNote}`);
158
+ }
159
+ lines.push("");
160
+ }
161
+ return lines;
162
+ }
163
+ // Set of actually-registered CLI commands from index.ts.
164
+ // Add entries here when new commands ship so they appear in the onboarding guide.
165
+ const AVAILABLE_COMMANDS = new Set([
166
+ "init",
167
+ "analyze",
168
+ "onboarding",
169
+ "config",
170
+ "doctor",
171
+ "map",
172
+ "flow",
173
+ "explain",
174
+ ]);
175
+ const GO_DEEPER_ENTRIES = [
176
+ { command: "analyze", args: "<target>", en: "analyze project structure and generate a static map", id: "analisis struktur proyek dan hasilkan peta statis" },
177
+ { command: "doctor", en: "diagnose DevMap setup issues", id: "diagnosis masalah pengaturan DevMap" },
178
+ { command: "config", args: "model <model>", en: "set a model override or restore automatic routing", id: "atur override model atau routing otomatis" },
179
+ { command: "init", en: "initialize DevMap configuration", id: "inisialisasi konfigurasi DevMap" },
180
+ { command: "explain", args: "<file>", en: "understand what a specific file does", id: "pahami apa yang dilakukan file tertentu" },
181
+ { command: "map", en: "see the full dependency graph", id: "lihat graph dependency lengkap" },
182
+ { command: "flow", en: "trace a request end-to-end", id: "trace request dari awal sampai akhir" },
183
+ ];
184
+ function renderGoDeeper(lang) {
185
+ return GO_DEEPER_ENTRIES
186
+ .filter(entry => AVAILABLE_COMMANDS.has(entry.command))
187
+ .map(entry => {
188
+ const cmd = entry.args
189
+ ? `devmap ${entry.command} ${entry.args}`
190
+ : `devmap ${entry.command}`;
191
+ const desc = lang === "id" ? entry.id : entry.en;
192
+ return `- \`${cmd}\` — ${desc}`;
193
+ });
194
+ }
195
+ // ── Language resolution ───────────────────────────────────────────────────────
196
+ async function resolveOnboardingLanguage(options) {
197
+ const explicitLanguage = normalizeOnboardingLanguage(options.language);
198
+ if (explicitLanguage) {
199
+ return explicitLanguage;
200
+ }
201
+ if (options.json || (!options.prompt && !process.stdin.isTTY)) {
202
+ return "en";
203
+ }
204
+ const prompt = options.prompt ?? createPrompt();
205
+ try {
206
+ const answer = await prompt.ask("Onboarding language? [en/id] (default: en): ");
207
+ return normalizeOnboardingLanguage(answer) ?? "en";
208
+ }
209
+ finally {
210
+ prompt.close();
211
+ }
212
+ }
213
+ function normalizeOnboardingLanguage(value) {
214
+ const normalized = value?.trim().toLowerCase();
215
+ if (!normalized) {
216
+ return null;
217
+ }
218
+ if (["id", "ind", "indo", "indonesia", "indonesian", "bahasa indonesia"].includes(normalized)) {
219
+ return "id";
220
+ }
221
+ if (["en", "eng", "english", "inggris"].includes(normalized)) {
222
+ return "en";
223
+ }
224
+ return null;
225
+ }
226
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/commands/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}