@brainfish-ai/devdoc 0.1.42 → 0.1.43

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 (388) hide show
  1. package/dist/cli/commands/dev.js +19 -10
  2. package/package.json +3 -2
  3. package/renderer/app/api/assets/[...path]/route.js +108 -0
  4. package/renderer/app/api/assets/route.js +114 -0
  5. package/renderer/app/api/assets/upload/route.js +163 -0
  6. package/renderer/app/api/auth-schemes/route.js +58 -0
  7. package/renderer/app/api/chat/route.js +759 -0
  8. package/renderer/app/api/codegen/route.js +52 -0
  9. package/renderer/app/api/collections/route.js +675 -0
  10. package/renderer/app/api/debug/route.js +47 -0
  11. package/renderer/app/api/deploy/route.js +199 -0
  12. package/renderer/app/api/device/route.js +36 -0
  13. package/renderer/app/api/docs/route.js +205 -0
  14. package/renderer/app/api/domains/add/route.js +121 -0
  15. package/renderer/app/api/domains/lookup/route.js +43 -0
  16. package/renderer/app/api/domains/remove/route.js +89 -0
  17. package/renderer/app/api/domains/status/route.js +140 -0
  18. package/renderer/app/api/domains/verify/route.js +168 -0
  19. package/renderer/app/api/keys/regenerate/route.js +71 -0
  20. package/renderer/app/api/local-assets/[...path]/route.js +108 -0
  21. package/renderer/app/api/openapi-spec/route.js +73 -0
  22. package/renderer/app/api/projects/[slug]/route.js +129 -0
  23. package/renderer/app/api/projects/[slug]/stats/route.js +80 -0
  24. package/renderer/app/api/projects/register/route.js +176 -0
  25. package/renderer/app/api/proxy/route.js +139 -0
  26. package/renderer/app/api/proxy-stream/route.js +156 -0
  27. package/renderer/app/api/redirects/route.js +35 -0
  28. package/renderer/app/api/schema/route.js +85 -0
  29. package/renderer/app/api/subdomains/check/route.js +158 -0
  30. package/renderer/app/api/suggestions/route.js +175 -0
  31. package/renderer/app/layout.js +47 -0
  32. package/renderer/app/llms-full.txt/route.js +257 -0
  33. package/renderer/app/llms.txt/route.js +219 -0
  34. package/renderer/app/page.js +12 -0
  35. package/renderer/app/robots.txt/route.js +66 -0
  36. package/renderer/app/sitemap.xml/route.js +145 -0
  37. package/renderer/components/docs/index.js +8 -0
  38. package/renderer/components/docs/mdx/accordion.js +113 -0
  39. package/renderer/components/docs/mdx/badge.js +72 -0
  40. package/renderer/components/docs/mdx/callouts.js +137 -0
  41. package/renderer/components/docs/mdx/cards.js +175 -0
  42. package/renderer/components/docs/mdx/changelog.js +100 -0
  43. package/renderer/components/docs/mdx/code-block.js +147 -0
  44. package/renderer/components/docs/mdx/code-group.js +287 -0
  45. package/renderer/components/docs/mdx/file-embeds.js +82 -0
  46. package/renderer/components/docs/mdx/frame.js +59 -0
  47. package/renderer/components/docs/mdx/highlight.js +90 -0
  48. package/renderer/components/docs/mdx/iframe.js +69 -0
  49. package/renderer/components/docs/mdx/image.js +135 -0
  50. package/renderer/components/docs/mdx/index.js +134 -0
  51. package/renderer/components/docs/mdx/landing.js +315 -0
  52. package/renderer/components/docs/mdx/mermaid.js +212 -0
  53. package/renderer/components/docs/mdx/param-field.js +112 -0
  54. package/renderer/components/docs/mdx/steps.js +74 -0
  55. package/renderer/components/docs/mdx/tabs.js +50 -0
  56. package/renderer/components/docs/mdx-renderer.js +77 -0
  57. package/renderer/components/docs/navigation/breadcrumbs.js +64 -0
  58. package/renderer/components/docs/navigation/index.js +6 -0
  59. package/renderer/components/docs/navigation/page-nav.js +57 -0
  60. package/renderer/components/docs/navigation/sidebar.js +375 -0
  61. package/renderer/components/docs/navigation/toc.js +89 -0
  62. package/renderer/components/docs/notice.js +77 -0
  63. package/renderer/components/docs-header.js +202 -0
  64. package/renderer/components/docs-viewer/agent/agent-chat.js +1930 -0
  65. package/renderer/components/docs-viewer/agent/cards/debug-context-card.js +107 -0
  66. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.js +57 -0
  67. package/renderer/components/docs-viewer/agent/cards/index.js +45 -0
  68. package/renderer/components/docs-viewer/agent/cards/response-options-card.js +154 -0
  69. package/renderer/components/docs-viewer/agent/cards/types.js +22 -0
  70. package/renderer/components/docs-viewer/agent/chat-message.js +2 -0
  71. package/renderer/components/docs-viewer/agent/index.js +4 -0
  72. package/renderer/components/docs-viewer/agent/messages/assistant-message.js +108 -0
  73. package/renderer/components/docs-viewer/agent/messages/chat-message.js +34 -0
  74. package/renderer/components/docs-viewer/agent/messages/index.js +6 -0
  75. package/renderer/components/docs-viewer/agent/messages/tool-call-display.js +1065 -0
  76. package/renderer/components/docs-viewer/agent/messages/types.js +2 -0
  77. package/renderer/components/docs-viewer/agent/messages/typing-indicator.js +26 -0
  78. package/renderer/components/docs-viewer/agent/messages/user-message.js +37 -0
  79. package/renderer/components/docs-viewer/code-editor/{index.tsx → index.js} +1 -1
  80. package/renderer/components/docs-viewer/code-editor/notes-mode.js +1338 -0
  81. package/renderer/components/docs-viewer/content/changelog-page.js +297 -0
  82. package/renderer/components/docs-viewer/content/doc-page.js +264 -0
  83. package/renderer/components/docs-viewer/content/documentation-viewer.js +14 -0
  84. package/renderer/components/docs-viewer/content/index.js +29 -0
  85. package/renderer/components/docs-viewer/content/not-found-page.js +300 -0
  86. package/renderer/components/docs-viewer/content/request-details.js +528 -0
  87. package/renderer/components/docs-viewer/content/sections/auth.js +108 -0
  88. package/renderer/components/docs-viewer/content/sections/body.js +80 -0
  89. package/renderer/components/docs-viewer/content/sections/headers.js +64 -0
  90. package/renderer/components/docs-viewer/content/sections/overview.js +56 -0
  91. package/renderer/components/docs-viewer/content/sections/parameters.js +64 -0
  92. package/renderer/components/docs-viewer/content/sections/responses.js +91 -0
  93. package/renderer/components/docs-viewer/global-auth-modal.js +427 -0
  94. package/renderer/components/docs-viewer/index.js +1552 -0
  95. package/renderer/components/docs-viewer/playground/auth-editor.js +418 -0
  96. package/renderer/components/docs-viewer/playground/body-editor.js +240 -0
  97. package/renderer/components/docs-viewer/playground/code-editor.js +135 -0
  98. package/renderer/components/docs-viewer/playground/code-snippet.js +393 -0
  99. package/renderer/components/docs-viewer/playground/graphql-playground.js +734 -0
  100. package/renderer/components/docs-viewer/playground/index.js +682 -0
  101. package/renderer/components/docs-viewer/playground/key-value-editor.js +317 -0
  102. package/renderer/components/docs-viewer/playground/method-selector.js +65 -0
  103. package/renderer/components/docs-viewer/playground/request-builder.js +181 -0
  104. package/renderer/components/docs-viewer/playground/request-tabs.js +240 -0
  105. package/renderer/components/docs-viewer/playground/response-cards/idle-card.js +42 -0
  106. package/renderer/components/docs-viewer/playground/response-cards/index.js +72 -0
  107. package/renderer/components/docs-viewer/playground/response-cards/loading-card.js +24 -0
  108. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.js +28 -0
  109. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.js +308 -0
  110. package/renderer/components/docs-viewer/playground/response-cards/types.js +9 -0
  111. package/renderer/components/docs-viewer/playground/response-viewer.js +18 -0
  112. package/renderer/components/docs-viewer/search/index.js +2 -0
  113. package/renderer/components/docs-viewer/search/search-dialog.js +367 -0
  114. package/renderer/components/docs-viewer/search/use-search.js +89 -0
  115. package/renderer/components/docs-viewer/shared/markdown-renderer.js +423 -0
  116. package/renderer/components/docs-viewer/shared/method-badge.js +23 -0
  117. package/renderer/components/docs-viewer/shared/schema-viewer.js +321 -0
  118. package/renderer/components/docs-viewer/sidebar/collection-tree.js +222 -0
  119. package/renderer/components/docs-viewer/sidebar/endpoint-options.js +512 -0
  120. package/renderer/components/docs-viewer/sidebar/index.js +196 -0
  121. package/renderer/components/docs-viewer/sidebar/right-sidebar.js +163 -0
  122. package/renderer/components/docs-viewer/sidebar/sidebar-group.js +87 -0
  123. package/renderer/components/docs-viewer/sidebar/sidebar-item.js +172 -0
  124. package/renderer/components/docs-viewer/sidebar/sidebar-section.js +31 -0
  125. package/renderer/components/theme-provider.js +10 -0
  126. package/renderer/components/theme-toggle.js +106 -0
  127. package/renderer/components/ui/badge.js +29 -0
  128. package/renderer/components/ui/button.js +40 -0
  129. package/renderer/components/ui/dialog.js +50 -0
  130. package/renderer/components/ui/dropdown-menu.js +143 -0
  131. package/renderer/components/ui/input.js +12 -0
  132. package/renderer/components/ui/label.js +13 -0
  133. package/renderer/components/ui/navigation-menu.js +83 -0
  134. package/renderer/components/ui/select.js +116 -0
  135. package/renderer/components/ui/spinner.js +92 -0
  136. package/renderer/components/ui/tabs.js +34 -0
  137. package/renderer/components/ui/tooltip.js +43 -0
  138. package/renderer/hooks/use-code-copy.js +76 -0
  139. package/renderer/hooks/use-openapi-title.js +33 -0
  140. package/renderer/lib/api-docs/agent/index.js +4 -0
  141. package/renderer/lib/api-docs/agent/indexer.js +254 -0
  142. package/renderer/lib/api-docs/agent/spec-summary.js +227 -0
  143. package/renderer/lib/api-docs/agent/types.js +5 -0
  144. package/renderer/lib/api-docs/auth/auth-context.js +157 -0
  145. package/renderer/lib/api-docs/auth/auth-storage.js +66 -0
  146. package/renderer/lib/api-docs/auth/crypto.js +64 -0
  147. package/renderer/lib/api-docs/auth/index.js +3 -0
  148. package/renderer/lib/api-docs/code-editor/db.js +145 -0
  149. package/renderer/lib/api-docs/code-editor/hooks.js +254 -0
  150. package/renderer/lib/api-docs/code-editor/{index.ts → index.js} +3 -4
  151. package/renderer/lib/api-docs/code-editor/mode-context.js +154 -0
  152. package/renderer/lib/api-docs/code-editor/types.js +53 -0
  153. package/renderer/lib/api-docs/codegen/definitions.js +258 -0
  154. package/renderer/lib/api-docs/codegen/har.js +171 -0
  155. package/renderer/lib/api-docs/codegen/index.js +118 -0
  156. package/renderer/lib/api-docs/factories.js +136 -0
  157. package/renderer/lib/api-docs/{index.ts → index.js} +5 -10
  158. package/renderer/lib/api-docs/mobile-context.js +79 -0
  159. package/renderer/lib/api-docs/navigation-context.js +62 -0
  160. package/renderer/lib/api-docs/parsers/graphql/index.js +50 -0
  161. package/renderer/lib/api-docs/parsers/graphql/parser.js +350 -0
  162. package/renderer/lib/api-docs/parsers/graphql/transformer.js +215 -0
  163. package/renderer/lib/api-docs/parsers/graphql/types.js +46 -0
  164. package/renderer/lib/api-docs/parsers/openapi/dereferencer.js +43 -0
  165. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.js +486 -0
  166. package/renderer/lib/api-docs/parsers/openapi/extractors/body.js +295 -0
  167. package/renderer/lib/api-docs/parsers/openapi/extractors/index.js +132 -0
  168. package/renderer/lib/api-docs/parsers/openapi/index.js +127 -0
  169. package/renderer/lib/api-docs/parsers/openapi/transformer.js +192 -0
  170. package/renderer/lib/api-docs/parsers/openapi/validator.js +24 -0
  171. package/renderer/lib/api-docs/playground/context.js +65 -0
  172. package/renderer/lib/api-docs/playground/navigation-context.js +74 -0
  173. package/renderer/lib/api-docs/playground/request-builder.js +163 -0
  174. package/renderer/lib/api-docs/playground/request-runner.js +224 -0
  175. package/renderer/lib/api-docs/playground/types.js +5 -0
  176. package/renderer/lib/api-docs/types.js +23 -0
  177. package/renderer/lib/api-docs/utils.js +212 -0
  178. package/renderer/lib/cache.js +157 -0
  179. package/renderer/lib/docs/config/domain-schema.js +161 -0
  180. package/renderer/lib/docs/config/index.js +5 -0
  181. package/renderer/lib/docs/config/loader.js +113 -0
  182. package/renderer/lib/docs/config/schema.js +269 -0
  183. package/renderer/lib/docs/index.js +8 -0
  184. package/renderer/lib/docs/mdx/compiler.js +128 -0
  185. package/renderer/lib/docs/mdx/frontmatter.js +73 -0
  186. package/renderer/lib/docs/mdx/index.js +8 -0
  187. package/renderer/lib/docs/navigation/generator.js +269 -0
  188. package/renderer/lib/docs/navigation/index.js +4 -0
  189. package/renderer/lib/docs/navigation/types.js +9 -0
  190. package/renderer/lib/docs-navigation-context.js +40 -0
  191. package/renderer/lib/multi-tenant/context.js +80 -0
  192. package/renderer/lib/storage/blob.js +767 -0
  193. package/renderer/lib/utils/icons.js +30 -0
  194. package/renderer/lib/utils.js +5 -0
  195. package/renderer/next.config.js +62 -0
  196. package/renderer/tsconfig.json +23 -5
  197. package/renderer/app/api/assets/[...path]/route.ts +0 -123
  198. package/renderer/app/api/assets/route.ts +0 -124
  199. package/renderer/app/api/assets/upload/route.ts +0 -177
  200. package/renderer/app/api/auth-schemes/route.ts +0 -77
  201. package/renderer/app/api/chat/route.ts +0 -858
  202. package/renderer/app/api/codegen/route.ts +0 -72
  203. package/renderer/app/api/collections/route.ts +0 -1002
  204. package/renderer/app/api/debug/route.ts +0 -53
  205. package/renderer/app/api/deploy/route.ts +0 -234
  206. package/renderer/app/api/device/route.ts +0 -42
  207. package/renderer/app/api/docs/route.ts +0 -201
  208. package/renderer/app/api/domains/add/route.ts +0 -132
  209. package/renderer/app/api/domains/lookup/route.ts +0 -43
  210. package/renderer/app/api/domains/remove/route.ts +0 -100
  211. package/renderer/app/api/domains/status/route.ts +0 -158
  212. package/renderer/app/api/domains/verify/route.ts +0 -181
  213. package/renderer/app/api/keys/regenerate/route.ts +0 -80
  214. package/renderer/app/api/local-assets/[...path]/route.ts +0 -122
  215. package/renderer/app/api/openapi-spec/route.ts +0 -151
  216. package/renderer/app/api/projects/[slug]/route.ts +0 -153
  217. package/renderer/app/api/projects/[slug]/stats/route.ts +0 -96
  218. package/renderer/app/api/projects/register/route.ts +0 -152
  219. package/renderer/app/api/proxy/route.ts +0 -149
  220. package/renderer/app/api/proxy-stream/route.ts +0 -168
  221. package/renderer/app/api/redirects/route.ts +0 -47
  222. package/renderer/app/api/schema/route.ts +0 -73
  223. package/renderer/app/api/subdomains/check/route.ts +0 -172
  224. package/renderer/app/api/suggestions/route.ts +0 -144
  225. package/renderer/app/layout.tsx +0 -54
  226. package/renderer/app/llms-full.txt/route.ts +0 -346
  227. package/renderer/app/llms.txt/route.ts +0 -279
  228. package/renderer/app/page.tsx +0 -14
  229. package/renderer/app/robots.txt/route.ts +0 -84
  230. package/renderer/app/sitemap.xml/route.ts +0 -199
  231. package/renderer/components/docs/index.ts +0 -12
  232. package/renderer/components/docs/mdx/accordion.tsx +0 -169
  233. package/renderer/components/docs/mdx/badge.tsx +0 -132
  234. package/renderer/components/docs/mdx/callouts.tsx +0 -154
  235. package/renderer/components/docs/mdx/cards.tsx +0 -241
  236. package/renderer/components/docs/mdx/changelog.tsx +0 -120
  237. package/renderer/components/docs/mdx/code-block.tsx +0 -186
  238. package/renderer/components/docs/mdx/code-group.tsx +0 -421
  239. package/renderer/components/docs/mdx/file-embeds.tsx +0 -105
  240. package/renderer/components/docs/mdx/frame.tsx +0 -112
  241. package/renderer/components/docs/mdx/highlight.tsx +0 -151
  242. package/renderer/components/docs/mdx/iframe.tsx +0 -134
  243. package/renderer/components/docs/mdx/image.tsx +0 -235
  244. package/renderer/components/docs/mdx/index.ts +0 -237
  245. package/renderer/components/docs/mdx/landing.tsx +0 -684
  246. package/renderer/components/docs/mdx/mermaid.tsx +0 -240
  247. package/renderer/components/docs/mdx/param-field.tsx +0 -200
  248. package/renderer/components/docs/mdx/steps.tsx +0 -113
  249. package/renderer/components/docs/mdx/tabs.tsx +0 -86
  250. package/renderer/components/docs/mdx-renderer.tsx +0 -100
  251. package/renderer/components/docs/navigation/breadcrumbs.tsx +0 -76
  252. package/renderer/components/docs/navigation/index.ts +0 -8
  253. package/renderer/components/docs/navigation/page-nav.tsx +0 -64
  254. package/renderer/components/docs/navigation/sidebar.tsx +0 -515
  255. package/renderer/components/docs/navigation/toc.tsx +0 -113
  256. package/renderer/components/docs/notice.tsx +0 -105
  257. package/renderer/components/docs-header.tsx +0 -278
  258. package/renderer/components/docs-viewer/agent/agent-chat.tsx +0 -2076
  259. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +0 -90
  260. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +0 -49
  261. package/renderer/components/docs-viewer/agent/cards/index.tsx +0 -50
  262. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +0 -212
  263. package/renderer/components/docs-viewer/agent/cards/types.ts +0 -84
  264. package/renderer/components/docs-viewer/agent/chat-message.tsx +0 -17
  265. package/renderer/components/docs-viewer/agent/index.tsx +0 -6
  266. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +0 -119
  267. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +0 -46
  268. package/renderer/components/docs-viewer/agent/messages/index.ts +0 -17
  269. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +0 -721
  270. package/renderer/components/docs-viewer/agent/messages/types.ts +0 -61
  271. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +0 -24
  272. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +0 -51
  273. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +0 -1283
  274. package/renderer/components/docs-viewer/content/changelog-page.tsx +0 -331
  275. package/renderer/components/docs-viewer/content/doc-page.tsx +0 -367
  276. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +0 -17
  277. package/renderer/components/docs-viewer/content/index.tsx +0 -29
  278. package/renderer/components/docs-viewer/content/not-found-page.tsx +0 -330
  279. package/renderer/components/docs-viewer/content/request-details.tsx +0 -330
  280. package/renderer/components/docs-viewer/content/sections/auth.tsx +0 -69
  281. package/renderer/components/docs-viewer/content/sections/body.tsx +0 -66
  282. package/renderer/components/docs-viewer/content/sections/headers.tsx +0 -43
  283. package/renderer/components/docs-viewer/content/sections/overview.tsx +0 -40
  284. package/renderer/components/docs-viewer/content/sections/parameters.tsx +0 -43
  285. package/renderer/components/docs-viewer/content/sections/responses.tsx +0 -87
  286. package/renderer/components/docs-viewer/global-auth-modal.tsx +0 -352
  287. package/renderer/components/docs-viewer/index.tsx +0 -1670
  288. package/renderer/components/docs-viewer/playground/auth-editor.tsx +0 -280
  289. package/renderer/components/docs-viewer/playground/body-editor.tsx +0 -221
  290. package/renderer/components/docs-viewer/playground/code-editor.tsx +0 -224
  291. package/renderer/components/docs-viewer/playground/code-snippet.tsx +0 -387
  292. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +0 -745
  293. package/renderer/components/docs-viewer/playground/index.tsx +0 -671
  294. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +0 -261
  295. package/renderer/components/docs-viewer/playground/method-selector.tsx +0 -60
  296. package/renderer/components/docs-viewer/playground/request-builder.tsx +0 -179
  297. package/renderer/components/docs-viewer/playground/request-tabs.tsx +0 -237
  298. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +0 -21
  299. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +0 -93
  300. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +0 -16
  301. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +0 -23
  302. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +0 -268
  303. package/renderer/components/docs-viewer/playground/response-cards/types.ts +0 -82
  304. package/renderer/components/docs-viewer/playground/response-viewer.tsx +0 -43
  305. package/renderer/components/docs-viewer/search/index.ts +0 -2
  306. package/renderer/components/docs-viewer/search/search-dialog.tsx +0 -331
  307. package/renderer/components/docs-viewer/search/use-search.ts +0 -117
  308. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +0 -431
  309. package/renderer/components/docs-viewer/shared/method-badge.tsx +0 -41
  310. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +0 -349
  311. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +0 -259
  312. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +0 -316
  313. package/renderer/components/docs-viewer/sidebar/index.tsx +0 -282
  314. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +0 -202
  315. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +0 -118
  316. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +0 -212
  317. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +0 -38
  318. package/renderer/components/theme-provider.tsx +0 -11
  319. package/renderer/components/theme-toggle.tsx +0 -76
  320. package/renderer/components/ui/badge.tsx +0 -46
  321. package/renderer/components/ui/button.tsx +0 -59
  322. package/renderer/components/ui/dialog.tsx +0 -118
  323. package/renderer/components/ui/dropdown-menu.tsx +0 -257
  324. package/renderer/components/ui/input.tsx +0 -21
  325. package/renderer/components/ui/label.tsx +0 -24
  326. package/renderer/components/ui/navigation-menu.tsx +0 -168
  327. package/renderer/components/ui/select.tsx +0 -190
  328. package/renderer/components/ui/spinner.tsx +0 -114
  329. package/renderer/components/ui/tabs.tsx +0 -66
  330. package/renderer/components/ui/tooltip.tsx +0 -61
  331. package/renderer/hooks/use-code-copy.ts +0 -88
  332. package/renderer/hooks/use-openapi-title.ts +0 -44
  333. package/renderer/lib/api-docs/agent/index.ts +0 -6
  334. package/renderer/lib/api-docs/agent/indexer.ts +0 -323
  335. package/renderer/lib/api-docs/agent/spec-summary.ts +0 -335
  336. package/renderer/lib/api-docs/agent/types.ts +0 -116
  337. package/renderer/lib/api-docs/auth/auth-context.tsx +0 -225
  338. package/renderer/lib/api-docs/auth/auth-storage.ts +0 -87
  339. package/renderer/lib/api-docs/auth/crypto.ts +0 -89
  340. package/renderer/lib/api-docs/auth/index.ts +0 -4
  341. package/renderer/lib/api-docs/code-editor/db.ts +0 -164
  342. package/renderer/lib/api-docs/code-editor/hooks.ts +0 -266
  343. package/renderer/lib/api-docs/code-editor/mode-context.tsx +0 -207
  344. package/renderer/lib/api-docs/code-editor/types.ts +0 -105
  345. package/renderer/lib/api-docs/codegen/definitions.ts +0 -297
  346. package/renderer/lib/api-docs/codegen/har.ts +0 -251
  347. package/renderer/lib/api-docs/codegen/index.ts +0 -159
  348. package/renderer/lib/api-docs/factories.ts +0 -170
  349. package/renderer/lib/api-docs/mobile-context.tsx +0 -112
  350. package/renderer/lib/api-docs/navigation-context.tsx +0 -88
  351. package/renderer/lib/api-docs/parsers/graphql/README.md +0 -129
  352. package/renderer/lib/api-docs/parsers/graphql/index.ts +0 -91
  353. package/renderer/lib/api-docs/parsers/graphql/parser.ts +0 -491
  354. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +0 -246
  355. package/renderer/lib/api-docs/parsers/graphql/types.ts +0 -283
  356. package/renderer/lib/api-docs/parsers/openapi/README.md +0 -32
  357. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +0 -60
  358. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +0 -574
  359. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +0 -403
  360. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +0 -232
  361. package/renderer/lib/api-docs/parsers/openapi/index.ts +0 -171
  362. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +0 -278
  363. package/renderer/lib/api-docs/parsers/openapi/validator.ts +0 -31
  364. package/renderer/lib/api-docs/playground/context.tsx +0 -107
  365. package/renderer/lib/api-docs/playground/navigation-context.tsx +0 -124
  366. package/renderer/lib/api-docs/playground/request-builder.ts +0 -223
  367. package/renderer/lib/api-docs/playground/request-runner.ts +0 -282
  368. package/renderer/lib/api-docs/playground/types.ts +0 -35
  369. package/renderer/lib/api-docs/types.ts +0 -269
  370. package/renderer/lib/api-docs/utils.ts +0 -311
  371. package/renderer/lib/cache.ts +0 -193
  372. package/renderer/lib/docs/config/domain-schema.ts +0 -260
  373. package/renderer/lib/docs/config/index.ts +0 -43
  374. package/renderer/lib/docs/config/loader.ts +0 -142
  375. package/renderer/lib/docs/config/schema.ts +0 -308
  376. package/renderer/lib/docs/index.ts +0 -12
  377. package/renderer/lib/docs/mdx/compiler.ts +0 -176
  378. package/renderer/lib/docs/mdx/frontmatter.ts +0 -91
  379. package/renderer/lib/docs/mdx/index.ts +0 -26
  380. package/renderer/lib/docs/navigation/generator.ts +0 -348
  381. package/renderer/lib/docs/navigation/index.ts +0 -12
  382. package/renderer/lib/docs/navigation/types.ts +0 -123
  383. package/renderer/lib/docs-navigation-context.tsx +0 -80
  384. package/renderer/lib/multi-tenant/context.ts +0 -105
  385. package/renderer/lib/storage/blob.ts +0 -1083
  386. package/renderer/lib/utils/icons.ts +0 -48
  387. package/renderer/lib/utils.ts +0 -6
  388. package/renderer/next.config.ts +0 -76
@@ -1,266 +0,0 @@
1
- 'use client'
2
-
3
- import { useState, useEffect, useCallback } from 'react'
4
- import { dbOperations } from './db'
5
- import type { Workspace, NoteFile, EditorState } from './types'
6
-
7
- /**
8
- * Hook for managing the workspace (auto-created per API)
9
- */
10
- export function useWorkspace(apiSpecUrl: string | null, apiName: string = 'API Notes') {
11
- const [workspace, setWorkspace] = useState<Workspace | null>(null)
12
- const [loading, setLoading] = useState(true)
13
- const [error, setError] = useState<Error | null>(null)
14
-
15
- useEffect(() => {
16
- if (!apiSpecUrl) {
17
- setWorkspace(null)
18
- setLoading(false)
19
- return
20
- }
21
-
22
- const loadWorkspace = async () => {
23
- try {
24
- setLoading(true)
25
- const ws = await dbOperations.getOrCreateWorkspace(apiSpecUrl, `${apiName} Notes`)
26
- setWorkspace(ws)
27
- setError(null)
28
- } catch (err) {
29
- setError(err instanceof Error ? err : new Error('Failed to load workspace'))
30
- } finally {
31
- setLoading(false)
32
- }
33
- }
34
-
35
- loadWorkspace()
36
- }, [apiSpecUrl, apiName])
37
-
38
- const clearWorkspace = useCallback(async () => {
39
- if (!workspace) return
40
- await dbOperations.clearWorkspace(workspace.id)
41
- }, [workspace])
42
-
43
- return {
44
- workspace,
45
- loading,
46
- error,
47
- clearWorkspace,
48
- workspaceId: workspace?.id || null,
49
- }
50
- }
51
-
52
- /**
53
- * Hook for managing notes/files in the workspace
54
- */
55
- export function useNotes(workspaceId: string | null) {
56
- const [notes, setNotes] = useState<NoteFile[]>([])
57
- const [loading, setLoading] = useState(true)
58
- const [error, setError] = useState<Error | null>(null)
59
-
60
- const loadNotes = useCallback(async () => {
61
- if (!workspaceId) {
62
- setNotes([])
63
- setLoading(false)
64
- return
65
- }
66
-
67
- try {
68
- setLoading(true)
69
- const list = await dbOperations.listNotes(workspaceId)
70
- setNotes(list)
71
- setError(null)
72
- } catch (err) {
73
- setError(err instanceof Error ? err : new Error('Failed to load notes'))
74
- } finally {
75
- setLoading(false)
76
- }
77
- }, [workspaceId])
78
-
79
- useEffect(() => {
80
- loadNotes()
81
- }, [loadNotes])
82
-
83
- const createNote = useCallback(async (path: string, content: string = ''): Promise<NoteFile | null> => {
84
- if (!workspaceId) return null
85
-
86
- const note = await dbOperations.createNote(workspaceId, path, content)
87
- setNotes(prev => [...prev, note])
88
- return note
89
- }, [workspaceId])
90
-
91
- const readNote = useCallback(async (path: string): Promise<string> => {
92
- if (!workspaceId) return ''
93
-
94
- const note = await dbOperations.getNote(workspaceId, path)
95
- return note?.content || ''
96
- }, [workspaceId])
97
-
98
- const updateNote = useCallback(async (path: string, content: string): Promise<void> => {
99
- if (!workspaceId) return
100
-
101
- await dbOperations.updateNote(workspaceId, path, content)
102
- setNotes(prev => prev.map(n =>
103
- n.path === path
104
- ? { ...n, content, updatedAt: new Date() }
105
- : n
106
- ))
107
- }, [workspaceId])
108
-
109
- const deleteNote = useCallback(async (path: string): Promise<void> => {
110
- if (!workspaceId) return
111
-
112
- await dbOperations.deleteNote(workspaceId, path)
113
- setNotes(prev => prev.filter(n => n.path !== path))
114
- }, [workspaceId])
115
-
116
- const renameNote = useCallback(async (oldPath: string, newPath: string): Promise<void> => {
117
- if (!workspaceId) return
118
-
119
- await dbOperations.renameNote(workspaceId, oldPath, newPath)
120
- setNotes(prev => prev.map(n =>
121
- n.path === oldPath
122
- ? { ...n, path: newPath, updatedAt: new Date() }
123
- : n
124
- ))
125
- }, [workspaceId])
126
-
127
- const deleteAllNotes = useCallback(async (): Promise<void> => {
128
- if (!workspaceId) return
129
-
130
- await dbOperations.clearWorkspace(workspaceId)
131
- setNotes([])
132
- }, [workspaceId])
133
-
134
- return {
135
- notes,
136
- loading,
137
- error,
138
- createNote,
139
- readNote,
140
- updateNote,
141
- deleteNote,
142
- deleteAllNotes,
143
- renameNote,
144
- refresh: loadNotes,
145
- }
146
- }
147
-
148
- /**
149
- * Hook for managing editor state (tabs, active file, etc.)
150
- */
151
- export function useEditorState(workspaceId: string | null) {
152
- const [state, setState] = useState<EditorState | null>(null)
153
-
154
- // Load saved state
155
- useEffect(() => {
156
- if (!workspaceId) {
157
- setState(null)
158
- return
159
- }
160
-
161
- const loadState = async () => {
162
- const saved = await dbOperations.getEditorState(workspaceId)
163
- if (saved) {
164
- setState(saved)
165
- } else {
166
- // Initialize new state
167
- setState({
168
- workspaceId,
169
- openTabs: [],
170
- activeTab: null,
171
- cursorPositions: {},
172
- scrollPositions: {},
173
- })
174
- }
175
- }
176
-
177
- loadState()
178
- }, [workspaceId])
179
-
180
- // Save state when it changes
181
- useEffect(() => {
182
- if (state && workspaceId) {
183
- dbOperations.saveEditorState(state)
184
- }
185
- }, [state, workspaceId])
186
-
187
- const openTab = useCallback(async (path: string) => {
188
- setState(prev => {
189
- if (!prev) return prev
190
-
191
- const newTabs = prev.openTabs.includes(path)
192
- ? prev.openTabs
193
- : [...prev.openTabs, path]
194
-
195
- return {
196
- ...prev,
197
- openTabs: newTabs,
198
- activeTab: path,
199
- }
200
- })
201
- }, [])
202
-
203
- const closeTab = useCallback((path: string) => {
204
- setState(prev => {
205
- if (!prev) return prev
206
-
207
- const newTabs = prev.openTabs.filter(t => t !== path)
208
- const newActive = prev.activeTab === path
209
- ? newTabs[newTabs.length - 1] || null
210
- : prev.activeTab
211
-
212
- return {
213
- ...prev,
214
- openTabs: newTabs,
215
- activeTab: newActive,
216
- }
217
- })
218
- }, [])
219
-
220
- const setActiveTab = useCallback((path: string) => {
221
- setState(prev => {
222
- if (!prev) return prev
223
- return { ...prev, activeTab: path }
224
- })
225
- }, [])
226
-
227
- const saveCursorPosition = useCallback((path: string, line: number, column: number) => {
228
- setState(prev => {
229
- if (!prev) return prev
230
- return {
231
- ...prev,
232
- cursorPositions: {
233
- ...prev.cursorPositions,
234
- [path]: { line, column },
235
- },
236
- }
237
- })
238
- }, [])
239
-
240
- const clearAllTabs = useCallback(() => {
241
- setState(prev => {
242
- if (!prev) return prev
243
- return {
244
- ...prev,
245
- openTabs: [],
246
- activeTab: null,
247
- cursorPositions: {},
248
- scrollPositions: {},
249
- }
250
- })
251
- }, [])
252
-
253
- return {
254
- state,
255
- openTab,
256
- closeTab,
257
- setActiveTab,
258
- saveCursorPosition,
259
- clearAllTabs,
260
- }
261
- }
262
-
263
- // Re-export types and helpers
264
- export type { Workspace, NoteFile, EditorState } from './types'
265
- export { getFileType, getMonacoLanguage, supportsPreview } from './types'
266
- export { getWorkspaceId } from './db'
@@ -1,207 +0,0 @@
1
- 'use client'
2
-
3
- import React, { createContext, useContext, useState, useCallback, useEffect, useRef, type ReactNode } from 'react'
4
- import type { PlaygroundMode } from './types'
5
-
6
- /**
7
- * Streaming content for real-time code display
8
- */
9
- interface StreamingContent {
10
- path: string
11
- content: string
12
- isStreaming: boolean
13
- }
14
-
15
- /**
16
- * Simplified mode context - toggles between Docs, API Client, and Notes
17
- * Uses URL hash for persistence: #notes or #notes/path/to/file.py
18
- */
19
- interface ModeContextValue {
20
- // Current mode
21
- mode: PlaygroundMode
22
-
23
- // Active file in notes mode (for navigation from agent)
24
- activeFilePath: string | null
25
- setActiveFilePath: (path: string | null) => void
26
-
27
- // Streaming content for real-time display
28
- streamingContent: StreamingContent | null
29
- setStreamingContent: (content: StreamingContent | null) => void
30
- appendStreamingContent: (delta: string) => void
31
-
32
- // Mode switching
33
- switchToDocs: () => void
34
- switchToNotes: (openFile?: string) => void
35
- switchToApiClient: () => void
36
-
37
- // Notes refresh trigger - increment to signal notes-mode to refresh
38
- notesRefreshTrigger: number
39
- triggerNotesRefresh: () => void
40
- }
41
-
42
- const ModeContext = createContext<ModeContextValue | null>(null)
43
-
44
- interface ModeProviderProps {
45
- children: ReactNode
46
- defaultMode?: PlaygroundMode
47
- }
48
-
49
- // Helper to parse notes path from URL hash
50
- function parseNotesHash(): { isNotes: boolean; filePath: string | null } {
51
- if (typeof window === 'undefined') return { isNotes: false, filePath: null }
52
-
53
- const hash = window.location.hash.slice(1) // Remove #
54
- if (hash === 'notes') {
55
- return { isNotes: true, filePath: null }
56
- }
57
- if (hash.startsWith('notes/')) {
58
- // Decode any encoded characters but path should mostly be plain text
59
- const filePath = decodeURIComponent(hash.slice(6)) // Remove 'notes/'
60
- return { isNotes: true, filePath: filePath || null }
61
- }
62
- return { isNotes: false, filePath: null }
63
- }
64
-
65
- // Helper to update URL hash for notes
66
- // Only encode special chars that would break the URL, keep slashes readable
67
- function updateNotesHash(filePath: string | null): void {
68
- if (typeof window === 'undefined') return
69
-
70
- const newHash = filePath
71
- ? `#notes/${filePath.replace(/#/g, '%23').replace(/\?/g, '%3F')}`
72
- : '#notes'
73
-
74
- window.history.pushState(null, '', newHash)
75
- }
76
-
77
- export function ModeProvider({ children, defaultMode = 'docs' }: ModeProviderProps) {
78
- const [mode, setMode] = useState<PlaygroundMode>(defaultMode)
79
- const [activeFilePath, setActiveFilePathState] = useState<string | null>(null)
80
- const [streamingContent, setStreamingContent] = useState<StreamingContent | null>(null)
81
- const [notesRefreshTrigger, setNotesRefreshTrigger] = useState(0)
82
-
83
- // Use ref to track mode for callbacks (avoids stale closure issues)
84
- const modeRef = useRef<PlaygroundMode>(defaultMode)
85
-
86
- // Keep ref in sync with state
87
- useEffect(() => {
88
- modeRef.current = mode
89
- }, [mode])
90
-
91
- // Initialize from URL hash on mount
92
- useEffect(() => {
93
- const { isNotes, filePath } = parseNotesHash()
94
-
95
- if (isNotes) {
96
- setMode('notes')
97
- modeRef.current = 'notes'
98
- setActiveFilePathState(filePath)
99
- }
100
- }, [])
101
-
102
- // Handle browser back/forward navigation
103
- useEffect(() => {
104
- const handlePopState = () => {
105
- const { isNotes, filePath } = parseNotesHash()
106
-
107
- if (isNotes) {
108
- setMode('notes')
109
- modeRef.current = 'notes'
110
- setActiveFilePathState(filePath)
111
- } else {
112
- // Default to docs mode when no notes hash
113
- setMode('docs')
114
- modeRef.current = 'docs'
115
- }
116
- }
117
-
118
- window.addEventListener('popstate', handlePopState)
119
- return () => window.removeEventListener('popstate', handlePopState)
120
- }, [])
121
-
122
- // Wrapper for setActiveFilePath that also updates URL
123
- const setActiveFilePath = useCallback((path: string | null) => {
124
- // Handle the ?t= timestamp suffix for forcing reloads
125
- const cleanPath = path?.split('?')[0] || null
126
- setActiveFilePathState(cleanPath)
127
-
128
- // Update URL if we're in notes mode (use ref to avoid stale closure)
129
- if (modeRef.current === 'notes') {
130
- updateNotesHash(cleanPath)
131
- }
132
- }, []) // No dependencies - uses ref
133
-
134
- const switchToNotes = useCallback((openFile?: string) => {
135
- const filePath = openFile || null
136
- setActiveFilePathState(filePath)
137
- setMode('notes')
138
- modeRef.current = 'notes'
139
- updateNotesHash(filePath)
140
- }, [])
141
-
142
- const switchToApiClient = useCallback(() => {
143
- setMode('api_client')
144
- modeRef.current = 'api_client'
145
- // Don't update URL here - let the main API docs component handle it
146
- }, [])
147
-
148
- const switchToDocs = useCallback(() => {
149
- setMode('docs')
150
- modeRef.current = 'docs'
151
- // Only clear the hash if it's a notes hash, preserve doc/endpoint hashes
152
- if (typeof window !== 'undefined') {
153
- const hash = window.location.hash.slice(1)
154
- if (hash === 'notes' || hash.startsWith('notes/')) {
155
- window.history.pushState(null, '', window.location.pathname + window.location.search)
156
- }
157
- }
158
- }, [])
159
-
160
- const appendStreamingContent = useCallback((delta: string) => {
161
- setStreamingContent(prev => {
162
- if (!prev) return prev
163
- return {
164
- ...prev,
165
- content: prev.content + delta,
166
- }
167
- })
168
- }, [])
169
-
170
- const triggerNotesRefresh = useCallback(() => {
171
- setNotesRefreshTrigger(prev => prev + 1)
172
- }, [])
173
-
174
- const value: ModeContextValue = {
175
- mode,
176
- activeFilePath,
177
- setActiveFilePath,
178
- streamingContent,
179
- setStreamingContent,
180
- appendStreamingContent,
181
- switchToDocs,
182
- switchToNotes,
183
- switchToApiClient,
184
- notesRefreshTrigger,
185
- triggerNotesRefresh,
186
- }
187
-
188
- return (
189
- <ModeContext.Provider value={value}>
190
- {children}
191
- </ModeContext.Provider>
192
- )
193
- }
194
-
195
- export function useModeContext() {
196
- const context = useContext(ModeContext)
197
- if (!context) {
198
- throw new Error('useModeContext must be used within a ModeProvider')
199
- }
200
- return context
201
- }
202
-
203
- // Hook for checking if we're in notes mode
204
- export function useIsNotesMode() {
205
- const { mode } = useModeContext()
206
- return mode === 'notes'
207
- }
@@ -1,105 +0,0 @@
1
- // Types for the Notes/Scratchpad feature
2
- // Simplified from full project management to a brainstorming workspace
3
-
4
- export type PlaygroundMode = 'docs' | 'api_client' | 'notes'
5
-
6
- // File types supported in the notes workspace
7
- export type NoteFileType =
8
- | 'javascript'
9
- | 'typescript'
10
- | 'python'
11
- | 'go'
12
- | 'ruby'
13
- | 'php'
14
- | 'shell' // curl, bash
15
- | 'markdown'
16
- | 'mermaid' // Diagrams
17
- | 'json'
18
- | 'yaml'
19
- | 'text'
20
-
21
- // Single workspace per API (not multiple projects)
22
- export interface Workspace {
23
- id: string // Hash of API spec URL
24
- name: string // e.g., "Vrio API Notes"
25
- apiSpecUrl?: string
26
- createdAt: Date
27
- updatedAt: Date
28
- }
29
-
30
- // A note/file in the workspace
31
- export interface NoteFile {
32
- id: string
33
- workspaceId: string
34
- path: string // e.g., "auth/oauth-example.py"
35
- content: string
36
- createdAt: Date
37
- updatedAt: Date
38
- }
39
-
40
- // Editor state for the workspace
41
- export interface EditorState {
42
- workspaceId: string
43
- openTabs: string[] // File paths
44
- activeTab: string | null
45
- cursorPositions: Record<string, { line: number; column: number }>
46
- scrollPositions: Record<string, number>
47
- }
48
-
49
- // Helper to detect file type from path
50
- export function getFileType(path: string): NoteFileType {
51
- const ext = path.split('.').pop()?.toLowerCase() || ''
52
-
53
- const typeMap: Record<string, NoteFileType> = {
54
- 'js': 'javascript',
55
- 'mjs': 'javascript',
56
- 'jsx': 'javascript',
57
- 'ts': 'typescript',
58
- 'tsx': 'typescript',
59
- 'py': 'python',
60
- 'go': 'go',
61
- 'rb': 'ruby',
62
- 'php': 'php',
63
- 'sh': 'shell',
64
- 'bash': 'shell',
65
- 'curl': 'shell',
66
- 'md': 'markdown',
67
- 'mdx': 'markdown',
68
- 'mmd': 'mermaid',
69
- 'mermaid': 'mermaid',
70
- 'json': 'json',
71
- 'yaml': 'yaml',
72
- 'yml': 'yaml',
73
- 'txt': 'text',
74
- }
75
-
76
- return typeMap[ext] || 'text'
77
- }
78
-
79
- // Helper to get Monaco language from file type
80
- export function getMonacoLanguage(path: string): string {
81
- const type = getFileType(path)
82
-
83
- const languageMap: Record<NoteFileType, string> = {
84
- 'javascript': 'javascript',
85
- 'typescript': 'typescript',
86
- 'python': 'python',
87
- 'go': 'go',
88
- 'ruby': 'ruby',
89
- 'php': 'php',
90
- 'shell': 'shell',
91
- 'markdown': 'markdown',
92
- 'mermaid': 'markdown', // Use markdown for mermaid editing
93
- 'json': 'json',
94
- 'yaml': 'yaml',
95
- 'text': 'plaintext',
96
- }
97
-
98
- return languageMap[type]
99
- }
100
-
101
- // Check if file type supports preview
102
- export function supportsPreview(path: string): boolean {
103
- const type = getFileType(path)
104
- return type === 'markdown' || type === 'mermaid'
105
- }