gorsee 0.2.4 → 0.2.6

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 (532) hide show
  1. package/README.md +283 -212
  2. package/dist-pkg/ai/artifact-lifecycle.d.ts +25 -0
  3. package/dist-pkg/ai/artifact-lifecycle.js +98 -0
  4. package/dist-pkg/ai/bridge.d.ts +26 -0
  5. package/dist-pkg/ai/bridge.js +82 -0
  6. package/dist-pkg/ai/bundle.d.ts +46 -0
  7. package/dist-pkg/ai/bundle.js +247 -0
  8. package/dist-pkg/ai/contracts.d.ts +1 -0
  9. package/dist-pkg/ai/contracts.js +1 -0
  10. package/dist-pkg/ai/ide.d.ts +37 -0
  11. package/dist-pkg/ai/ide.js +56 -0
  12. package/dist-pkg/ai/index.d.ts +85 -0
  13. package/dist-pkg/ai/index.js +267 -0
  14. package/dist-pkg/ai/json.d.ts +6 -0
  15. package/dist-pkg/ai/json.js +14 -0
  16. package/dist-pkg/ai/mcp.d.ts +28 -0
  17. package/dist-pkg/ai/mcp.js +173 -0
  18. package/dist-pkg/ai/session-pack.d.ts +28 -0
  19. package/dist-pkg/ai/session-pack.js +57 -0
  20. package/dist-pkg/ai/store.d.ts +67 -0
  21. package/dist-pkg/ai/store.js +174 -0
  22. package/dist-pkg/ai/summary.d.ts +57 -0
  23. package/dist-pkg/ai/summary.js +148 -0
  24. package/dist-pkg/ai/watch.d.ts +15 -0
  25. package/dist-pkg/ai/watch.js +66 -0
  26. package/dist-pkg/auth/action-tokens.d.ts +50 -0
  27. package/dist-pkg/auth/action-tokens.js +79 -0
  28. package/dist-pkg/auth/index.d.ts +70 -0
  29. package/dist-pkg/auth/index.js +199 -0
  30. package/dist-pkg/auth/redis-session-store.d.ts +7 -0
  31. package/dist-pkg/auth/redis-session-store.js +42 -0
  32. package/dist-pkg/auth/signing.d.ts +4 -0
  33. package/dist-pkg/auth/signing.js +33 -0
  34. package/dist-pkg/auth/sqlite-session-store.d.ts +12 -0
  35. package/dist-pkg/auth/sqlite-session-store.js +83 -0
  36. package/dist-pkg/auth/store-utils.d.ts +2 -0
  37. package/dist-pkg/auth/store-utils.js +20 -0
  38. package/dist-pkg/bin/gorsee.js +2 -0
  39. package/dist-pkg/build/backends/experimental-rolldown.d.ts +6 -0
  40. package/dist-pkg/build/backends/experimental-rolldown.js +9 -0
  41. package/dist-pkg/build/backends/register.d.ts +7 -0
  42. package/dist-pkg/build/backends/register.js +24 -0
  43. package/dist-pkg/build/backends/rolldown.d.ts +16 -0
  44. package/dist-pkg/build/backends/rolldown.js +176 -0
  45. package/dist-pkg/build/client-backend.d.ts +31 -0
  46. package/dist-pkg/build/client-backend.js +97 -0
  47. package/dist-pkg/build/client.d.ts +12 -0
  48. package/dist-pkg/build/client.js +93 -0
  49. package/dist-pkg/build/css-modules.d.ts +10 -0
  50. package/dist-pkg/build/css-modules.js +51 -0
  51. package/dist-pkg/build/devalue-parse.d.ts +1 -0
  52. package/dist-pkg/build/devalue-parse.js +1 -0
  53. package/dist-pkg/build/diagnostics.d.ts +20 -0
  54. package/dist-pkg/build/diagnostics.js +35 -0
  55. package/dist-pkg/build/fixtures.d.ts +7 -0
  56. package/dist-pkg/build/fixtures.js +60 -0
  57. package/dist-pkg/build/framework-imports.d.ts +4 -0
  58. package/dist-pkg/build/framework-imports.js +58 -0
  59. package/dist-pkg/build/init.d.ts +1 -0
  60. package/dist-pkg/build/init.js +6 -0
  61. package/dist-pkg/build/manifest.d.ts +3 -0
  62. package/dist-pkg/build/manifest.js +23 -0
  63. package/dist-pkg/build/parity.d.ts +32 -0
  64. package/dist-pkg/build/parity.js +71 -0
  65. package/dist-pkg/build/plugin.d.ts +11 -0
  66. package/dist-pkg/build/plugin.js +8 -0
  67. package/dist-pkg/build/readiness.d.ts +11 -0
  68. package/dist-pkg/build/readiness.js +18 -0
  69. package/dist-pkg/build/route-client-transform.d.ts +17 -0
  70. package/dist-pkg/build/route-client-transform.js +48 -0
  71. package/dist-pkg/build/route-metadata.d.ts +6 -0
  72. package/dist-pkg/build/route-metadata.js +8 -0
  73. package/dist-pkg/build/rpc-transform.d.ts +1 -0
  74. package/dist-pkg/build/rpc-transform.js +44 -0
  75. package/dist-pkg/build/server-bundle.d.ts +4 -0
  76. package/dist-pkg/build/server-bundle.js +261 -0
  77. package/dist-pkg/build/server-strip.d.ts +2 -0
  78. package/dist-pkg/build/server-strip.js +32 -0
  79. package/dist-pkg/build/ssg.d.ts +12 -0
  80. package/dist-pkg/build/ssg.js +36 -0
  81. package/dist-pkg/cli/bun-plugin.d.ts +2 -0
  82. package/dist-pkg/cli/bun-plugin.js +14 -0
  83. package/dist-pkg/cli/canonical-import-rewrite.d.ts +18 -0
  84. package/dist-pkg/cli/canonical-import-rewrite.js +94 -0
  85. package/dist-pkg/cli/canonical-imports.d.ts +8 -0
  86. package/dist-pkg/cli/canonical-imports.js +131 -0
  87. package/dist-pkg/cli/check-ast.d.ts +20 -0
  88. package/dist-pkg/cli/check-ast.js +126 -0
  89. package/dist-pkg/cli/cmd-ai.d.ts +4 -0
  90. package/dist-pkg/cli/cmd-ai.js +290 -0
  91. package/dist-pkg/cli/cmd-build.d.ts +12 -0
  92. package/dist-pkg/cli/cmd-build.js +198 -0
  93. package/dist-pkg/cli/cmd-check.d.ts +25 -0
  94. package/dist-pkg/cli/cmd-check.js +573 -0
  95. package/dist-pkg/cli/cmd-create.d.ts +6 -0
  96. package/dist-pkg/cli/cmd-create.js +600 -0
  97. package/dist-pkg/cli/cmd-deploy.d.ts +6 -0
  98. package/dist-pkg/cli/cmd-deploy.js +381 -0
  99. package/dist-pkg/cli/cmd-dev.d.ts +5 -0
  100. package/dist-pkg/cli/cmd-dev.js +5 -0
  101. package/dist-pkg/cli/cmd-docs.d.ts +50 -0
  102. package/dist-pkg/cli/cmd-docs.js +122 -0
  103. package/dist-pkg/cli/cmd-generate.d.ts +12 -0
  104. package/dist-pkg/cli/cmd-generate.js +320 -0
  105. package/dist-pkg/cli/cmd-migrate.d.ts +7 -0
  106. package/dist-pkg/cli/cmd-migrate.js +42 -0
  107. package/dist-pkg/cli/cmd-routes.d.ts +6 -0
  108. package/dist-pkg/cli/cmd-routes.js +24 -0
  109. package/dist-pkg/cli/cmd-start.d.ts +13 -0
  110. package/dist-pkg/cli/cmd-start.js +32 -0
  111. package/dist-pkg/cli/cmd-test.d.ts +20 -0
  112. package/dist-pkg/cli/cmd-test.js +103 -0
  113. package/dist-pkg/cli/cmd-typegen.d.ts +7 -0
  114. package/dist-pkg/cli/cmd-typegen.js +66 -0
  115. package/dist-pkg/cli/cmd-upgrade.d.ts +38 -0
  116. package/dist-pkg/cli/cmd-upgrade.js +232 -0
  117. package/dist-pkg/cli/context.d.ts +4 -0
  118. package/dist-pkg/cli/context.js +4 -0
  119. package/dist-pkg/cli/framework-md.d.ts +1 -0
  120. package/dist-pkg/cli/framework-md.js +391 -0
  121. package/dist-pkg/cli/index.d.ts +6 -0
  122. package/dist-pkg/cli/index.js +106 -0
  123. package/dist-pkg/cli/release-version.d.ts +2 -0
  124. package/dist-pkg/cli/release-version.js +33 -0
  125. package/dist-pkg/client.d.ts +16 -0
  126. package/dist-pkg/client.js +71 -0
  127. package/dist-pkg/compat.d.ts +1 -0
  128. package/dist-pkg/compat.js +1 -0
  129. package/dist-pkg/compiler/analysis-backend.d.ts +20 -0
  130. package/dist-pkg/compiler/analysis-backend.js +164 -0
  131. package/dist-pkg/compiler/backends/experimental-oxc.d.ts +6 -0
  132. package/dist-pkg/compiler/backends/experimental-oxc.js +9 -0
  133. package/dist-pkg/compiler/backends/oxc.d.ts +16 -0
  134. package/dist-pkg/compiler/backends/oxc.js +198 -0
  135. package/dist-pkg/compiler/backends/register.d.ts +7 -0
  136. package/dist-pkg/compiler/backends/register.js +22 -0
  137. package/dist-pkg/compiler/fixtures.d.ts +2 -0
  138. package/dist-pkg/compiler/fixtures.js +118 -0
  139. package/dist-pkg/compiler/init.d.ts +1 -0
  140. package/dist-pkg/compiler/init.js +6 -0
  141. package/dist-pkg/compiler/module-analysis.d.ts +13 -0
  142. package/dist-pkg/compiler/module-analysis.js +50 -0
  143. package/dist-pkg/compiler/parity.d.ts +35 -0
  144. package/dist-pkg/compiler/parity.js +89 -0
  145. package/dist-pkg/compiler/readiness.d.ts +11 -0
  146. package/dist-pkg/compiler/readiness.js +18 -0
  147. package/dist-pkg/compiler/route-facts.d.ts +34 -0
  148. package/dist-pkg/compiler/route-facts.js +75 -0
  149. package/dist-pkg/content/index.d.ts +27 -0
  150. package/dist-pkg/content/index.js +287 -0
  151. package/dist-pkg/db/index.d.ts +3 -0
  152. package/dist-pkg/db/index.js +6 -0
  153. package/dist-pkg/db/migrate.d.ts +7 -0
  154. package/dist-pkg/db/migrate.js +53 -0
  155. package/dist-pkg/db/postgres.d.ts +29 -0
  156. package/dist-pkg/db/postgres.js +59 -0
  157. package/dist-pkg/db/sqlite.d.ts +10 -0
  158. package/dist-pkg/db/sqlite.js +22 -0
  159. package/dist-pkg/deploy/cloudflare.d.ts +8 -0
  160. package/{src/deploy/cloudflare.ts → dist-pkg/deploy/cloudflare.js} +44 -28
  161. package/dist-pkg/deploy/conformance.d.ts +21 -0
  162. package/dist-pkg/deploy/conformance.js +98 -0
  163. package/dist-pkg/deploy/dockerfile.d.ts +3 -0
  164. package/{src/deploy/dockerfile.ts → dist-pkg/deploy/dockerfile.js} +8 -10
  165. package/dist-pkg/deploy/fly.d.ts +3 -0
  166. package/{src/deploy/fly.ts → dist-pkg/deploy/fly.js} +11 -12
  167. package/dist-pkg/deploy/index.d.ts +6 -0
  168. package/dist-pkg/deploy/index.js +26 -0
  169. package/dist-pkg/deploy/netlify.d.ts +2 -0
  170. package/{src/deploy/netlify.ts → dist-pkg/deploy/netlify.js} +17 -11
  171. package/dist-pkg/deploy/runtime.d.ts +2 -0
  172. package/dist-pkg/deploy/runtime.js +3 -0
  173. package/dist-pkg/deploy/vercel.d.ts +22 -0
  174. package/dist-pkg/deploy/vercel.js +53 -0
  175. package/dist-pkg/dev/error-overlay.d.ts +1 -0
  176. package/{src/dev/error-overlay.ts → dist-pkg/dev/error-overlay.js} +13 -23
  177. package/dist-pkg/dev/hmr.d.ts +30 -0
  178. package/dist-pkg/dev/hmr.js +86 -0
  179. package/dist-pkg/dev/partial-handler.d.ts +9 -0
  180. package/dist-pkg/dev/partial-handler.js +24 -0
  181. package/dist-pkg/dev/request-handler.d.ts +30 -0
  182. package/dist-pkg/dev/request-handler.js +67 -0
  183. package/dist-pkg/dev/watcher.d.ts +6 -0
  184. package/dist-pkg/dev/watcher.js +34 -0
  185. package/dist-pkg/dev.d.ts +11 -0
  186. package/dist-pkg/dev.js +268 -0
  187. package/dist-pkg/env/index.d.ts +3 -0
  188. package/dist-pkg/env/index.js +57 -0
  189. package/dist-pkg/errors/catalog.d.ts +9 -0
  190. package/{src/errors/catalog.ts → dist-pkg/errors/catalog.js} +8 -24
  191. package/dist-pkg/errors/formatter.d.ts +22 -0
  192. package/dist-pkg/errors/formatter.js +43 -0
  193. package/dist-pkg/errors/index.d.ts +2 -0
  194. package/dist-pkg/errors/index.js +2 -0
  195. package/dist-pkg/forms/action.d.ts +15 -0
  196. package/dist-pkg/forms/action.js +20 -0
  197. package/dist-pkg/forms/index.d.ts +4 -0
  198. package/dist-pkg/forms/index.js +12 -0
  199. package/dist-pkg/i18n/index.d.ts +61 -0
  200. package/dist-pkg/i18n/index.js +147 -0
  201. package/dist-pkg/index-client.d.ts +1 -0
  202. package/dist-pkg/index-client.js +1 -0
  203. package/dist-pkg/index.d.ts +32 -0
  204. package/dist-pkg/index.js +79 -0
  205. package/dist-pkg/jsx-runtime-client.d.ts +8 -0
  206. package/dist-pkg/jsx-runtime-client.js +1 -0
  207. package/dist-pkg/jsx-runtime.d.ts +13 -0
  208. package/dist-pkg/jsx-runtime.js +5 -0
  209. package/dist-pkg/jsx-types-html.d.ts +221 -0
  210. package/dist-pkg/jsx-types-html.js +0 -0
  211. package/dist-pkg/log/index.d.ts +8 -0
  212. package/dist-pkg/log/index.js +55 -0
  213. package/dist-pkg/plugins/drizzle.d.ts +16 -0
  214. package/dist-pkg/plugins/drizzle.js +53 -0
  215. package/dist-pkg/plugins/index.d.ts +62 -0
  216. package/dist-pkg/plugins/index.js +159 -0
  217. package/dist-pkg/plugins/lucia.d.ts +26 -0
  218. package/dist-pkg/plugins/lucia.js +63 -0
  219. package/dist-pkg/plugins/prisma.d.ts +14 -0
  220. package/dist-pkg/plugins/prisma.js +60 -0
  221. package/dist-pkg/plugins/resend.d.ts +21 -0
  222. package/dist-pkg/plugins/resend.js +45 -0
  223. package/dist-pkg/plugins/s3.d.ts +18 -0
  224. package/dist-pkg/plugins/s3.js +63 -0
  225. package/dist-pkg/plugins/stripe.d.ts +32 -0
  226. package/dist-pkg/plugins/stripe.js +69 -0
  227. package/dist-pkg/plugins/tailwind.d.ts +15 -0
  228. package/dist-pkg/plugins/tailwind.js +58 -0
  229. package/dist-pkg/prod.d.ts +21 -0
  230. package/dist-pkg/prod.js +347 -0
  231. package/dist-pkg/reactive/computed.d.ts +3 -0
  232. package/dist-pkg/reactive/computed.js +15 -0
  233. package/dist-pkg/reactive/data.d.ts +25 -0
  234. package/dist-pkg/reactive/data.js +56 -0
  235. package/dist-pkg/reactive/diagnostics.d.ts +100 -0
  236. package/dist-pkg/reactive/diagnostics.js +363 -0
  237. package/dist-pkg/reactive/effect.d.ts +3 -0
  238. package/dist-pkg/reactive/effect.js +6 -0
  239. package/dist-pkg/reactive/index.d.ts +9 -0
  240. package/dist-pkg/reactive/index.js +18 -0
  241. package/dist-pkg/reactive/live.d.ts +15 -0
  242. package/dist-pkg/reactive/live.js +70 -0
  243. package/dist-pkg/reactive/optimistic.d.ts +20 -0
  244. package/dist-pkg/reactive/optimistic.js +67 -0
  245. package/dist-pkg/reactive/resource.d.ts +25 -0
  246. package/dist-pkg/reactive/resource.js +153 -0
  247. package/dist-pkg/reactive/signal.d.ts +4 -0
  248. package/dist-pkg/reactive/signal.js +17 -0
  249. package/dist-pkg/reactive/store.d.ts +6 -0
  250. package/dist-pkg/reactive/store.js +19 -0
  251. package/dist-pkg/router/index.d.ts +2 -0
  252. package/dist-pkg/router/index.js +2 -0
  253. package/dist-pkg/router/matcher.d.ts +7 -0
  254. package/dist-pkg/router/matcher.js +40 -0
  255. package/dist-pkg/router/scanner.d.ts +14 -0
  256. package/dist-pkg/router/scanner.js +141 -0
  257. package/dist-pkg/routes/index.d.ts +1 -0
  258. package/dist-pkg/routes/index.js +10 -0
  259. package/dist-pkg/runtime/app-config.d.ts +26 -0
  260. package/dist-pkg/runtime/app-config.js +69 -0
  261. package/dist-pkg/runtime/client.d.ts +3 -0
  262. package/dist-pkg/runtime/client.js +42 -0
  263. package/dist-pkg/runtime/devtools.d.ts +64 -0
  264. package/dist-pkg/runtime/devtools.js +132 -0
  265. package/dist-pkg/runtime/error-boundary.d.ts +6 -0
  266. package/dist-pkg/runtime/error-boundary.js +17 -0
  267. package/dist-pkg/runtime/event-replay.d.ts +3 -0
  268. package/{src/runtime/event-replay.ts → dist-pkg/runtime/event-replay.js} +20 -22
  269. package/dist-pkg/runtime/event-source.d.ts +7 -0
  270. package/dist-pkg/runtime/event-source.js +24 -0
  271. package/dist-pkg/runtime/form.d.ts +24 -0
  272. package/dist-pkg/runtime/form.js +65 -0
  273. package/dist-pkg/runtime/head.d.ts +7 -0
  274. package/dist-pkg/runtime/head.js +90 -0
  275. package/dist-pkg/runtime/html-escape.d.ts +7 -0
  276. package/dist-pkg/runtime/html-escape.js +39 -0
  277. package/dist-pkg/runtime/hydration.d.ts +15 -0
  278. package/dist-pkg/runtime/hydration.js +103 -0
  279. package/dist-pkg/runtime/image.d.ts +49 -0
  280. package/dist-pkg/runtime/image.js +144 -0
  281. package/dist-pkg/runtime/index.d.ts +17 -0
  282. package/dist-pkg/runtime/index.js +59 -0
  283. package/dist-pkg/runtime/island-hydrator.d.ts +12 -0
  284. package/dist-pkg/runtime/island-hydrator.js +74 -0
  285. package/dist-pkg/runtime/island.d.ts +19 -0
  286. package/dist-pkg/runtime/island.js +36 -0
  287. package/dist-pkg/runtime/jsx-runtime.d.ts +12 -0
  288. package/dist-pkg/runtime/jsx-runtime.js +176 -0
  289. package/dist-pkg/runtime/link.d.ts +16 -0
  290. package/dist-pkg/runtime/link.js +47 -0
  291. package/dist-pkg/runtime/project.d.ts +37 -0
  292. package/dist-pkg/runtime/project.js +36 -0
  293. package/dist-pkg/runtime/renderable.d.ts +6 -0
  294. package/dist-pkg/runtime/renderable.js +0 -0
  295. package/dist-pkg/runtime/router.d.ts +47 -0
  296. package/dist-pkg/runtime/router.js +487 -0
  297. package/dist-pkg/runtime/server.d.ts +8 -0
  298. package/dist-pkg/runtime/server.js +71 -0
  299. package/dist-pkg/runtime/stream.d.ts +29 -0
  300. package/dist-pkg/runtime/stream.js +106 -0
  301. package/dist-pkg/runtime/suspense.d.ts +6 -0
  302. package/dist-pkg/runtime/suspense.js +16 -0
  303. package/dist-pkg/runtime/typed-routes.d.ts +24 -0
  304. package/dist-pkg/runtime/typed-routes.js +77 -0
  305. package/dist-pkg/runtime/validated-form.d.ts +40 -0
  306. package/dist-pkg/runtime/validated-form.js +120 -0
  307. package/dist-pkg/security/cors.d.ts +10 -0
  308. package/dist-pkg/security/cors.js +56 -0
  309. package/dist-pkg/security/csrf.d.ts +9 -0
  310. package/dist-pkg/security/csrf.js +53 -0
  311. package/dist-pkg/security/headers.d.ts +11 -0
  312. package/dist-pkg/security/headers.js +31 -0
  313. package/dist-pkg/security/index.d.ts +5 -0
  314. package/dist-pkg/security/index.js +5 -0
  315. package/dist-pkg/security/rate-limit.d.ts +10 -0
  316. package/dist-pkg/security/rate-limit.js +49 -0
  317. package/dist-pkg/security/redis-rate-limit.d.ts +14 -0
  318. package/dist-pkg/security/redis-rate-limit.js +23 -0
  319. package/dist-pkg/server/action.d.ts +21 -0
  320. package/dist-pkg/server/action.js +64 -0
  321. package/dist-pkg/server/cache-utils.d.ts +2 -0
  322. package/dist-pkg/server/cache-utils.js +26 -0
  323. package/dist-pkg/server/cache.d.ts +33 -0
  324. package/dist-pkg/server/cache.js +236 -0
  325. package/dist-pkg/server/compress.d.ts +2 -0
  326. package/dist-pkg/server/compress.js +77 -0
  327. package/dist-pkg/server/endpoint-execution.d.ts +28 -0
  328. package/dist-pkg/server/endpoint-execution.js +37 -0
  329. package/dist-pkg/server/etag.d.ts +3 -0
  330. package/dist-pkg/server/etag.js +18 -0
  331. package/dist-pkg/server/guard.d.ts +16 -0
  332. package/dist-pkg/server/guard.js +45 -0
  333. package/dist-pkg/server/html-shell.d.ts +12 -0
  334. package/dist-pkg/server/html-shell.js +52 -0
  335. package/dist-pkg/server/index.d.ts +36 -0
  336. package/dist-pkg/server/index.js +170 -0
  337. package/dist-pkg/server/jobs.d.ts +41 -0
  338. package/dist-pkg/server/jobs.js +83 -0
  339. package/dist-pkg/server/manifest.d.ts +19 -0
  340. package/dist-pkg/server/manifest.js +36 -0
  341. package/dist-pkg/server/middleware.d.ts +39 -0
  342. package/dist-pkg/server/middleware.js +127 -0
  343. package/dist-pkg/server/mime.d.ts +1 -0
  344. package/{src/server/mime.ts → dist-pkg/server/mime.js} +6 -17
  345. package/dist-pkg/server/not-found.d.ts +6 -0
  346. package/dist-pkg/server/not-found.js +27 -0
  347. package/dist-pkg/server/page-render.d.ts +29 -0
  348. package/dist-pkg/server/page-render.js +70 -0
  349. package/dist-pkg/server/partial-navigation.d.ts +4 -0
  350. package/dist-pkg/server/partial-navigation.js +16 -0
  351. package/dist-pkg/server/pipe.d.ts +9 -0
  352. package/dist-pkg/server/pipe.js +32 -0
  353. package/dist-pkg/server/redis-cache-store.d.ts +10 -0
  354. package/dist-pkg/server/redis-cache-store.js +73 -0
  355. package/dist-pkg/server/redis-client.d.ts +37 -0
  356. package/dist-pkg/server/redis-client.js +37 -0
  357. package/dist-pkg/server/request-policy.d.ts +55 -0
  358. package/dist-pkg/server/request-policy.js +216 -0
  359. package/dist-pkg/server/request-preflight.d.ts +23 -0
  360. package/dist-pkg/server/request-preflight.js +46 -0
  361. package/dist-pkg/server/request-security-policy.d.ts +17 -0
  362. package/dist-pkg/server/request-security-policy.js +34 -0
  363. package/dist-pkg/server/request-surface.d.ts +8 -0
  364. package/dist-pkg/server/request-surface.js +19 -0
  365. package/dist-pkg/server/route-request.d.ts +31 -0
  366. package/dist-pkg/server/route-request.js +112 -0
  367. package/dist-pkg/server/route-response.d.ts +22 -0
  368. package/dist-pkg/server/route-response.js +61 -0
  369. package/dist-pkg/server/rpc-hash.d.ts +2 -0
  370. package/dist-pkg/server/rpc-hash.js +7 -0
  371. package/dist-pkg/server/rpc-protocol.d.ts +22 -0
  372. package/dist-pkg/server/rpc-protocol.js +28 -0
  373. package/dist-pkg/server/rpc-utils.d.ts +2 -0
  374. package/dist-pkg/server/rpc-utils.js +26 -0
  375. package/dist-pkg/server/rpc.d.ts +20 -0
  376. package/dist-pkg/server/rpc.js +147 -0
  377. package/dist-pkg/server/runtime-dispatch.d.ts +19 -0
  378. package/dist-pkg/server/runtime-dispatch.js +67 -0
  379. package/dist-pkg/server/server-execution.d.ts +22 -0
  380. package/dist-pkg/server/server-execution.js +53 -0
  381. package/dist-pkg/server/sqlite-cache-store.d.ts +13 -0
  382. package/dist-pkg/server/sqlite-cache-store.js +88 -0
  383. package/dist-pkg/server/sse.d.ts +9 -0
  384. package/dist-pkg/server/sse.js +34 -0
  385. package/dist-pkg/server/static-file.d.ts +9 -0
  386. package/dist-pkg/server/static-file.js +43 -0
  387. package/dist-pkg/server/ws.d.ts +18 -0
  388. package/dist-pkg/server/ws.js +40 -0
  389. package/dist-pkg/server-entry.d.ts +19 -0
  390. package/dist-pkg/server-entry.js +93 -0
  391. package/dist-pkg/testing/index.d.ts +98 -0
  392. package/dist-pkg/testing/index.js +257 -0
  393. package/dist-pkg/types/index.d.ts +4 -0
  394. package/dist-pkg/types/index.js +4 -0
  395. package/dist-pkg/types/safe-html.d.ts +7 -0
  396. package/dist-pkg/types/safe-html.js +19 -0
  397. package/dist-pkg/types/safe-sql.d.ts +8 -0
  398. package/dist-pkg/types/safe-sql.js +14 -0
  399. package/dist-pkg/types/safe-url.d.ts +7 -0
  400. package/dist-pkg/types/safe-url.js +20 -0
  401. package/dist-pkg/types/user-input.d.ts +9 -0
  402. package/dist-pkg/types/user-input.js +3 -0
  403. package/dist-pkg/unsafe/index.d.ts +12 -0
  404. package/dist-pkg/unsafe/index.js +6 -0
  405. package/package.json +110 -45
  406. package/bin/gorsee.js +0 -2
  407. package/src/auth/index.ts +0 -178
  408. package/src/auth/redis-session-store.ts +0 -46
  409. package/src/auth/sqlite-session-store.ts +0 -98
  410. package/src/auth/store-utils.ts +0 -21
  411. package/src/build/client.ts +0 -139
  412. package/src/build/css-modules.ts +0 -69
  413. package/src/build/devalue-parse.ts +0 -2
  414. package/src/build/manifest.ts +0 -34
  415. package/src/build/route-metadata.ts +0 -12
  416. package/src/build/rpc-transform.ts +0 -62
  417. package/src/build/server-strip.ts +0 -87
  418. package/src/build/ssg.ts +0 -70
  419. package/src/cli/bun-plugin.ts +0 -58
  420. package/src/cli/cmd-build.ts +0 -153
  421. package/src/cli/cmd-check.ts +0 -239
  422. package/src/cli/cmd-create.ts +0 -328
  423. package/src/cli/cmd-deploy.ts +0 -149
  424. package/src/cli/cmd-dev.ts +0 -13
  425. package/src/cli/cmd-docs.ts +0 -152
  426. package/src/cli/cmd-generate.ts +0 -155
  427. package/src/cli/cmd-migrate.ts +0 -53
  428. package/src/cli/cmd-routes.ts +0 -36
  429. package/src/cli/cmd-start.ts +0 -30
  430. package/src/cli/cmd-test.ts +0 -129
  431. package/src/cli/cmd-typegen.ts +0 -93
  432. package/src/cli/cmd-upgrade.ts +0 -143
  433. package/src/cli/context.ts +0 -12
  434. package/src/cli/framework-md.ts +0 -223
  435. package/src/cli/index.ts +0 -107
  436. package/src/client.ts +0 -26
  437. package/src/db/index.ts +0 -2
  438. package/src/db/migrate.ts +0 -89
  439. package/src/db/sqlite.ts +0 -40
  440. package/src/deploy/index.ts +0 -31
  441. package/src/deploy/vercel.ts +0 -94
  442. package/src/dev/hmr.ts +0 -31
  443. package/src/dev/partial-handler.ts +0 -52
  444. package/src/dev/request-handler.ts +0 -127
  445. package/src/dev/watcher.ts +0 -48
  446. package/src/dev.ts +0 -208
  447. package/src/env/index.ts +0 -74
  448. package/src/errors/formatter.ts +0 -63
  449. package/src/errors/index.ts +0 -2
  450. package/src/i18n/index.ts +0 -72
  451. package/src/index-client.ts +0 -4
  452. package/src/index.ts +0 -43
  453. package/src/jsx-runtime-client.ts +0 -13
  454. package/src/jsx-runtime.ts +0 -20
  455. package/src/jsx-types-html.ts +0 -242
  456. package/src/log/index.ts +0 -44
  457. package/src/plugins/drizzle.ts +0 -84
  458. package/src/plugins/index.ts +0 -86
  459. package/src/plugins/lucia.ts +0 -111
  460. package/src/plugins/prisma.ts +0 -85
  461. package/src/plugins/resend.ts +0 -78
  462. package/src/plugins/s3.ts +0 -102
  463. package/src/plugins/stripe.ts +0 -133
  464. package/src/plugins/tailwind.ts +0 -92
  465. package/src/prod.ts +0 -252
  466. package/src/reactive/computed.ts +0 -7
  467. package/src/reactive/effect.ts +0 -7
  468. package/src/reactive/index.ts +0 -7
  469. package/src/reactive/live.ts +0 -97
  470. package/src/reactive/optimistic.ts +0 -83
  471. package/src/reactive/resource.ts +0 -138
  472. package/src/reactive/signal.ts +0 -20
  473. package/src/reactive/store.ts +0 -36
  474. package/src/router/index.ts +0 -2
  475. package/src/router/matcher.ts +0 -53
  476. package/src/router/scanner.ts +0 -206
  477. package/src/runtime/client.ts +0 -28
  478. package/src/runtime/error-boundary.ts +0 -35
  479. package/src/runtime/form.ts +0 -49
  480. package/src/runtime/head.ts +0 -113
  481. package/src/runtime/html-escape.ts +0 -30
  482. package/src/runtime/hydration.ts +0 -95
  483. package/src/runtime/image.ts +0 -48
  484. package/src/runtime/index.ts +0 -12
  485. package/src/runtime/island-hydrator.ts +0 -84
  486. package/src/runtime/island.ts +0 -88
  487. package/src/runtime/jsx-runtime.ts +0 -167
  488. package/src/runtime/link.ts +0 -45
  489. package/src/runtime/project.ts +0 -73
  490. package/src/runtime/router.ts +0 -224
  491. package/src/runtime/server.ts +0 -102
  492. package/src/runtime/stream.ts +0 -182
  493. package/src/runtime/suspense.ts +0 -37
  494. package/src/runtime/typed-routes.ts +0 -26
  495. package/src/runtime/validated-form.ts +0 -106
  496. package/src/security/cors.ts +0 -80
  497. package/src/security/csrf.ts +0 -85
  498. package/src/security/headers.ts +0 -50
  499. package/src/security/index.ts +0 -4
  500. package/src/security/rate-limit.ts +0 -80
  501. package/src/server/action.ts +0 -48
  502. package/src/server/cache-utils.ts +0 -23
  503. package/src/server/cache.ts +0 -125
  504. package/src/server/compress.ts +0 -60
  505. package/src/server/etag.ts +0 -23
  506. package/src/server/guard.ts +0 -69
  507. package/src/server/html-shell.ts +0 -69
  508. package/src/server/index.ts +0 -57
  509. package/src/server/manifest.ts +0 -36
  510. package/src/server/middleware.ts +0 -159
  511. package/src/server/not-found.ts +0 -35
  512. package/src/server/page-render.ts +0 -123
  513. package/src/server/pipe.ts +0 -46
  514. package/src/server/redis-cache-store.ts +0 -87
  515. package/src/server/redis-client.ts +0 -71
  516. package/src/server/request-preflight.ts +0 -45
  517. package/src/server/route-request.ts +0 -72
  518. package/src/server/rpc-hash.ts +0 -17
  519. package/src/server/rpc-utils.ts +0 -27
  520. package/src/server/rpc.ts +0 -177
  521. package/src/server/sqlite-cache-store.ts +0 -109
  522. package/src/server/sse.ts +0 -96
  523. package/src/server/static-file.ts +0 -63
  524. package/src/server/ws.ts +0 -56
  525. package/src/server-entry.ts +0 -36
  526. package/src/testing/index.ts +0 -74
  527. package/src/types/index.ts +0 -4
  528. package/src/types/safe-html.ts +0 -32
  529. package/src/types/safe-sql.ts +0 -28
  530. package/src/types/safe-url.ts +0 -40
  531. package/src/types/user-input.ts +0 -12
  532. package/src/unsafe/index.ts +0 -18
package/README.md CHANGED
@@ -1,267 +1,338 @@
1
1
  # Gorsee.js
2
2
 
3
- Full-stack TypeScript framework with features no one else has.
3
+ AI-first reactive full-stack TypeScript framework for deterministic collaboration between humans and coding agents.
4
+
5
+ Gorsee is not a pet project, not a research toy, and not a bundle of optional recipes. It is a product-grade framework with strict runtime contracts, built-in security boundaries, fine-grained reactivity, and AI-native developer tooling.
6
+
7
+ ## Product Direction
8
+
9
+ Gorsee is built around four non-negotiable product goals:
10
+
11
+ - AI-first development: the framework must be predictable for coding agents, not only ergonomic for humans.
12
+ - Deterministic architecture: one clear way beats many inconsistent ways.
13
+ - Reactive execution: fine-grained reactivity, islands, and minimal client JavaScript over VDOM-heavy legacy models.
14
+ - Built-in guarantees: auth, request policy, cache boundaries, diagnostics, and deploy contracts are framework properties, not scattered ecosystem recipes.
15
+
16
+ Read the strategic docs:
17
+
18
+ - [Product Vision](./docs/PRODUCT_VISION.md)
19
+ - [Framework Doctrine](./docs/FRAMEWORK_DOCTRINE.md)
20
+ - [Security Model](./docs/SECURITY_MODEL.md)
21
+ - [Top-Tier Roadmap](./docs/TOP_TIER_ROADMAP.md)
22
+ - [Canonical Language Plan](./docs/CANONICAL_LANGUAGE_PLAN.md)
23
+ - [Canonical Recipes](./docs/CANONICAL_RECIPES.md)
24
+ - [Canonical Examples](./examples/README.md)
25
+ - [Examples Policy](./docs/EXAMPLES_POLICY.md)
26
+ - [Reactive Runtime](./docs/REACTIVE_RUNTIME.md)
27
+ - [Reactive Benchmarks](./docs/REACTIVE_BENCHMARKS.md)
28
+ - [Reactive Patterns](./docs/REACTIVE_PATTERNS.md)
29
+ - [Reactive Hydration](./docs/REACTIVE_HYDRATION.md)
30
+ - [Reactive Debugging](./docs/REACTIVE_DEBUGGING.md)
31
+ - [Reactive Measurement Gaps](./docs/REACTIVE_MEASUREMENT_GAPS.md)
32
+ - [Benchmark Policy](./docs/BENCHMARK_POLICY.md)
33
+ - [Benchmark Contract](./docs/BENCHMARK_CONTRACT.json)
34
+ - [Benchmark Methodology](./docs/BENCHMARK_METHODOLOGY.md)
35
+ - [SSR Benchmark Proof](./docs/SSR_BENCHMARK_PROOF.md)
36
+ - [DOM Benchmark Proof](./docs/DOM_BENCHMARK_PROOF.md)
37
+ - [Benchmark Artifacts](./docs/BENCHMARK_ARTIFACTS.md)
38
+ - [Benchmark Release Discipline](./docs/BENCHMARK_RELEASE_DISCIPLINE.md)
39
+ - [Build Diagnostics](./docs/BUILD_DIAGNOSTICS.md)
40
+ - [Deploy Contract](./docs/DEPLOY_CONTRACT.json)
41
+ - [Diagnostics Contract](./docs/DIAGNOSTICS_CONTRACT.json)
42
+ - [Runtime Security Contract](./docs/RUNTIME_SECURITY_CONTRACT.json)
43
+ - [Runtime Failures](./docs/RUNTIME_FAILURES.md)
44
+ - [Cache Invalidation](./docs/CACHE_INVALIDATION.md)
45
+ - [Streaming and Hydration Failures](./docs/STREAMING_HYDRATION_FAILURES.md)
46
+ - [Runtime Triage](./docs/RUNTIME_TRIAGE.md)
47
+ - [Starter Failures](./docs/STARTER_FAILURES.md)
48
+ - [AI Workflows](./docs/AI_WORKFLOWS.md)
49
+ - [AI IDE Sync Workflow](./docs/AI_IDE_SYNC_WORKFLOW.md)
50
+ - [AI MCP Workflow](./docs/AI_MCP_WORKFLOW.md)
51
+ - [AI Bridge Workflow](./docs/AI_BRIDGE_WORKFLOW.md)
52
+ - [AI Tool Builders](./docs/AI_TOOL_BUILDERS.md)
53
+ - [AI Surface Stability](./docs/AI_SURFACE_STABILITY.md)
54
+ - [AI Session Packs](./docs/AI_SESSION_PACKS.md)
55
+ - [AI Debugging Workflows](./docs/AI_DEBUGGING_WORKFLOWS.md)
56
+ - [Starter Onboarding](./docs/STARTER_ONBOARDING.md)
57
+ - [Market-Ready Proof](./docs/MARKET_READY_PROOF.md)
58
+ - [Adoption Proof Manifest](./docs/ADOPTION_PROOF_MANIFEST.json)
59
+ - [Release Contract](./docs/RELEASE_CONTRACT.json)
60
+ - [Migration Guide](./docs/MIGRATION_GUIDE.md)
61
+ - [Upgrade Playbook](./docs/UPGRADE_PLAYBOOK.md)
62
+ - [Deploy Target Guide](./docs/DEPLOY_TARGET_GUIDE.md)
63
+ - [First Production Rollout](./docs/FIRST_PRODUCTION_ROLLOUT.md)
64
+ - [Auth / Cache / Data Paths](./docs/AUTH_CACHE_DATA_PATHS.md)
65
+ - [Recipe Boundaries](./docs/RECIPE_BOUNDARIES.md)
66
+ - [Workspace Adoption](./docs/WORKSPACE_ADOPTION.md)
67
+ - [Downstream Testing](./docs/DOWNSTREAM_TESTING.md)
68
+ - [Test Coverage Audit](./docs/TEST_COVERAGE_AUDIT.md)
69
+ - [Team Failures](./docs/TEAM_FAILURES.md)
70
+ - [Maturity Policy](./docs/MATURITY_POLICY.md)
71
+ - [Top-Tier Exit Gate](./docs/TOP_TIER_EXIT_GATE.md)
72
+ - [Dependency Policy](./docs/DEPENDENCY_POLICY.md)
73
+ - [Dependency Contract](./docs/DEPENDENCY_CONTRACT.json)
74
+ - [Compatibility Guardrails](./docs/COMPATIBILITY_GUARDRAILS.md)
75
+ - [Ambiguity Policy](./docs/AMBIGUITY_POLICY.md)
76
+ - [DX Feedback Loop](./docs/DX_FEEDBACK_LOOP.md)
77
+ - [Evidence Policy](./docs/EVIDENCE_POLICY.md)
78
+ - [Roadmap Completion Policy](./docs/ROADMAP_COMPLETION_POLICY.md)
4
79
 
5
80
  ## Quick Start
6
81
 
7
82
  ```bash
8
- bunx gorsee create my-app
83
+ bunx gorsee create my-app --template secure-saas
9
84
  cd my-app
10
85
  bun install
11
86
  bun run dev
12
87
  ```
13
88
 
14
- Open [http://localhost:3000](http://localhost:3000).
89
+ Alternative bootstrap paths:
15
90
 
16
- ## Why Gorsee.js?
91
+ ```bash
92
+ npx create-gorsee my-app
93
+ npm create gorsee@latest my-app
94
+ ```
17
95
 
18
- | Feature | Gorsee.js | Next.js | Nuxt | SvelteKit |
19
- |---------|:---------:|:-------:|:----:|:---------:|
20
- | Islands (partial hydration) | ✅ | ❌ | ❌ | ❌ |
21
- | Reactive WebSocket signals | ✅ | ❌ | ❌ | ❌ |
22
- | Optimistic mutations + rollback | ✅ | ❌ | ❌ | ❌ |
23
- | Server-Sent Events (reactive) | ✅ | manual | manual | manual |
24
- | Route-level cache (SWR) | ✅ | ISR only | partial | ❌ |
25
- | Built-in auth (HMAC sessions) | ✅ | manual | manual | manual |
26
- | Guards (declarative ACL) | ✅ | manual | partial | ❌ |
27
- | Middleware pipe/compose | ✅ | ❌ | ❌ | ❌ |
28
- | Validated forms (client+server) | ✅ | ❌ | ❌ | ❌ |
29
- | Type-safe routes (generated) | ✅ | experimental | partial | ❌ |
30
- | Branded types (SafeSQL/HTML/URL) | ✅ | ❌ | ❌ | ❌ |
96
+ Open [http://localhost:3000](http://localhost:3000).
31
97
 
32
- **Zero-cost architecture** — every feature is a separate module. Don't use it? It's not in your bundle. Base client bundle: ~2-3 KB per route.
98
+ ## Why Gorsee
33
99
 
34
- ## Features
100
+ Most modern frameworks optimize for flexibility, historical compatibility, or ecosystem breadth.
101
+ Gorsee optimizes for deterministic delivery by humans and AI agents working in the same codebase.
35
102
 
36
- ### Islands partial hydration
103
+ What that means in practice:
37
104
 
38
- ```tsx
39
- import { island, createSignal } from "gorsee/client"
105
+ - strict client/server import boundaries
106
+ - explicit request classification and security policy
107
+ - fail-closed production origin model
108
+ - small reactive runtime without VDOM baggage
109
+ - route-scoped hydration through islands
110
+ - optimized image rendering with remote allowlists, srcset generation, and format-aware loaders
111
+ - structured form actions with field/form error handling and typed coercion
112
+ - explicit data queries and mutations with keyed invalidation over the reactive runtime
113
+ - typed route builders with params, query strings, and reusable route definitions
114
+ - locale negotiation, fallback dictionaries, Intl formatting, and locale-aware route helpers
115
+ - content collections with nested frontmatter parsing, schema validation, excerpts, block-scalar support, and locale-aware querying
116
+ - deterministic plugin platform with capabilities, dependency ordering, config validation, and conformance testing
117
+ - AI diagnostics, saved reactive-trace ingestion, context bundles, IDE projections, and MCP integration built into the framework lifecycle
118
+ - CLI enforcement through `gorsee check`, release gates, deploy contracts, and policy docs
119
+ - machine-readable public API stability enforcement through `bun run api:policy`
120
+ - machine-readable adoption and market-ready proof enforcement through `bun run adoption:policy`
121
+ - machine-readable dependency/runtime support enforcement through `bun run dependency:policy`
122
+ - machine-readable deploy/runtime profile enforcement through `bun run deploy:policy`
123
+ - machine-readable benchmark evidence enforcement through `bun run benchmarks:policy`
124
+ - machine-readable runtime/security contract enforcement through `bun run runtime:security:policy`
125
+ - machine-readable diagnostics and triage contract enforcement through `bun run runtime:policy`
126
+ - critical runtime/release regression enforcement through `bun run critical:surface` and `bun run test:critical-surface`
127
+ - repository-level coverage enforcement through `bun run coverage:audit`
40
128
 
41
- // Only THIS component gets JavaScript. Rest of the page = zero JS.
42
- export default island(function LikeButton({ postId }) {
43
- const [count, setCount] = createSignal(0)
44
- return <button on:click={() => setCount(c => c + 1)}>Like {count()}</button>
45
- })
46
- ```
129
+ Critical Surface Suite:
47
130
 
48
- ### Reactive WebSocket
131
+ - `bun run critical:surface` keeps the documented regression gate aligned across package scripts, CI, support claims, and coverage docs.
132
+ - `bun run test:critical-surface` runs the highest-risk runtime/security/reactive/AI/publish regressions that must fail closed before release.
49
133
 
50
- ```tsx
51
- import { createLive } from "gorsee/client"
52
-
53
- function StockPrice() {
54
- const { value: price, connected } = createLive({
55
- url: "wss://api.example.com/btc",
56
- initialValue: 0,
57
- reconnect: true, // auto-reconnect with exponential backoff
58
- })
59
- return <span>{connected() ? price() : "..."}</span>
60
- }
61
- ```
134
+ ## Core Ideas
62
135
 
63
- ### Optimistic Mutations
136
+ ### AI-first development
64
137
 
65
- ```tsx
66
- import { createSignal, createMutation } from "gorsee/client"
138
+ The framework must be easy for an agent to reason about:
67
139
 
68
- const [todos, setTodos] = createSignal(["Buy milk"])
69
- const addTodo = createMutation({
70
- mutationFn: async (text) => fetch("/api/todos", { method: "POST", body: text }),
71
- })
140
+ - deterministic project layout
141
+ - narrow public surfaces
142
+ - explicit runtime contracts
143
+ - strong defaults over open-ended composition
144
+ - observability artifacts that can be consumed by tools and models
72
145
 
73
- // UI updates instantly. Rolls back automatically on server error.
74
- await addTodo.optimistic(todos, setTodos, (list, text) => [...list, text], "New todo")
75
- ```
146
+ ### Reactive-first runtime
76
147
 
77
- ### Built-in Auth
148
+ Gorsee follows a fine-grained reactive model closer to Solid than to React:
78
149
 
79
- ```tsx
80
- import { createAuth } from "gorsee/server"
150
+ - signals instead of VDOM diffing
151
+ - direct SSR rendering
152
+ - explicit hydration model
153
+ - islands for minimal client JavaScript
81
154
 
82
- const auth = createAuth({ secret: process.env.SESSION_SECRET })
155
+ ```tsx
156
+ import { island, createSignal } from "gorsee/client"
83
157
 
84
- // In middleware:
85
- export default auth.middleware // parses session
86
- export default auth.requireAuth // redirects to /login if not authenticated
158
+ export default island(function LikeButton() {
159
+ const [count, setCount] = createSignal(0)
160
+ return <button on:click={() => setCount((value) => value + 1)}>Like {count()}</button>
161
+ })
87
162
  ```
88
163
 
89
- ### File-Based Routing
164
+ ### Built-in guarantees
90
165
 
91
- ```
92
- routes/
93
- index.tsx → /
94
- about.tsx → /about
95
- users/[id].tsx → /users/:id
96
- blog/[...slug].tsx → /blog/*
97
- (admin)/
98
- dashboard.tsx → /dashboard (group — no /admin prefix)
99
- _layout.tsx → wraps all pages
100
- _middleware.ts → runs before all routes
101
- _error.tsx → error boundary
102
- _loading.tsx → loading state
103
- 404.tsx → custom 404
104
- ```
166
+ Capabilities are not bolt-on features. They are part of the framework contract:
105
167
 
106
- ### Middleware Pipe
168
+ - auth and session stores
169
+ - request policy and security validation
170
+ - route cache with explicit intent
171
+ - type-safe route generation
172
+ - validated forms
173
+ - deploy adapters with provider assumptions
174
+ - AI observability and bridge tooling
107
175
 
108
- ```tsx
109
- import { pipe, forPaths, forMethods } from "gorsee/server"
110
- import { cors } from "gorsee/security"
176
+ ## Canonical Route Grammar
111
177
 
112
- export default pipe(
113
- forPaths(["/api"], cors({ origin: "https://app.com" })),
114
- forMethods(["POST"], rateLimit(100, "1m")),
115
- auth.middleware,
116
- )
117
- ```
178
+ For greenfield route modules, prefer this structure:
118
179
 
119
- ## CLI Commands
180
+ - `default export` for page UI
181
+ - `load` for route data reads
182
+ - `action` for page-bound mutations
183
+ - `cache` for declarative cache policy
184
+ - `middleware` for cross-cutting request policy
185
+ - `GET` / `POST` / other method handlers for raw HTTP endpoints
186
+ - route contracts from `gorsee/routes` for typed links and navigation
120
187
 
121
- | Command | Description |
122
- |---------|-------------|
123
- | `gorsee create <name>` | Scaffold new project |
124
- | `gorsee dev` | Dev server with HMR |
125
- | `gorsee build` | Production build |
126
- | `gorsee start` | Production server |
127
- | `gorsee check` | Type check + safety audit |
128
- | `gorsee routes` | Show route table |
129
- | `gorsee generate <entity>` | CRUD scaffold |
130
- | `gorsee typegen` | Generate typed routes |
131
- | `gorsee migrate` | Run DB migrations |
188
+ Compatibility note: `loader` remains supported as a migration alias, but canonical route modules should use `load`.
132
189
 
133
- ## Recommended Imports
190
+ ## Public Entrypoints
134
191
 
135
192
  ```tsx
136
- // Route components, islands, navigation, forms, browser-safe reactivity
137
193
  import { createSignal, island, Link, Head } from "gorsee/client"
138
-
139
- // Middleware, loaders, auth, db, security, logging
140
- import { createAuth, createDB, cors, log } from "gorsee/server"
194
+ import { createAuth } from "gorsee/auth"
195
+ import { createDB } from "gorsee/db"
196
+ import { cors } from "gorsee/security"
197
+ import { log } from "gorsee/log"
198
+ import { defineForm, useFormAction } from "gorsee/forms"
199
+ import { createTypedRoute } from "gorsee/routes"
141
200
  ```
142
201
 
143
- - Use `gorsee/client` for route components and anything that must stay browser-safe.
144
- - Use `gorsee/server` for loaders, middleware, API routes, auth, db, security, env, and logging.
145
- - Keep root `gorsee` only for backward compatibility. New code should not depend on it.
146
- - If you need explicit legacy semantics during migration, use `gorsee/compat`.
147
-
148
- ## Adapter Utilities
149
-
150
202
  ```tsx
151
- import {
152
- createAuth,
153
- createMemorySessionStore,
154
- createNamespacedSessionStore,
155
- createRedisSessionStore,
156
- createSQLiteSessionStore,
157
- createMemoryCacheStore,
158
- createNamespacedCacheStore,
159
- createRedisCacheStore,
160
- createSQLiteCacheStore,
161
- createMemoryRPCRegistry,
162
- createScopedRPCRegistry,
163
- } from "gorsee/server"
164
-
165
- const sharedSessions = createMemorySessionStore()
166
- const tenantSessions = createNamespacedSessionStore(sharedSessions, "tenant-a")
167
- const auth = createAuth({ secret: process.env.SESSION_SECRET!, store: tenantSessions })
168
-
169
- const sharedCache = createMemoryCacheStore()
170
- const tenantCache = createNamespacedCacheStore(sharedCache, "tenant-a")
171
-
172
- const sessionStore = createSQLiteSessionStore("./data/auth.sqlite")
173
- const cacheStore = createSQLiteCacheStore("./data/cache.sqlite")
174
-
175
- const redisSessionStore = createRedisSessionStore(redisClient, { prefix: "gorsee:sessions" })
176
- const redisCacheStore = createRedisCacheStore(redisClient, { prefix: "gorsee:cache" })
177
-
178
- const sharedRPC = createMemoryRPCRegistry()
179
- const tenantRPC = createScopedRPCRegistry(sharedRPC, "tenant-a")
203
+ const userRoute = createTypedRoute("/users/[id]")
204
+
205
+ <Link href={userRoute} params={{ id: "42" }}>Profile</Link>
180
206
  ```
181
207
 
182
- - `createNamespacedSessionStore` isolates auth sessions over one shared backing store.
183
- - `createNamespacedCacheStore` isolates route cache keys per app, tenant, or test worker.
184
- - `createSQLiteSessionStore` and `createSQLiteCacheStore` provide persistent local adapters without adding external infrastructure.
185
- - `createSQLiteSessionStore` prunes expired rows automatically on hot paths and also exposes `deleteExpired()` for explicit maintenance.
186
- - `createSQLiteCacheStore` supports retention policy via `maxEntryAgeMs` and also exposes `deleteExpired()` for explicit cache pruning.
187
- - `createRedisSessionStore` and `createRedisCacheStore` work with any client that supports `get/set/del/keys`, so you can plug in `redis` or `ioredis` without framework lock-in.
188
- - RPC handlers remain intentionally process-local. The stable extension point is injected request-time registry resolution, not pretending closures can live in Redis.
189
- - `createScopedRPCRegistry` isolates RPC registrations without forking the entire server runtime.
208
+ - Use `gorsee/client` for route components and browser-safe APIs.
209
+ - Use `gorsee/server` for `load`, `action`, middleware, API routes, cache, request policy, and server runtime orchestration.
210
+ - Prefer scoped stable subpaths such as `gorsee/auth`, `gorsee/db`, `gorsee/security`, `gorsee/ai`, `gorsee/forms`, `gorsee/routes`, `gorsee/i18n`, and `gorsee/content` when the concern is already clear.
211
+ - Keep root `gorsee` only for compatibility. New code should not depend on it.
212
+ - Use `gorsee/compat` only for explicit legacy migration semantics.
213
+ - `Link` prefetch is explicit: `prefetch={true}` is eager, `prefetch="hover"` is pointer/focus triggered, and `prefetch="viewport"` is IntersectionObserver-driven. Links without `prefetch` do not prefetch implicitly.
190
214
 
191
- ## Redis Recipes
215
+ ## Package Distribution
192
216
 
193
- ### node-redis
217
+ - workspace development stays Bun-first and source-first
218
+ - production build output includes `dist/prod.js` for Bun, `dist/prod-node.js` for Node, and matching Bun/Node server-handler entries for adapter runtimes
219
+ - process deploy generators keep Bun-first defaults while also supporting explicit Node runtime profiles for Docker and Fly
220
+ - published packages are normalized at `npm pack` / publish time to compiled `dist-pkg/*.js` and `dist-pkg/*.d.ts` artifacts
221
+ - packed `gorsee` validates CLI install, starter creation, `check`, `typegen`, `docs`, `build`, and deploy generator paths before release
222
+ - published runtime dependencies are treated as product surface and must stay pinned exactly
194
223
 
195
- ```tsx
196
- import { createClient } from "redis"
197
- import {
198
- createAuth,
199
- createRedisSessionStore,
200
- createRedisCacheStore,
201
- createNodeRedisLikeClient,
202
- routeCache,
203
- } from "gorsee/server"
204
-
205
- const redis = createClient({ url: process.env.REDIS_URL })
206
- await redis.connect()
207
- const redisClient = createNodeRedisLikeClient(redis)
208
-
209
- const auth = createAuth({
210
- secret: process.env.SESSION_SECRET!,
211
- store: createRedisSessionStore(redisClient, { prefix: "app:sessions" }),
212
- })
224
+ ## Starter Templates
213
225
 
214
- export const cache = routeCache({
215
- maxAge: 60,
216
- staleWhileRevalidate: 300,
217
- store: createRedisCacheStore(redisClient, {
218
- prefix: "app:cache",
219
- maxEntryAgeMs: 360_000,
220
- }),
221
- })
222
- ```
226
+ `gorsee create` ships with one generic baseline and four first-party product starters:
223
227
 
224
- ### ioredis
228
+ - `basic` for the minimal canonical scaffold
229
+ - `secure-saas` for authenticated SaaS apps with protected route groups
230
+ - `content-site` for public content and marketing sites
231
+ - `agent-aware-ops` for internal tools with AI-first workflows enabled
232
+ - `workspace-monorepo` for workspace layouts with one app package and one shared package
225
233
 
226
- ```tsx
227
- import Redis from "ioredis"
228
- import {
229
- createAuth,
230
- createRedisSessionStore,
231
- createRedisCacheStore,
232
- createIORedisLikeClient,
233
- routeCache,
234
- } from "gorsee/server"
235
-
236
- const redis = new Redis(process.env.REDIS_URL!)
237
- const redisClient = createIORedisLikeClient(redis)
238
-
239
- const auth = createAuth({
240
- secret: process.env.SESSION_SECRET!,
241
- store: createRedisSessionStore(redisClient, { prefix: "app:sessions" }),
242
- })
234
+ Examples:
243
235
 
244
- export const cache = routeCache({
245
- maxAge: 60,
246
- staleWhileRevalidate: 300,
247
- store: createRedisCacheStore(redisClient, {
248
- prefix: "app:cache",
249
- maxEntryAgeMs: 360_000,
250
- }),
251
- })
236
+ ```bash
237
+ bunx gorsee create my-saas --template secure-saas
238
+ bunx gorsee create my-site --template content-site
239
+ bunx gorsee create my-ops --template agent-aware-ops
240
+ bunx gorsee create my-workspace --template workspace-monorepo
241
+ npx create-gorsee my-app
242
+ npm create gorsee@latest my-app
252
243
  ```
253
244
 
254
- ### Notes
255
-
256
- - For multi-instance deployments, keep the same Redis prefixes across all app replicas.
257
- - Session expiry is enforced by store TTL and validated again by `createAuth()`.
258
- - Cache retention is controlled by `maxEntryAgeMs`; `routeCache()` still decides HIT/STALE/MISS at request time.
259
- - `createNodeRedisLikeClient()` and `createIORedisLikeClient()` let you pass real Redis SDK clients without writing framework-specific glue.
260
-
261
- ## Requirements
245
+ ## CLI
262
246
 
263
- - [Bun](https://bun.sh) >= 1.0
264
-
265
- ## License
266
-
267
- MIT
247
+ | Command | Description |
248
+ |---------|-------------|
249
+ | `gorsee create <name> [--template <name>]` | Scaffold a new project from the canonical starter set |
250
+ | `gorsee dev` | Start development server with HMR |
251
+ | `gorsee build` | Build client and server output |
252
+ | `gorsee start` | Start production runtime |
253
+ | `gorsee start --runtime node` | Start the built Node production runtime entry |
254
+ | `gorsee check [--rewrite-imports] [--rewrite-loaders]` | Type, structure, TSX contract, and safety audit, with optional canonical autofix |
255
+ | `gorsee routes` | Show route table |
256
+ | `gorsee generate <entity>` | Generate CRUD scaffold with typed routes, validated forms, and inferred `memory|sqlite|postgres` data mode |
257
+ | `gorsee docs --format json --contracts` | Emit machine-readable route/docs contract artifact |
258
+ | `gorsee upgrade --rewrite-imports --check --report docs/upgrade-report.json` | Audit migration drift, rewrite obvious import/loader aliases, and write a structured upgrade report |
259
+ | `gorsee typegen` | Generate typed routes |
260
+ | `gorsee migrate` | Run database migrations |
261
+ | `gorsee deploy` | Generate deploy config for supported targets, with `--runtime bun|node` on process-based adapters |
262
+ | `gorsee ai` | AI diagnostics, bridge, IDE sync, export, and MCP tooling |
263
+
264
+ Runtime debugging surface:
265
+
266
+ - `createRuntimeDevtoolsSnapshot()` for a versioned inspector snapshot spanning router, hydration, and reactive diagnostics
267
+ - `renderRuntimeDevtoolsHTML()` / `renderRuntimeDevtoolsOverlay()` for a human-readable devtools view built from the same canonical artifacts
268
+
269
+ Migration ergonomics:
270
+
271
+ - `gorsee check --rewrite-imports --rewrite-loaders` can normalize obvious scoped-import and `loader -> load` drift before the audit runs.
272
+ - `gorsee upgrade --rewrite-imports --check --report docs/upgrade-report.json` is the canonical migration cleanup flow.
273
+
274
+ ## Product Standards
275
+
276
+ - Production behavior must remain deterministic across dev and prod.
277
+ - Security-sensitive behavior must be explicit, testable, and fail-closed.
278
+ - New APIs must strengthen the framework contract, not widen ambiguity.
279
+ - Performance claims must be backed by benchmarks and reproducible examples.
280
+ - Gorsee is developed as a mature product. Regressions in policy, runtime contracts, or release discipline are product failures.
281
+
282
+ ## Additional References
283
+
284
+ - [API Stability Policy](./docs/API_STABILITY.md)
285
+ - [AI Artifact Contract](./docs/AI_ARTIFACT_CONTRACT.md)
286
+ - [Reactive Runtime](./docs/REACTIVE_RUNTIME.md)
287
+ - [Reactive Benchmarks](./docs/REACTIVE_BENCHMARKS.md)
288
+ - [Reactive Patterns](./docs/REACTIVE_PATTERNS.md)
289
+ - [Reactive Hydration](./docs/REACTIVE_HYDRATION.md)
290
+ - [Reactive Debugging](./docs/REACTIVE_DEBUGGING.md)
291
+ - [Reactive Measurement Gaps](./docs/REACTIVE_MEASUREMENT_GAPS.md)
292
+ - [Benchmark Policy](./docs/BENCHMARK_POLICY.md)
293
+ - [Benchmark Methodology](./docs/BENCHMARK_METHODOLOGY.md)
294
+ - [SSR Benchmark Proof](./docs/SSR_BENCHMARK_PROOF.md)
295
+ - [DOM Benchmark Proof](./docs/DOM_BENCHMARK_PROOF.md)
296
+ - [Benchmark Artifacts](./docs/BENCHMARK_ARTIFACTS.md)
297
+ - [Benchmark Release Discipline](./docs/BENCHMARK_RELEASE_DISCIPLINE.md)
298
+ - [Build Diagnostics](./docs/BUILD_DIAGNOSTICS.md)
299
+ - [Runtime Failures](./docs/RUNTIME_FAILURES.md)
300
+ - [Cache Invalidation](./docs/CACHE_INVALIDATION.md)
301
+ - [Streaming and Hydration Failures](./docs/STREAMING_HYDRATION_FAILURES.md)
302
+ - [Runtime Triage](./docs/RUNTIME_TRIAGE.md)
303
+ - [Starter Failures](./docs/STARTER_FAILURES.md)
304
+ - [AI Workflows](./docs/AI_WORKFLOWS.md)
305
+ - [AI IDE Sync Workflow](./docs/AI_IDE_SYNC_WORKFLOW.md)
306
+ - [AI MCP Workflow](./docs/AI_MCP_WORKFLOW.md)
307
+ - [AI Bridge Workflow](./docs/AI_BRIDGE_WORKFLOW.md)
308
+ - [AI Tool Builders](./docs/AI_TOOL_BUILDERS.md)
309
+ - [AI Surface Stability](./docs/AI_SURFACE_STABILITY.md)
310
+ - [AI Session Packs](./docs/AI_SESSION_PACKS.md)
311
+ - [AI Debugging Workflows](./docs/AI_DEBUGGING_WORKFLOWS.md)
312
+ - [Starter Onboarding](./docs/STARTER_ONBOARDING.md)
313
+ - [Migration Guide](./docs/MIGRATION_GUIDE.md)
314
+ - [Upgrade Playbook](./docs/UPGRADE_PLAYBOOK.md)
315
+ - [Deploy Target Guide](./docs/DEPLOY_TARGET_GUIDE.md)
316
+ - [First Production Rollout](./docs/FIRST_PRODUCTION_ROLLOUT.md)
317
+ - [Auth / Cache / Data Paths](./docs/AUTH_CACHE_DATA_PATHS.md)
318
+ - [Recipe Boundaries](./docs/RECIPE_BOUNDARIES.md)
319
+ - [Workspace Adoption](./docs/WORKSPACE_ADOPTION.md)
320
+ - [Downstream Testing](./docs/DOWNSTREAM_TESTING.md)
321
+ - [Team Failures](./docs/TEAM_FAILURES.md)
322
+ - [Maturity Policy](./docs/MATURITY_POLICY.md)
323
+ - [Dependency Policy](./docs/DEPENDENCY_POLICY.md)
324
+ - [Compatibility Guardrails](./docs/COMPATIBILITY_GUARDRAILS.md)
325
+ - [Ambiguity Policy](./docs/AMBIGUITY_POLICY.md)
326
+ - [DX Feedback Loop](./docs/DX_FEEDBACK_LOOP.md)
327
+ - [Evidence Policy](./docs/EVIDENCE_POLICY.md)
328
+ - [Roadmap Completion Policy](./docs/ROADMAP_COMPLETION_POLICY.md)
329
+ - [Canonical Recipes](./docs/CANONICAL_RECIPES.md)
330
+ - [Canonical Examples](./examples/README.md)
331
+ - [Examples Policy](./docs/EXAMPLES_POLICY.md)
332
+ - [Support Matrix](./docs/SUPPORT_MATRIX.md)
333
+ - [Deprecation Policy](./docs/DEPRECATION_POLICY.md)
334
+ - [Secure Patterns](./docs/SECURE_PATTERNS.md)
335
+ - [Adapter Security](./docs/ADAPTER_SECURITY.md)
336
+ - [CI Policy](./docs/CI_POLICY.md)
337
+ - [Release Policy](./docs/RELEASE_POLICY.md)
338
+ - [Release Checklist](./docs/RELEASE_CHECKLIST.md)
@@ -0,0 +1,25 @@
1
+ export interface ArtifactLifecycleEventInput {
2
+ cwd: string;
3
+ source: "deploy" | "cli" | "build";
4
+ phase: "deploy" | "release" | "build";
5
+ kind: string;
6
+ severity: "info" | "warn" | "error";
7
+ message: string;
8
+ code?: string;
9
+ data?: Record<string, unknown>;
10
+ }
11
+ export declare function writeArtifactLifecycleEvent(input: ArtifactLifecycleEventInput): Promise<void>;
12
+ export declare function writeArtifactSuccessPack(cwd: string): Promise<void>;
13
+ export declare function writeArtifactFailurePack(cwd: string, source: "deploy" | "cli" | "build", kind: string, code: string, message: string): Promise<void>;
14
+ export declare function runArtifactLifecycleStep<T>(input: {
15
+ cwd: string;
16
+ source: "deploy" | "cli" | "build";
17
+ phase: "deploy" | "release" | "build";
18
+ step: string;
19
+ version?: string;
20
+ code?: string;
21
+ startMessage: string;
22
+ finishMessage: string;
23
+ data?: Record<string, unknown>;
24
+ run: () => Promise<T>;
25
+ }): Promise<T>;