@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
@@ -0,0 +1,254 @@
1
+ 'use client';
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { dbOperations } from './db';
4
+ /**
5
+ * Hook for managing the workspace (auto-created per API)
6
+ */ export function useWorkspace(apiSpecUrl, apiName = 'API Notes') {
7
+ const [workspace, setWorkspace] = useState(null);
8
+ const [loading, setLoading] = useState(true);
9
+ const [error, setError] = useState(null);
10
+ useEffect(()=>{
11
+ if (!apiSpecUrl) {
12
+ setWorkspace(null);
13
+ setLoading(false);
14
+ return;
15
+ }
16
+ const loadWorkspace = async ()=>{
17
+ try {
18
+ setLoading(true);
19
+ const ws = await dbOperations.getOrCreateWorkspace(apiSpecUrl, `${apiName} Notes`);
20
+ setWorkspace(ws);
21
+ setError(null);
22
+ } catch (err) {
23
+ setError(err instanceof Error ? err : new Error('Failed to load workspace'));
24
+ } finally{
25
+ setLoading(false);
26
+ }
27
+ };
28
+ loadWorkspace();
29
+ }, [
30
+ apiSpecUrl,
31
+ apiName
32
+ ]);
33
+ const clearWorkspace = useCallback(async ()=>{
34
+ if (!workspace) return;
35
+ await dbOperations.clearWorkspace(workspace.id);
36
+ }, [
37
+ workspace
38
+ ]);
39
+ return {
40
+ workspace,
41
+ loading,
42
+ error,
43
+ clearWorkspace,
44
+ workspaceId: workspace?.id || null
45
+ };
46
+ }
47
+ /**
48
+ * Hook for managing notes/files in the workspace
49
+ */ export function useNotes(workspaceId) {
50
+ const [notes, setNotes] = useState([]);
51
+ const [loading, setLoading] = useState(true);
52
+ const [error, setError] = useState(null);
53
+ const loadNotes = useCallback(async ()=>{
54
+ if (!workspaceId) {
55
+ setNotes([]);
56
+ setLoading(false);
57
+ return;
58
+ }
59
+ try {
60
+ setLoading(true);
61
+ const list = await dbOperations.listNotes(workspaceId);
62
+ setNotes(list);
63
+ setError(null);
64
+ } catch (err) {
65
+ setError(err instanceof Error ? err : new Error('Failed to load notes'));
66
+ } finally{
67
+ setLoading(false);
68
+ }
69
+ }, [
70
+ workspaceId
71
+ ]);
72
+ useEffect(()=>{
73
+ loadNotes();
74
+ }, [
75
+ loadNotes
76
+ ]);
77
+ const createNote = useCallback(async (path, content = '')=>{
78
+ if (!workspaceId) return null;
79
+ const note = await dbOperations.createNote(workspaceId, path, content);
80
+ setNotes((prev)=>[
81
+ ...prev,
82
+ note
83
+ ]);
84
+ return note;
85
+ }, [
86
+ workspaceId
87
+ ]);
88
+ const readNote = useCallback(async (path)=>{
89
+ if (!workspaceId) return '';
90
+ const note = await dbOperations.getNote(workspaceId, path);
91
+ return note?.content || '';
92
+ }, [
93
+ workspaceId
94
+ ]);
95
+ const updateNote = useCallback(async (path, content)=>{
96
+ if (!workspaceId) return;
97
+ await dbOperations.updateNote(workspaceId, path, content);
98
+ setNotes((prev)=>prev.map((n)=>n.path === path ? {
99
+ ...n,
100
+ content,
101
+ updatedAt: new Date()
102
+ } : n));
103
+ }, [
104
+ workspaceId
105
+ ]);
106
+ const deleteNote = useCallback(async (path)=>{
107
+ if (!workspaceId) return;
108
+ await dbOperations.deleteNote(workspaceId, path);
109
+ setNotes((prev)=>prev.filter((n)=>n.path !== path));
110
+ }, [
111
+ workspaceId
112
+ ]);
113
+ const renameNote = useCallback(async (oldPath, newPath)=>{
114
+ if (!workspaceId) return;
115
+ await dbOperations.renameNote(workspaceId, oldPath, newPath);
116
+ setNotes((prev)=>prev.map((n)=>n.path === oldPath ? {
117
+ ...n,
118
+ path: newPath,
119
+ updatedAt: new Date()
120
+ } : n));
121
+ }, [
122
+ workspaceId
123
+ ]);
124
+ const deleteAllNotes = useCallback(async ()=>{
125
+ if (!workspaceId) return;
126
+ await dbOperations.clearWorkspace(workspaceId);
127
+ setNotes([]);
128
+ }, [
129
+ workspaceId
130
+ ]);
131
+ return {
132
+ notes,
133
+ loading,
134
+ error,
135
+ createNote,
136
+ readNote,
137
+ updateNote,
138
+ deleteNote,
139
+ deleteAllNotes,
140
+ renameNote,
141
+ refresh: loadNotes
142
+ };
143
+ }
144
+ /**
145
+ * Hook for managing editor state (tabs, active file, etc.)
146
+ */ export function useEditorState(workspaceId) {
147
+ const [state, setState] = useState(null);
148
+ // Load saved state
149
+ useEffect(()=>{
150
+ if (!workspaceId) {
151
+ setState(null);
152
+ return;
153
+ }
154
+ const loadState = async ()=>{
155
+ const saved = await dbOperations.getEditorState(workspaceId);
156
+ if (saved) {
157
+ setState(saved);
158
+ } else {
159
+ // Initialize new state
160
+ setState({
161
+ workspaceId,
162
+ openTabs: [],
163
+ activeTab: null,
164
+ cursorPositions: {},
165
+ scrollPositions: {}
166
+ });
167
+ }
168
+ };
169
+ loadState();
170
+ }, [
171
+ workspaceId
172
+ ]);
173
+ // Save state when it changes
174
+ useEffect(()=>{
175
+ if (state && workspaceId) {
176
+ dbOperations.saveEditorState(state);
177
+ }
178
+ }, [
179
+ state,
180
+ workspaceId
181
+ ]);
182
+ const openTab = useCallback(async (path)=>{
183
+ setState((prev)=>{
184
+ if (!prev) return prev;
185
+ const newTabs = prev.openTabs.includes(path) ? prev.openTabs : [
186
+ ...prev.openTabs,
187
+ path
188
+ ];
189
+ return {
190
+ ...prev,
191
+ openTabs: newTabs,
192
+ activeTab: path
193
+ };
194
+ });
195
+ }, []);
196
+ const closeTab = useCallback((path)=>{
197
+ setState((prev)=>{
198
+ if (!prev) return prev;
199
+ const newTabs = prev.openTabs.filter((t)=>t !== path);
200
+ const newActive = prev.activeTab === path ? newTabs[newTabs.length - 1] || null : prev.activeTab;
201
+ return {
202
+ ...prev,
203
+ openTabs: newTabs,
204
+ activeTab: newActive
205
+ };
206
+ });
207
+ }, []);
208
+ const setActiveTab = useCallback((path)=>{
209
+ setState((prev)=>{
210
+ if (!prev) return prev;
211
+ return {
212
+ ...prev,
213
+ activeTab: path
214
+ };
215
+ });
216
+ }, []);
217
+ const saveCursorPosition = useCallback((path, line, column)=>{
218
+ setState((prev)=>{
219
+ if (!prev) return prev;
220
+ return {
221
+ ...prev,
222
+ cursorPositions: {
223
+ ...prev.cursorPositions,
224
+ [path]: {
225
+ line,
226
+ column
227
+ }
228
+ }
229
+ };
230
+ });
231
+ }, []);
232
+ const clearAllTabs = useCallback(()=>{
233
+ setState((prev)=>{
234
+ if (!prev) return prev;
235
+ return {
236
+ ...prev,
237
+ openTabs: [],
238
+ activeTab: null,
239
+ cursorPositions: {},
240
+ scrollPositions: {}
241
+ };
242
+ });
243
+ }, []);
244
+ return {
245
+ state,
246
+ openTab,
247
+ closeTab,
248
+ setActiveTab,
249
+ saveCursorPosition,
250
+ clearAllTabs
251
+ };
252
+ }
253
+ export { getFileType, getMonacoLanguage, supportsPreview } from './types';
254
+ export { getWorkspaceId } from './db';
@@ -1,6 +1,5 @@
1
1
  // Notes workspace - simplified code editor for brainstorming
2
2
  // Not for building apps, just for organizing ideas around APIs
3
-
4
- export * from './types'
5
- export * from './hooks'
6
- export { useModeContext, ModeProvider } from './mode-context'
3
+ export * from './types';
4
+ export * from './hooks';
5
+ export { useModeContext, ModeProvider } from './mode-context';
@@ -0,0 +1,154 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React, { createContext, useContext, useState, useCallback, useEffect, useRef } from 'react';
4
+ const ModeContext = /*#__PURE__*/ createContext(null);
5
+ // Helper to parse notes path from URL hash
6
+ function parseNotesHash() {
7
+ if (typeof window === 'undefined') return {
8
+ isNotes: false,
9
+ filePath: null
10
+ };
11
+ const hash = window.location.hash.slice(1) // Remove #
12
+ ;
13
+ if (hash === 'notes') {
14
+ return {
15
+ isNotes: true,
16
+ filePath: null
17
+ };
18
+ }
19
+ if (hash.startsWith('notes/')) {
20
+ // Decode any encoded characters but path should mostly be plain text
21
+ const filePath = decodeURIComponent(hash.slice(6)) // Remove 'notes/'
22
+ ;
23
+ return {
24
+ isNotes: true,
25
+ filePath: filePath || null
26
+ };
27
+ }
28
+ return {
29
+ isNotes: false,
30
+ filePath: null
31
+ };
32
+ }
33
+ // Helper to update URL hash for notes
34
+ // Only encode special chars that would break the URL, keep slashes readable
35
+ function updateNotesHash(filePath) {
36
+ if (typeof window === 'undefined') return;
37
+ const newHash = filePath ? `#notes/${filePath.replace(/#/g, '%23').replace(/\?/g, '%3F')}` : '#notes';
38
+ window.history.pushState(null, '', newHash);
39
+ }
40
+ export function ModeProvider({ children, defaultMode = 'docs' }) {
41
+ const [mode, setMode] = useState(defaultMode);
42
+ const [activeFilePath, setActiveFilePathState] = useState(null);
43
+ const [streamingContent, setStreamingContent] = useState(null);
44
+ const [notesRefreshTrigger, setNotesRefreshTrigger] = useState(0);
45
+ // Use ref to track mode for callbacks (avoids stale closure issues)
46
+ const modeRef = useRef(defaultMode);
47
+ // Keep ref in sync with state
48
+ useEffect(()=>{
49
+ modeRef.current = mode;
50
+ }, [
51
+ mode
52
+ ]);
53
+ // Initialize from URL hash on mount
54
+ useEffect(()=>{
55
+ const { isNotes, filePath } = parseNotesHash();
56
+ if (isNotes) {
57
+ setMode('notes');
58
+ modeRef.current = 'notes';
59
+ setActiveFilePathState(filePath);
60
+ }
61
+ }, []);
62
+ // Handle browser back/forward navigation
63
+ useEffect(()=>{
64
+ const handlePopState = ()=>{
65
+ const { isNotes, filePath } = parseNotesHash();
66
+ if (isNotes) {
67
+ setMode('notes');
68
+ modeRef.current = 'notes';
69
+ setActiveFilePathState(filePath);
70
+ } else {
71
+ // Default to docs mode when no notes hash
72
+ setMode('docs');
73
+ modeRef.current = 'docs';
74
+ }
75
+ };
76
+ window.addEventListener('popstate', handlePopState);
77
+ return ()=>window.removeEventListener('popstate', handlePopState);
78
+ }, []);
79
+ // Wrapper for setActiveFilePath that also updates URL
80
+ const setActiveFilePath = useCallback((path)=>{
81
+ // Handle the ?t= timestamp suffix for forcing reloads
82
+ const cleanPath = path?.split('?')[0] || null;
83
+ setActiveFilePathState(cleanPath);
84
+ // Update URL if we're in notes mode (use ref to avoid stale closure)
85
+ if (modeRef.current === 'notes') {
86
+ updateNotesHash(cleanPath);
87
+ }
88
+ }, []) // No dependencies - uses ref
89
+ ;
90
+ const switchToNotes = useCallback((openFile)=>{
91
+ const filePath = openFile || null;
92
+ setActiveFilePathState(filePath);
93
+ setMode('notes');
94
+ modeRef.current = 'notes';
95
+ updateNotesHash(filePath);
96
+ }, []);
97
+ const switchToApiClient = useCallback(()=>{
98
+ setMode('api_client');
99
+ modeRef.current = 'api_client';
100
+ // Don't update URL here - let the main API docs component handle it
101
+ }, []);
102
+ const switchToDocs = useCallback(()=>{
103
+ setMode('docs');
104
+ modeRef.current = 'docs';
105
+ // Only clear the hash if it's a notes hash, preserve doc/endpoint hashes
106
+ if (typeof window !== 'undefined') {
107
+ const hash = window.location.hash.slice(1);
108
+ if (hash === 'notes' || hash.startsWith('notes/')) {
109
+ window.history.pushState(null, '', window.location.pathname + window.location.search);
110
+ }
111
+ }
112
+ }, []);
113
+ const appendStreamingContent = useCallback((delta)=>{
114
+ setStreamingContent((prev)=>{
115
+ if (!prev) return prev;
116
+ return {
117
+ ...prev,
118
+ content: prev.content + delta
119
+ };
120
+ });
121
+ }, []);
122
+ const triggerNotesRefresh = useCallback(()=>{
123
+ setNotesRefreshTrigger((prev)=>prev + 1);
124
+ }, []);
125
+ const value = {
126
+ mode,
127
+ activeFilePath,
128
+ setActiveFilePath,
129
+ streamingContent,
130
+ setStreamingContent,
131
+ appendStreamingContent,
132
+ switchToDocs,
133
+ switchToNotes,
134
+ switchToApiClient,
135
+ notesRefreshTrigger,
136
+ triggerNotesRefresh
137
+ };
138
+ return /*#__PURE__*/ _jsx(ModeContext.Provider, {
139
+ value: value,
140
+ children: children
141
+ });
142
+ }
143
+ export function useModeContext() {
144
+ const context = useContext(ModeContext);
145
+ if (!context) {
146
+ throw new Error('useModeContext must be used within a ModeProvider');
147
+ }
148
+ return context;
149
+ }
150
+ // Hook for checking if we're in notes mode
151
+ export function useIsNotesMode() {
152
+ const { mode } = useModeContext();
153
+ return mode === 'notes';
154
+ }
@@ -0,0 +1,53 @@
1
+ // Types for the Notes/Scratchpad feature
2
+ // Simplified from full project management to a brainstorming workspace
3
+ // Helper to detect file type from path
4
+ export function getFileType(path) {
5
+ const ext = path.split('.').pop()?.toLowerCase() || '';
6
+ const typeMap = {
7
+ 'js': 'javascript',
8
+ 'mjs': 'javascript',
9
+ 'jsx': 'javascript',
10
+ 'ts': 'typescript',
11
+ 'tsx': 'typescript',
12
+ 'py': 'python',
13
+ 'go': 'go',
14
+ 'rb': 'ruby',
15
+ 'php': 'php',
16
+ 'sh': 'shell',
17
+ 'bash': 'shell',
18
+ 'curl': 'shell',
19
+ 'md': 'markdown',
20
+ 'mdx': 'markdown',
21
+ 'mmd': 'mermaid',
22
+ 'mermaid': 'mermaid',
23
+ 'json': 'json',
24
+ 'yaml': 'yaml',
25
+ 'yml': 'yaml',
26
+ 'txt': 'text'
27
+ };
28
+ return typeMap[ext] || 'text';
29
+ }
30
+ // Helper to get Monaco language from file type
31
+ export function getMonacoLanguage(path) {
32
+ const type = getFileType(path);
33
+ const languageMap = {
34
+ 'javascript': 'javascript',
35
+ 'typescript': 'typescript',
36
+ 'python': 'python',
37
+ 'go': 'go',
38
+ 'ruby': 'ruby',
39
+ 'php': 'php',
40
+ 'shell': 'shell',
41
+ 'markdown': 'markdown',
42
+ 'mermaid': 'markdown',
43
+ 'json': 'json',
44
+ 'yaml': 'yaml',
45
+ 'text': 'plaintext'
46
+ };
47
+ return languageMap[type];
48
+ }
49
+ // Check if file type supports preview
50
+ export function supportsPreview(path) {
51
+ const type = getFileType(path);
52
+ return type === 'markdown' || type === 'mermaid';
53
+ }