@tyroneross/navgator 0.2.2 → 0.9.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 (692) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +21 -7
  3. package/.claude-plugin/plugin.json +16 -11
  4. package/.codex-plugin/plugin.json +31 -0
  5. package/.mcp.json +8 -0
  6. package/CLAUDE.md +197 -23
  7. package/LICENSE +202 -21
  8. package/README.md +220 -33
  9. package/agents/architecture-advisor.md +6 -2
  10. package/agents/architecture-investigator.md +163 -0
  11. package/agents/architecture-planner.md +160 -0
  12. package/agents/external-resolver.md +97 -0
  13. package/dist/__tests__/agent-output.test.d.ts +5 -0
  14. package/dist/__tests__/agent-output.test.d.ts.map +1 -0
  15. package/dist/__tests__/agent-output.test.js +233 -0
  16. package/dist/__tests__/agent-output.test.js.map +1 -0
  17. package/dist/__tests__/architecture-insights-stack.test.d.ts +21 -0
  18. package/dist/__tests__/architecture-insights-stack.test.d.ts.map +1 -0
  19. package/dist/__tests__/architecture-insights-stack.test.js +86 -0
  20. package/dist/__tests__/architecture-insights-stack.test.js.map +1 -0
  21. package/dist/__tests__/architecture-insights.test.d.ts +2 -0
  22. package/dist/__tests__/architecture-insights.test.d.ts.map +1 -0
  23. package/dist/__tests__/architecture-insights.test.js +46 -0
  24. package/dist/__tests__/architecture-insights.test.js.map +1 -0
  25. package/dist/__tests__/audit-sampler.test.d.ts +10 -0
  26. package/dist/__tests__/audit-sampler.test.d.ts.map +1 -0
  27. package/dist/__tests__/audit-sampler.test.js +172 -0
  28. package/dist/__tests__/audit-sampler.test.js.map +1 -0
  29. package/dist/__tests__/audit-spc.test.d.ts +5 -0
  30. package/dist/__tests__/audit-spc.test.d.ts.map +1 -0
  31. package/dist/__tests__/audit-spc.test.js +94 -0
  32. package/dist/__tests__/audit-spc.test.js.map +1 -0
  33. package/dist/__tests__/audit-verifiers.test.d.ts +5 -0
  34. package/dist/__tests__/audit-verifiers.test.d.ts.map +1 -0
  35. package/dist/__tests__/audit-verifiers.test.js +248 -0
  36. package/dist/__tests__/audit-verifiers.test.js.map +1 -0
  37. package/dist/__tests__/auto-refresh.test.d.ts +12 -0
  38. package/dist/__tests__/auto-refresh.test.d.ts.map +1 -0
  39. package/dist/__tests__/auto-refresh.test.js +236 -0
  40. package/dist/__tests__/auto-refresh.test.js.map +1 -0
  41. package/dist/__tests__/bare-imports.test.d.ts +8 -0
  42. package/dist/__tests__/bare-imports.test.d.ts.map +1 -0
  43. package/dist/__tests__/bare-imports.test.js +176 -0
  44. package/dist/__tests__/bare-imports.test.js.map +1 -0
  45. package/dist/__tests__/classify.test.d.ts +5 -0
  46. package/dist/__tests__/classify.test.d.ts.map +1 -0
  47. package/dist/__tests__/classify.test.js +158 -0
  48. package/dist/__tests__/classify.test.js.map +1 -0
  49. package/dist/__tests__/cli-commands.test.d.ts +8 -0
  50. package/dist/__tests__/cli-commands.test.d.ts.map +1 -0
  51. package/dist/__tests__/cli-commands.test.js +207 -0
  52. package/dist/__tests__/cli-commands.test.js.map +1 -0
  53. package/dist/__tests__/consolidated-readers.test.d.ts +23 -0
  54. package/dist/__tests__/consolidated-readers.test.d.ts.map +1 -0
  55. package/dist/__tests__/consolidated-readers.test.js +200 -0
  56. package/dist/__tests__/consolidated-readers.test.js.map +1 -0
  57. package/dist/__tests__/coverage.test.d.ts +5 -0
  58. package/dist/__tests__/coverage.test.d.ts.map +1 -0
  59. package/dist/__tests__/coverage.test.js +120 -0
  60. package/dist/__tests__/coverage.test.js.map +1 -0
  61. package/dist/__tests__/deploy-scanner-runtime.test.d.ts +6 -0
  62. package/dist/__tests__/deploy-scanner-runtime.test.d.ts.map +1 -0
  63. package/dist/__tests__/deploy-scanner-runtime.test.js +168 -0
  64. package/dist/__tests__/deploy-scanner-runtime.test.js.map +1 -0
  65. package/dist/__tests__/env-scanner.test.d.ts +2 -0
  66. package/dist/__tests__/env-scanner.test.d.ts.map +1 -0
  67. package/dist/__tests__/env-scanner.test.js +191 -0
  68. package/dist/__tests__/env-scanner.test.js.map +1 -0
  69. package/dist/__tests__/freshness/cli-freshness.test.d.ts +2 -0
  70. package/dist/__tests__/freshness/cli-freshness.test.d.ts.map +1 -0
  71. package/dist/__tests__/freshness/cli-freshness.test.js +26 -0
  72. package/dist/__tests__/freshness/cli-freshness.test.js.map +1 -0
  73. package/dist/__tests__/freshness/dirty-ledger.test.d.ts +2 -0
  74. package/dist/__tests__/freshness/dirty-ledger.test.d.ts.map +1 -0
  75. package/dist/__tests__/freshness/dirty-ledger.test.js +39 -0
  76. package/dist/__tests__/freshness/dirty-ledger.test.js.map +1 -0
  77. package/dist/__tests__/freshness/drainer.test.d.ts +2 -0
  78. package/dist/__tests__/freshness/drainer.test.d.ts.map +1 -0
  79. package/dist/__tests__/freshness/drainer.test.js +103 -0
  80. package/dist/__tests__/freshness/drainer.test.js.map +1 -0
  81. package/dist/__tests__/freshness/paths.test.d.ts +2 -0
  82. package/dist/__tests__/freshness/paths.test.d.ts.map +1 -0
  83. package/dist/__tests__/freshness/paths.test.js +19 -0
  84. package/dist/__tests__/freshness/paths.test.js.map +1 -0
  85. package/dist/__tests__/freshness/scan-lock.test.d.ts +2 -0
  86. package/dist/__tests__/freshness/scan-lock.test.d.ts.map +1 -0
  87. package/dist/__tests__/freshness/scan-lock.test.js +40 -0
  88. package/dist/__tests__/freshness/scan-lock.test.js.map +1 -0
  89. package/dist/__tests__/freshness/stamp.test.d.ts +2 -0
  90. package/dist/__tests__/freshness/stamp.test.d.ts.map +1 -0
  91. package/dist/__tests__/freshness/stamp.test.js +36 -0
  92. package/dist/__tests__/freshness/stamp.test.js.map +1 -0
  93. package/dist/__tests__/gitignore-safety.test.d.ts +2 -0
  94. package/dist/__tests__/gitignore-safety.test.d.ts.map +1 -0
  95. package/dist/__tests__/gitignore-safety.test.js +110 -0
  96. package/dist/__tests__/gitignore-safety.test.js.map +1 -0
  97. package/dist/__tests__/helpers.d.ts +37 -0
  98. package/dist/__tests__/helpers.d.ts.map +1 -0
  99. package/dist/__tests__/helpers.js +134 -0
  100. package/dist/__tests__/helpers.js.map +1 -0
  101. package/dist/__tests__/impact.test.d.ts +5 -0
  102. package/dist/__tests__/impact.test.d.ts.map +1 -0
  103. package/dist/__tests__/impact.test.js +221 -0
  104. package/dist/__tests__/impact.test.js.map +1 -0
  105. package/dist/__tests__/lessons-store.test.d.ts +8 -0
  106. package/dist/__tests__/lessons-store.test.d.ts.map +1 -0
  107. package/dist/__tests__/lessons-store.test.js +232 -0
  108. package/dist/__tests__/lessons-store.test.js.map +1 -0
  109. package/dist/__tests__/llm-dedup.test.d.ts +2 -0
  110. package/dist/__tests__/llm-dedup.test.d.ts.map +1 -0
  111. package/dist/__tests__/llm-dedup.test.js +155 -0
  112. package/dist/__tests__/llm-dedup.test.js.map +1 -0
  113. package/dist/__tests__/mjs-frontend-fetch.test.d.ts +19 -0
  114. package/dist/__tests__/mjs-frontend-fetch.test.d.ts.map +1 -0
  115. package/dist/__tests__/mjs-frontend-fetch.test.js +179 -0
  116. package/dist/__tests__/mjs-frontend-fetch.test.js.map +1 -0
  117. package/dist/__tests__/multi-stack-discovery.test.d.ts +11 -0
  118. package/dist/__tests__/multi-stack-discovery.test.d.ts.map +1 -0
  119. package/dist/__tests__/multi-stack-discovery.test.js +75 -0
  120. package/dist/__tests__/multi-stack-discovery.test.js.map +1 -0
  121. package/dist/__tests__/per-entity-files-gate.test.d.ts +22 -0
  122. package/dist/__tests__/per-entity-files-gate.test.d.ts.map +1 -0
  123. package/dist/__tests__/per-entity-files-gate.test.js +160 -0
  124. package/dist/__tests__/per-entity-files-gate.test.js.map +1 -0
  125. package/dist/__tests__/prisma-calls.test.d.ts +2 -0
  126. package/dist/__tests__/prisma-calls.test.d.ts.map +1 -0
  127. package/dist/__tests__/prisma-calls.test.js +125 -0
  128. package/dist/__tests__/prisma-calls.test.js.map +1 -0
  129. package/dist/__tests__/prisma-parser.test.d.ts +2 -0
  130. package/dist/__tests__/prisma-parser.test.d.ts.map +1 -0
  131. package/dist/__tests__/prisma-parser.test.js +252 -0
  132. package/dist/__tests__/prisma-parser.test.js.map +1 -0
  133. package/dist/__tests__/prompt-detector.test.d.ts +5 -0
  134. package/dist/__tests__/prompt-detector.test.d.ts.map +1 -0
  135. package/dist/__tests__/prompt-detector.test.js +75 -0
  136. package/dist/__tests__/prompt-detector.test.js.map +1 -0
  137. package/dist/__tests__/queue-scanner.test.d.ts +5 -0
  138. package/dist/__tests__/queue-scanner.test.d.ts.map +1 -0
  139. package/dist/__tests__/queue-scanner.test.js +85 -0
  140. package/dist/__tests__/queue-scanner.test.js.map +1 -0
  141. package/dist/__tests__/resolve.test.d.ts +5 -0
  142. package/dist/__tests__/resolve.test.d.ts.map +1 -0
  143. package/dist/__tests__/resolve.test.js +196 -0
  144. package/dist/__tests__/resolve.test.js.map +1 -0
  145. package/dist/__tests__/rules.test.d.ts +2 -0
  146. package/dist/__tests__/rules.test.d.ts.map +1 -0
  147. package/dist/__tests__/rules.test.js +343 -0
  148. package/dist/__tests__/rules.test.js.map +1 -0
  149. package/dist/__tests__/sandbox.test.d.ts +5 -0
  150. package/dist/__tests__/sandbox.test.d.ts.map +1 -0
  151. package/dist/__tests__/sandbox.test.js +189 -0
  152. package/dist/__tests__/sandbox.test.js.map +1 -0
  153. package/dist/__tests__/scanner-audit.test.d.ts +9 -0
  154. package/dist/__tests__/scanner-audit.test.d.ts.map +1 -0
  155. package/dist/__tests__/scanner-audit.test.js +64 -0
  156. package/dist/__tests__/scanner-audit.test.js.map +1 -0
  157. package/dist/__tests__/scanner-characterization.test.d.ts +16 -0
  158. package/dist/__tests__/scanner-characterization.test.d.ts.map +1 -0
  159. package/dist/__tests__/scanner-characterization.test.js +167 -0
  160. package/dist/__tests__/scanner-characterization.test.js.map +1 -0
  161. package/dist/__tests__/scanner-incremental.test.d.ts +13 -0
  162. package/dist/__tests__/scanner-incremental.test.d.ts.map +1 -0
  163. package/dist/__tests__/scanner-incremental.test.js +725 -0
  164. package/dist/__tests__/scanner-incremental.test.js.map +1 -0
  165. package/dist/__tests__/scanner-integration.test.d.ts +7 -0
  166. package/dist/__tests__/scanner-integration.test.d.ts.map +1 -0
  167. package/dist/__tests__/scanner-integration.test.js +211 -0
  168. package/dist/__tests__/scanner-integration.test.js.map +1 -0
  169. package/dist/__tests__/scip-new-catches.test.d.ts +19 -0
  170. package/dist/__tests__/scip-new-catches.test.d.ts.map +1 -0
  171. package/dist/__tests__/scip-new-catches.test.js +90 -0
  172. package/dist/__tests__/scip-new-catches.test.js.map +1 -0
  173. package/dist/__tests__/subgraph.test.d.ts +5 -0
  174. package/dist/__tests__/subgraph.test.d.ts.map +1 -0
  175. package/dist/__tests__/subgraph.test.js +145 -0
  176. package/dist/__tests__/subgraph.test.js.map +1 -0
  177. package/dist/__tests__/trace.test.d.ts +5 -0
  178. package/dist/__tests__/trace.test.d.ts.map +1 -0
  179. package/dist/__tests__/trace.test.js +221 -0
  180. package/dist/__tests__/trace.test.js.map +1 -0
  181. package/dist/agent-output.d.ts +16 -0
  182. package/dist/agent-output.d.ts.map +1 -0
  183. package/dist/agent-output.js +142 -0
  184. package/dist/agent-output.js.map +1 -0
  185. package/dist/architecture-insights.d.ts +17 -0
  186. package/dist/architecture-insights.d.ts.map +1 -0
  187. package/dist/architecture-insights.js +178 -0
  188. package/dist/architecture-insights.js.map +1 -0
  189. package/dist/audit/index.d.ts +69 -0
  190. package/dist/audit/index.d.ts.map +1 -0
  191. package/dist/audit/index.js +255 -0
  192. package/dist/audit/index.js.map +1 -0
  193. package/dist/audit/sampler.d.ts +98 -0
  194. package/dist/audit/sampler.d.ts.map +1 -0
  195. package/dist/audit/sampler.js +298 -0
  196. package/dist/audit/sampler.js.map +1 -0
  197. package/dist/audit/spc.d.ts +62 -0
  198. package/dist/audit/spc.d.ts.map +1 -0
  199. package/dist/audit/spc.js +81 -0
  200. package/dist/audit/spc.js.map +1 -0
  201. package/dist/audit/verifiers.d.ts +81 -0
  202. package/dist/audit/verifiers.d.ts.map +1 -0
  203. package/dist/audit/verifiers.js +366 -0
  204. package/dist/audit/verifiers.js.map +1 -0
  205. package/dist/classify.d.ts +19 -0
  206. package/dist/classify.d.ts.map +1 -0
  207. package/dist/classify.js +124 -0
  208. package/dist/classify.js.map +1 -0
  209. package/dist/cli/commands/connections.d.ts +3 -0
  210. package/dist/cli/commands/connections.d.ts.map +1 -0
  211. package/dist/cli/commands/connections.js +125 -0
  212. package/dist/cli/commands/connections.js.map +1 -0
  213. package/dist/cli/commands/coverage.d.ts +3 -0
  214. package/dist/cli/commands/coverage.d.ts.map +1 -0
  215. package/dist/cli/commands/coverage.js +94 -0
  216. package/dist/cli/commands/coverage.js.map +1 -0
  217. package/dist/cli/commands/dead.d.ts +3 -0
  218. package/dist/cli/commands/dead.d.ts.map +1 -0
  219. package/dist/cli/commands/dead.js +80 -0
  220. package/dist/cli/commands/dead.js.map +1 -0
  221. package/dist/cli/commands/diagram.d.ts +3 -0
  222. package/dist/cli/commands/diagram.d.ts.map +1 -0
  223. package/dist/cli/commands/diagram.js +102 -0
  224. package/dist/cli/commands/diagram.js.map +1 -0
  225. package/dist/cli/commands/find.d.ts +3 -0
  226. package/dist/cli/commands/find.d.ts.map +1 -0
  227. package/dist/cli/commands/find.js +128 -0
  228. package/dist/cli/commands/find.js.map +1 -0
  229. package/dist/cli/commands/freshness.d.ts +20 -0
  230. package/dist/cli/commands/freshness.d.ts.map +1 -0
  231. package/dist/cli/commands/freshness.js +90 -0
  232. package/dist/cli/commands/freshness.js.map +1 -0
  233. package/dist/cli/commands/helpers.d.ts +7 -0
  234. package/dist/cli/commands/helpers.d.ts.map +1 -0
  235. package/dist/cli/commands/helpers.js +30 -0
  236. package/dist/cli/commands/helpers.js.map +1 -0
  237. package/dist/cli/commands/impact.d.ts +3 -0
  238. package/dist/cli/commands/impact.d.ts.map +1 -0
  239. package/dist/cli/commands/impact.js +172 -0
  240. package/dist/cli/commands/impact.js.map +1 -0
  241. package/dist/cli/commands/lessons.d.ts +6 -0
  242. package/dist/cli/commands/lessons.d.ts.map +1 -0
  243. package/dist/cli/commands/lessons.js +279 -0
  244. package/dist/cli/commands/lessons.js.map +1 -0
  245. package/dist/cli/commands/list.d.ts +3 -0
  246. package/dist/cli/commands/list.d.ts.map +1 -0
  247. package/dist/cli/commands/list.js +91 -0
  248. package/dist/cli/commands/list.js.map +1 -0
  249. package/dist/cli/commands/llm-map.d.ts +3 -0
  250. package/dist/cli/commands/llm-map.d.ts.map +1 -0
  251. package/dist/cli/commands/llm-map.js +121 -0
  252. package/dist/cli/commands/llm-map.js.map +1 -0
  253. package/dist/cli/commands/misc.d.ts +17 -0
  254. package/dist/cli/commands/misc.d.ts.map +1 -0
  255. package/dist/cli/commands/misc.js +495 -0
  256. package/dist/cli/commands/misc.js.map +1 -0
  257. package/dist/cli/commands/prompts.d.ts +3 -0
  258. package/dist/cli/commands/prompts.d.ts.map +1 -0
  259. package/dist/cli/commands/prompts.js +74 -0
  260. package/dist/cli/commands/prompts.js.map +1 -0
  261. package/dist/cli/commands/rules.d.ts +3 -0
  262. package/dist/cli/commands/rules.d.ts.map +1 -0
  263. package/dist/cli/commands/rules.js +61 -0
  264. package/dist/cli/commands/rules.js.map +1 -0
  265. package/dist/cli/commands/scan.d.ts +3 -0
  266. package/dist/cli/commands/scan.d.ts.map +1 -0
  267. package/dist/cli/commands/scan.js +177 -0
  268. package/dist/cli/commands/scan.js.map +1 -0
  269. package/dist/cli/commands/schema.d.ts +3 -0
  270. package/dist/cli/commands/schema.d.ts.map +1 -0
  271. package/dist/cli/commands/schema.js +126 -0
  272. package/dist/cli/commands/schema.js.map +1 -0
  273. package/dist/cli/commands/status.d.ts +3 -0
  274. package/dist/cli/commands/status.d.ts.map +1 -0
  275. package/dist/cli/commands/status.js +340 -0
  276. package/dist/cli/commands/status.js.map +1 -0
  277. package/dist/cli/commands/subgraph.d.ts +3 -0
  278. package/dist/cli/commands/subgraph.d.ts.map +1 -0
  279. package/dist/cli/commands/subgraph.js +55 -0
  280. package/dist/cli/commands/subgraph.js.map +1 -0
  281. package/dist/cli/commands/temporal.d.ts +3 -0
  282. package/dist/cli/commands/temporal.d.ts.map +1 -0
  283. package/dist/cli/commands/temporal.js +112 -0
  284. package/dist/cli/commands/temporal.js.map +1 -0
  285. package/dist/cli/commands/trace.d.ts +3 -0
  286. package/dist/cli/commands/trace.d.ts.map +1 -0
  287. package/dist/cli/commands/trace.js +65 -0
  288. package/dist/cli/commands/trace.js.map +1 -0
  289. package/dist/cli/index.js +88 -825
  290. package/dist/cli/index.js.map +1 -1
  291. package/dist/config.d.ts +13 -2
  292. package/dist/config.d.ts.map +1 -1
  293. package/dist/config.js +106 -12
  294. package/dist/config.js.map +1 -1
  295. package/dist/coverage.d.ts +37 -0
  296. package/dist/coverage.d.ts.map +1 -0
  297. package/dist/coverage.js +177 -0
  298. package/dist/coverage.js.map +1 -0
  299. package/dist/diagram.d.ts.map +1 -1
  300. package/dist/diagram.js +41 -0
  301. package/dist/diagram.js.map +1 -1
  302. package/dist/diff.d.ts +57 -0
  303. package/dist/diff.d.ts.map +1 -0
  304. package/dist/diff.js +527 -0
  305. package/dist/diff.js.map +1 -0
  306. package/dist/enrich/cache.d.ts +41 -0
  307. package/dist/enrich/cache.d.ts.map +1 -0
  308. package/dist/enrich/cache.js +97 -0
  309. package/dist/enrich/cache.js.map +1 -0
  310. package/dist/enrich/external-enrichment.types.d.ts +91 -0
  311. package/dist/enrich/external-enrichment.types.d.ts.map +1 -0
  312. package/dist/enrich/external-enrichment.types.js +38 -0
  313. package/dist/enrich/external-enrichment.types.js.map +1 -0
  314. package/dist/enrich/external-resolver.d.ts +95 -0
  315. package/dist/enrich/external-resolver.d.ts.map +1 -0
  316. package/dist/enrich/external-resolver.js +222 -0
  317. package/dist/enrich/external-resolver.js.map +1 -0
  318. package/dist/enrich/fetchers.d.ts +30 -0
  319. package/dist/enrich/fetchers.d.ts.map +1 -0
  320. package/dist/enrich/fetchers.js +89 -0
  321. package/dist/enrich/fetchers.js.map +1 -0
  322. package/dist/file-resolve.d.ts +35 -0
  323. package/dist/file-resolve.d.ts.map +1 -0
  324. package/dist/file-resolve.js +159 -0
  325. package/dist/file-resolve.js.map +1 -0
  326. package/dist/freshness/dirty-ledger.d.ts +7 -0
  327. package/dist/freshness/dirty-ledger.d.ts.map +1 -0
  328. package/dist/freshness/dirty-ledger.js +56 -0
  329. package/dist/freshness/dirty-ledger.js.map +1 -0
  330. package/dist/freshness/drainer.d.ts +38 -0
  331. package/dist/freshness/drainer.d.ts.map +1 -0
  332. package/dist/freshness/drainer.js +88 -0
  333. package/dist/freshness/drainer.js.map +1 -0
  334. package/dist/freshness/paths.d.ts +9 -0
  335. package/dist/freshness/paths.d.ts.map +1 -0
  336. package/dist/freshness/paths.js +24 -0
  337. package/dist/freshness/paths.js.map +1 -0
  338. package/dist/freshness/scan-lock.d.ts +8 -0
  339. package/dist/freshness/scan-lock.d.ts.map +1 -0
  340. package/dist/freshness/scan-lock.js +68 -0
  341. package/dist/freshness/scan-lock.js.map +1 -0
  342. package/dist/freshness/stamp.d.ts +25 -0
  343. package/dist/freshness/stamp.d.ts.map +1 -0
  344. package/dist/freshness/stamp.js +50 -0
  345. package/dist/freshness/stamp.js.map +1 -0
  346. package/dist/git.d.ts +12 -0
  347. package/dist/git.d.ts.map +1 -0
  348. package/dist/git.js +42 -0
  349. package/dist/git.js.map +1 -0
  350. package/dist/gitignore-safety.d.ts +41 -0
  351. package/dist/gitignore-safety.d.ts.map +1 -0
  352. package/dist/gitignore-safety.js +107 -0
  353. package/dist/gitignore-safety.js.map +1 -0
  354. package/dist/impact.d.ts +20 -0
  355. package/dist/impact.d.ts.map +1 -0
  356. package/dist/impact.js +89 -0
  357. package/dist/impact.js.map +1 -0
  358. package/dist/index.d.ts +24 -2
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +31 -1
  361. package/dist/index.js.map +1 -1
  362. package/dist/lessons-store.d.ts +93 -0
  363. package/dist/lessons-store.d.ts.map +1 -0
  364. package/dist/lessons-store.js +265 -0
  365. package/dist/lessons-store.js.map +1 -0
  366. package/dist/llm-dedup.d.ts +40 -0
  367. package/dist/llm-dedup.d.ts.map +1 -0
  368. package/dist/llm-dedup.js +373 -0
  369. package/dist/llm-dedup.js.map +1 -0
  370. package/dist/mcp/server.d.ts +9 -0
  371. package/dist/mcp/server.d.ts.map +1 -0
  372. package/dist/mcp/server.js +87 -0
  373. package/dist/mcp/server.js.map +1 -0
  374. package/dist/mcp/tools.d.ts +198 -0
  375. package/dist/mcp/tools.d.ts.map +1 -0
  376. package/dist/mcp/tools.js +744 -0
  377. package/dist/mcp/tools.js.map +1 -0
  378. package/dist/metrics/pagerank-louvain.d.ts +44 -0
  379. package/dist/metrics/pagerank-louvain.d.ts.map +1 -0
  380. package/dist/metrics/pagerank-louvain.js +128 -0
  381. package/dist/metrics/pagerank-louvain.js.map +1 -0
  382. package/dist/parsers/scip-runner.d.ts +63 -0
  383. package/dist/parsers/scip-runner.d.ts.map +1 -0
  384. package/dist/parsers/scip-runner.js +179 -0
  385. package/dist/parsers/scip-runner.js.map +1 -0
  386. package/dist/projects.d.ts +54 -0
  387. package/dist/projects.d.ts.map +1 -0
  388. package/dist/projects.js +153 -0
  389. package/dist/projects.js.map +1 -0
  390. package/dist/resolve.d.ts +22 -0
  391. package/dist/resolve.d.ts.map +1 -0
  392. package/dist/resolve.js +128 -0
  393. package/dist/resolve.js.map +1 -0
  394. package/dist/rules.d.ts +36 -0
  395. package/dist/rules.d.ts.map +1 -0
  396. package/dist/rules.js +484 -0
  397. package/dist/rules.js.map +1 -0
  398. package/dist/sandbox.d.ts +33 -0
  399. package/dist/sandbox.d.ts.map +1 -0
  400. package/dist/sandbox.js +91 -0
  401. package/dist/sandbox.js.map +1 -0
  402. package/dist/scan-lock.d.ts +37 -0
  403. package/dist/scan-lock.d.ts.map +1 -0
  404. package/dist/scan-lock.js +145 -0
  405. package/dist/scan-lock.js.map +1 -0
  406. package/dist/scanner.d.ts +126 -1
  407. package/dist/scanner.d.ts.map +1 -1
  408. package/dist/scanner.js +1711 -235
  409. package/dist/scanner.js.map +1 -1
  410. package/dist/scanners/connections/ast-scanner.d.ts +9 -2
  411. package/dist/scanners/connections/ast-scanner.d.ts.map +1 -1
  412. package/dist/scanners/connections/ast-scanner.js +19 -4
  413. package/dist/scanners/connections/ast-scanner.js.map +1 -1
  414. package/dist/scanners/connections/import-scanner.d.ts +27 -0
  415. package/dist/scanners/connections/import-scanner.d.ts.map +1 -0
  416. package/dist/scanners/connections/import-scanner.js +537 -0
  417. package/dist/scanners/connections/import-scanner.js.map +1 -0
  418. package/dist/scanners/connections/llm-call-tracer.d.ts +1 -1
  419. package/dist/scanners/connections/llm-call-tracer.d.ts.map +1 -1
  420. package/dist/scanners/connections/llm-call-tracer.js +6 -2
  421. package/dist/scanners/connections/llm-call-tracer.js.map +1 -1
  422. package/dist/scanners/connections/prisma-calls.d.ts +11 -0
  423. package/dist/scanners/connections/prisma-calls.d.ts.map +1 -0
  424. package/dist/scanners/connections/prisma-calls.js +237 -0
  425. package/dist/scanners/connections/prisma-calls.js.map +1 -0
  426. package/dist/scanners/connections/service-calls.d.ts +1 -1
  427. package/dist/scanners/connections/service-calls.d.ts.map +1 -1
  428. package/dist/scanners/connections/service-calls.js +35 -3
  429. package/dist/scanners/connections/service-calls.js.map +1 -1
  430. package/dist/scanners/infrastructure/cron-scanner.d.ts +14 -0
  431. package/dist/scanners/infrastructure/cron-scanner.d.ts.map +1 -0
  432. package/dist/scanners/infrastructure/cron-scanner.js +383 -0
  433. package/dist/scanners/infrastructure/cron-scanner.js.map +1 -0
  434. package/dist/scanners/infrastructure/deploy-scanner.d.ts +11 -0
  435. package/dist/scanners/infrastructure/deploy-scanner.d.ts.map +1 -0
  436. package/dist/scanners/infrastructure/deploy-scanner.js +508 -0
  437. package/dist/scanners/infrastructure/deploy-scanner.js.map +1 -0
  438. package/dist/scanners/infrastructure/env-scanner.d.ts +55 -0
  439. package/dist/scanners/infrastructure/env-scanner.d.ts.map +1 -0
  440. package/dist/scanners/infrastructure/env-scanner.js +431 -0
  441. package/dist/scanners/infrastructure/env-scanner.js.map +1 -0
  442. package/dist/scanners/infrastructure/field-usage-analyzer.d.ts +52 -0
  443. package/dist/scanners/infrastructure/field-usage-analyzer.d.ts.map +1 -0
  444. package/dist/scanners/infrastructure/field-usage-analyzer.js +480 -0
  445. package/dist/scanners/infrastructure/field-usage-analyzer.js.map +1 -0
  446. package/dist/scanners/infrastructure/prisma-parser.d.ts +21 -0
  447. package/dist/scanners/infrastructure/prisma-parser.d.ts.map +1 -0
  448. package/dist/scanners/infrastructure/prisma-parser.js +58 -0
  449. package/dist/scanners/infrastructure/prisma-parser.js.map +1 -0
  450. package/dist/scanners/infrastructure/prisma-scanner.d.ts +30 -0
  451. package/dist/scanners/infrastructure/prisma-scanner.d.ts.map +1 -0
  452. package/dist/scanners/infrastructure/prisma-scanner.js +329 -0
  453. package/dist/scanners/infrastructure/prisma-scanner.js.map +1 -0
  454. package/dist/scanners/infrastructure/queue-scanner.d.ts +14 -0
  455. package/dist/scanners/infrastructure/queue-scanner.d.ts.map +1 -0
  456. package/dist/scanners/infrastructure/queue-scanner.js +455 -0
  457. package/dist/scanners/infrastructure/queue-scanner.js.map +1 -0
  458. package/dist/scanners/infrastructure/typespec-validator.d.ts +50 -0
  459. package/dist/scanners/infrastructure/typespec-validator.d.ts.map +1 -0
  460. package/dist/scanners/infrastructure/typespec-validator.js +407 -0
  461. package/dist/scanners/infrastructure/typespec-validator.js.map +1 -0
  462. package/dist/scanners/packages/swift.d.ts +5 -0
  463. package/dist/scanners/packages/swift.d.ts.map +1 -1
  464. package/dist/scanners/packages/swift.js +23 -0
  465. package/dist/scanners/packages/swift.js.map +1 -1
  466. package/dist/scanners/prompts/detector.d.ts +13 -2
  467. package/dist/scanners/prompts/detector.d.ts.map +1 -1
  468. package/dist/scanners/prompts/detector.js +97 -46
  469. package/dist/scanners/prompts/detector.js.map +1 -1
  470. package/dist/scanners/prompts/index.d.ts +1 -1
  471. package/dist/scanners/prompts/index.d.ts.map +1 -1
  472. package/dist/scanners/prompts/index.js +2 -2
  473. package/dist/scanners/prompts/index.js.map +1 -1
  474. package/dist/scanners/swift/code-scanner.d.ts +1 -1
  475. package/dist/scanners/swift/code-scanner.d.ts.map +1 -1
  476. package/dist/scanners/swift/code-scanner.js +216 -2
  477. package/dist/scanners/swift/code-scanner.js.map +1 -1
  478. package/dist/scanners/swift/swiftui-scanner.d.ts +45 -0
  479. package/dist/scanners/swift/swiftui-scanner.d.ts.map +1 -0
  480. package/dist/scanners/swift/swiftui-scanner.js +606 -0
  481. package/dist/scanners/swift/swiftui-scanner.js.map +1 -0
  482. package/dist/scanners/xcode/pbxproj-parser.d.ts +32 -0
  483. package/dist/scanners/xcode/pbxproj-parser.d.ts.map +1 -0
  484. package/dist/scanners/xcode/pbxproj-parser.js +407 -0
  485. package/dist/scanners/xcode/pbxproj-parser.js.map +1 -0
  486. package/dist/scanners/xcode/storyboard-scanner.d.ts +13 -0
  487. package/dist/scanners/xcode/storyboard-scanner.d.ts.map +1 -0
  488. package/dist/scanners/xcode/storyboard-scanner.js +236 -0
  489. package/dist/scanners/xcode/storyboard-scanner.js.map +1 -0
  490. package/dist/storage/markdown-view.d.ts +49 -0
  491. package/dist/storage/markdown-view.d.ts.map +1 -0
  492. package/dist/storage/markdown-view.js +233 -0
  493. package/dist/storage/markdown-view.js.map +1 -0
  494. package/dist/storage.d.ts +225 -9
  495. package/dist/storage.d.ts.map +1 -1
  496. package/dist/storage.js +945 -86
  497. package/dist/storage.js.map +1 -1
  498. package/dist/subgraph.d.ts +30 -0
  499. package/dist/subgraph.d.ts.map +1 -0
  500. package/dist/subgraph.js +106 -0
  501. package/dist/subgraph.js.map +1 -0
  502. package/dist/temporal/git-store.d.ts +65 -0
  503. package/dist/temporal/git-store.d.ts.map +1 -0
  504. package/dist/temporal/git-store.js +166 -0
  505. package/dist/temporal/git-store.js.map +1 -0
  506. package/dist/trace.d.ts +38 -0
  507. package/dist/trace.d.ts.map +1 -0
  508. package/dist/trace.js +292 -0
  509. package/dist/trace.js.map +1 -0
  510. package/dist/types.d.ts +322 -2
  511. package/dist/types.d.ts.map +1 -1
  512. package/dist/types.js +53 -0
  513. package/dist/types.js.map +1 -1
  514. package/hooks/hooks.json +1 -55
  515. package/hooks/mark-dirty.sh +20 -0
  516. package/hooks/post-bash-suggest.sh +30 -0
  517. package/hooks/post-edit-suggest.sh +29 -0
  518. package/hooks/pre-edit-warn.sh +28 -0
  519. package/hooks/session-start.sh +19 -0
  520. package/hooks/stop-suggest.sh +49 -0
  521. package/package.json +30 -11
  522. package/scripts/install-codex-plugin.sh +119 -0
  523. package/scripts/install-plugin.sh +29 -24
  524. package/skills/architecture-export/SKILL.md +79 -0
  525. package/skills/architecture-scan/SKILL.md +64 -0
  526. package/skills/code-review/SKILL.md +368 -0
  527. package/skills/impact-analysis/SKILL.md +80 -0
  528. package/skills/infrastructure-scanning.md +42 -0
  529. package/skills/navgator-setup/SKILL.md +108 -0
  530. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  531. package/web/.next/standalone/web/.next/app-path-routes-manifest.json +3 -0
  532. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  533. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  534. package/web/.next/standalone/web/.next/required-server-files.json +4 -4
  535. package/web/.next/standalone/web/.next/routes-manifest.json +18 -0
  536. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  537. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  538. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  539. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  540. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  541. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  542. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  543. package/web/.next/standalone/web/.next/server/app/_not-found/page/next-font-manifest.json +2 -2
  544. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  545. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  546. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +3 -3
  547. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  548. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  549. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  550. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  551. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  552. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  553. package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.nft.json +1 -1
  554. package/web/.next/standalone/web/.next/server/app/api/rules/route/app-paths-manifest.json +3 -0
  555. package/web/.next/standalone/web/.next/server/app/api/rules/route/build-manifest.json +11 -0
  556. package/web/.next/standalone/web/.next/server/app/api/rules/route/server-reference-manifest.json +4 -0
  557. package/web/.next/standalone/web/.next/server/app/api/rules/route.js +6 -0
  558. package/web/.next/standalone/web/.next/server/app/api/rules/route.js.map +5 -0
  559. package/web/.next/standalone/web/.next/server/app/api/rules/route.js.nft.json +1 -0
  560. package/web/.next/standalone/web/.next/server/app/api/rules/route_client-reference-manifest.js +2 -0
  561. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/app-paths-manifest.json +3 -0
  562. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/build-manifest.json +11 -0
  563. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/server-reference-manifest.json +4 -0
  564. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js +6 -0
  565. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.map +5 -0
  566. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.nft.json +1 -0
  567. package/web/.next/standalone/web/.next/server/app/api/subgraph/route_client-reference-manifest.js +2 -0
  568. package/web/.next/standalone/web/.next/server/app/api/trace/route/app-paths-manifest.json +3 -0
  569. package/web/.next/standalone/web/.next/server/app/api/trace/route/build-manifest.json +11 -0
  570. package/web/.next/standalone/web/.next/server/app/api/trace/route/server-reference-manifest.json +4 -0
  571. package/web/.next/standalone/web/.next/server/app/api/trace/route.js +6 -0
  572. package/web/.next/standalone/web/.next/server/app/api/trace/route.js.map +5 -0
  573. package/web/.next/standalone/web/.next/server/app/api/trace/route.js.nft.json +1 -0
  574. package/web/.next/standalone/web/.next/server/app/api/trace/route_client-reference-manifest.js +2 -0
  575. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  576. package/web/.next/standalone/web/.next/server/app/index.rsc +6 -6
  577. package/web/.next/standalone/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  578. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +6 -6
  579. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  580. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
  581. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +5 -5
  582. package/web/.next/standalone/web/.next/server/app/page/next-font-manifest.json +2 -2
  583. package/web/.next/standalone/web/.next/server/app/page_client-reference-manifest.js +1 -1
  584. package/web/.next/standalone/web/.next/server/app-paths-manifest.json +3 -0
  585. package/web/.next/standalone/web/.next/server/chunks/2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js +1 -1
  586. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__006b837d._.js +1 -1
  587. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__0426efe8._.js +3 -0
  588. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__2e09fec9._.js +1 -1
  589. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__38d0390f._.js +1 -1
  590. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__594bcf20._.js +1 -1
  591. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__b888fadf._.js +1 -1
  592. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__cd5f36ce._.js +3 -0
  593. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ee6fc95f._.js +3 -0
  594. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__fa2ec862._.js +1 -1
  595. package/web/.next/standalone/web/.next/server/chunks/ssr/web_171de0df._.js +9 -4
  596. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_rules_route_actions_3de01bd5.js +3 -0
  597. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_subgraph_route_actions_d8b5a63f.js +3 -0
  598. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_trace_route_actions_b0703ae2.js +3 -0
  599. package/web/.next/standalone/web/.next/server/next-font-manifest.js +1 -1
  600. package/web/.next/standalone/web/.next/server/next-font-manifest.json +4 -4
  601. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  602. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  603. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  604. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  605. package/web/.next/standalone/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
  606. package/web/.next/standalone/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
  607. package/web/.next/standalone/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
  608. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
  609. package/web/.next/standalone/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
  610. package/web/.next/standalone/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
  611. package/web/.next/standalone/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
  612. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
  613. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
  614. package/web/.next/standalone/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
  615. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
  616. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
  617. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
  618. package/web/.next/standalone/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
  619. package/web/.next/standalone/web/app/api/components/route.ts +1 -1
  620. package/web/.next/standalone/web/app/api/connections/route.ts +3 -1
  621. package/web/.next/standalone/web/app/api/graph/route.ts +3 -3
  622. package/web/.next/standalone/web/app/api/projects/route.ts +1 -1
  623. package/web/.next/standalone/web/app/api/prompts/route.ts +2 -2
  624. package/web/.next/standalone/web/app/api/rules/route.ts +213 -0
  625. package/web/.next/standalone/web/app/api/settings/route.ts +2 -2
  626. package/web/.next/standalone/web/app/api/status/route.ts +1 -1
  627. package/web/.next/standalone/web/app/api/subgraph/route.ts +267 -0
  628. package/web/.next/standalone/web/app/api/trace/route.ts +321 -0
  629. package/web/.next/standalone/web/app/page.tsx +9 -1
  630. package/web/.next/standalone/web/components/connections-panel.tsx +23 -6
  631. package/web/.next/standalone/web/components/coverage-panel.tsx +309 -0
  632. package/web/.next/standalone/web/components/rules-panel.tsx +156 -0
  633. package/web/.next/standalone/web/components/sidebar.tsx +8 -0
  634. package/web/.next/standalone/web/components/status-overview.tsx +24 -1
  635. package/web/.next/standalone/web/components/subgraph-panel.tsx +382 -0
  636. package/web/.next/standalone/web/components/trace-panel.tsx +325 -0
  637. package/web/.next/standalone/web/lib/hooks/index.ts +3 -0
  638. package/web/.next/standalone/web/lib/hooks/use-coverage.ts +68 -0
  639. package/web/.next/standalone/web/lib/hooks/use-subgraph.ts +85 -0
  640. package/web/.next/standalone/web/lib/hooks/use-trace.ts +84 -0
  641. package/web/.next/standalone/web/lib/types.ts +108 -0
  642. package/web/.next/standalone/web/package-lock.json +218 -0
  643. package/web/.next/standalone/web/package.json +4 -2
  644. package/web/.next/standalone/web/server.js +1 -1
  645. package/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
  646. package/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
  647. package/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
  648. package/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
  649. package/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
  650. package/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
  651. package/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
  652. package/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
  653. package/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
  654. package/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
  655. package/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
  656. package/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
  657. package/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
  658. package/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
  659. package/skills/check/SKILL.md +0 -64
  660. package/skills/connections/SKILL.md +0 -54
  661. package/skills/diagram/SKILL.md +0 -64
  662. package/skills/export/SKILL.md +0 -49
  663. package/skills/impact/SKILL.md +0 -58
  664. package/skills/install/SKILL.md +0 -94
  665. package/skills/scan/SKILL.md +0 -75
  666. package/skills/status/SKILL.md +0 -37
  667. package/skills/ui/SKILL.md +0 -43
  668. package/skills/update/SKILL.md +0 -43
  669. package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  670. package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  671. package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  672. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  673. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  674. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  675. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  676. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  677. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  678. package/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  679. package/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  680. package/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  681. package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  682. package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  683. package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  684. package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  685. package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  686. package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  687. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  688. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  689. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
  690. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  691. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  692. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
@@ -4,17 +4,17 @@
4
4
  4:I[74895,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"default"]
5
5
  5:I[78989,["/_next/static/chunks/dd22b5f2beb2cc31.js"],"Analytics"]
6
6
  6:I[83380,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"ClientPageRoot"]
7
- 7:I[48478,["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/cb3513192b63e480.js"],"default"]
7
+ 7:I[48478,["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/22a09ecf6ba35cfd.js"],"default"]
8
8
  a:I[51858,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"OutletBoundary"]
9
9
  b:"$Sreact.suspense"
10
10
  d:I[51858,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"ViewportBoundary"]
11
11
  f:I[51858,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"MetadataBoundary"]
12
12
  11:I[52576,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"default"]
13
- :HL["/_next/static/chunks/8a80e7184ad3a13f.css","style"]
14
- :HL["/_next/static/chunks/c056475f5f4424b6.css","style"]
15
- :HL["/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
16
- :HL["/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
17
- 0:{"P":null,"b":"P-ZMQO7_Wnj487ks3guqa","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8a80e7184ad3a13f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/c056475f5f4424b6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/dd22b5f2beb2cc31.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L5",null,{}]]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/f74a6859e1c4d5e3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/cb3513192b63e480.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$@e"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$@10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true}
13
+ :HL["/_next/static/chunks/9857ba86ce4e82d8.css","style"]
14
+ :HL["/_next/static/chunks/f899547f99ef4b76.css","style"]
15
+ :HL["/_next/static/media/797e433ab948586e-s.p.479bea2b.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
16
+ :HL["/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
17
+ 0:{"P":null,"b":"qZVrJ4kmwXfw4Ikgj1oXR","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9857ba86ce4e82d8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/f899547f99ef4b76.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/dd22b5f2beb2cc31.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L5",null,{}]]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/f74a6859e1c4d5e3.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/22a09ecf6ba35cfd.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$@e"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$@10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true}
18
18
  8:{}
19
19
  9:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
20
20
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -3,6 +3,6 @@
3
3
  4:I[51858,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"MetadataBoundary"]
4
4
  5:"$Sreact.suspense"
5
5
  7:I[49310,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"IconMark"]
6
- 0:{"buildId":"P-ZMQO7_Wnj487ks3guqa","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"qZVrJ4kmwXfw4Ikgj1oXR","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
7
7
  3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
8
8
  6:[["$","title","0",{"children":"NavGator - Architecture Connection Tracker"}],["$","meta","1",{"name":"description","content":"Know your stack before you change it. Track architecture connections across your entire stack."}],["$","meta","2",{"name":"generator","content":"v0.app"}],["$","link","3",{"rel":"icon","href":"/icon-light-32x32.png","media":"(prefers-color-scheme: light)"}],["$","link","4",{"rel":"icon","href":"/icon-dark-32x32.png","media":"(prefers-color-scheme: dark)"}],["$","link","5",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","6",{"rel":"apple-touch-icon","href":"/apple-icon.png"}],["$","$L7","7",{}]]
@@ -3,6 +3,6 @@
3
3
  3:I[88287,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"default"]
4
4
  4:I[74895,["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"default"]
5
5
  5:I[78989,["/_next/static/chunks/dd22b5f2beb2cc31.js"],"Analytics"]
6
- :HL["/_next/static/chunks/8a80e7184ad3a13f.css","style"]
7
- :HL["/_next/static/chunks/c056475f5f4424b6.css","style"]
8
- 0:{"buildId":"P-ZMQO7_Wnj487ks3guqa","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8a80e7184ad3a13f.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/c056475f5f4424b6.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/dd22b5f2beb2cc31.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","$L5",null,{}]]}]}]]}],"loading":null,"isPartial":false}
6
+ :HL["/_next/static/chunks/9857ba86ce4e82d8.css","style"]
7
+ :HL["/_next/static/chunks/f899547f99ef4b76.css","style"]
8
+ 0:{"buildId":"qZVrJ4kmwXfw4Ikgj1oXR","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9857ba86ce4e82d8.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/f899547f99ef4b76.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/dd22b5f2beb2cc31.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","$L5",null,{}]]}]}]]}],"loading":null,"isPartial":false}
@@ -1,5 +1,5 @@
1
- :HL["/_next/static/chunks/8a80e7184ad3a13f.css","style"]
2
- :HL["/_next/static/chunks/c056475f5f4424b6.css","style"]
3
- :HL["/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
4
- :HL["/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
5
- 0:{"buildId":"P-ZMQO7_Wnj487ks3guqa","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
1
+ :HL["/_next/static/chunks/9857ba86ce4e82d8.css","style"]
2
+ :HL["/_next/static/chunks/f899547f99ef4b76.css","style"]
3
+ :HL["/_next/static/media/797e433ab948586e-s.p.479bea2b.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
4
+ :HL["/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
5
+ 0:{"buildId":"qZVrJ4kmwXfw4Ikgj1oXR","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -2,8 +2,8 @@
2
2
  "pages": {},
3
3
  "app": {
4
4
  "[project]/web/app/page": [
5
- "static/media/caa3a2e1cccd8315-s.p.853070df.woff2",
6
- "static/media/797e433ab948586e-s.p.dbea232f.woff2"
5
+ "static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2",
6
+ "static/media/797e433ab948586e-s.p.479bea2b.woff2"
7
7
  ]
8
8
  },
9
9
  "appUsingSizeAdjust": true,
@@ -1,2 +1,2 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":88287,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":88287,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":74895,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74895,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":83380,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":83380,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":8719,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8719,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":24163,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":24163,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":49310,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":49310,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":51858,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":51858,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":52576,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":52576,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/@vercel/analytics/dist/next/index.mjs <module evaluation>":{"id":78989,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":78989,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/lib/project-context.tsx <module evaluation>":{"id":9390,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/lib/project-context.tsx":{"id":9390,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/app/page.tsx <module evaluation>":{"id":48478,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/cb3513192b63e480.js"],"async":false},"[project]/web/app/page.tsx":{"id":48478,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/cb3513192b63e480.js"],"async":false}},"ssrModuleMapping":{"88287":{"*":{"id":47492,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"74895":{"*":{"id":14433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"83380":{"*":{"id":24449,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"8719":{"*":{"id":54833,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"24163":{"*":{"id":13588,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"49310":{"*":{"id":13578,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"51858":{"*":{"id":33121,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"52576":{"*":{"id":61905,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"78989":{"*":{"id":39460,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js"],"async":false}},"9390":{"*":{"id":49908,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js"],"async":false}},"48478":{"*":{"id":40776,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js","server/chunks/ssr/2374f_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_8910f04c.js","server/chunks/ssr/web_171de0df._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"88287":{"*":{"id":86309,"name":"*","chunks":[],"async":false}},"74895":{"*":{"id":6660,"name":"*","chunks":[],"async":false}},"83380":{"*":{"id":52093,"name":"*","chunks":[],"async":false}},"8719":{"*":{"id":56801,"name":"*","chunks":[],"async":false}},"24163":{"*":{"id":51240,"name":"*","chunks":[],"async":false}},"49310":{"*":{"id":67168,"name":"*","chunks":[],"async":false}},"51858":{"*":{"id":15798,"name":"*","chunks":[],"async":false}},"52576":{"*":{"id":63741,"name":"*","chunks":[],"async":false}},"78989":{"*":{"id":89478,"name":"*","chunks":[],"async":false}},"9390":{"*":{"id":9758,"name":"*","chunks":[],"async":false}},"48478":{"*":{"id":57253,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/app/layout":[{"path":"static/chunks/8a80e7184ad3a13f.css","inlined":false},{"path":"static/chunks/c056475f5f4424b6.css","inlined":false}],"[project]/web/app/page":[{"path":"static/chunks/8a80e7184ad3a13f.css","inlined":false},{"path":"static/chunks/c056475f5f4424b6.css","inlined":false}]},"entryJSFiles":{"[project]/web/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/f74a6859e1c4d5e3.js","static/chunks/062ae79751df2759.js"],"[project]/web/app/layout":["static/chunks/dd22b5f2beb2cc31.js"],"[project]/web/app/page":["static/chunks/dd22b5f2beb2cc31.js","static/chunks/f74a6859e1c4d5e3.js","static/chunks/cb3513192b63e480.js"]}}
2
+ globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":88287,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":88287,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":74895,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74895,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":83380,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":83380,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":8719,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8719,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":24163,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":24163,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":49310,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":49310,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":51858,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":51858,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":52576,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":52576,"name":"*","chunks":["/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/062ae79751df2759.js"],"async":false},"[project]/web/node_modules/@vercel/analytics/dist/next/index.mjs <module evaluation>":{"id":78989,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/node_modules/@vercel/analytics/dist/next/index.mjs":{"id":78989,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/lib/project-context.tsx <module evaluation>":{"id":9390,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/lib/project-context.tsx":{"id":9390,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js"],"async":false},"[project]/web/app/page.tsx <module evaluation>":{"id":48478,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/22a09ecf6ba35cfd.js"],"async":false},"[project]/web/app/page.tsx":{"id":48478,"name":"*","chunks":["/_next/static/chunks/dd22b5f2beb2cc31.js","/_next/static/chunks/f74a6859e1c4d5e3.js","/_next/static/chunks/22a09ecf6ba35cfd.js"],"async":false}},"ssrModuleMapping":{"88287":{"*":{"id":47492,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"74895":{"*":{"id":14433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"83380":{"*":{"id":24449,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"8719":{"*":{"id":54833,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"24163":{"*":{"id":13588,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"49310":{"*":{"id":13578,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"51858":{"*":{"id":33121,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"52576":{"*":{"id":61905,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ed07bd88._.js","server/chunks/ssr/2374f_next_dist_09351209._.js"],"async":false}},"78989":{"*":{"id":39460,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js"],"async":false}},"9390":{"*":{"id":49908,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js"],"async":false}},"48478":{"*":{"id":40776,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__44903626._.js","server/chunks/ssr/2374f_e6039567._.js","server/chunks/ssr/2374f_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_8910f04c.js","server/chunks/ssr/web_171de0df._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"88287":{"*":{"id":86309,"name":"*","chunks":[],"async":false}},"74895":{"*":{"id":6660,"name":"*","chunks":[],"async":false}},"83380":{"*":{"id":52093,"name":"*","chunks":[],"async":false}},"8719":{"*":{"id":56801,"name":"*","chunks":[],"async":false}},"24163":{"*":{"id":51240,"name":"*","chunks":[],"async":false}},"49310":{"*":{"id":67168,"name":"*","chunks":[],"async":false}},"51858":{"*":{"id":15798,"name":"*","chunks":[],"async":false}},"52576":{"*":{"id":63741,"name":"*","chunks":[],"async":false}},"78989":{"*":{"id":89478,"name":"*","chunks":[],"async":false}},"9390":{"*":{"id":9758,"name":"*","chunks":[],"async":false}},"48478":{"*":{"id":57253,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/app/layout":[{"path":"static/chunks/9857ba86ce4e82d8.css","inlined":false},{"path":"static/chunks/f899547f99ef4b76.css","inlined":false}],"[project]/web/app/page":[{"path":"static/chunks/9857ba86ce4e82d8.css","inlined":false},{"path":"static/chunks/f899547f99ef4b76.css","inlined":false}]},"entryJSFiles":{"[project]/web/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/f74a6859e1c4d5e3.js","static/chunks/062ae79751df2759.js"],"[project]/web/app/layout":["static/chunks/dd22b5f2beb2cc31.js"],"[project]/web/app/page":["static/chunks/dd22b5f2beb2cc31.js","static/chunks/f74a6859e1c4d5e3.js","static/chunks/22a09ecf6ba35cfd.js"]}}
@@ -6,8 +6,11 @@
6
6
  "/api/graph/route": "app/api/graph/route.js",
7
7
  "/api/projects/route": "app/api/projects/route.js",
8
8
  "/api/prompts/route": "app/api/prompts/route.js",
9
+ "/api/rules/route": "app/api/rules/route.js",
9
10
  "/api/scan/route": "app/api/scan/route.js",
10
11
  "/api/settings/route": "app/api/settings/route.js",
11
12
  "/api/status/route": "app/api/status/route.js",
13
+ "/api/subgraph/route": "app/api/subgraph/route.js",
14
+ "/api/trace/route": "app/api/trace/route.js",
12
15
  "/page": "app/page.js"
13
16
  }
@@ -14,6 +14,6 @@ Guidelines:
14
14
 
15
15
  User message: "{{userMessage}}"
16
16
 
17
- Respond with JSON.`,file:"lib/ai/prompts/classifier.ts",line:28,usedBy:["analyzeUserIntent"],variables:["availableCategories","userMessage"],tokenCount:67,type:"user",version:"1.5.0",lastModified:"2 weeks ago",provider:"openai",category:"classification",purpose:"Intent classification prompt"}],o={totalCalls:e.length,totalPrompts:t.length,byProvider:{openai:4,anthropic:1},byModel:{"gpt-4-turbo":2,"gpt-4o-mini":1,"text-embedding-3-small":1,"claude-3-sonnet":1},byCategory:{completion:1,chat:1,embedding:1,function:1,agent:1},templatesCount:3,withToolsCount:1,filesWithAI:5,lastScanned:new Date().toISOString()};return{calls:e,prompts:t,summary:o}}let N=(0,C.promisify)(b.exec),S=new Map;async function _(e){let t=e.nextUrl.searchParams,o="true"===t.get("demo"),a="true"===t.get("refresh"),r=t.get("path");if(o){let e=x();return w.NextResponse.json({success:!0,data:e,source:"mock"})}let n=r||"__default__",s=S.get(n);if(!a&&s&&Date.now()-s.timestamp<6e4)return w.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=await A(r);if(e)return S.set(n,{data:e,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:e,source:"scan"});if(o){let e=x();return w.NextResponse.json({success:!0,data:e,source:"mock"})}return w.NextResponse.json({success:!0,data:{calls:[],prompts:[],summary:{totalCalls:0,totalPrompts:0,byProvider:{},byModel:{},byCategory:{},templatesCount:0,withToolsCount:0}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading prompt data:",e),w.NextResponse.json({success:!1,data:{calls:[],prompts:[],summary:{totalCalls:0,totalPrompts:0,byProvider:{},byModel:{},byCategory:{},templatesCount:0,withToolsCount:0}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function k(e){try{let t=(await e.json()).path,o=await O(t);if(o){let e=P(o);return S.set(t||"__default__",{data:e,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:e,source:"scan"})}return w.NextResponse.json({success:!1,error:"Scan produced no results",source:"scan"},{status:500})}catch(e){return console.error("Error running scan:",e),w.NextResponse.json({success:!1,error:e instanceof Error?e.message:"Scan failed",source:"scan"},{status:500})}}async function A(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");for(let e of[E.join(t,".claude","architecture","prompts.json"),E.join(t,".navgator","prompts.json")])try{let t=await R.readFile(e,"utf-8"),o=JSON.parse(t);return P(o)}catch{continue}let o=E.join(t,".claude","architecture","components");try{let e=(await R.readdir(o)).filter(e=>e.includes("prompt")&&e.endsWith(".json"));if(e.length>0){let t,a={prompts:t=(await Promise.all(e.map(async e=>{let t=await R.readFile(E.join(o,e),"utf-8");return JSON.parse(t)}))).filter(e=>"prompt"===e.type).map(e=>({id:e.component_id,name:e.name,location:{file:e.source?.config_files?.[0]||"unknown",lineStart:1,lineEnd:1,functionName:e.name},messages:[{role:"user",content:String(e.metadata?.userTemplate||e.metadata?.systemPrompt||"")}],rawContent:String(e.metadata?.userTemplate||e.metadata?.systemPrompt||""),isTemplate:!!e.metadata?.variables,variables:(e.metadata?.variables||[]).map(e=>({name:e,pattern:`{{${e}}}`})),provider:e.metadata?.provider?{provider:e.metadata.provider,model:e.metadata.model}:void 0,usedBy:[],purpose:e.metadata?.purpose,tags:e.tags||[],category:e.metadata?.category,confidence:e.source?.confidence||.8,detectionMethod:"heuristic",timestamp:e.timestamp||Date.now()})),summary:{totalPrompts:t.length,byProvider:{},byCategory:{},templatesCount:t.filter(e=>e.isTemplate).length,withToolsCount:0},warnings:[]};return P(a)}}catch{}return null}async function O(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");if(!/^[a-zA-Z0-9._\s\/~-]+$/.test(t))return console.warn("Invalid project path, skipping CLI scan"),null;try{let{stdout:e}=await N(`cd "${t}" && npx navgator prompts --json`,{timeout:3e4});return JSON.parse(e)}catch(e){return console.warn("NavGator CLI not available, trying direct scan..."),console.warn("Direct scan not available in web context. Use CLI: navgator scan --prompts"),null}}e.s(["GET",()=>_,"POST",()=>k],83494);var M=e.i(83494);let j=new t.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/prompts/route",pathname:"/api/prompts",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/prompts/route.ts",nextConfigOutput:"standalone",userland:M}),{workAsyncStorage:I,workUnitAsyncStorage:D,serverHooks:$}=j;function U(){return(0,a.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:D})}async function H(e,t,a){j.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/prompts/route";w=w.replace(/\/index$/,"")||"/";let b=await j.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,params:R,nextConfig:E,parsedUrl:T,isDraftMode:P,prerenderManifest:x,routerServerContext:N,isOnDemandRevalidate:S,revalidateOnlyGenerated:_,resolvedPathname:k,clientReferenceManifest:A,serverActionsManifest:O}=b,M=(0,l.normalizeAppPath)(w),I=!!(x.dynamicRoutes[M]||x.routes[k]),D=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!P){let e=!!x.routes[k],t=x.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await D();throw new y.NoFallbackError}}let $=null;!I||j.isDev||P||($="/index"===($=k)?"/":$);let U=!0===j.isDev||!I,H=I&&!U;O&&A&&(0,s.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:A,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let q=e.method||"GET",B=(0,n.getTracer)(),V=B.getActiveScopeSpan(),G={params:R,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,o,a)=>j.onRequestError(e,t,a,N)},sharedContext:{buildId:C}},F=new c.NodeNextRequest(e),L=new c.NodeNextResponse(t),z=p.NextRequestAdapter.fromNodeNextRequest(F,(0,p.signalFromNodeResponse)(t));try{let s=async e=>j.handle(z,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let o=B.getRootSpanAttributes();if(!o)return;if(o.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${o.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=o.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${w}`)}),i=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var n,l;let c=async({previousCacheEntry:o})=>{try{if(!i&&S&&_&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let l=G.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=G.renderOpts.collectedTags;if(!I)return await (0,m.sendResponse)(F,L,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let o=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:o,expire:a}}}}catch(t){throw(null==o?void 0:o.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},N),t}},p=await j.handleResponse({req:e,nextConfig:E,cacheKey:$,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:_,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!I)return null;if((null==p||null==(n=p.value)?void 0:n.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",S?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),P&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&I||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(p.cacheControl)),await (0,m.sendResponse)(F,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};V?await l(V):await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})}),I)throw t;return await (0,m.sendResponse)(F,L,new Response(null,{status:500})),null}}e.s(["handler",()=>H,"patchFetch",()=>U,"routeModule",()=>j,"serverHooks",()=>$,"workAsyncStorage",()=>I,"workUnitAsyncStorage",()=>D],64472)}];
17
+ Respond with JSON.`,file:"lib/ai/prompts/classifier.ts",line:28,usedBy:["analyzeUserIntent"],variables:["availableCategories","userMessage"],tokenCount:67,type:"user",version:"1.5.0",lastModified:"2 weeks ago",provider:"openai",category:"classification",purpose:"Intent classification prompt"}],o={totalCalls:e.length,totalPrompts:t.length,byProvider:{openai:4,anthropic:1},byModel:{"gpt-4-turbo":2,"gpt-4o-mini":1,"text-embedding-3-small":1,"claude-3-sonnet":1},byCategory:{completion:1,chat:1,embedding:1,function:1,agent:1},templatesCount:3,withToolsCount:1,filesWithAI:5,lastScanned:new Date().toISOString()};return{calls:e,prompts:t,summary:o}}let N=(0,C.promisify)(b.exec),S=new Map;async function _(e){let t=e.nextUrl.searchParams,o="true"===t.get("demo"),a="true"===t.get("refresh"),r=t.get("path");if(o){let e=x();return w.NextResponse.json({success:!0,data:e,source:"mock"})}let n=r||"__default__",s=S.get(n);if(!a&&s&&Date.now()-s.timestamp<6e4)return w.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=await A(r);if(e)return S.set(n,{data:e,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:e,source:"scan"});if(o){let e=x();return w.NextResponse.json({success:!0,data:e,source:"mock"})}return w.NextResponse.json({success:!0,data:{calls:[],prompts:[],summary:{totalCalls:0,totalPrompts:0,byProvider:{},byModel:{},byCategory:{},templatesCount:0,withToolsCount:0}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading prompt data:",e),w.NextResponse.json({success:!1,data:{calls:[],prompts:[],summary:{totalCalls:0,totalPrompts:0,byProvider:{},byModel:{},byCategory:{},templatesCount:0,withToolsCount:0}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function k(e){try{let t=(await e.json()).path,o=await O(t);if(o){let e=P(o);return S.set(t||"__default__",{data:e,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:e,source:"scan"})}return w.NextResponse.json({success:!1,error:"Scan produced no results",source:"scan"},{status:500})}catch(e){return console.error("Error running scan:",e),w.NextResponse.json({success:!1,error:e instanceof Error?e.message:"Scan failed",source:"scan"},{status:500})}}async function A(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");for(let e of[E.join(t,".navgator","architecture","prompts.json"),E.join(t,".navgator","prompts.json")])try{let t=await R.readFile(e,"utf-8"),o=JSON.parse(t);return P(o)}catch{continue}let o=E.join(t,".navgator","architecture","components");try{let e=(await R.readdir(o)).filter(e=>e.includes("prompt")&&e.endsWith(".json"));if(e.length>0){let t,a={prompts:t=(await Promise.all(e.map(async e=>{let t=await R.readFile(E.join(o,e),"utf-8");return JSON.parse(t)}))).filter(e=>"prompt"===e.type).map(e=>({id:e.component_id,name:e.name,location:{file:e.source?.config_files?.[0]||"unknown",lineStart:1,lineEnd:1,functionName:e.name},messages:[{role:"user",content:String(e.metadata?.userTemplate||e.metadata?.systemPrompt||"")}],rawContent:String(e.metadata?.userTemplate||e.metadata?.systemPrompt||""),isTemplate:!!e.metadata?.variables,variables:(e.metadata?.variables||[]).map(e=>({name:e,pattern:`{{${e}}}`})),provider:e.metadata?.provider?{provider:e.metadata.provider,model:e.metadata.model}:void 0,usedBy:[],purpose:e.metadata?.purpose,tags:e.tags||[],category:e.metadata?.category,confidence:e.source?.confidence||.8,detectionMethod:"heuristic",timestamp:e.timestamp||Date.now()})),summary:{totalPrompts:t.length,byProvider:{},byCategory:{},templatesCount:t.filter(e=>e.isTemplate).length,withToolsCount:0},warnings:[]};return P(a)}}catch{}return null}async function O(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");if(!/^[a-zA-Z0-9._\s\/~-]+$/.test(t))return console.warn("Invalid project path, skipping CLI scan"),null;try{let{stdout:e}=await N(`cd "${t}" && npx navgator prompts --json`,{timeout:3e4});return JSON.parse(e)}catch(e){return console.warn("NavGator CLI not available, trying direct scan..."),console.warn("Direct scan not available in web context. Use CLI: navgator scan --prompts"),null}}e.s(["GET",()=>_,"POST",()=>k],83494);var M=e.i(83494);let j=new t.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/prompts/route",pathname:"/api/prompts",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/prompts/route.ts",nextConfigOutput:"standalone",userland:M}),{workAsyncStorage:I,workUnitAsyncStorage:D,serverHooks:$}=j;function U(){return(0,a.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:D})}async function H(e,t,a){j.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/prompts/route";w=w.replace(/\/index$/,"")||"/";let b=await j.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,params:R,nextConfig:E,parsedUrl:T,isDraftMode:P,prerenderManifest:x,routerServerContext:N,isOnDemandRevalidate:S,revalidateOnlyGenerated:_,resolvedPathname:k,clientReferenceManifest:A,serverActionsManifest:O}=b,M=(0,l.normalizeAppPath)(w),I=!!(x.dynamicRoutes[M]||x.routes[k]),D=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!P){let e=!!x.routes[k],t=x.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await D();throw new y.NoFallbackError}}let $=null;!I||j.isDev||P||($="/index"===($=k)?"/":$);let U=!0===j.isDev||!I,H=I&&!U;O&&A&&(0,s.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:A,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let q=e.method||"GET",B=(0,n.getTracer)(),V=B.getActiveScopeSpan(),G={params:R,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,o,a)=>j.onRequestError(e,t,a,N)},sharedContext:{buildId:C}},F=new c.NodeNextRequest(e),L=new c.NodeNextResponse(t),z=p.NextRequestAdapter.fromNodeNextRequest(F,(0,p.signalFromNodeResponse)(t));try{let s=async e=>j.handle(z,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let o=B.getRootSpanAttributes();if(!o)return;if(o.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${o.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=o.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${w}`)}),i=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var n,l;let c=async({previousCacheEntry:o})=>{try{if(!i&&S&&_&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let l=G.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=G.renderOpts.collectedTags;if(!I)return await (0,m.sendResponse)(F,L,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let o=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:o,expire:a}}}}catch(t){throw(null==o?void 0:o.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},N),t}},p=await j.handleResponse({req:e,nextConfig:E,cacheKey:$,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:_,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!I)return null;if((null==p||null==(n=p.value)?void 0:n.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",S?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),P&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&I||d.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(p.cacheControl)),await (0,m.sendResponse)(F,L,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};V?await l(V):await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})}),I)throw t;return await (0,m.sendResponse)(F,L,new Response(null,{status:500})),null}}e.s(["handler",()=>H,"patchFetch",()=>U,"routeModule",()=>j,"serverHooks",()=>$,"workAsyncStorage",()=>I,"workUnitAsyncStorage",()=>D],64472)}];
18
18
 
19
19
  //# sourceMappingURL=2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},70255,e=>{"use strict";var t=e.i(98490),r=e.i(18006),a=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),l=e.i(55822),c=e.i(54068),u=e.i(66843),p=e.i(99385),d=e.i(3050),h=e.i(75293),x=e.i(2144),_=e.i(33599),f=e.i(36497),R=e.i(93695);e.i(79178);var m=e.i(96717),v=e.i(23480),g=e.i(24868),w=e.i(14747);let y=new Map;async function E(e){let t=e.nextUrl.searchParams,r="true"===t.get("refresh"),a=t.get("path"),n=a||"__default__",s=y.get(n);if(!r&&s&&Date.now()-s.timestamp<3e4)return v.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=await b(a);if(e)return y.set(n,{data:e,timestamp:Date.now()}),v.NextResponse.json({success:!0,data:e,source:"scan"});return v.NextResponse.json({success:!0,data:N(a),source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading status data:",e),v.NextResponse.json({success:!1,data:N(a),source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function b(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),r=w.join(t,".claude","architecture","index.json");try{var a;let e,n,s,o,i=await g.readFile(r,"utf-8"),l=JSON.parse(i),c=C(t);return{project_path:t,project_name:c,last_scan:l.last_scan||null,last_scan_formatted:l.last_scan?(a=l.last_scan,e=Date.now()-a,n=Math.floor(e/6e4),s=Math.floor(e/36e5),o=Math.floor(e/864e5),n<1?"just now":n<60?`${n}m ago`:s<24?`${s}h ago`:o<7?`${o}d ago`:new Date(a).toLocaleDateString()):null,stats:{total_components:l.stats?.total_components||0,total_connections:l.stats?.total_connections||0,components_by_type:l.stats?.components_by_type||{},connections_by_type:l.stats?.connections_by_type||{},outdated_count:l.stats?.outdated_count||0,vulnerable_count:l.stats?.vulnerable_count||0}}}catch{return null}}function C(e){try{w.join(e,"package.json");let t=(()=>{let e=Error("Cannot find module 'unknown'");throw e.code="MODULE_NOT_FOUND",e})();if(t.name)return A(t.name)}catch{}let t=e.split(w.sep).filter(Boolean);return A(t[t.length-1]||"project")}function A(e){return e.replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()).trim()}function N(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");return{project_path:t,project_name:C(t),last_scan:null,last_scan_formatted:null,stats:{total_components:0,total_connections:0,components_by_type:{},connections_by_type:{},outdated_count:0,vulnerable_count:0}}}e.s(["GET",()=>E],87505);var j=e.i(87505);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/status/route",pathname:"/api/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/status/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:O,workUnitAsyncStorage:P,serverHooks:k}=T;function q(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:P})}async function S(e,t,a){T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/status/route";v=v.replace(/\/index$/,"")||"/";let g=await T.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:A,routerServerContext:N,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:q}=g,S=(0,l.normalizeAppPath)(v),M=!!(A.dynamicRoutes[S]||A.routes[P]),U=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!C){let e=!!A.routes[P],t=A.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await U();throw new R.NoFallbackError}}let D=null;!M||T.isDev||C||(D="/index"===(D=P)?"/":D);let H=!0===T.isDev||!M,I=M&&!H;q&&k&&(0,o.setReferenceManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:q,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:q})});let $=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),L={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>T.onRequestError(e,t,a,N)},sharedContext:{buildId:w}},B=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let o=async e=>T.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&j&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(B,G,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(s.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:j})},N),t}},u=await T.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,x.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&M||p.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,_.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(B,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};K?await l(K):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:j})}),M)throw t;return await (0,h.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>q,"routeModule",()=>T,"serverHooks",()=>k,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>P],70255)}];
1
+ module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},70255,e=>{"use strict";var t=e.i(98490),r=e.i(18006),a=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),l=e.i(55822),c=e.i(54068),u=e.i(66843),p=e.i(99385),d=e.i(3050),h=e.i(75293),x=e.i(2144),_=e.i(33599),f=e.i(36497),R=e.i(93695);e.i(79178);var m=e.i(96717),v=e.i(23480),g=e.i(24868),w=e.i(14747);let y=new Map;async function E(e){let t=e.nextUrl.searchParams,r="true"===t.get("refresh"),a=t.get("path"),n=a||"__default__",s=y.get(n);if(!r&&s&&Date.now()-s.timestamp<3e4)return v.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=await b(a);if(e)return y.set(n,{data:e,timestamp:Date.now()}),v.NextResponse.json({success:!0,data:e,source:"scan"});return v.NextResponse.json({success:!0,data:N(a),source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading status data:",e),v.NextResponse.json({success:!1,data:N(a),source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function b(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),r=w.join(t,".navgator","architecture","index.json");try{var a;let e,n,s,o,i=await g.readFile(r,"utf-8"),l=JSON.parse(i),c=C(t);return{project_path:t,project_name:c,last_scan:l.last_scan||null,last_scan_formatted:l.last_scan?(a=l.last_scan,e=Date.now()-a,n=Math.floor(e/6e4),s=Math.floor(e/36e5),o=Math.floor(e/864e5),n<1?"just now":n<60?`${n}m ago`:s<24?`${s}h ago`:o<7?`${o}d ago`:new Date(a).toLocaleDateString()):null,stats:{total_components:l.stats?.total_components||0,total_connections:l.stats?.total_connections||0,components_by_type:l.stats?.components_by_type||{},connections_by_type:l.stats?.connections_by_type||{},outdated_count:l.stats?.outdated_count||0,vulnerable_count:l.stats?.vulnerable_count||0}}}catch{return null}}function C(e){try{w.join(e,"package.json");let t=(()=>{let e=Error("Cannot find module 'unknown'");throw e.code="MODULE_NOT_FOUND",e})();if(t.name)return A(t.name)}catch{}let t=e.split(w.sep).filter(Boolean);return A(t[t.length-1]||"project")}function A(e){return e.replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()).trim()}function N(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,"");return{project_path:t,project_name:C(t),last_scan:null,last_scan_formatted:null,stats:{total_components:0,total_connections:0,components_by_type:{},connections_by_type:{},outdated_count:0,vulnerable_count:0}}}e.s(["GET",()=>E],87505);var j=e.i(87505);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/status/route",pathname:"/api/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/status/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:O,workUnitAsyncStorage:P,serverHooks:k}=T;function q(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:P})}async function S(e,t,a){T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/status/route";v=v.replace(/\/index$/,"")||"/";let g=await T.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:A,routerServerContext:N,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:q}=g,S=(0,l.normalizeAppPath)(v),M=!!(A.dynamicRoutes[S]||A.routes[P]),U=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!C){let e=!!A.routes[P],t=A.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await U();throw new R.NoFallbackError}}let D=null;!M||T.isDev||C||(D="/index"===(D=P)?"/":D);let H=!0===T.isDev||!M,I=M&&!H;q&&k&&(0,o.setReferenceManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:q,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:q})});let $=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),L={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>T.onRequestError(e,t,a,N)},sharedContext:{buildId:w}},B=new c.NodeNextRequest(e),G=new c.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let o=async e=>T.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&j&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(B,G,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(s.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:j})},N),t}},u=await T.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,x.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&M||p.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,_.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(B,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};K?await l(K):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:j})}),M)throw t;return await (0,h.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>q,"routeModule",()=>T,"serverHooks",()=>k,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>P],70255)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__006b837d._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},8106,e=>{"use strict";var t=e.i(98490),r=e.i(18006),n=e.i(95912),a=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),l=e.i(55822),d=e.i(54068),p=e.i(66843),c=e.i(99385),u=e.i(3050),h=e.i(75293),f=e.i(2144),g=e.i(33599),x=e.i(36497),m=e.i(93695);e.i(79178);var R=e.i(96717),v=e.i(23480),w=e.i(24868),y=e.i(14747);async function E(e){let t=e.nextUrl.searchParams,r=t.get("focus"),n=Math.min(parseInt(t.get("depth")||"2",10),5),a=t.get("layers"),s=t.get("classification")||void 0,o=Math.min(parseInt(t.get("maxNodes")||"50",10),200),i=t.get("path");try{let e=i||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),t=y.join(e,".navgator","architecture","components"),l=y.join(e,".navgator","architecture","connections"),d=await C(t),p=await C(l);if(0===d.length)return v.NextResponse.json({success:!0,data:{components:[],connections:[],stats:{nodes:0,edges:0}},source:"scan"});let c=r?r.split(",").map(e=>e.trim()).filter(Boolean):[],u=a?a.split(",").map(e=>e.trim()).filter(Boolean):[],h=function(e,t,r){let n=[...e],a=new Set(e.map(S));for(let e of t)for(let t of[_(e),N(e)])if(t&&!a.has(t)&&t.startsWith("FILE:")){let e=t.slice(5),r=e.split("/").pop()||e;n.push({component_id:t,name:r,type:"file",role:{layer:"application"}}),a.add(t)}let s=new Set;if(r.focus.length>0){let e=new Set;for(let t of r.focus){let r=t.toLowerCase(),a=n.find(e=>A(e).toLowerCase()===r)||n.find(e=>A(e).toLowerCase().includes(r));a&&e.add(S(a))}if(0===e.size)return{components:[],connections:[],stats:{nodes:0,edges:0}};let a=new Set(e),o=[...e];for(let e=0;e<r.depth;e++){let e=[];for(let r of o)for(let n of t)_(n)!==r||a.has(N(n))||(a.add(N(n)),e.push(N(n))),N(n)!==r||a.has(_(n))||(a.add(_(n)),e.push(_(n)));o=e}s=a}else s=new Set(n.map(S));if(r.layers.length>0){let e=new Set(r.layers);for(let t of[...s]){let r=n.find(e=>S(e)===t);r&&!e.has(b(r))&&s.delete(t)}}let o=t.filter(e=>s.has(_(e))&&s.has(N(e)));r.classification&&(o=o.filter(e=>{let t=e.semantic;return t?.classification===r.classification}));let i=n.filter(e=>s.has(S(e))).slice(0,r.maxNodes),l=new Set(i.map(S)),d=o.filter(e=>l.has(_(e))&&l.has(N(e))),p=i.map(e=>({id:S(e),n:A(e),t:String(e.type||""),l:b(e)})),c=d.map(e=>({id:String(e.connection_id||""),f:_(e),t:N(e),tp:String(e.type||"")})),u=["graph TD",""];for(let e of p){let t=e.id.replace(/[^a-zA-Z0-9_]/g,"_"),r=e.n.replace(/"/g,"'").slice(0,40);u.push(` ${t}["${r}"]`)}for(let e of(u.push(""),c)){let t=e.f.replace(/[^a-zA-Z0-9_]/g,"_"),r=e.t.replace(/[^a-zA-Z0-9_]/g,"_");u.push(` ${t} --> ${r}`)}return{components:p,connections:c,stats:{nodes:p.length,edges:c.length},mermaid:u.join("\n")}}(d,p,{focus:c,layers:u,classification:s,depth:n,maxNodes:o});return v.NextResponse.json({success:!0,data:h,source:"scan"})}catch(e){return console.error("Error extracting subgraph:",e),v.NextResponse.json({success:!1,error:e instanceof Error?e.message:"Unknown error",source:"scan"})}}async function C(e){try{let t=await w.readdir(e),r=[];for(let n of t.filter(e=>e.endsWith(".json")))try{let t=await w.readFile(y.join(e,n),"utf-8");r.push(JSON.parse(t))}catch{}return r}catch{return[]}}function S(e){return String(e.component_id||"")}function A(e){return String(e.name||"?")}function b(e){return String(e.role?.layer||"")}function _(e){return String(e.from?.component_id||"")}function N(e){return String(e.to?.component_id||"")}e.s(["GET",()=>E],87448);var T=e.i(87448);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/subgraph/route",pathname:"/api/subgraph",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/subgraph/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:j,workUnitAsyncStorage:O,serverHooks:k}=P;function q(){return(0,n.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:O})}async function H(e,t,n){P.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/subgraph/route";v=v.replace(/\/index$/,"")||"/";let w=await P.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:S,isDraftMode:A,prerenderManifest:b,routerServerContext:_,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:k}=w,q=(0,l.normalizeAppPath)(v),H=!!(b.dynamicRoutes[q]||b.routes[j]),I=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,S,!1):t.end("This page could not be found"),null);if(H&&!A){let e=!!b.routes[j],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let M=null;!H||P.isDev||A||(M="/index"===(M=j)?"/":M);let U=!0===P.isDev||!H,D=H&&!U;k&&O&&(0,o.setReferenceManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:k,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:k})});let $=e.method||"GET",F=(0,s.getTracer)(),L=F.getActiveScopeSpan(),K={params:E,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n)=>P.onRequestError(e,t,n,_)},sharedContext:{buildId:y}},B=new d.NodeNextRequest(e),z=new d.NodeNextResponse(t),G=p.NextRequestAdapter.fromNodeNextRequest(B,(0,p.signalFromNodeResponse)(t));try{let o=async e=>P.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!H)return await (0,h.sendResponse)(B,z,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},_),t}},p=await P.handleResponse({req:e,nextConfig:C,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!H)return null;if((null==p||null==(s=p.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&H||c.delete(x.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(B,z,new Response(p.value.body,{headers:c,status:p.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})}),H)throw t;return await (0,h.sendResponse)(B,z,new Response(null,{status:500})),null}}e.s(["handler",()=>H,"patchFetch",()=>q,"routeModule",()=>P,"serverHooks",()=>k,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>O],8106)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0426efe8._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},69710,e=>{"use strict";var t=e.i(98490),r=e.i(18006),n=e.i(95912),s=e.i(72560),o=e.i(76852),a=e.i(10999),i=e.i(84808),c=e.i(55822),l=e.i(54068),p=e.i(66843),d=e.i(99385),u=e.i(3050),m=e.i(75293),f=e.i(2144),h=e.i(33599),g=e.i(36497),y=e.i(93695);e.i(79178);var x=e.i(96717),R=e.i(23480),v=e.i(24868),b=e.i(14747);let w=new Map;async function E(e){let t=e.nextUrl.searchParams,r="true"===t.get("demo"),n="true"===t.get("refresh"),s=t.get("path");if(r)return R.NextResponse.json({success:!0,data:_(),source:"mock"});let o=s||"__default__",a=w.get(o);if(!n&&a&&Date.now()-a.timestamp<6e4)return R.NextResponse.json({success:!0,data:a.data,source:"cache"});try{let e=await S(s);if(e)return w.set(o,{data:e,timestamp:Date.now()}),R.NextResponse.json({success:!0,data:e,source:"scan"});if(r)return R.NextResponse.json({success:!0,data:_(),source:"mock"});return R.NextResponse.json({success:!0,data:{connections:[],summary:{totalConnections:0,byType:{}}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading connection data:",e),R.NextResponse.json({success:!1,data:{connections:[],summary:{totalConnections:0,byType:{}}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function S(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),r=b.join(t,".claude","architecture","connections");try{let e=(await v.readdir(r)).filter(e=>e.endsWith(".json"));if(0===e.length)return null;let t=[];for(let n of e)try{let e=await v.readFile(b.join(r,n),"utf-8"),s=JSON.parse(e);t.push(function(e){let t=e.from,r=e.to,n=e.code_reference;return{id:String(e.connection_id||e.id||""),from:n?.file?String(n.file):String(t?.component_id||""),fromComponent:String(t?.component_id||""),to:String(r?.component_id||""),toComponent:String(r?.component_id||""),type:({"service-call":"service-call","api-calls-db":"api-calls-db","frontend-calls-api":"frontend-calls-api","queue-triggers":"queue-triggers",imports:"imports","prompt-usage":"prompt-usage","prompt-location":"prompt-usage","deploys-to":"deploys-to",observes:"observes","conforms-to":"conforms-to",notifies:"notifies",stores:"stores","navigates-to":"navigates-to","requires-entitlement":"requires-entitlement","target-contains":"target-contains",generates:"generates","uses-package":"uses-package",other:"other"})[String(e.connection_type||"")]||"other",symbol:String(n?.symbol||n?.function_name||""),line:Number(n?.line_start||0),code:String(n?.code_snippet||""),confidence:Number(e.confidence||.8)}}(s))}catch{}if(0===t.length)return null;return{connections:t,summary:C(t)}}catch{return null}}function C(e){let t={};for(let r of e)t[r.type]=(t[r.type]||0)+1;return{totalConnections:e.length,byType:t,lastScanned:new Date().toISOString()}}function _(){let e=[{id:"conn-1",from:"src/api/payments.ts",to:"Stripe",type:"service-call",symbol:"createPaymentIntent",line:45,code:"await stripe.paymentIntents.create({...})"},{id:"conn-2",from:"src/api/subscriptions.ts",to:"Stripe",type:"service-call",symbol:"createSubscription",line:23,code:"await stripe.subscriptions.create({...})"},{id:"conn-3",from:"src/webhooks/stripe.ts",to:"Stripe",type:"service-call",symbol:"handleWebhook",line:12,code:"stripe.webhooks.constructEvent(...)"},{id:"conn-4",from:"src/api/users.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"getUser",line:15,code:"prisma.user.findUnique({...})"},{id:"conn-5",from:"src/api/users.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"createUser",line:32,code:"prisma.user.create({...})"},{id:"conn-6",from:"src/api/posts.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"getPosts",line:8,code:"prisma.post.findMany({...})"},{id:"conn-7",from:"src/components/PaymentForm.tsx",to:"src/api/payments.ts",type:"frontend-calls-api",symbol:"submitPayment",line:28,code:"fetch('/api/payments', {...})"},{id:"conn-8",from:"src/components/Dashboard.tsx",to:"src/api/users.ts",type:"frontend-calls-api",symbol:"loadUserData",line:15,code:"useSWR('/api/users/me')"},{id:"conn-9",from:"src/jobs/emailJob.ts",to:"SendGrid",type:"service-call",symbol:"sendEmail",line:22,code:"sgMail.send({...})"},{id:"conn-10",from:"src/api/ai.ts",to:"OpenAI",type:"service-call",symbol:"generateCompletion",line:18,code:"openai.chat.completions.create({...})"},{id:"conn-11",from:"src/api/chat.ts",to:"Anthropic",type:"service-call",symbol:"sendMessage",line:25,code:"anthropic.messages.create({...})"},{id:"conn-12",from:"src/workers/summarize.ts",to:"SUMMARIZE_PROMPT",type:"prompt-usage",symbol:"processSummarizeJob",line:34,code:"claude.messages.create({ messages: [SYSTEM_PROMPT, ...] })"}];return{connections:e,summary:C(e)}}e.s(["GET",()=>E],17909);var P=e.i(17909);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/connections/route",pathname:"/api/connections",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/connections/route.ts",nextConfigOutput:"standalone",userland:P}),{workAsyncStorage:N,workUnitAsyncStorage:T,serverHooks:k}=A;function j(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:T})}async function O(e,t,n){A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/connections/route";R=R.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,params:w,nextConfig:E,parsedUrl:S,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:j,serverActionsManifest:O}=v,q=(0,c.normalizeAppPath)(R),M=!!(_.dynamicRoutes[q]||_.routes[k]),U=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!C){let e=!!_.routes[k],t=_.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await U();throw new y.NoFallbackError}}let I=null;!M||A.isDev||C||(I="/index"===(I=k)?"/":I);let D=!0===A.isDev||!M,H=M&&!D;O&&j&&(0,a.setReferenceManifestsSingleton)({page:R,clientReferenceManifest:j,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let F=e.method||"GET",$=(0,o.getTracer)(),K=$.getActiveScopeSpan(),L={params:w,prerenderManifest:_,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n)=>A.onRequestError(e,t,n,P)},sharedContext:{buildId:b}},G=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let a=async e=>A.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${R}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!i&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let c=L.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=L.renderOpts.collectedTags;if(!M)return await (0,m.sendResponse)(G,B,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},P),t}},p=await A.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:i});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&M||d.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(p.cacheControl)),await (0,m.sendResponse)(G,B,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};K?await c(K):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},c))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})}),M)throw t;return await (0,m.sendResponse)(G,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>j,"routeModule",()=>A,"serverHooks",()=>k,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>T],69710)}];
1
+ module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},69710,e=>{"use strict";var t=e.i(98490),r=e.i(18006),n=e.i(95912),s=e.i(72560),o=e.i(76852),a=e.i(10999),i=e.i(84808),c=e.i(55822),l=e.i(54068),p=e.i(66843),d=e.i(99385),u=e.i(3050),m=e.i(75293),f=e.i(2144),g=e.i(33599),h=e.i(36497),y=e.i(93695);e.i(79178);var x=e.i(96717),v=e.i(23480),R=e.i(24868),b=e.i(14747);let w=new Map;async function E(e){let t=e.nextUrl.searchParams,r="true"===t.get("demo"),n="true"===t.get("refresh"),s=t.get("path");if(r)return v.NextResponse.json({success:!0,data:_(),source:"mock"});let o=s||"__default__",a=w.get(o);if(!n&&a&&Date.now()-a.timestamp<6e4)return v.NextResponse.json({success:!0,data:a.data,source:"cache"});try{let e=await S(s);if(e)return w.set(o,{data:e,timestamp:Date.now()}),v.NextResponse.json({success:!0,data:e,source:"scan"});if(r)return v.NextResponse.json({success:!0,data:_(),source:"mock"});return v.NextResponse.json({success:!0,data:{connections:[],summary:{totalConnections:0,byType:{}}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading connection data:",e),v.NextResponse.json({success:!1,data:{connections:[],summary:{totalConnections:0,byType:{}}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function S(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),r=b.join(t,".navgator","architecture","connections");try{let e=(await R.readdir(r)).filter(e=>e.endsWith(".json"));if(0===e.length)return null;let t=[];for(let n of e)try{let e=await R.readFile(b.join(r,n),"utf-8"),s=JSON.parse(e);t.push(function(e){let t=e.from,r=e.to,n=e.code_reference,s=e.semantic;return{id:String(e.connection_id||e.id||""),from:n?.file?String(n.file):String(t?.component_id||""),fromComponent:String(t?.component_id||""),to:String(r?.component_id||""),toComponent:String(r?.component_id||""),type:({"service-call":"service-call","api-calls-db":"api-calls-db","frontend-calls-api":"frontend-calls-api","queue-triggers":"queue-triggers",imports:"imports","prompt-usage":"prompt-usage","prompt-location":"prompt-usage","deploys-to":"deploys-to",observes:"observes","conforms-to":"conforms-to",notifies:"notifies",stores:"stores","navigates-to":"navigates-to","requires-entitlement":"requires-entitlement","target-contains":"target-contains",generates:"generates","uses-package":"uses-package",other:"other"})[String(e.connection_type||"")]||"other",symbol:String(n?.symbol||n?.function_name||""),line:Number(n?.line_start||0),code:String(n?.code_snippet||""),confidence:Number(e.confidence||.8),classification:s?.classification?String(s.classification):void 0}}(s))}catch{}if(0===t.length)return null;return{connections:t,summary:C(t)}}catch{return null}}function C(e){let t={};for(let r of e)t[r.type]=(t[r.type]||0)+1;return{totalConnections:e.length,byType:t,lastScanned:new Date().toISOString()}}function _(){let e=[{id:"conn-1",from:"src/api/payments.ts",to:"Stripe",type:"service-call",symbol:"createPaymentIntent",line:45,code:"await stripe.paymentIntents.create({...})"},{id:"conn-2",from:"src/api/subscriptions.ts",to:"Stripe",type:"service-call",symbol:"createSubscription",line:23,code:"await stripe.subscriptions.create({...})"},{id:"conn-3",from:"src/webhooks/stripe.ts",to:"Stripe",type:"service-call",symbol:"handleWebhook",line:12,code:"stripe.webhooks.constructEvent(...)"},{id:"conn-4",from:"src/api/users.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"getUser",line:15,code:"prisma.user.findUnique({...})"},{id:"conn-5",from:"src/api/users.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"createUser",line:32,code:"prisma.user.create({...})"},{id:"conn-6",from:"src/api/posts.ts",to:"PostgreSQL",type:"api-calls-db",symbol:"getPosts",line:8,code:"prisma.post.findMany({...})"},{id:"conn-7",from:"src/components/PaymentForm.tsx",to:"src/api/payments.ts",type:"frontend-calls-api",symbol:"submitPayment",line:28,code:"fetch('/api/payments', {...})"},{id:"conn-8",from:"src/components/Dashboard.tsx",to:"src/api/users.ts",type:"frontend-calls-api",symbol:"loadUserData",line:15,code:"useSWR('/api/users/me')"},{id:"conn-9",from:"src/jobs/emailJob.ts",to:"SendGrid",type:"service-call",symbol:"sendEmail",line:22,code:"sgMail.send({...})"},{id:"conn-10",from:"src/api/ai.ts",to:"OpenAI",type:"service-call",symbol:"generateCompletion",line:18,code:"openai.chat.completions.create({...})"},{id:"conn-11",from:"src/api/chat.ts",to:"Anthropic",type:"service-call",symbol:"sendMessage",line:25,code:"anthropic.messages.create({...})"},{id:"conn-12",from:"src/workers/summarize.ts",to:"SUMMARIZE_PROMPT",type:"prompt-usage",symbol:"processSummarizeJob",line:34,code:"claude.messages.create({ messages: [SYSTEM_PROMPT, ...] })"}];return{connections:e,summary:C(e)}}e.s(["GET",()=>E],17909);var P=e.i(17909);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/connections/route",pathname:"/api/connections",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/connections/route.ts",nextConfigOutput:"standalone",userland:P}),{workAsyncStorage:N,workUnitAsyncStorage:T,serverHooks:k}=A;function j(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:T})}async function O(e,t,n){A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/connections/route";v=v.replace(/\/index$/,"")||"/";let R=await A.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,params:w,nextConfig:E,parsedUrl:S,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:j,serverActionsManifest:O}=R,q=(0,c.normalizeAppPath)(v),M=!!(_.dynamicRoutes[q]||_.routes[k]),U=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!C){let e=!!_.routes[k],t=_.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await U();throw new y.NoFallbackError}}let I=null;!M||A.isDev||C||(I="/index"===(I=k)?"/":I);let D=!0===A.isDev||!M,H=M&&!D;O&&j&&(0,a.setReferenceManifestsSingleton)({page:v,clientReferenceManifest:j,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let F=e.method||"GET",$=(0,o.getTracer)(),K=$.getActiveScopeSpan(),L={params:w,prerenderManifest:_,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n)=>A.onRequestError(e,t,n,P)},sharedContext:{buildId:b}},G=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let a=async e=>A.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${v}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!i&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let c=L.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=L.renderOpts.collectedTags;if(!M)return await (0,m.sendResponse)(G,B,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},P),t}},p=await A.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:i});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(c=p.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&M||d.delete(h.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(p.cacheControl)),await (0,m.sendResponse)(G,B,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};K?await c(K):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},c))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})}),M)throw t;return await (0,m.sendResponse)(G,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>j,"routeModule",()=>A,"serverHooks",()=>k,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>T],69710)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__2e09fec9._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,a)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,a)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},21646,e=>{"use strict";var t=e.i(98490),a=e.i(18006),r=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),c=e.i(55822),p=e.i(54068),l=e.i(66843),d=e.i(99385),u=e.i(3050),m=e.i(75293),y=e.i(2144),g=e.i(33599),v=e.i(36497),h=e.i(93695);e.i(79178);var x=e.i(96717),f=e.i(23480),R=e.i(24868),w=e.i(14747);let E=new Map;async function b(e){let t=e.nextUrl.searchParams,a="true"===t.get("demo"),r="true"===t.get("refresh"),n=t.get("path");if(a)return f.NextResponse.json({success:!0,data:S(),source:"mock"});let s=n||"__default__",o=E.get(s);if(!r&&o&&Date.now()-o.timestamp<6e4)return f.NextResponse.json({success:!0,data:o.data,source:"cache"});try{let e=await C(n);if(e)return E.set(s,{data:e,timestamp:Date.now()}),f.NextResponse.json({success:!0,data:e,source:"scan"});if(a)return f.NextResponse.json({success:!0,data:S(),source:"mock"});return f.NextResponse.json({success:!0,data:{components:[],summary:{totalComponents:0,byType:{},byLayer:{},outdatedCount:0}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading component data:",e),f.NextResponse.json({success:!1,data:{components:[],summary:{totalComponents:0,byType:{},byLayer:{},outdatedCount:0}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function C(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),a=w.join(t,".claude","architecture","components");try{let e=(await R.readdir(a)).filter(e=>e.endsWith(".json"));if(0===e.length)return null;let t=[];for(let r of e)try{let e=await R.readFile(w.join(a,r),"utf-8"),n=JSON.parse(e);t.push(function(e){let t=e.role;return{id:String(e.component_id||e.id||""),name:String(e.name||""),type:({npm:"npm",pip:"pip",spm:"spm",cargo:"cargo",go:"go",gem:"gem",composer:"composer",service:"service",database:"database",queue:"queue",infra:"infra",framework:"framework",prompt:"prompt",llm:"llm"})[String(e.type||"")]||"npm",layer:({frontend:"frontend",backend:"backend",data:"data",shared:"shared",external:"external",hosting:"hosting"})[String(t?.layer||"")]||"backend",version:e.version?String(e.version):void 0,purpose:t?.purpose?String(t.purpose):void 0,connections:Array.isArray(e.connects_to)?e.connects_to.length:0,status:({active:"active",outdated:"outdated",deprecated:"deprecated",removed:"removed"})[String(e.status||"active")]||"active",tags:Array.isArray(e.tags)?e.tags.map(String):[],file:e.source?.config_files?.[0]}}(n))}catch{}if(0===t.length)return null;return{components:t,summary:A(t)}}catch{return null}}function A(e){let t={},a={},r=0;for(let n of e)t[n.type]=(t[n.type]||0)+1,a[n.layer]=(a[n.layer]||0)+1,"outdated"===n.status&&r++;return{totalComponents:e.length,byType:t,byLayer:a,outdatedCount:r,lastScanned:new Date().toISOString()}}function S(){let e=[{id:"comp-1",name:"react",type:"npm",layer:"frontend",version:"18.2.0",connections:12,status:"active",tags:["ui","core"]},{id:"comp-2",name:"next",type:"npm",layer:"frontend",version:"14.0.0",connections:8,status:"active",tags:["framework","ssr"]},{id:"comp-3",name:"stripe",type:"npm",layer:"backend",version:"14.5.0",connections:3,status:"active",tags:["payments"]},{id:"comp-4",name:"bullmq",type:"npm",layer:"backend",version:"4.12.0",connections:5,status:"active",tags:["queue","jobs"]},{id:"comp-5",name:"prisma",type:"npm",layer:"data",version:"5.6.0",connections:6,status:"active",tags:["orm","database"]},{id:"comp-6",name:"zod",type:"npm",layer:"shared",version:"3.22.0",connections:7,status:"active",tags:["validation"]},{id:"comp-7",name:"tailwindcss",type:"npm",layer:"frontend",version:"3.3.5",connections:4,status:"active",tags:["css","styling"]},{id:"comp-8",name:"typescript",type:"npm",layer:"shared",version:"5.2.2",connections:15,status:"active",tags:["language","types"]},{id:"comp-9",name:"Stripe",type:"service",layer:"external",purpose:"Payments",connections:3,status:"active",tags:["payments","api"]},{id:"comp-10",name:"OpenAI",type:"service",layer:"external",purpose:"AI/ML",connections:2,status:"active",tags:["ai","llm"]},{id:"comp-11",name:"Anthropic",type:"service",layer:"external",purpose:"AI/ML",connections:2,status:"active",tags:["ai","llm"]},{id:"comp-12",name:"SendGrid",type:"service",layer:"external",purpose:"Email",connections:1,status:"active",tags:["email"]},{id:"comp-13",name:"PostgreSQL",type:"database",layer:"data",purpose:"Primary DB",connections:8,status:"active",tags:["sql","relational"]},{id:"comp-14",name:"Redis",type:"database",layer:"data",purpose:"Cache",connections:4,status:"active",tags:["cache","memory"]},{id:"comp-15",name:"Vercel",type:"infra",layer:"hosting",purpose:"Deployment",connections:2,status:"active",tags:["hosting","deploy"]}];return{components:e,summary:A(e)}}e.s(["GET",()=>b],57244);var k=e.i(57244);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/components/route",pathname:"/api/components",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/components/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:T,workUnitAsyncStorage:_,serverHooks:P}=N;function j(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:_})}async function q(e,t,r){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/components/route";f=f.replace(/\/index$/,"")||"/";let R=await N.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:A,prerenderManifest:S,routerServerContext:k,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,resolvedPathname:P,clientReferenceManifest:j,serverActionsManifest:q}=R,O=(0,c.normalizeAppPath)(f),I=!!(S.dynamicRoutes[O]||S.routes[P]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!S.routes[P],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new h.NoFallbackError}}let D=null;!I||N.isDev||A||(D="/index"===(D=P)?"/":D);let H=!0===N.isDev||!I,U=I&&!H;q&&j&&(0,o.setReferenceManifestsSingleton)({page:f,clientReferenceManifest:j,serverActionsManifest:q,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:q})});let L=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r)=>N.onRequestError(e,t,r,k)},sharedContext:{buildId:w}},B=new p.NodeNextRequest(e),G=new p.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(B,(0,l.signalFromNodeResponse)(t));try{let o=async e=>N.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${L} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${f}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var s,c;let p=async({previousCacheEntry:a})=>{try{if(!i&&T&&_&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&r.waitUntil&&(r.waitUntil(c),c=void 0);let p=K.renderOpts.collectedTags;if(!I)return await (0,m.sendResponse)(B,G,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,y.toNodeOutgoingHttpHeaders)(s.headers);p&&(t[v.NEXT_CACHE_TAGS_HEADER]=p),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},k),t}},l=await N.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,responseGenerator:p,waitUntil:r.waitUntil,isMinimalMode:i});if(!I)return null;if((null==l||null==(s=l.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(c=l.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,y.fromNodeOutgoingHttpHeaders)(l.value.headers);return i&&I||d.delete(v.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,m.sendResponse)(B,G,new Response(l.value.body,{headers:d,status:l.value.status||200})),null};F?await c(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},c))}catch(t){if(t instanceof h.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})}),I)throw t;return await (0,m.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>j,"routeModule",()=>N,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>_],21646)}];
1
+ module.exports=[24868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,a)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,a)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},21646,e=>{"use strict";var t=e.i(98490),a=e.i(18006),r=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),c=e.i(55822),p=e.i(54068),l=e.i(66843),d=e.i(99385),u=e.i(3050),m=e.i(75293),y=e.i(2144),g=e.i(33599),v=e.i(36497),h=e.i(93695);e.i(79178);var x=e.i(96717),f=e.i(23480),R=e.i(24868),w=e.i(14747);let E=new Map;async function b(e){let t=e.nextUrl.searchParams,a="true"===t.get("demo"),r="true"===t.get("refresh"),n=t.get("path");if(a)return f.NextResponse.json({success:!0,data:S(),source:"mock"});let s=n||"__default__",o=E.get(s);if(!r&&o&&Date.now()-o.timestamp<6e4)return f.NextResponse.json({success:!0,data:o.data,source:"cache"});try{let e=await C(n);if(e)return E.set(s,{data:e,timestamp:Date.now()}),f.NextResponse.json({success:!0,data:e,source:"scan"});if(a)return f.NextResponse.json({success:!0,data:S(),source:"mock"});return f.NextResponse.json({success:!0,data:{components:[],summary:{totalComponents:0,byType:{},byLayer:{},outdatedCount:0}},source:"scan",error:"No scan data found. Run `navgator setup` to scan your project."})}catch(e){return console.error("Error loading component data:",e),f.NextResponse.json({success:!1,data:{components:[],summary:{totalComponents:0,byType:{},byLayer:{},outdatedCount:0}},source:"scan",error:e instanceof Error?e.message:"Unknown error"})}}async function C(e){let t=e||process.env.NAVGATOR_PROJECT_PATH||process.cwd().replace(/\/web$/,""),a=w.join(t,".navgator","architecture","components");try{let e=(await R.readdir(a)).filter(e=>e.endsWith(".json"));if(0===e.length)return null;let t=[];for(let r of e)try{let e=await R.readFile(w.join(a,r),"utf-8"),n=JSON.parse(e);t.push(function(e){let t=e.role;return{id:String(e.component_id||e.id||""),name:String(e.name||""),type:({npm:"npm",pip:"pip",spm:"spm",cargo:"cargo",go:"go",gem:"gem",composer:"composer",service:"service",database:"database",queue:"queue",infra:"infra",framework:"framework",prompt:"prompt",llm:"llm"})[String(e.type||"")]||"npm",layer:({frontend:"frontend",backend:"backend",data:"data",shared:"shared",external:"external",hosting:"hosting"})[String(t?.layer||"")]||"backend",version:e.version?String(e.version):void 0,purpose:t?.purpose?String(t.purpose):void 0,connections:Array.isArray(e.connects_to)?e.connects_to.length:0,status:({active:"active",outdated:"outdated",deprecated:"deprecated",removed:"removed"})[String(e.status||"active")]||"active",tags:Array.isArray(e.tags)?e.tags.map(String):[],file:e.source?.config_files?.[0]}}(n))}catch{}if(0===t.length)return null;return{components:t,summary:A(t)}}catch{return null}}function A(e){let t={},a={},r=0;for(let n of e)t[n.type]=(t[n.type]||0)+1,a[n.layer]=(a[n.layer]||0)+1,"outdated"===n.status&&r++;return{totalComponents:e.length,byType:t,byLayer:a,outdatedCount:r,lastScanned:new Date().toISOString()}}function S(){let e=[{id:"comp-1",name:"react",type:"npm",layer:"frontend",version:"18.2.0",connections:12,status:"active",tags:["ui","core"]},{id:"comp-2",name:"next",type:"npm",layer:"frontend",version:"14.0.0",connections:8,status:"active",tags:["framework","ssr"]},{id:"comp-3",name:"stripe",type:"npm",layer:"backend",version:"14.5.0",connections:3,status:"active",tags:["payments"]},{id:"comp-4",name:"bullmq",type:"npm",layer:"backend",version:"4.12.0",connections:5,status:"active",tags:["queue","jobs"]},{id:"comp-5",name:"prisma",type:"npm",layer:"data",version:"5.6.0",connections:6,status:"active",tags:["orm","database"]},{id:"comp-6",name:"zod",type:"npm",layer:"shared",version:"3.22.0",connections:7,status:"active",tags:["validation"]},{id:"comp-7",name:"tailwindcss",type:"npm",layer:"frontend",version:"3.3.5",connections:4,status:"active",tags:["css","styling"]},{id:"comp-8",name:"typescript",type:"npm",layer:"shared",version:"5.2.2",connections:15,status:"active",tags:["language","types"]},{id:"comp-9",name:"Stripe",type:"service",layer:"external",purpose:"Payments",connections:3,status:"active",tags:["payments","api"]},{id:"comp-10",name:"OpenAI",type:"service",layer:"external",purpose:"AI/ML",connections:2,status:"active",tags:["ai","llm"]},{id:"comp-11",name:"Anthropic",type:"service",layer:"external",purpose:"AI/ML",connections:2,status:"active",tags:["ai","llm"]},{id:"comp-12",name:"SendGrid",type:"service",layer:"external",purpose:"Email",connections:1,status:"active",tags:["email"]},{id:"comp-13",name:"PostgreSQL",type:"database",layer:"data",purpose:"Primary DB",connections:8,status:"active",tags:["sql","relational"]},{id:"comp-14",name:"Redis",type:"database",layer:"data",purpose:"Cache",connections:4,status:"active",tags:["cache","memory"]},{id:"comp-15",name:"Vercel",type:"infra",layer:"hosting",purpose:"Deployment",connections:2,status:"active",tags:["hosting","deploy"]}];return{components:e,summary:A(e)}}e.s(["GET",()=>b],57244);var k=e.i(57244);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/components/route",pathname:"/api/components",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/components/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:T,workUnitAsyncStorage:_,serverHooks:P}=N;function j(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:_})}async function q(e,t,r){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/components/route";f=f.replace(/\/index$/,"")||"/";let R=await N.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:A,prerenderManifest:S,routerServerContext:k,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,resolvedPathname:P,clientReferenceManifest:j,serverActionsManifest:q}=R,O=(0,c.normalizeAppPath)(f),I=!!(S.dynamicRoutes[O]||S.routes[P]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!S.routes[P],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new h.NoFallbackError}}let D=null;!I||N.isDev||A||(D="/index"===(D=P)?"/":D);let H=!0===N.isDev||!I,U=I&&!H;q&&j&&(0,o.setReferenceManifestsSingleton)({page:f,clientReferenceManifest:j,serverActionsManifest:q,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:q})});let L=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r)=>N.onRequestError(e,t,r,k)},sharedContext:{buildId:w}},B=new p.NodeNextRequest(e),G=new p.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(B,(0,l.signalFromNodeResponse)(t));try{let o=async e=>N.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${L} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${f}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),c=async n=>{var s,c;let p=async({previousCacheEntry:a})=>{try{if(!i&&T&&_&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let c=K.renderOpts.pendingWaitUntil;c&&r.waitUntil&&(r.waitUntil(c),c=void 0);let p=K.renderOpts.collectedTags;if(!I)return await (0,m.sendResponse)(B,G,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,y.toNodeOutgoingHttpHeaders)(s.headers);p&&(t[v.NEXT_CACHE_TAGS_HEADER]=p),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},k),t}},l=await N.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,responseGenerator:p,waitUntil:r.waitUntil,isMinimalMode:i});if(!I)return null;if((null==l||null==(s=l.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(c=l.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,y.fromNodeOutgoingHttpHeaders)(l.value.headers);return i&&I||d.delete(v.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,m.sendResponse)(B,G,new Response(l.value.body,{headers:d,status:l.value.status||200})),null};F?await c(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},c))}catch(t){if(t instanceof h.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})}),I)throw t;return await (0,m.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>j,"routeModule",()=>N,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>_],21646)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__38d0390f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},15792,e=>{"use strict";var t=e.i(98490),r=e.i(18006),a=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),l=e.i(55822),d=e.i(54068),u=e.i(66843),c=e.i(99385),p=e.i(3050),h=e.i(75293),f=e.i(2144),g=e.i(33599),x=e.i(36497),m=e.i(93695);e.i(79178);var v=e.i(96717),w=e.i(23480),R=e.i(24868),y=e.i(14747);let E=new Map;async function C(e,t){let r=new Map(t.map(e=>[e.id,e])),a=new Set(["framework","service","database","queue","llm","infra"]),n=new Map;for(let e of t){if(!a.has(e.type))continue;let t=e.layer||"backend";n.has(t)||n.set(t,e.id),"framework"===e.type&&n.set(t,e.id)}try{let t=(await R.readdir(e)).filter(e=>e.startsWith("CONN_")&&e.endsWith(".json")),a=new Map;for(let s of t)try{let t=await R.readFile(y.join(e,s),"utf-8"),o=JSON.parse(t),i=o.to?.component_id;if(!i||!r.has(i))continue;let l=(o.from?.component_id||"").replace("FILE:",""),d=function(e){let t=e.toLowerCase();return t.startsWith("app/")||t.startsWith("pages/")||t.startsWith("src/app/")?"frontend":t.includes("worker")||t.includes("queue")||t.includes("job")?"queue":"backend"}(l),u=n.get(d)||null;if(u&&u!==i&&r.has(u)){let e=o.connection_type||"service-call",t=`${u}->${i}`,r=a.get(t);r?r.count++:a.set(t,{source:u,target:i,type:e,count:1})}}catch{}let s=[];return a.forEach((e,t)=>{s.push({id:`flow-${s.length}`,source:e.source,target:e.target,type:e.type,label:e.count>1?`${e.count} calls`:void 0})}),s}catch{return[]}}async function b(e){let t=e.nextUrl.searchParams,r="true"===t.get("refresh"),a=t.get("path"),n=a||"__default__",s=E.get(n);if(!r&&s&&Date.now()-s.timestamp<6e4)return w.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=a||process.env.NAVGATOR_PROJECT_PATH||process.cwd(),t=y.join(e,".claude","architecture","graph.json"),r=y.join(e,".claude","architecture","components"),s=await R.readFile(t,"utf-8"),o=JSON.parse(s),i=await Promise.all(o.nodes.map(async e=>{try{let t=(await R.readdir(r)).find(t=>t.startsWith(e.id)&&t.endsWith(".json"));if(t){let a=await R.readFile(y.join(r,t),"utf-8"),n=JSON.parse(a);return{...e,version:n.version||void 0,purpose:n.role?.purpose||void 0,configFiles:n.source?.config_files||void 0,tags:n.tags||void 0,connectsTo:n.connects_to||void 0,connectedFrom:n.connected_from||void 0}}}catch{}return e}));!function(e,t){let r=e.filter(e=>"infra"===e.layer),a=new Set(["queue","database","backend"]),n=new Map;for(let e of t)n.has(e.source)||n.set(e.source,new Set),n.get(e.source).add(e.target);let s={railway:{names:["bullmq","redis","pg","postgres"],types:new Set(["database","queue","service"])},vercel:{names:["next","next.js","nextjs"],types:new Set(["framework","service"])},heroku:{names:["redis","pg","postgres"],types:new Set(["database","queue","service"])},render:{names:["redis","pg","postgres"],types:new Set(["database","queue","service"])}};for(let t of r){let r=s[t.name.toLowerCase()];if(r)for(let n of e){if(n.id===t.id||!a.has(n.layer)&&"frontend"!==n.layer||!r.types.has(n.type))continue;let e=n.name.toLowerCase();r.names.some(t=>e===t||e.includes(t))&&(n.hostedBy=t.id,t.hosts||(t.hosts=[]),t.hosts.push(n.id))}}}(i,o.edges);let l=y.join(e,".claude","architecture","connections"),d=await C(l,i),u={nodes:i,edges:[...o.edges,...d],metadata:o.metadata};return E.set(n,{data:u,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:u,source:"scan"})}catch{return w.NextResponse.json({success:!1,error:"No graph data found. Run a scan first.",data:null},{status:200})}}e.s(["GET",()=>b],51819);var N=e.i(51819);let _=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/graph/route",pathname:"/api/graph",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/graph/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:A,workUnitAsyncStorage:j,serverHooks:q}=_;function S(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:j})}async function k(e,t,a){_.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/graph/route";w=w.replace(/\/index$/,"")||"/";let R=await _.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:b,isDraftMode:N,prerenderManifest:A,routerServerContext:j,isOnDemandRevalidate:q,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:T,serverActionsManifest:O}=R,P=(0,l.normalizeAppPath)(w),M=!!(A.dynamicRoutes[P]||A.routes[k]),H=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!N){let e=!!A.routes[k],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new m.NoFallbackError}}let U=null;!M||_.isDev||N||(U="/index"===(U=k)?"/":U);let I=!0===_.isDev||!M,D=M&&!I;O&&T&&(0,o.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let F=e.method||"GET",$=(0,s.getTracer)(),L=$.getActiveScopeSpan(),W={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>_.onRequestError(e,t,a,j)},sharedContext:{buildId:y}},K=new d.NodeNextRequest(e),B=new d.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let o=async e=>_.handle(G,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${w}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&q&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=W.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(K,B,s,W.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})},j),t}},u=await _.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&M||c.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,B,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};L?await l(L):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})}),M)throw t;return await (0,h.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>S,"routeModule",()=>_,"serverHooks",()=>q,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>j],15792)}];
1
+ module.exports=[24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},15792,e=>{"use strict";var t=e.i(98490),r=e.i(18006),a=e.i(95912),n=e.i(72560),s=e.i(76852),o=e.i(10999),i=e.i(84808),l=e.i(55822),d=e.i(54068),u=e.i(66843),c=e.i(99385),p=e.i(3050),h=e.i(75293),f=e.i(2144),g=e.i(33599),x=e.i(36497),v=e.i(93695);e.i(79178);var m=e.i(96717),w=e.i(23480),R=e.i(24868),y=e.i(14747);let E=new Map;async function C(e,t){let r=new Map(t.map(e=>[e.id,e])),a=new Set(["framework","service","database","queue","llm","infra"]),n=new Map;for(let e of t){if(!a.has(e.type))continue;let t=e.layer||"backend";n.has(t)||n.set(t,e.id),"framework"===e.type&&n.set(t,e.id)}try{let t=(await R.readdir(e)).filter(e=>e.startsWith("CONN_")&&e.endsWith(".json")),a=new Map;for(let s of t)try{let t=await R.readFile(y.join(e,s),"utf-8"),o=JSON.parse(t),i=o.to?.component_id;if(!i||!r.has(i))continue;let l=(o.from?.component_id||"").replace("FILE:",""),d=function(e){let t=e.toLowerCase();return t.startsWith("app/")||t.startsWith("pages/")||t.startsWith("src/app/")?"frontend":t.includes("worker")||t.includes("queue")||t.includes("job")?"queue":"backend"}(l),u=n.get(d)||null;if(u&&u!==i&&r.has(u)){let e=o.connection_type||"service-call",t=`${u}->${i}`,r=a.get(t);r?r.count++:a.set(t,{source:u,target:i,type:e,count:1})}}catch{}let s=[];return a.forEach((e,t)=>{s.push({id:`flow-${s.length}`,source:e.source,target:e.target,type:e.type,label:e.count>1?`${e.count} calls`:void 0})}),s}catch{return[]}}async function b(e){let t=e.nextUrl.searchParams,r="true"===t.get("refresh"),a=t.get("path"),n=a||"__default__",s=E.get(n);if(!r&&s&&Date.now()-s.timestamp<6e4)return w.NextResponse.json({success:!0,data:s.data,source:"cache"});try{let e=a||process.env.NAVGATOR_PROJECT_PATH||process.cwd(),t=y.join(e,".navgator","architecture","graph.json"),r=y.join(e,".navgator","architecture","components"),s=await R.readFile(t,"utf-8"),o=JSON.parse(s),i=await Promise.all(o.nodes.map(async e=>{try{let t=(await R.readdir(r)).find(t=>t.startsWith(e.id)&&t.endsWith(".json"));if(t){let a=await R.readFile(y.join(r,t),"utf-8"),n=JSON.parse(a);return{...e,version:n.version||void 0,purpose:n.role?.purpose||void 0,configFiles:n.source?.config_files||void 0,tags:n.tags||void 0,connectsTo:n.connects_to||void 0,connectedFrom:n.connected_from||void 0}}}catch{}return e}));!function(e,t){let r=e.filter(e=>"infra"===e.layer),a=new Set(["queue","database","backend"]),n=new Map;for(let e of t)n.has(e.source)||n.set(e.source,new Set),n.get(e.source).add(e.target);let s={railway:{names:["bullmq","redis","pg","postgres"],types:new Set(["database","queue","service"])},vercel:{names:["next","next.js","nextjs"],types:new Set(["framework","service"])},heroku:{names:["redis","pg","postgres"],types:new Set(["database","queue","service"])},render:{names:["redis","pg","postgres"],types:new Set(["database","queue","service"])}};for(let t of r){let r=s[t.name.toLowerCase()];if(r)for(let n of e){if(n.id===t.id||!a.has(n.layer)&&"frontend"!==n.layer||!r.types.has(n.type))continue;let e=n.name.toLowerCase();r.names.some(t=>e===t||e.includes(t))&&(n.hostedBy=t.id,t.hosts||(t.hosts=[]),t.hosts.push(n.id))}}}(i,o.edges);let l=y.join(e,".navgator","architecture","connections"),d=await C(l,i),u={nodes:i,edges:[...o.edges,...d],metadata:o.metadata};return E.set(n,{data:u,timestamp:Date.now()}),w.NextResponse.json({success:!0,data:u,source:"scan"})}catch{return w.NextResponse.json({success:!1,error:"No graph data found. Run a scan first.",data:null},{status:200})}}e.s(["GET",()=>b],51819);var N=e.i(51819);let _=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/graph/route",pathname:"/api/graph",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/web/app/api/graph/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:A,workUnitAsyncStorage:j,serverHooks:q}=_;function S(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:j})}async function k(e,t,a){_.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/graph/route";w=w.replace(/\/index$/,"")||"/";let R=await _.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:b,isDraftMode:N,prerenderManifest:A,routerServerContext:j,isOnDemandRevalidate:q,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:T,serverActionsManifest:O}=R,P=(0,l.normalizeAppPath)(w),M=!!(A.dynamicRoutes[P]||A.routes[k]),H=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,b,!1):t.end("This page could not be found"),null);if(M&&!N){let e=!!A.routes[k],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new v.NoFallbackError}}let U=null;!M||_.isDev||N||(U="/index"===(U=k)?"/":U);let I=!0===_.isDev||!M,D=M&&!I;O&&T&&(0,o.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:O,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:O})});let F=e.method||"GET",$=(0,s.getTracer)(),L=$.getActiveScopeSpan(),W={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>_.onRequestError(e,t,a,j)},sharedContext:{buildId:y}},K=new d.NodeNextRequest(e),B=new d.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let o=async e=>_.handle(G,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${w}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&q&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=W.renderOpts.collectedTags;if(!M)return await (0,h.sendResponse)(K,B,s,W.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})},j),t}},u=await _.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&M||c.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,B,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};L?await l(L):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:q})}),M)throw t;return await (0,h.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>S,"routeModule",()=>_,"serverHooks",()=>q,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>j],15792)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__594bcf20._.js.map