@tyroneross/navgator 0.2.0 → 0.2.2

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 (362) hide show
  1. package/.claude-plugin/marketplace.json +23 -0
  2. package/.claude-plugin/plugin.json +10 -7
  3. package/CLAUDE.md +72 -0
  4. package/README.md +49 -80
  5. package/dist/cli/index.js +1 -1
  6. package/hooks/hooks.json +5 -5
  7. package/package.json +5 -3
  8. package/scripts/install-plugin.sh +98 -0
  9. package/skills/check/SKILL.md +64 -0
  10. package/skills/connections/SKILL.md +54 -0
  11. package/skills/diagram/SKILL.md +64 -0
  12. package/skills/export/SKILL.md +49 -0
  13. package/skills/impact/SKILL.md +58 -0
  14. package/skills/install/SKILL.md +94 -0
  15. package/skills/scan/SKILL.md +75 -0
  16. package/skills/status/SKILL.md +37 -0
  17. package/skills/ui/SKILL.md +43 -0
  18. package/skills/update/SKILL.md +43 -0
  19. package/web/.next/standalone/web/.next/BUILD_ID +1 -0
  20. package/web/.next/standalone/web/.next/app-path-routes-manifest.json +13 -0
  21. package/web/.next/standalone/web/.next/build-manifest.json +20 -0
  22. package/web/.next/standalone/web/.next/package.json +1 -0
  23. package/web/.next/standalone/web/.next/prerender-manifest.json +88 -0
  24. package/web/.next/standalone/web/.next/required-server-files.json +317 -0
  25. package/web/.next/standalone/web/.next/routes-manifest.json +110 -0
  26. package/web/.next/standalone/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  27. package/web/.next/standalone/web/.next/server/app/_global-error/page/build-manifest.json +17 -0
  28. package/web/.next/standalone/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  29. package/web/.next/standalone/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  30. package/web/.next/standalone/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  31. package/web/.next/standalone/web/.next/server/app/_global-error/page.js +10 -0
  32. package/web/.next/standalone/web/.next/server/app/_global-error/page.js.map +5 -0
  33. package/web/.next/standalone/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  34. package/web/.next/standalone/web/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  35. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -0
  36. package/web/.next/standalone/web/.next/server/app/_global-error.meta +15 -0
  37. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +12 -0
  38. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  39. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  40. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +7 -0
  41. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  42. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  43. package/web/.next/standalone/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  44. package/web/.next/standalone/web/.next/server/app/_not-found/page/build-manifest.json +17 -0
  45. package/web/.next/standalone/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  46. package/web/.next/standalone/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  47. package/web/.next/standalone/web/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  48. package/web/.next/standalone/web/.next/server/app/_not-found/page.js +13 -0
  49. package/web/.next/standalone/web/.next/server/app/_not-found/page.js.map +5 -0
  50. package/web/.next/standalone/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  51. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  52. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -0
  53. package/web/.next/standalone/web/.next/server/app/_not-found.meta +16 -0
  54. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +17 -0
  55. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +17 -0
  56. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +8 -0
  57. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +8 -0
  58. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  59. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  60. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  61. package/web/.next/standalone/web/.next/server/app/api/components/route/app-paths-manifest.json +3 -0
  62. package/web/.next/standalone/web/.next/server/app/api/components/route/build-manifest.json +11 -0
  63. package/web/.next/standalone/web/.next/server/app/api/components/route/server-reference-manifest.json +4 -0
  64. package/web/.next/standalone/web/.next/server/app/api/components/route.js +6 -0
  65. package/web/.next/standalone/web/.next/server/app/api/components/route.js.map +5 -0
  66. package/web/.next/standalone/web/.next/server/app/api/components/route.js.nft.json +1 -0
  67. package/web/.next/standalone/web/.next/server/app/api/components/route_client-reference-manifest.js +2 -0
  68. package/web/.next/standalone/web/.next/server/app/api/connections/route/app-paths-manifest.json +3 -0
  69. package/web/.next/standalone/web/.next/server/app/api/connections/route/build-manifest.json +11 -0
  70. package/web/.next/standalone/web/.next/server/app/api/connections/route/server-reference-manifest.json +4 -0
  71. package/web/.next/standalone/web/.next/server/app/api/connections/route.js +6 -0
  72. package/web/.next/standalone/web/.next/server/app/api/connections/route.js.map +5 -0
  73. package/web/.next/standalone/web/.next/server/app/api/connections/route.js.nft.json +1 -0
  74. package/web/.next/standalone/web/.next/server/app/api/connections/route_client-reference-manifest.js +2 -0
  75. package/web/.next/standalone/web/.next/server/app/api/graph/route/app-paths-manifest.json +3 -0
  76. package/web/.next/standalone/web/.next/server/app/api/graph/route/build-manifest.json +11 -0
  77. package/web/.next/standalone/web/.next/server/app/api/graph/route/server-reference-manifest.json +4 -0
  78. package/web/.next/standalone/web/.next/server/app/api/graph/route.js +6 -0
  79. package/web/.next/standalone/web/.next/server/app/api/graph/route.js.map +5 -0
  80. package/web/.next/standalone/web/.next/server/app/api/graph/route.js.nft.json +1 -0
  81. package/web/.next/standalone/web/.next/server/app/api/graph/route_client-reference-manifest.js +2 -0
  82. package/web/.next/standalone/web/.next/server/app/api/projects/route/app-paths-manifest.json +3 -0
  83. package/web/.next/standalone/web/.next/server/app/api/projects/route/build-manifest.json +11 -0
  84. package/web/.next/standalone/web/.next/server/app/api/projects/route/server-reference-manifest.json +4 -0
  85. package/web/.next/standalone/web/.next/server/app/api/projects/route.js +6 -0
  86. package/web/.next/standalone/web/.next/server/app/api/projects/route.js.map +5 -0
  87. package/web/.next/standalone/web/.next/server/app/api/projects/route.js.nft.json +1 -0
  88. package/web/.next/standalone/web/.next/server/app/api/projects/route_client-reference-manifest.js +2 -0
  89. package/web/.next/standalone/web/.next/server/app/api/prompts/route/app-paths-manifest.json +3 -0
  90. package/web/.next/standalone/web/.next/server/app/api/prompts/route/build-manifest.json +11 -0
  91. package/web/.next/standalone/web/.next/server/app/api/prompts/route/server-reference-manifest.json +4 -0
  92. package/web/.next/standalone/web/.next/server/app/api/prompts/route.js +7 -0
  93. package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.map +5 -0
  94. package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.nft.json +1 -0
  95. package/web/.next/standalone/web/.next/server/app/api/prompts/route_client-reference-manifest.js +2 -0
  96. package/web/.next/standalone/web/.next/server/app/api/scan/route/app-paths-manifest.json +3 -0
  97. package/web/.next/standalone/web/.next/server/app/api/scan/route/build-manifest.json +11 -0
  98. package/web/.next/standalone/web/.next/server/app/api/scan/route/server-reference-manifest.json +4 -0
  99. package/web/.next/standalone/web/.next/server/app/api/scan/route.js +6 -0
  100. package/web/.next/standalone/web/.next/server/app/api/scan/route.js.map +5 -0
  101. package/web/.next/standalone/web/.next/server/app/api/scan/route.js.nft.json +1 -0
  102. package/web/.next/standalone/web/.next/server/app/api/scan/route_client-reference-manifest.js +2 -0
  103. package/web/.next/standalone/web/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  104. package/web/.next/standalone/web/.next/server/app/api/settings/route/build-manifest.json +11 -0
  105. package/web/.next/standalone/web/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  106. package/web/.next/standalone/web/.next/server/app/api/settings/route.js +6 -0
  107. package/web/.next/standalone/web/.next/server/app/api/settings/route.js.map +5 -0
  108. package/web/.next/standalone/web/.next/server/app/api/settings/route.js.nft.json +1 -0
  109. package/web/.next/standalone/web/.next/server/app/api/settings/route_client-reference-manifest.js +2 -0
  110. package/web/.next/standalone/web/.next/server/app/api/status/route/app-paths-manifest.json +3 -0
  111. package/web/.next/standalone/web/.next/server/app/api/status/route/build-manifest.json +11 -0
  112. package/web/.next/standalone/web/.next/server/app/api/status/route/server-reference-manifest.json +4 -0
  113. package/web/.next/standalone/web/.next/server/app/api/status/route.js +6 -0
  114. package/web/.next/standalone/web/.next/server/app/api/status/route.js.map +5 -0
  115. package/web/.next/standalone/web/.next/server/app/api/status/route.js.nft.json +1 -0
  116. package/web/.next/standalone/web/.next/server/app/api/status/route_client-reference-manifest.js +2 -0
  117. package/web/.next/standalone/web/.next/server/app/index.html +1 -0
  118. package/web/.next/standalone/web/.next/server/app/index.meta +14 -0
  119. package/web/.next/standalone/web/.next/server/app/index.rsc +23 -0
  120. package/web/.next/standalone/web/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  121. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +23 -0
  122. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +8 -0
  123. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +8 -0
  124. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +5 -0
  125. package/web/.next/standalone/web/.next/server/app/page/app-paths-manifest.json +3 -0
  126. package/web/.next/standalone/web/.next/server/app/page/build-manifest.json +17 -0
  127. package/web/.next/standalone/web/.next/server/app/page/next-font-manifest.json +11 -0
  128. package/web/.next/standalone/web/.next/server/app/page/react-loadable-manifest.json +1 -0
  129. package/web/.next/standalone/web/.next/server/app/page/server-reference-manifest.json +4 -0
  130. package/web/.next/standalone/web/.next/server/app/page.js +15 -0
  131. package/web/.next/standalone/web/.next/server/app/page.js.map +5 -0
  132. package/web/.next/standalone/web/.next/server/app/page.js.nft.json +1 -0
  133. package/web/.next/standalone/web/.next/server/app/page_client-reference-manifest.js +2 -0
  134. package/web/.next/standalone/web/.next/server/app-paths-manifest.json +13 -0
  135. package/web/.next/standalone/web/.next/server/chunks/2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js +19 -0
  136. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__006b837d._.js +3 -0
  137. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__1ab91221._.js +3 -0
  138. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__2e09fec9._.js +3 -0
  139. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__38d0390f._.js +3 -0
  140. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__539ef30d._.js +3 -0
  141. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__594bcf20._.js +3 -0
  142. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__b888fadf._.js +3 -0
  143. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__f3450c22._.js +21 -0
  144. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__fa2ec862._.js +3 -0
  145. package/web/.next/standalone/web/.next/server/chunks/[turbopack]_runtime.js +770 -0
  146. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_e6039567._.js +6 -0
  147. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_09351209._.js +6 -0
  148. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_222be7ae._.js +6 -0
  149. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_2346e1b3._.js +3 -0
  150. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_cec86455._.js +4 -0
  151. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_client_components_9c5d1a14._.js +3 -0
  152. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_client_components_builtin_forbidden_8eae0c85.js +3 -0
  153. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_client_components_builtin_global-error_81159d60.js +3 -0
  154. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_client_components_builtin_unauthorized_7d34a31c.js +3 -0
  155. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_e03afa0e._.js +3 -0
  156. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_esm_build_templates_app-page_2c8d71b9.js +4 -0
  157. package/web/.next/standalone/web/.next/server/chunks/ssr/2374f_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_8910f04c.js +3 -0
  158. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__1a0663e6._.js +3 -0
  159. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__4306eafc._.js +3 -0
  160. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__44903626._.js +3 -0
  161. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__60278e3f._.js +3 -0
  162. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__61942f24._.js +4 -0
  163. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__8c45c3c9._.js +3 -0
  164. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__9a2f110d._.js +3 -0
  165. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__ed07bd88._.js +3 -0
  166. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__f2db61af._.js +3 -0
  167. package/web/.next/standalone/web/.next/server/chunks/ssr/[turbopack]_runtime.js +770 -0
  168. package/web/.next/standalone/web/.next/server/chunks/ssr/web_0103e631._.js +4 -0
  169. package/web/.next/standalone/web/.next/server/chunks/ssr/web_171de0df._.js +14 -0
  170. package/web/.next/standalone/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_2a1e94d4.js +3 -0
  171. package/web/.next/standalone/web/.next/server/chunks/ssr/web__next-internal_server_app__not-found_page_actions_9eaa9845.js +3 -0
  172. package/web/.next/standalone/web/.next/server/chunks/ssr/web__next-internal_server_app_page_actions_ec26bf28.js +3 -0
  173. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_components_route_actions_c88bf2a6.js +3 -0
  174. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_connections_route_actions_b1d5e95a.js +3 -0
  175. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_graph_route_actions_e2dd052c.js +3 -0
  176. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_projects_route_actions_3f671cbb.js +3 -0
  177. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_prompts_route_actions_85b56166.js +3 -0
  178. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_scan_route_actions_861cde8d.js +3 -0
  179. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_settings_route_actions_e19026ae.js +3 -0
  180. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_status_route_actions_8b8c6c89.js +3 -0
  181. package/web/.next/standalone/web/.next/server/functions-config-manifest.json +4 -0
  182. package/web/.next/standalone/web/.next/server/middleware-build-manifest.js +21 -0
  183. package/web/.next/standalone/web/.next/server/middleware-manifest.json +6 -0
  184. package/web/.next/standalone/web/.next/server/next-font-manifest.js +1 -0
  185. package/web/.next/standalone/web/.next/server/next-font-manifest.json +15 -0
  186. package/web/.next/standalone/web/.next/server/pages/404.html +1 -0
  187. package/web/.next/standalone/web/.next/server/pages/500.html +2 -0
  188. package/web/.next/standalone/web/.next/server/pages-manifest.json +4 -0
  189. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -0
  190. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +5 -0
  191. package/web/.next/standalone/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_buildManifest.js +11 -0
  192. package/web/.next/standalone/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_clientMiddlewareManifest.json +1 -0
  193. package/web/.next/standalone/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_ssgManifest.js +1 -0
  194. package/web/.next/standalone/web/.next/static/chunks/062ae79751df2759.js +1 -0
  195. package/web/.next/standalone/web/.next/static/chunks/159889e17b2cf1f8.js +2 -0
  196. package/web/.next/standalone/web/.next/static/chunks/458d6f37339fc069.js +1 -0
  197. package/web/.next/standalone/web/.next/static/chunks/6d3d39425a878d7f.js +1 -0
  198. package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +2 -0
  199. package/web/.next/standalone/web/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  200. package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +1 -0
  201. package/web/.next/standalone/web/.next/static/chunks/c57fee8cce8d7cb9.js +1 -0
  202. package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +12 -0
  203. package/web/.next/standalone/web/.next/static/chunks/dd22b5f2beb2cc31.js +1 -0
  204. package/web/.next/standalone/web/.next/static/chunks/e0affeef0ddb9a97.js +4 -0
  205. package/web/.next/standalone/web/.next/static/chunks/f74a6859e1c4d5e3.js +1 -0
  206. package/web/.next/standalone/web/.next/static/chunks/turbopack-c0c89f9e6f0a38c4.js +3 -0
  207. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  208. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  209. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  210. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  211. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  212. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  213. package/web/.next/standalone/web/app/api/components/route.ts +252 -0
  214. package/web/.next/standalone/web/app/api/connections/route.ts +319 -0
  215. package/web/.next/standalone/web/app/api/graph/route.ts +235 -0
  216. package/web/.next/standalone/web/app/api/projects/route.ts +221 -0
  217. package/web/.next/standalone/web/app/api/prompts/route.ts +328 -0
  218. package/web/.next/standalone/web/app/api/scan/route.ts +108 -0
  219. package/web/.next/standalone/web/app/api/settings/route.ts +198 -0
  220. package/web/.next/standalone/web/app/api/status/route.ts +169 -0
  221. package/web/.next/standalone/web/app/globals.css +99 -0
  222. package/web/.next/standalone/web/app/layout.tsx +49 -0
  223. package/web/.next/standalone/web/app/page.tsx +94 -0
  224. package/web/.next/standalone/web/components/components-panel.tsx +240 -0
  225. package/web/.next/standalone/web/components/connections-panel.tsx +220 -0
  226. package/web/.next/standalone/web/components/diagram-view.tsx +735 -0
  227. package/web/.next/standalone/web/components/header.tsx +225 -0
  228. package/web/.next/standalone/web/components/impact-analysis.tsx +358 -0
  229. package/web/.next/standalone/web/components/llm-tracking-panel.tsx +1483 -0
  230. package/web/.next/standalone/web/components/settings-panel.tsx +671 -0
  231. package/web/.next/standalone/web/components/sidebar.tsx +74 -0
  232. package/web/.next/standalone/web/components/status-overview.tsx +326 -0
  233. package/web/.next/standalone/web/components/theme-provider.tsx +11 -0
  234. package/web/.next/standalone/web/components/ui/accordion.tsx +66 -0
  235. package/web/.next/standalone/web/components/ui/alert-dialog.tsx +157 -0
  236. package/web/.next/standalone/web/components/ui/alert.tsx +66 -0
  237. package/web/.next/standalone/web/components/ui/aspect-ratio.tsx +11 -0
  238. package/web/.next/standalone/web/components/ui/avatar.tsx +53 -0
  239. package/web/.next/standalone/web/components/ui/badge.tsx +46 -0
  240. package/web/.next/standalone/web/components/ui/breadcrumb.tsx +109 -0
  241. package/web/.next/standalone/web/components/ui/button-group.tsx +83 -0
  242. package/web/.next/standalone/web/components/ui/button.tsx +60 -0
  243. package/web/.next/standalone/web/components/ui/calendar.tsx +213 -0
  244. package/web/.next/standalone/web/components/ui/card.tsx +92 -0
  245. package/web/.next/standalone/web/components/ui/carousel.tsx +241 -0
  246. package/web/.next/standalone/web/components/ui/chart.tsx +353 -0
  247. package/web/.next/standalone/web/components/ui/checkbox.tsx +32 -0
  248. package/web/.next/standalone/web/components/ui/collapsible.tsx +33 -0
  249. package/web/.next/standalone/web/components/ui/command.tsx +184 -0
  250. package/web/.next/standalone/web/components/ui/context-menu.tsx +252 -0
  251. package/web/.next/standalone/web/components/ui/dialog.tsx +143 -0
  252. package/web/.next/standalone/web/components/ui/drawer.tsx +135 -0
  253. package/web/.next/standalone/web/components/ui/dropdown-menu.tsx +257 -0
  254. package/web/.next/standalone/web/components/ui/empty.tsx +104 -0
  255. package/web/.next/standalone/web/components/ui/field.tsx +244 -0
  256. package/web/.next/standalone/web/components/ui/form.tsx +167 -0
  257. package/web/.next/standalone/web/components/ui/hover-card.tsx +44 -0
  258. package/web/.next/standalone/web/components/ui/input-group.tsx +169 -0
  259. package/web/.next/standalone/web/components/ui/input-otp.tsx +77 -0
  260. package/web/.next/standalone/web/components/ui/input.tsx +21 -0
  261. package/web/.next/standalone/web/components/ui/item.tsx +193 -0
  262. package/web/.next/standalone/web/components/ui/kbd.tsx +28 -0
  263. package/web/.next/standalone/web/components/ui/label.tsx +24 -0
  264. package/web/.next/standalone/web/components/ui/menubar.tsx +276 -0
  265. package/web/.next/standalone/web/components/ui/navigation-menu.tsx +166 -0
  266. package/web/.next/standalone/web/components/ui/pagination.tsx +127 -0
  267. package/web/.next/standalone/web/components/ui/popover.tsx +48 -0
  268. package/web/.next/standalone/web/components/ui/progress.tsx +31 -0
  269. package/web/.next/standalone/web/components/ui/radio-group.tsx +45 -0
  270. package/web/.next/standalone/web/components/ui/resizable.tsx +56 -0
  271. package/web/.next/standalone/web/components/ui/scroll-area.tsx +58 -0
  272. package/web/.next/standalone/web/components/ui/select.tsx +185 -0
  273. package/web/.next/standalone/web/components/ui/separator.tsx +28 -0
  274. package/web/.next/standalone/web/components/ui/sheet.tsx +139 -0
  275. package/web/.next/standalone/web/components/ui/sidebar.tsx +726 -0
  276. package/web/.next/standalone/web/components/ui/skeleton.tsx +13 -0
  277. package/web/.next/standalone/web/components/ui/slider.tsx +63 -0
  278. package/web/.next/standalone/web/components/ui/sonner.tsx +25 -0
  279. package/web/.next/standalone/web/components/ui/spinner.tsx +16 -0
  280. package/web/.next/standalone/web/components/ui/switch.tsx +31 -0
  281. package/web/.next/standalone/web/components/ui/table.tsx +116 -0
  282. package/web/.next/standalone/web/components/ui/tabs.tsx +66 -0
  283. package/web/.next/standalone/web/components/ui/textarea.tsx +18 -0
  284. package/web/.next/standalone/web/components/ui/toast.tsx +129 -0
  285. package/web/.next/standalone/web/components/ui/toaster.tsx +35 -0
  286. package/web/.next/standalone/web/components/ui/toggle-group.tsx +73 -0
  287. package/web/.next/standalone/web/components/ui/toggle.tsx +47 -0
  288. package/web/.next/standalone/web/components/ui/tooltip.tsx +61 -0
  289. package/web/.next/standalone/web/components/ui/use-mobile.tsx +19 -0
  290. package/web/.next/standalone/web/components/ui/use-toast.ts +191 -0
  291. package/web/.next/standalone/web/components.json +21 -0
  292. package/web/.next/standalone/web/hooks/use-mobile.ts +19 -0
  293. package/web/.next/standalone/web/hooks/use-toast.ts +191 -0
  294. package/web/.next/standalone/web/lib/hooks/index.ts +8 -0
  295. package/web/.next/standalone/web/lib/hooks/use-components.ts +83 -0
  296. package/web/.next/standalone/web/lib/hooks/use-connections.ts +83 -0
  297. package/web/.next/standalone/web/lib/hooks/use-projects.ts +116 -0
  298. package/web/.next/standalone/web/lib/hooks/use-prompts.ts +122 -0
  299. package/web/.next/standalone/web/lib/hooks/use-settings.ts +135 -0
  300. package/web/.next/standalone/web/lib/hooks/use-status.ts +80 -0
  301. package/web/.next/standalone/web/lib/project-context.tsx +46 -0
  302. package/web/.next/standalone/web/lib/transform.ts +625 -0
  303. package/web/.next/standalone/web/lib/types.ts +198 -0
  304. package/web/.next/standalone/web/lib/utils.ts +6 -0
  305. package/web/.next/standalone/web/next.config.mjs +12 -0
  306. package/web/.next/standalone/web/package-lock.json +3987 -0
  307. package/web/.next/standalone/web/package.json +73 -0
  308. package/web/.next/standalone/web/pnpm-lock.yaml +5 -0
  309. package/web/.next/standalone/web/postcss.config.mjs +8 -0
  310. package/web/.next/standalone/web/public/apple-icon.png +0 -0
  311. package/web/.next/standalone/web/public/icon-dark-32x32.png +0 -0
  312. package/web/.next/standalone/web/public/icon-light-32x32.png +0 -0
  313. package/web/.next/standalone/web/public/icon.svg +26 -0
  314. package/web/.next/standalone/web/public/navgator-logo.png +0 -0
  315. package/web/.next/standalone/web/public/placeholder-logo.png +0 -0
  316. package/web/.next/standalone/web/public/placeholder-logo.svg +1 -0
  317. package/web/.next/standalone/web/public/placeholder-user.jpg +0 -0
  318. package/web/.next/standalone/web/public/placeholder.jpg +0 -0
  319. package/web/.next/standalone/web/public/placeholder.svg +1 -0
  320. package/web/.next/standalone/web/public/public/apple-icon.png +0 -0
  321. package/web/.next/standalone/web/public/public/icon-dark-32x32.png +0 -0
  322. package/web/.next/standalone/web/public/public/icon-light-32x32.png +0 -0
  323. package/web/.next/standalone/web/public/public/icon.svg +26 -0
  324. package/web/.next/standalone/web/public/public/navgator-logo.png +0 -0
  325. package/web/.next/standalone/web/public/public/placeholder-logo.png +0 -0
  326. package/web/.next/standalone/web/public/public/placeholder-logo.svg +1 -0
  327. package/web/.next/standalone/web/public/public/placeholder-user.jpg +0 -0
  328. package/web/.next/standalone/web/public/public/placeholder.jpg +0 -0
  329. package/web/.next/standalone/web/public/public/placeholder.svg +1 -0
  330. package/web/.next/standalone/web/server.js +38 -0
  331. package/web/.next/standalone/web/styles/globals.css +125 -0
  332. package/web/.next/standalone/web/tsconfig.json +41 -0
  333. package/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_buildManifest.js +11 -0
  334. package/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_clientMiddlewareManifest.json +1 -0
  335. package/web/.next/static/P-ZMQO7_Wnj487ks3guqa/_ssgManifest.js +1 -0
  336. package/web/.next/static/chunks/062ae79751df2759.js +1 -0
  337. package/web/.next/static/chunks/159889e17b2cf1f8.js +2 -0
  338. package/web/.next/static/chunks/458d6f37339fc069.js +1 -0
  339. package/web/.next/static/chunks/6d3d39425a878d7f.js +1 -0
  340. package/web/.next/static/chunks/8a80e7184ad3a13f.css +2 -0
  341. package/web/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  342. package/web/.next/static/chunks/c056475f5f4424b6.css +1 -0
  343. package/web/.next/static/chunks/c57fee8cce8d7cb9.js +1 -0
  344. package/web/.next/static/chunks/cb3513192b63e480.js +12 -0
  345. package/web/.next/static/chunks/dd22b5f2beb2cc31.js +1 -0
  346. package/web/.next/static/chunks/e0affeef0ddb9a97.js +4 -0
  347. package/web/.next/static/chunks/f74a6859e1c4d5e3.js +1 -0
  348. package/web/.next/static/chunks/turbopack-c0c89f9e6f0a38c4.js +3 -0
  349. package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  350. package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  351. package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  352. package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  353. package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  354. package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  355. package/commands/nav-check.md +0 -64
  356. package/commands/nav-connections.md +0 -58
  357. package/commands/nav-diagram.md +0 -106
  358. package/commands/nav-export.md +0 -71
  359. package/commands/nav-impact.md +0 -58
  360. package/commands/nav-scan.md +0 -46
  361. package/commands/nav-status.md +0 -44
  362. package/skills/architecture-awareness/SKILL.md +0 -141
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9390,e=>{"use strict";var t=e.i(14294),r=e.i(30878);let n=(0,r.createContext)({activeProjectPath:null,setActiveProjectPath:()=>{}}),a="navgator-active-project";function o({children:e}){let[o,c]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=localStorage.getItem(a);e&&c(e)},[]),(0,t.jsx)(n.Provider,{value:{activeProjectPath:o,setActiveProjectPath:e=>{c(e),e?localStorage.setItem(a,e):localStorage.removeItem(a)}},children:e})}function c(){return(0,r.useContext)(n)}e.s(["ProjectProvider",()=>o,"useActiveProject",()=>c])},53913,(e,t,r)=>{t.exports=e.r(87603)},78989,e=>{"use strict";var t=e.i(30878),r=e.i(53913);function n(){return"undefined"!=typeof window}function a(){return"production"}function o(){return"development"===((n()?window.vam:a())||"production")}function c(e){return RegExp(`/${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?=[/?#]|$)`)}function i(e){return(0,t.useEffect)(()=>{!function(e={debug:!0}){var t;if(!n())return;!function(e="auto"){if("auto"===e){window.vam=a();return}window.vam=e}(e.mode),window.va||(window.va=function(...e){(window.vaq=window.vaq||[]).push(e)}),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));let r=e.scriptSrc||(o()?"https://va.vercel-scripts.com/v1/script.debug.js":"/_vercel/insights/script.js");if(document.head.querySelector(`script[src*="${r}"]`))return;let c=document.createElement("script");c.src=r,c.defer=!0,c.dataset.sdkn="@vercel/analytics"+(e.framework?`/${e.framework}`:""),c.dataset.sdkv="1.3.1",e.disableAutoTrack&&(c.dataset.disableAutoTrack="1"),e.endpoint&&(c.dataset.endpoint=e.endpoint),e.dsn&&(c.dataset.dsn=e.dsn),c.onerror=()=>{let e=o()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${e}`)},o()&&!1===e.debug&&(c.dataset.debug="false"),document.head.appendChild(c)}({framework:e.framework||"react",...void 0!==e.route&&{disableAutoTrack:!0},...e})},[]),(0,t.useEffect)(()=>{e.route&&e.path&&function({route:e,path:t}){var r;null==(r=window.va)||r.call(window,"pageview",{route:e,path:t})}({route:e.route,path:e.path})},[e.route,e.path]),null}function u(e){let n,a,o,u,{route:l,path:s}=(n=(0,r.useParams)(),a=(0,r.useSearchParams)(),o=(0,r.usePathname)(),u={...Object.fromEntries(a.entries()),...n||{}},{route:n?function(e,t){if(!e||!t)return e;let r=e;try{let e=Object.entries(t);for(let[t,n]of e)if(!Array.isArray(n)){let e=c(n);e.test(r)&&(r=r.replace(e,`/[${t}]`))}for(let[t,n]of e)if(Array.isArray(n)){let e=c(n.join("/"));e.test(r)&&(r=r.replace(e,`/[...${t}]`))}return r}catch(t){return e}}(o,u):null,path:o});return t.default.createElement(i,{path:s,route:l,...e,framework:"next"})}function l(e){return t.default.createElement(t.Suspense,{fallback:null},t.default.createElement(u,{...e}))}e.s(["Analytics",()=>l])}]);
@@ -0,0 +1,4 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68803,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},28950,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return u},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="BAILOUT_TO_CLIENT_SIDE_RENDERING";class u extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=a}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}},56400,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return a},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return l},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},u=new Set(Object.values(a)),i="NEXT_HTTP_ERROR_FALLBACK";function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&u.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function l(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45835,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},86280,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return c},isRedirectError:function(){return s}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let u=e.r(45835),i="NEXT_REDIRECT";var c=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),a=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(a)&&a in u.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91349,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return a}});let n=e.r(56400),o=e.r(86280);function a(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65644,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return c},PathnameContext:function(){return i},SearchParamsContext:function(){return u},createDevToolsInstrumentedPromise:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(30878),u=(0,a.createContext)(null),i=(0,a.createContext)(null),c=(0,a.createContext)(null),s=(0,a.createContext)(null);function l(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},68627,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(46986).createAsyncLocalStorage)()},94889,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return u},FLIGHT_HEADERS:function(){return _},NEXT_ACTION_NOT_FOUND_HEADER:function(){return R},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return d},NEXT_HMR_REFRESH_HEADER:function(){return l},NEXT_HTML_REQUEST_ID_HEADER:function(){return v},NEXT_IS_PRERENDER_HEADER:function(){return g},NEXT_REQUEST_ID_HEADER:function(){return O},NEXT_REWRITTEN_PATH_HEADER:function(){return h},NEXT_REWRITTEN_QUERY_HEADER:function(){return E},NEXT_ROUTER_PREFETCH_HEADER:function(){return c},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return m},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return y},NEXT_URL:function(){return f},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="rsc",u="next-action",i="next-router-state-tree",c="next-router-prefetch",s="next-router-segment-prefetch",l="next-hmr-refresh",d="__next_hmr_refresh_hash__",f="next-url",p="text/x-component",_=[a,i,c,l,s],y="_rsc",m="x-nextjs-stale-time",b="x-nextjs-postponed",h="x-nextjs-rewritten-path",E="x-nextjs-rewritten-query",g="x-nextjs-prerender",R="x-nextjs-action-not-found",O="x-nextjs-request-id",v="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},17085,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return m},getDraftModeProviderForCacheScope:function(){return y},getHmrRefreshHash:function(){return f},getPrerenderResumeDataCache:function(){return l},getRenderResumeDataCache:function(){return d},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return _},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return c},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return a.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(68627),u=e.r(94889),i=e.r(68803);function c(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function l(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function d(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function f(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(u.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function _(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function y(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function m(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},55761,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return d},PAGE_SEGMENT_KEY:function(){return l},addSearchParamsIfPageSegment:function(){return c},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return a},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let u;if(n)u=t[1][r];else{let e=t[1];u=e.children??Object.values(e)[0]}if(!u)return o;let i=a(u[0]);return!i||i.startsWith(l)?o:(o.push(i),e(u,r,!1,o))}},isGroupSegment:function(){return u},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){return Array.isArray(e)?e[1]:e}function u(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function c(e,t){if(e.includes(l)){let e=JSON.stringify(t);return"{}"!==e?l+"?"+e:l}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===d?null:r}let l="__PAGE__",d="__DEFAULT__"},92365,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},69168,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return u},GlobalLayoutRouterContext:function(){return c},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return l},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(63212)._(e.r(30878)),u=a.default.createContext(null),i=a.default.createContext(null),c=a.default.createContext(null),s=a.default.createContext(null),l=a.default.createContext(new Set)},63148,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},41754,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return u},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(79510)._(e.r(30878)),u=a.default.createContext(null);function i(e){let t=(0,a.useContext)(u);t&&t(e)}},31062,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return a},unstable_isUnrecognizedActionError:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class a extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function u(e){return!!(e&&"object"==typeof e&&e instanceof a)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8018,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(46986).createAsyncLocalStorage)()},1755,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(8018)},39724,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return c},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return f},getURLFromRedirectError:function(){return d},permanentRedirect:function(){return l},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(45835),u=e.r(86280),i="undefined"==typeof window?e.r(1755).actionAsyncStorage:void 0;function c(e,t,r=a.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(u.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${u.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw c(e,t??=i?.getStore()?.isAction?u.RedirectType.push:u.RedirectType.replace,a.RedirectStatusCode.TemporaryRedirect)}function l(e,t=u.RedirectType.replace){throw c(e,t,a.RedirectStatusCode.PermanentRedirect)}function d(e){return(0,u.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function f(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},82485,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return a}});let n=e.r(56400),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function a(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94081,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(56400).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50655,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(56400).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26041,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(28950),o=e.r(91349);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},10426,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return a},makeDevtoolsIOAwarePromise:function(){return d},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}let u="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=u}}let c=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let a=o.bind(null,new i(t,r)),u=c.get(e);if(u)u.push(a);else{let t=[a];c.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e<t.length;e++)t[e]()},{once:!0})}});return n.catch(l),n}}function l(){}function d(e,t,r){return t.stagedRendering?t.stagedRendering.delayUntilStage(r,void 0,e):new Promise(t=>{setTimeout(()=>{t(e)},0)})}},5950,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},87122,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return u},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="DYNAMIC_SERVER_USAGE";class u extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=a}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===a}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},12469,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return u},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="NEXT_STATIC_GEN_BAILOUT";class u extends Error{constructor(...e){super(...e),this.code=a}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===a}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},38349,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return a},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return c},VIEWPORT_BOUNDARY_NAME:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="__next_metadata_boundary__",u="__next_viewport_boundary__",i="__next_outlet_boundary__",c="__next_root_layout_boundary__"},94095,(e,t,r)=>{"use strict";var n=e.i(50382);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return c},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return u},waitAtLeastOneReactRenderTask:function(){return s}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let u=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function c(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},55812,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return c},StagedRenderingController:function(){return s}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let u=e.r(68803),i=e.r(92365);var c=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new u.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,a;let u,i=(n=this.getStagePromise(e),o=t,a=r,u=new Promise((e,t)=>{n.then(e.bind(null,a),t)}),void 0!==o&&(u.displayName=o),u);return this.abortSignal&&i.catch(l),i}}function l(){}},88984,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,a={Postpone:function(){return D},PreludeState:function(){return Q},abortAndThrowOnSynchronousRequestDataAccess:function(){return w},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return U},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return H},createDynamicTrackingState:function(){return E},createDynamicValidationState:function(){return g},createHangingInputAbortSignal:function(){return X},createRenderInBrowserAbortSignal:function(){return $},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return L},getFirstDynamicReason:function(){return R},isDynamicPostpone:function(){return C},isPrerenderInterruptedError:function(){return k},logDisallowedDynamicError:function(){return J},markCurrentScopeAsDynamic:function(){return O},postponeWithTracking:function(){return x},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return v},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return P},trackSynchronousPlatformIOAccessInDev:function(){return T},useDynamicRouteParams:function(){return F},useDynamicSearchParams:function(){return G}};for(var u in a)Object.defineProperty(r,u,{enumerable:!0,get:a[u]});let i=(n=e.r(30878))&&n.__esModule?n:{default:n},c=e.r(87122),s=e.r(12469),l=e.r(17085),d=e.r(10643),f=e.r(10426),p=e.r(38349),_=e.r(94095),y=e.r(28950),m=e.r(68803),b=e.r(55812),h="function"==typeof i.default.unstable_postpone;function E(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function g(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function R(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function O(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return x(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new c.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function v(e,t,r){let n=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function P(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function S(e,t,r){let n=I(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;S(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function T(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function w(e,t,r,n){if(!1===n.controller.signal.aborted){S(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw I(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function D({reason:e,route:t}){let r=l.workUnitAsyncStorage.getStore();x(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function x(e,t,r){(function(){if(!h)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(A(e,t))}function A(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function C(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&N(e.message)}function N(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===N(A("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let M="NEXT_PRERENDER_INTERRUPTED";function I(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=M,t}function k(e){return"object"==typeof e&&null!==e&&e.digest===M&&"name"in e&&"message"in e&&e instanceof Error}function U(e){return e.length>0}function H(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function L(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" (<anonymous>)")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}:
2
+ ${t}`))}function $(){let e=new AbortController;return e.abort(Object.defineProperty(new y.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function X(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,l.getRuntimeStagePromise)(e);r?r.then(()=>(0,_.scheduleOnNextTick)(()=>t.abort())):(0,_.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function F(e){let t=d.workAsyncStorage.getStore(),r=l.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return x(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function G(e){let t=d.workAsyncStorage.getStore(),r=l.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,l.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new y.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let W=/\n\s+at Suspense \(<anonymous>\)/,q=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),z=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!K.test(t)){if(z.test(t)){r.hasDynamicMetadata=!0;return}if(Y.test(t)){r.hasDynamicViewport=!0;return}if(q.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(W.test(t)){r.hasAllowedDynamic=!0;return}else{var o,a;let u;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,a=t,(u=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=u.name+": "+o+a,u);return void r.dynamicErrors.push(i)}}}var Q=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function J(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
3
+ - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.
4
+ - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw J(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;t<n.length;t++)J(e,n[t]);throw new s.StaticGenBailoutError}if(r.hasDynamicViewport)throw console.error(`Route "${e.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new s.StaticGenBailoutError;if(1===t)throw console.error(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new s.StaticGenBailoutError}else if(!1===r.hasAllowedDynamic&&r.hasDynamicMetadata)throw console.error(`Route "${e.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new s.StaticGenBailoutError}function ee(e,t){return e.runtimeStagePromise?e.runtimeStagePromise.then(()=>t):t}},33874,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,u.isNextRouterError)(t)||(0,a.isBailoutToCSRError)(t)||(0,c.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(10426),o=e.r(5950),a=e.r(28950),u=e.r(91349),i=e.r(88984),c=e.r(87122);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87154,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(33874).unstable_rethrow:e.r(26041).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},46014,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return a.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return c.notFound},permanentRedirect:function(){return u.permanentRedirect},redirect:function(){return u.redirect},unauthorized:function(){return l.unauthorized},unstable_isUnrecognizedActionError:function(){return f},unstable_rethrow:function(){return d.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(63148),u=e.r(39724),i=e.r(86280),c=e.r(82485),s=e.r(94081),l=e.r(50655),d=e.r(87154);function f(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87603,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return f.RedirectType},ServerInsertedHTMLContext:function(){return l.ServerInsertedHTMLContext},forbidden:function(){return f.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return f.permanentRedirect},redirect:function(){return f.redirect},unauthorized:function(){return f.unauthorized},unstable_isUnrecognizedActionError:function(){return d.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return f.unstable_rethrow},useParams:function(){return h},usePathname:function(){return m},useRouter:function(){return b},useSearchParams:function(){return y},useSelectedLayoutSegment:function(){return g},useSelectedLayoutSegments:function(){return E},useServerInsertedHTML:function(){return l.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(79510)._(e.r(30878)),u=e.r(69168),i=e.r(65644),c=e.r(55761),s=e.r(63148),l=e.r(41754),d=e.r(31062),f=e.r(46014),p="undefined"==typeof window?e.r(88984).useDynamicRouteParams:void 0,_="undefined"==typeof window?e.r(88984).useDynamicSearchParams:void 0;function y(){_?.("useSearchParams()");let e=(0,a.useContext)(i.SearchParamsContext);return(0,a.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function m(){return p?.("usePathname()"),(0,a.useContext)(i.PathnameContext)}function b(){let e=(0,a.useContext)(u.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function h(){return p?.("useParams()"),(0,a.useContext)(i.PathParamsContext)}function E(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,a.useContext)(u.LayoutRouterContext);return t?(0,c.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function g(e="children"){p?.("useSelectedLayoutSegment()"),(0,a.useContext)(i.NavigationPromisesContext);let t=E(e);return(0,c.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,19609,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/c57fee8cce8d7cb9.js","static/chunks/e0affeef0ddb9a97.js","static/chunks/458d6f37339fc069.js","static/chunks/159889e17b2cf1f8.js"],runtimeModuleIds:[95506]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=c(t),e[t]=r),r}function c(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function a(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)s(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,a(n,e)},o.j=function(e,t){var n,o;let i,s,c;null!=t?s=(i=u(this.c,t)).exports:(i=this.m,s=this.e);let a=(n=i,o=s,(c=r.get(n))||(r.set(n,c=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(l.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of c){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of c)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),c);"object"==typeof e&&null!==e&&a.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),a(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
+ self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)};
3
+ importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=c(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,k)),e.registerChunk(o,n)}let B=new Map;function W(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})();
@@ -1,64 +0,0 @@
1
- ---
2
- description: "Run health check on architecture (outdated packages, vulnerabilities)"
3
- allowed-tools: ["Bash", "Read"]
4
- ---
5
-
6
- # NavGator Health Check
7
-
8
- Run health checks on your architecture to find outdated packages, security vulnerabilities, and potential issues.
9
-
10
- **Note:** Health checks are configurable via the `NAVGATOR_HEALTH_CHECK` environment variable.
11
-
12
- ## Usage
13
-
14
- ```bash
15
- npx @tyroneross/navgator check
16
- ```
17
-
18
- ## What Gets Checked
19
-
20
- **Package Health:**
21
- - Outdated packages (npm outdated, pip list --outdated, etc.)
22
- - Security vulnerabilities (npm audit, pip-audit, etc.)
23
- - Deprecated packages
24
-
25
- **Connection Health:**
26
- - Orphaned connections (code references that no longer exist)
27
- - Missing imports
28
- - Unused dependencies
29
-
30
- ## Options
31
-
32
- - `--packages`: Only check package health
33
- - `--connections`: Only check connection health
34
- - `--fix`: Attempt to auto-fix issues (careful!)
35
-
36
- ## Configuration
37
-
38
- Set `NAVGATOR_HEALTH_CHECK=true` to enable automatic health checks during scans.
39
-
40
- ```bash
41
- export NAVGATOR_HEALTH_CHECK=true
42
- npx @tyroneross/navgator scan # Will include health check
43
- ```
44
-
45
- ## Output
46
-
47
- ```
48
- Health Check Results
49
- ====================
50
-
51
- PACKAGES:
52
- ├── 3 outdated (2 minor, 1 major)
53
- │ ├── react: 18.2.0 → 18.3.0 (minor)
54
- │ ├── typescript: 5.3.0 → 5.4.0 (minor)
55
- │ └── next: 14.0.0 → 15.0.0 (major - breaking changes)
56
- └── 0 vulnerabilities
57
-
58
- CONNECTIONS:
59
- ├── 2 orphaned connections
60
- │ ├── src/api/old-endpoint.ts:15 (file deleted)
61
- │ └── src/components/Legacy.tsx:42 (function removed)
62
- └── 1 missing import
63
- └── src/utils/helpers.ts:5 → lodash (not in package.json)
64
- ```
@@ -1,58 +0,0 @@
1
- ---
2
- description: "Show all connections for a specific component"
3
- allowed-tools: ["Bash", "Read"]
4
- arguments:
5
- - name: "component"
6
- description: "Component name to show connections for"
7
- required: true
8
- ---
9
-
10
- # NavGator Connection View
11
-
12
- Show all incoming and outgoing connections for a specific component.
13
-
14
- ## Usage
15
-
16
- ```bash
17
- npx @tyroneross/navgator connections "<component-name>"
18
- ```
19
-
20
- ## Examples
21
-
22
- **API endpoint connections:**
23
- ```bash
24
- npx @tyroneross/navgator connections "/api/users"
25
- # Shows: Database tables this endpoint reads/writes
26
- # Shows: Frontend components that call this endpoint
27
- ```
28
-
29
- **Database table connections:**
30
- ```bash
31
- npx @tyroneross/navgator connections "users"
32
- # Shows: All API endpoints that access this table
33
- # Shows: Queue handlers that modify this table
34
- ```
35
-
36
- ## Output Format
37
-
38
- ```
39
- Component: users (database table)
40
- Layer: database
41
-
42
- INCOMING CONNECTIONS (what connects TO this):
43
- ├── POST /api/users (api-endpoint)
44
- │ └── src/api/users.ts:45 → createUser()
45
- ├── PUT /api/users/:id (api-endpoint)
46
- │ └── src/api/users.ts:78 → updateUser()
47
- └── summarize-worker (queue-handler)
48
- └── src/workers/summarize.ts:23 → processJob()
49
-
50
- OUTGOING CONNECTIONS (what this connects TO):
51
- └── None (database tables don't connect outward)
52
- ```
53
-
54
- ## Options
55
-
56
- - `--json`: Output as JSON
57
- - `--incoming`: Show only incoming connections
58
- - `--outgoing`: Show only outgoing connections
@@ -1,106 +0,0 @@
1
- ---
2
- name: nav-diagram
3
- description: Generate a Mermaid diagram of the architecture
4
- ---
5
-
6
- # NavGator Diagram Generator
7
-
8
- Generate visual architecture diagrams in Mermaid format.
9
-
10
- ## When to Use
11
-
12
- - Visualize the overall architecture before making changes
13
- - Generate documentation diagrams
14
- - Understand component relationships at a glance
15
- - Create focused diagrams around specific components
16
-
17
- ## Usage
18
-
19
- ### Full Architecture Diagram
20
-
21
- ```bash
22
- npx @tyroneross/navgator diagram
23
- ```
24
-
25
- Generates a complete architecture diagram with all components grouped by layer (frontend, backend, database, queue, infrastructure, external).
26
-
27
- ### Component-Focused Diagram
28
-
29
- ```bash
30
- npx @tyroneross/navgator diagram --focus "Stripe"
31
- ```
32
-
33
- Generates a diagram centered on a specific component, showing its direct connections.
34
-
35
- ### Layer Diagram
36
-
37
- ```bash
38
- npx @tyroneross/navgator diagram --layer backend
39
- ```
40
-
41
- Shows only components in a specific layer and their connections to other layers.
42
-
43
- ### Summary Diagram
44
-
45
- ```bash
46
- npx @tyroneross/navgator diagram --summary
47
- ```
48
-
49
- Shows only the most-connected components for a simplified overview.
50
-
51
- ## Options
52
-
53
- | Option | Description |
54
- |--------|-------------|
55
- | `--focus <name>` | Center diagram on a specific component |
56
- | `--layer <name>` | Show only a specific layer (frontend, backend, database, queue, infra, external) |
57
- | `--summary` | Show only top connected components |
58
- | `--direction <dir>` | Diagram direction: TB, BT, LR, RL (default: TB) |
59
- | `--no-styles` | Disable color styling |
60
- | `--no-labels` | Hide connection labels |
61
- | `--output <file>` | Save to file instead of stdout |
62
- | `--max-nodes <n>` | Maximum nodes to show (default: 50) |
63
-
64
- ## Output Format
65
-
66
- The diagram is output as Mermaid markdown that can be:
67
- - Pasted into GitHub/GitLab markdown files
68
- - Rendered in VS Code with Mermaid extensions
69
- - Used in documentation tools like Docusaurus, MkDocs
70
- - Converted to images using mermaid-cli
71
-
72
- ## Example Output
73
-
74
- ```mermaid
75
- graph TB
76
- subgraph Frontend
77
- COMP_npm_react_a1b2["react"]
78
- COMP_npm_nextjs_c3d4["Next.js"]
79
- end
80
-
81
- subgraph Backend
82
- COMP_npm_express_e5f6["express"]
83
- end
84
-
85
- subgraph External Services
86
- COMP_service_stripe_g7h8["Stripe"]
87
- COMP_service_openai_i9j0["OpenAI"]
88
- end
89
-
90
- COMP_npm_nextjs_c3d4 -->|calls| COMP_npm_express_e5f6
91
- COMP_npm_express_e5f6 -->|uses| COMP_service_stripe_g7h8
92
-
93
- style COMP_npm_react_a1b2,COMP_npm_nextjs_c3d4 fill:#bbdefb,stroke:#1976d2
94
- style COMP_npm_express_e5f6 fill:#c8e6c9,stroke:#388e3c
95
- style COMP_service_stripe_g7h8,COMP_service_openai_i9j0 fill:#ffccbc,stroke:#e64a19
96
- ```
97
-
98
- ## Tips
99
-
100
- 1. **Run scan first**: Diagrams are generated from the stored architecture data. Run `/nav-scan` first if you haven't already.
101
-
102
- 2. **Use focus for complex projects**: Large codebases may have too many nodes. Use `--focus` to see specific areas.
103
-
104
- 3. **Export for documentation**: Use `--output architecture.md` to save directly to your docs folder.
105
-
106
- 4. **Combine with impact analysis**: After running `/nav-impact <component>`, generate a focused diagram to visualize the affected components.
@@ -1,71 +0,0 @@
1
- ---
2
- description: "Export architecture to markdown or JSON"
3
- allowed-tools: ["Bash", "Read", "Write"]
4
- ---
5
-
6
- # NavGator Export
7
-
8
- Export your project's architecture documentation to markdown or JSON format.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- npx @tyroneross/navgator export [format] [output-file]
14
- ```
15
-
16
- ## Formats
17
-
18
- **Markdown (default):**
19
- ```bash
20
- npx @tyroneross/navgator export md ARCHITECTURE.md
21
- ```
22
-
23
- **JSON:**
24
- ```bash
25
- npx @tyroneross/navgator export json architecture.json
26
- ```
27
-
28
- ## Markdown Output Example
29
-
30
- ```markdown
31
- # Project Architecture
32
-
33
- ## Components
34
-
35
- ### Packages (npm)
36
- - react (18.2.0) - UI framework
37
- - next (14.0.0) - React framework
38
- - @supabase/supabase-js (2.39.0) - Database client
39
-
40
- ### Infrastructure
41
- - Railway - Deployment platform
42
- - Docker - Containerization
43
-
44
- ### External Services
45
- - Stripe - Payment processing
46
- - OpenAI - AI/LLM integration
47
-
48
- ## Connections
49
-
50
- ### API → Database
51
- | Endpoint | Table | File | Line |
52
- |----------|-------|------|------|
53
- | POST /api/users | users | src/api/users.ts | 45 |
54
- | GET /api/orders | orders | src/api/orders.ts | 23 |
55
-
56
- ### Frontend → API
57
- | Component | Endpoint | File | Line |
58
- |-----------|----------|------|------|
59
- | UserForm | POST /api/users | src/components/UserForm.tsx | 67 |
60
-
61
- ### AI Prompts
62
- | Name | File | Line |
63
- |------|------|------|
64
- | summarize-article | src/prompts/summarize.ts | 12 |
65
- ```
66
-
67
- ## Options
68
-
69
- - `--components-only`: Export only components, skip connections
70
- - `--connections-only`: Export only connections
71
- - `--graph`: Include mermaid diagram of connections
@@ -1,58 +0,0 @@
1
- ---
2
- description: "Show what's affected if you change a component"
3
- allowed-tools: ["Bash", "Read"]
4
- arguments:
5
- - name: "component"
6
- description: "Component name to analyze (e.g., 'users-table', 'bullmq', 'stripe')"
7
- required: true
8
- ---
9
-
10
- # NavGator Impact Analysis
11
-
12
- Show what other components and code would be affected if you change a specific component.
13
-
14
- **This is the key value of NavGator:** Know what else needs updating before you make a change.
15
-
16
- ## Usage
17
-
18
- ```bash
19
- npx @tyroneross/navgator impact "<component-name>"
20
- ```
21
-
22
- ## Examples
23
-
24
- **Database table change:**
25
- ```bash
26
- npx @tyroneross/navgator impact "users"
27
- # Shows: All API endpoints that read/write the users table
28
- # Shows: File:line references for each connection
29
- ```
30
-
31
- **Queue/worker change:**
32
- ```bash
33
- npx @tyroneross/navgator impact "bullmq"
34
- # Shows: All handlers triggered by BullMQ jobs
35
- # Shows: AI prompts called from workers
36
- ```
37
-
38
- **External service change:**
39
- ```bash
40
- npx @tyroneross/navgator impact "stripe"
41
- # Shows: All files that call Stripe APIs
42
- # Shows: Frontend components that handle Stripe flows
43
- ```
44
-
45
- ## Output
46
-
47
- For each affected component, you'll see:
48
- - Component name and type
49
- - Connection type (api-calls-db, frontend-calls-api, etc.)
50
- - File path and line number
51
- - Function name (if detected)
52
- - Code snippet (truncated)
53
-
54
- ## Use Cases
55
-
56
- 1. **Before schema migration:** "If I change the users table, what APIs need updating?"
57
- 2. **Before refactoring:** "If I modify this BullMQ worker, what prompts are affected?"
58
- 3. **Before removing a dependency:** "What code uses this package?"
@@ -1,46 +0,0 @@
1
- ---
2
- description: "Scan project architecture and update connection tracking"
3
- allowed-tools: ["Bash", "Read", "Glob", "Grep"]
4
- ---
5
-
6
- # NavGator Architecture Scan
7
-
8
- Scan the current project to detect and track architecture components and their connections.
9
-
10
- ## What Gets Scanned
11
-
12
- **Components:**
13
- - Packages (npm, pip, cargo, go, gem, composer)
14
- - Frameworks (Next.js, React, Django, FastAPI, etc.)
15
- - Databases (PostgreSQL, MongoDB, Redis, Supabase)
16
- - Queues (BullMQ, Celery, SQS)
17
- - Infrastructure (Railway, Vercel, Docker)
18
- - External services (Stripe, OpenAI, Twilio)
19
-
20
- **Connections:**
21
- - API → Database (which endpoints touch which tables)
22
- - Frontend → API (which components call which endpoints)
23
- - Queue → Handler (which jobs trigger which code)
24
- - Service calls (where external APIs are used)
25
- - AI prompts (where Claude/OpenAI calls live, with file:line)
26
-
27
- ## Run the Scan
28
-
29
- ```bash
30
- npx @tyroneross/navgator scan
31
- ```
32
-
33
- ## Options
34
-
35
- - `--quick`: Only scan package files, skip code analysis
36
- - `--connections`: Focus on connection detection
37
- - `--verbose`: Show detailed detection output
38
-
39
- ## After Scanning
40
-
41
- Review the detected architecture:
42
- - Total components found
43
- - Connections mapped
44
- - Any potential issues (outdated packages, missing connections)
45
-
46
- Use `/nav-status` to see a summary, or `/nav-impact <component>` to see what's affected by a specific component.
@@ -1,44 +0,0 @@
1
- ---
2
- description: "Show architecture summary and health status"
3
- allowed-tools: ["Bash", "Read"]
4
- ---
5
-
6
- # NavGator Architecture Status
7
-
8
- Display a summary of the project's architecture including components, connections, and health status.
9
-
10
- ## Run Status Check
11
-
12
- ```bash
13
- npx @tyroneross/navgator status
14
- ```
15
-
16
- ## What You'll See
17
-
18
- **Component Summary:**
19
- - Total packages by type (npm, pip, etc.)
20
- - Frameworks and databases detected
21
- - Infrastructure and services in use
22
-
23
- **Connection Summary:**
24
- - API → Database connections
25
- - Frontend → API connections
26
- - Queue → Handler connections
27
- - External service calls
28
- - AI prompt locations
29
-
30
- **Health Status (if enabled):**
31
- - Outdated packages
32
- - Security vulnerabilities
33
- - Missing connections
34
-
35
- ## Options
36
-
37
- - `--json`: Output as JSON for programmatic use
38
- - `--verbose`: Show all components and connections
39
-
40
- ## Related Commands
41
-
42
- - `/nav-scan`: Rescan the project
43
- - `/nav-impact <component>`: See what's affected by a component
44
- - `/nav-connections <component>`: See all connections for a component