@stacksjs/defaults 0.70.207 → 0.70.208

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 (408) hide show
  1. package/TODO.md +21 -0
  2. package/ai/AGENTS.md +79 -0
  3. package/ai/README.md +45 -0
  4. package/ai/claude/launch.json +12 -0
  5. package/ai/skills/stacks-actions/SKILL.md +128 -0
  6. package/ai/skills/stacks-ai/SKILL.md +276 -0
  7. package/ai/skills/stacks-alias/SKILL.md +94 -0
  8. package/ai/skills/stacks-analytics/SKILL.md +91 -0
  9. package/ai/skills/stacks-api/SKILL.md +738 -0
  10. package/ai/skills/stacks-arrays/SKILL.md +277 -0
  11. package/ai/skills/stacks-auth/SKILL.md +422 -0
  12. package/ai/skills/stacks-auto-imports/SKILL.md +138 -0
  13. package/ai/skills/stacks-brandkit/SKILL.md +811 -0
  14. package/ai/skills/stacks-browse/SKILL.md +127 -0
  15. package/ai/skills/stacks-browse/scripts/browse.ts +492 -0
  16. package/ai/skills/stacks-browser/SKILL.md +145 -0
  17. package/ai/skills/stacks-buddy/SKILL.md +676 -0
  18. package/ai/skills/stacks-build/SKILL.md +163 -0
  19. package/ai/skills/stacks-cache/SKILL.md +125 -0
  20. package/ai/skills/stacks-calendar/SKILL.md +113 -0
  21. package/ai/skills/stacks-chat/SKILL.md +371 -0
  22. package/ai/skills/stacks-cli/SKILL.md +112 -0
  23. package/ai/skills/stacks-cloud/SKILL.md +192 -0
  24. package/ai/skills/stacks-cms/SKILL.md +217 -0
  25. package/ai/skills/stacks-collections/SKILL.md +82 -0
  26. package/ai/skills/stacks-commerce/SKILL.md +114 -0
  27. package/ai/skills/stacks-composables/SKILL.md +161 -0
  28. package/ai/skills/stacks-config/SKILL.md +144 -0
  29. package/ai/skills/stacks-configuration/SKILL.md +154 -0
  30. package/ai/skills/stacks-cron/SKILL.md +123 -0
  31. package/ai/skills/stacks-crosswind/SKILL.md +190 -0
  32. package/ai/skills/stacks-dashboard/SKILL.md +173 -0
  33. package/ai/skills/stacks-database/SKILL.md +286 -0
  34. package/ai/skills/stacks-datetime/SKILL.md +269 -0
  35. package/ai/skills/stacks-dependencies/SKILL.md +111 -0
  36. package/ai/skills/stacks-deploy/SKILL.md +102 -0
  37. package/ai/skills/stacks-design-brutalist/SKILL.md +110 -0
  38. package/ai/skills/stacks-design-minimalist/SKILL.md +115 -0
  39. package/ai/skills/stacks-design-output/SKILL.md +55 -0
  40. package/ai/skills/stacks-design-soft/SKILL.md +156 -0
  41. package/ai/skills/stacks-design-taste/SKILL.md +1012 -0
  42. package/ai/skills/stacks-design-taste-codex/SKILL.md +294 -0
  43. package/ai/skills/stacks-desktop/SKILL.md +78 -0
  44. package/ai/skills/stacks-development/SKILL.md +298 -0
  45. package/ai/skills/stacks-dns/SKILL.md +149 -0
  46. package/ai/skills/stacks-docs/SKILL.md +109 -0
  47. package/ai/skills/stacks-email/SKILL.md +236 -0
  48. package/ai/skills/stacks-enums/SKILL.md +100 -0
  49. package/ai/skills/stacks-env/SKILL.md +181 -0
  50. package/ai/skills/stacks-error-handling/SKILL.md +137 -0
  51. package/ai/skills/stacks-events/SKILL.md +228 -0
  52. package/ai/skills/stacks-faker/SKILL.md +158 -0
  53. package/ai/skills/stacks-git/SKILL.md +158 -0
  54. package/ai/skills/stacks-guard/SKILL.md +98 -0
  55. package/ai/skills/stacks-health/SKILL.md +75 -0
  56. package/ai/skills/stacks-http/SKILL.md +316 -0
  57. package/ai/skills/stacks-i18n/SKILL.md +198 -0
  58. package/ai/skills/stacks-image-to-code/SKILL.md +629 -0
  59. package/ai/skills/stacks-imagegen-mobile/SKILL.md +1474 -0
  60. package/ai/skills/stacks-imagegen-web/SKILL.md +998 -0
  61. package/ai/skills/stacks-investigate/SKILL.md +119 -0
  62. package/ai/skills/stacks-jobs/SKILL.md +136 -0
  63. package/ai/skills/stacks-lint/SKILL.md +184 -0
  64. package/ai/skills/stacks-listeners/SKILL.md +99 -0
  65. package/ai/skills/stacks-logging/SKILL.md +78 -0
  66. package/ai/skills/stacks-mail/SKILL.md +120 -0
  67. package/ai/skills/stacks-middleware/SKILL.md +249 -0
  68. package/ai/skills/stacks-migrations/SKILL.md +105 -0
  69. package/ai/skills/stacks-models/SKILL.md +267 -0
  70. package/ai/skills/stacks-new-feature/SKILL.md +206 -0
  71. package/ai/skills/stacks-notifications/SKILL.md +210 -0
  72. package/ai/skills/stacks-objects/SKILL.md +205 -0
  73. package/ai/skills/stacks-office-hours/SKILL.md +134 -0
  74. package/ai/skills/stacks-orm/SKILL.md +342 -0
  75. package/ai/skills/stacks-path/SKILL.md +118 -0
  76. package/ai/skills/stacks-payments/SKILL.md +373 -0
  77. package/ai/skills/stacks-plan-review/SKILL.md +152 -0
  78. package/ai/skills/stacks-plugins/SKILL.md +149 -0
  79. package/ai/skills/stacks-push/SKILL.md +376 -0
  80. package/ai/skills/stacks-query-builder/SKILL.md +128 -0
  81. package/ai/skills/stacks-queue/SKILL.md +559 -0
  82. package/ai/skills/stacks-realtime/SKILL.md +442 -0
  83. package/ai/skills/stacks-redesign/SKILL.md +182 -0
  84. package/ai/skills/stacks-registry/SKILL.md +58 -0
  85. package/ai/skills/stacks-repl/SKILL.md +80 -0
  86. package/ai/skills/stacks-retro/SKILL.md +122 -0
  87. package/ai/skills/stacks-review/SKILL.md +135 -0
  88. package/ai/skills/stacks-router/SKILL.md +231 -0
  89. package/ai/skills/stacks-routes/SKILL.md +105 -0
  90. package/ai/skills/stacks-scaffolding/SKILL.md +162 -0
  91. package/ai/skills/stacks-scheduler/SKILL.md +363 -0
  92. package/ai/skills/stacks-search-engine/SKILL.md +112 -0
  93. package/ai/skills/stacks-security/SKILL.md +129 -0
  94. package/ai/skills/stacks-security-audit/SKILL.md +128 -0
  95. package/ai/skills/stacks-server/SKILL.md +458 -0
  96. package/ai/skills/stacks-shell/SKILL.md +62 -0
  97. package/ai/skills/stacks-slug/SKILL.md +87 -0
  98. package/ai/skills/stacks-sms/SKILL.md +385 -0
  99. package/ai/skills/stacks-socials/SKILL.md +303 -0
  100. package/ai/skills/stacks-storage/SKILL.md +576 -0
  101. package/ai/skills/stacks-strings/SKILL.md +416 -0
  102. package/ai/skills/stacks-stx/SKILL.md +176 -0
  103. package/ai/skills/stacks-technical-diagrams/LICENSE +22 -0
  104. package/ai/skills/stacks-technical-diagrams/SKILL.md +290 -0
  105. package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +4 -0
  106. package/ai/skills/stacks-technical-diagrams/assets/template.html +1252 -0
  107. package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +289 -0
  108. package/ai/skills/stacks-technical-diagrams/bunfig.toml +1 -0
  109. package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +64 -0
  110. package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +88 -0
  111. package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +75 -0
  112. package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +70 -0
  113. package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +41 -0
  114. package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +62 -0
  115. package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +371 -0
  116. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +82 -0
  117. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +295 -0
  118. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +91 -0
  119. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +384 -0
  120. package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +84 -0
  121. package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +257 -0
  122. package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +42 -0
  123. package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +13 -0
  124. package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +230 -0
  125. package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +40 -0
  126. package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +88 -0
  127. package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +40 -0
  128. package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +103 -0
  129. package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +481 -0
  130. package/ai/skills/stacks-technical-diagrams/schemas/README.md +68 -0
  131. package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +121 -0
  132. package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +43 -0
  133. package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +221 -0
  134. package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +241 -0
  135. package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +186 -0
  136. package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +332 -0
  137. package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +297 -0
  138. package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +28 -0
  139. package/ai/skills/stacks-testing/SKILL.md +129 -0
  140. package/ai/skills/stacks-tunnel/SKILL.md +125 -0
  141. package/ai/skills/stacks-types/SKILL.md +178 -0
  142. package/ai/skills/stacks-ui/SKILL.md +246 -0
  143. package/ai/skills/stacks-utils/SKILL.md +444 -0
  144. package/ai/skills/stacks-validation/SKILL.md +371 -0
  145. package/ai/skills/stacks-whois/SKILL.md +315 -0
  146. package/assets/world-map-data.ts +121 -0
  147. package/bootstrap.ts +114 -0
  148. package/docs/api-examples.md +46 -0
  149. package/docs/index.md +24 -0
  150. package/docs/markdown-examples.md +87 -0
  151. package/functions/analytics.ts +97 -0
  152. package/functions/api.ts +143 -0
  153. package/functions/auth.ts +208 -0
  154. package/functions/billing/payments.ts +149 -0
  155. package/functions/blog.ts +120 -0
  156. package/functions/cms/categorizables.ts +107 -0
  157. package/functions/cms/pages.ts +108 -0
  158. package/functions/cms/posts.ts +100 -0
  159. package/functions/cms/taggables.ts +102 -0
  160. package/functions/commerce/coupons.ts +128 -0
  161. package/functions/commerce/customers.ts +128 -0
  162. package/functions/commerce/gift-cards.ts +119 -0
  163. package/functions/commerce/orders.ts +112 -0
  164. package/functions/commerce/payments.ts +119 -0
  165. package/functions/commerce/products/categories.ts +123 -0
  166. package/functions/commerce/products/manufacturers.ts +123 -0
  167. package/functions/commerce/products/products.ts +123 -0
  168. package/functions/commerce/products/reviews.ts +123 -0
  169. package/functions/commerce/products/units.ts +123 -0
  170. package/functions/commerce/products/variants.ts +123 -0
  171. package/functions/commerce/shippings/delivery-routes.ts +123 -0
  172. package/functions/commerce/shippings/digital-deliveries.ts +119 -0
  173. package/functions/commerce/shippings/drivers.ts +123 -0
  174. package/functions/commerce/shippings/license-keys.ts +123 -0
  175. package/functions/commerce/shippings/shipping-methods.ts +123 -0
  176. package/functions/commerce/shippings/shipping-rates.ts +119 -0
  177. package/functions/commerce/shippings/shipping-zones.ts +119 -0
  178. package/functions/commerce/taxes.ts +119 -0
  179. package/functions/commerce/waitlist/products.ts +123 -0
  180. package/functions/commerce/waitlist/restaurants.ts +123 -0
  181. package/functions/craft.ts +107 -0
  182. package/functions/dashboard.ts +153 -0
  183. package/functions/inbox.ts +95 -0
  184. package/functions/jobs.ts +86 -0
  185. package/functions/monitoring/errors.ts +295 -0
  186. package/functions/queue.ts +111 -0
  187. package/functions/realtime/websockets.ts +96 -0
  188. package/functions/realtime.ts +52 -0
  189. package/functions/releases.ts +49 -0
  190. package/functions/search.ts +126 -0
  191. package/functions/toasts.ts +95 -0
  192. package/functions/uploads.ts +216 -0
  193. package/ide/.gitignore +4 -0
  194. package/ide/cursor/rules/auto-imports.mdc +574 -0
  195. package/ide/cursor/rules/code-style.mdc +12 -0
  196. package/ide/cursor/rules/documentation.mdc +9 -0
  197. package/ide/cursor/rules/error-handling-validation.mdc +11 -0
  198. package/ide/cursor/rules/key-conventions.mdc +11 -0
  199. package/ide/cursor/rules/project-structure.mdc +169 -0
  200. package/ide/cursor/rules/readme.mdc +318 -0
  201. package/ide/cursor/rules/syntax-formatting.mdc +9 -0
  202. package/ide/cursor/rules/testing.mdc +10 -0
  203. package/ide/cursor/rules/typescript.mdc +9 -0
  204. package/ide/cursor/rules/ui-styling.mdc +0 -0
  205. package/ide/dictionary.txt +397 -0
  206. package/ide/jetbrains/.fleet/settings.json +4 -0
  207. package/ide/jetbrains/.idea/.gitignore +5 -0
  208. package/ide/jetbrains/.idea/.name +1 -0
  209. package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
  210. package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
  211. package/ide/jetbrains/.idea/modules.xml +8 -0
  212. package/ide/jetbrains/.idea/stacks.iml +22 -0
  213. package/ide/jetbrains/.idea/vcs.xml +6 -0
  214. package/ide/jetbrains/.idea/webResources.xml +14 -0
  215. package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
  216. package/ide/jetbrains/installed.txt +4 -0
  217. package/ide/jetbrains/options/github-copilot.xml +5 -0
  218. package/ide/jetbrains/options/nodejs.xml +7 -0
  219. package/ide/jetbrains/options/templates.xml +124 -0
  220. package/ide/jetbrains/templates/JavaScript.xml +6 -0
  221. package/ide/jetbrains/templates/Stacks.xml +8 -0
  222. package/ide/vscode/.vscode/README.md +23 -0
  223. package/ide/vscode/.vscode/extensions.json +5 -0
  224. package/ide/vscode/.vscode/settings.json +176 -0
  225. package/ide/vscode/.vscode/stacks.code-snippets +181 -0
  226. package/ide/vscode/LICENSE.md +21 -0
  227. package/ide/vscode/README.md +36 -0
  228. package/ide/vscode/logo.png +0 -0
  229. package/ide/vscode/package.json +79 -0
  230. package/ide/zed/.zed/settings.json +139 -0
  231. package/lang/README.md +28 -0
  232. package/lang/de.yml +14 -0
  233. package/lang/en.yml +15 -0
  234. package/package.json +19 -3
  235. package/project/bootstrap +161 -0
  236. package/project/buddy +175 -0
  237. package/project/storage/framework/tsconfig.app.json +50 -0
  238. package/project/storage/framework/tsconfig.base.json +58 -0
  239. package/routes/core.ts +78 -0
  240. package/routes/dashboard-api.ts +233 -0
  241. package/routes/dashboard.ts +739 -0
  242. package/routes/email.ts +129 -0
  243. package/stores/[name].stx +16 -0
  244. package/stores/git.ts +71 -0
  245. package/stores/payment.ts +474 -0
  246. package/stores/queue.ts +43 -0
  247. package/stores/user.ts +29 -0
  248. package/stx-components-plugin.ts +25 -0
  249. package/styles/design-tokens.css +597 -0
  250. package/types/dashboard.ts +70 -0
  251. package/types/defaults.ts +438 -0
  252. package/vcs/github/CODE_OF_CONDUCT.md +83 -0
  253. package/vcs/github/CONTRIBUTING.md +187 -0
  254. package/vcs/github/EXPLANATIONS.md +41 -0
  255. package/vcs/github/FUNDING.yml +1 -0
  256. package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +49 -0
  257. package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
  258. package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
  259. package/vcs/github/SECURITY.md +70 -0
  260. package/vcs/github/renovate.json +5 -0
  261. package/vcs/github/stale.yml +14 -0
  262. package/vcs/github/workflows/README.md +16 -0
  263. package/vcs/github/workflows/ci.yml +114 -0
  264. package/vcs/github/workflows/export-size.yml +25 -0
  265. package/vcs/github/workflows/labeler.yml +13 -0
  266. package/vcs/github/workflows/release.yml +219 -0
  267. package/views/[...all].stx +8 -0
  268. package/views/about.md +3 -0
  269. package/views/auth/login.stx +1 -0
  270. package/views/auth/signup.stx +85 -0
  271. package/views/dashboard/.discovered-models.json +542 -0
  272. package/views/dashboard/AUDIT.md +904 -0
  273. package/views/dashboard/[...all].stx +89 -0
  274. package/views/dashboard/access-tokens/index.stx +177 -0
  275. package/views/dashboard/actions/index.stx +129 -0
  276. package/views/dashboard/analytics/blog/index.stx +356 -0
  277. package/views/dashboard/analytics/browsers/index.stx +263 -0
  278. package/views/dashboard/analytics/commerce/sales/index.stx +329 -0
  279. package/views/dashboard/analytics/commerce/web/index.stx +379 -0
  280. package/views/dashboard/analytics/countries/index.stx +289 -0
  281. package/views/dashboard/analytics/devices/index.stx +305 -0
  282. package/views/dashboard/analytics/events/index.stx +536 -0
  283. package/views/dashboard/analytics/index.stx +88 -0
  284. package/views/dashboard/analytics/marketing/index.stx +315 -0
  285. package/views/dashboard/analytics/pages/index.stx +271 -0
  286. package/views/dashboard/analytics/referrers/index.stx +319 -0
  287. package/views/dashboard/analytics/web/index.stx +356 -0
  288. package/views/dashboard/buddy/index.stx +198 -0
  289. package/views/dashboard/ci/index.stx +462 -0
  290. package/views/dashboard/cloud/index.stx +452 -0
  291. package/views/dashboard/commands/index.stx +295 -0
  292. package/views/dashboard/commerce/categories/index.stx +406 -0
  293. package/views/dashboard/commerce/coupons/index.stx +485 -0
  294. package/views/dashboard/commerce/customers/index.stx +410 -0
  295. package/views/dashboard/commerce/dashboard/index.stx +287 -0
  296. package/views/dashboard/commerce/delivery/delivery-routes.stx +305 -0
  297. package/views/dashboard/commerce/delivery/digital-delivery.stx +332 -0
  298. package/views/dashboard/commerce/delivery/drivers.stx +397 -0
  299. package/views/dashboard/commerce/delivery/index.stx +18 -0
  300. package/views/dashboard/commerce/delivery/license-keys.stx +380 -0
  301. package/views/dashboard/commerce/delivery/shipping-methods.stx +346 -0
  302. package/views/dashboard/commerce/delivery/shipping-rates.stx +338 -0
  303. package/views/dashboard/commerce/delivery/shipping-zones.stx +302 -0
  304. package/views/dashboard/commerce/delivery/tabs.ts +25 -0
  305. package/views/dashboard/commerce/gift-cards/index.stx +561 -0
  306. package/views/dashboard/commerce/manufacturers/index.stx +308 -0
  307. package/views/dashboard/commerce/orders/index.stx +247 -0
  308. package/views/dashboard/commerce/payments/index.stx +535 -0
  309. package/views/dashboard/commerce/pos/index.stx +653 -0
  310. package/views/dashboard/commerce/printers/devices/index.stx +273 -0
  311. package/views/dashboard/commerce/printers/receipts/index.stx +308 -0
  312. package/views/dashboard/commerce/products/detail.stx +563 -0
  313. package/views/dashboard/commerce/products/index.stx +370 -0
  314. package/views/dashboard/commerce/reviews/index.stx +656 -0
  315. package/views/dashboard/commerce/reviews/index.ts +0 -0
  316. package/views/dashboard/commerce/taxes/index.stx +377 -0
  317. package/views/dashboard/commerce/units/index.stx +317 -0
  318. package/views/dashboard/commerce/variants/index.stx +319 -0
  319. package/views/dashboard/commerce/waitlist/products.stx +942 -0
  320. package/views/dashboard/commerce/waitlist/restaurant.stx +1024 -0
  321. package/views/dashboard/components/index.stx +330 -0
  322. package/views/dashboard/composables/index.ts +19 -0
  323. package/views/dashboard/composables/useChart.ts +77 -0
  324. package/views/dashboard/composables/useNavigation.ts +99 -0
  325. package/views/dashboard/composables/useRole.ts +58 -0
  326. package/views/dashboard/composables/useTheme.ts +74 -0
  327. package/views/dashboard/content/authors/index.stx +171 -0
  328. package/views/dashboard/content/blog/index.stx +493 -0
  329. package/views/dashboard/content/categories/index.stx +169 -0
  330. package/views/dashboard/content/comments/index.stx +189 -0
  331. package/views/dashboard/content/dashboard.stx +383 -0
  332. package/views/dashboard/content/files/index.stx +706 -0
  333. package/views/dashboard/content/pages/index.stx +174 -0
  334. package/views/dashboard/content/posts/index.stx +269 -0
  335. package/views/dashboard/content/seo/index.stx +240 -0
  336. package/views/dashboard/content/tags/index.stx +167 -0
  337. package/views/dashboard/data/activity/index.stx +261 -0
  338. package/views/dashboard/data/dashboard/index.stx +116 -0
  339. package/views/dashboard/data/subscribers.stx +270 -0
  340. package/views/dashboard/data/teams.stx +275 -0
  341. package/views/dashboard/data/users.stx +279 -0
  342. package/views/dashboard/dependencies/index.stx +178 -0
  343. package/views/dashboard/deployments/[id].stx +234 -0
  344. package/views/dashboard/deployments/index.stx +9 -0
  345. package/views/dashboard/dns/index.stx +163 -0
  346. package/views/dashboard/environment/index.stx +283 -0
  347. package/views/dashboard/errors/index.stx +274 -0
  348. package/views/dashboard/forgot-password.stx +57 -0
  349. package/views/dashboard/functions/index.stx +159 -0
  350. package/views/dashboard/health/index.stx +248 -0
  351. package/views/dashboard/inbox/activity.stx +350 -0
  352. package/views/dashboard/inbox/index.stx +452 -0
  353. package/views/dashboard/inbox/settings.stx +290 -0
  354. package/views/dashboard/index.stx +252 -0
  355. package/views/dashboard/insights/index.stx +529 -0
  356. package/views/dashboard/jobs/[id].stx +430 -0
  357. package/views/dashboard/jobs/history.stx +222 -0
  358. package/views/dashboard/jobs/index.stx +214 -0
  359. package/views/dashboard/kanban/[id].stx +899 -0
  360. package/views/dashboard/kanban/index.stx +260 -0
  361. package/views/dashboard/layouts/default.stx +565 -0
  362. package/views/dashboard/layouts/guest.stx +10 -0
  363. package/views/dashboard/login.stx +48 -0
  364. package/views/dashboard/logs/index.stx +540 -0
  365. package/views/dashboard/mailboxes/index.stx +149 -0
  366. package/views/dashboard/management/permissions/index.stx +490 -0
  367. package/views/dashboard/marketing/campaigns/index.stx +604 -0
  368. package/views/dashboard/marketing/lists/index.stx +514 -0
  369. package/views/dashboard/marketing/reviews/index.stx +475 -0
  370. package/views/dashboard/marketing/social-posts/index.stx +560 -0
  371. package/views/dashboard/models/[model].stx +195 -0
  372. package/views/dashboard/models/index.stx +159 -0
  373. package/views/dashboard/monitoring/errors/index.stx +415 -0
  374. package/views/dashboard/notifications/dashboard.stx +383 -0
  375. package/views/dashboard/notifications/email.stx +336 -0
  376. package/views/dashboard/notifications/history.stx +373 -0
  377. package/views/dashboard/notifications/sms.stx +332 -0
  378. package/views/dashboard/packages/index.stx +195 -0
  379. package/views/dashboard/queries/[id].stx +381 -0
  380. package/views/dashboard/queries/history.stx +227 -0
  381. package/views/dashboard/queries/index.stx +335 -0
  382. package/views/dashboard/queries/slow.stx +318 -0
  383. package/views/dashboard/queue/index.stx +427 -0
  384. package/views/dashboard/realtime/index.stx +429 -0
  385. package/views/dashboard/register.stx +46 -0
  386. package/views/dashboard/releases/index.stx +389 -0
  387. package/views/dashboard/requests/index.stx +462 -0
  388. package/views/dashboard/serverless/index.stx +475 -0
  389. package/views/dashboard/servers/[id].stx +299 -0
  390. package/views/dashboard/servers/index.stx +483 -0
  391. package/views/dashboard/settings/billing.stx +50 -0
  392. package/views/dashboard/settings/index.stx +256 -0
  393. package/views/dashboard/settings/mail.stx +252 -0
  394. package/views/dashboard/stores/auth.ts +123 -0
  395. package/views/dashboard/stores/ci.ts +342 -0
  396. package/views/dashboard/stores/index.ts +129 -0
  397. package/views/dashboard/stores/kanban.ts +723 -0
  398. package/views/dashboard/stores/rbac.ts +350 -0
  399. package/views/dashboard/stx.config.ts +34 -0
  400. package/views/dashboard/teams/[id].stx +170 -0
  401. package/views/forum/category.stx +92 -0
  402. package/views/forum/index.stx +209 -0
  403. package/views/forum/new-topic.stx +113 -0
  404. package/views/forum/profile.stx +1 -0
  405. package/views/forum/topic.stx +143 -0
  406. package/views/hello-world/[name].stx +47 -0
  407. package/views/index.stx +21 -0
  408. package/views/system-tray/index.stx +147 -0
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: stacks-search-engine
3
+ description: Use when implementing search in Stacks — full-text search with Meilisearch or Algolia backends, document indexing, search settings management, the useSearch model trait for automatic indexing, or search driver configuration. Covers @stacksjs/search-engine and config/search-engine.ts.
4
+ license: MIT
5
+ compatibility: Bun >= 1.3.0, TypeScript
6
+ allowed-tools: Read Edit Write Bash Grep Glob
7
+ ---
8
+
9
+ # Stacks Search Engine
10
+
11
+ Full-text search integration with Meilisearch and Algolia drivers.
12
+
13
+ ## Key Paths
14
+ - Core package: `storage/framework/core/search-engine/src/`
15
+ - Configuration: `config/search-engine.ts`
16
+
17
+ ## Search Driver Factory
18
+
19
+ ```typescript
20
+ import { useSearchEngine, useAlgolia, useMeilisearch } from '@stacksjs/search-engine'
21
+
22
+ const search = useSearchEngine() // default driver
23
+ const algolia = useAlgolia() // Algolia client
24
+ const meili = useMeilisearch() // Meilisearch client
25
+ ```
26
+
27
+ ## Document Operations
28
+
29
+ ```typescript
30
+ // Index documents
31
+ await search.addDocuments('products', [
32
+ { id: 1, name: 'Widget', description: 'A useful widget', price: 29.99 },
33
+ { id: 2, name: 'Gadget', description: 'A cool gadget', price: 49.99 }
34
+ ])
35
+
36
+ // Search
37
+ const results = await search.search('products', 'widget')
38
+
39
+ // List indexes
40
+ const indexes = await search.listIndexes()
41
+
42
+ // Get/update settings
43
+ const settings = await search.getSettings('products')
44
+ await search.updateSettings('products', {
45
+ searchableAttributes: ['name', 'description'],
46
+ filterableAttributes: ['price', 'category'],
47
+ sortableAttributes: ['price', 'created_at']
48
+ })
49
+
50
+ // Flush all documents
51
+ await search.flush('products')
52
+ ```
53
+
54
+ ## Model Integration (useSearch Trait)
55
+
56
+ Models with `useSearch` trait are automatically indexed:
57
+
58
+ ```typescript
59
+ defineModel({
60
+ name: 'Product',
61
+ traits: {
62
+ useSearch: {
63
+ displayable: ['name', 'description', 'price'],
64
+ searchable: ['name', 'description'],
65
+ sortable: ['name', 'price', 'created_at'],
66
+ filterable: ['category', 'status', 'price']
67
+ }
68
+ }
69
+ })
70
+ ```
71
+
72
+ ## CLI Commands
73
+
74
+ ```bash
75
+ buddy search-engine:update # index all searchable models
76
+ buddy search-engine:update --model Product # index specific model
77
+ buddy search-engine:update --flush # flush before re-indexing
78
+ buddy search-engine:update --settings # update search settings only
79
+ buddy search-engine:settings # list current settings
80
+ buddy search-engine:settings --model Product # settings for specific model
81
+ ```
82
+
83
+ ## Driver Comparison
84
+
85
+ | Feature | Meilisearch | Algolia |
86
+ |---------|------------|---------|
87
+ | Self-hosted | Yes | No (cloud) |
88
+ | Pricing | Free (self-hosted) | Per-search pricing |
89
+ | Typo tolerance | Built-in | Built-in |
90
+ | Faceted search | Yes | Yes |
91
+ | Geo search | Yes | Yes |
92
+ | Speed | Very fast | Very fast |
93
+
94
+ ## config/search-engine.ts
95
+
96
+ ```typescript
97
+ { driver: 'opensearch' } // 'meilisearch' | 'algolia' | 'opensearch'
98
+ ```
99
+
100
+ Environment variables: `MEILISEARCH_HOST`, `MEILISEARCH_KEY`, `SEARCH_ENGINE_DRIVER`
101
+
102
+ ## Gotchas
103
+ - Default driver is `opensearch` — configure in config or env
104
+ - `useSearch` trait determines which model fields are indexed
105
+ - `displayable` controls which fields appear in search results
106
+ - `searchable` controls which fields are queried during search
107
+ - `filterable` enables faceted filtering on those fields
108
+ - `sortable` enables sorting by those fields
109
+ - Use `buddy search-engine:update --flush` for full re-index
110
+ - Meilisearch requires a running Meilisearch server
111
+ - Algolia requires API keys from your Algolia dashboard
112
+ - Settings updates don't re-index — run `search-engine:update` after changes
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: stacks-security
3
+ description: Use when implementing security in Stacks — password hashing (bcrypt/argon2), app key generation, AES encryption/decryption, hash verification, rehashing detection, or security configuration (firewall, rate limiting, IP allowlists). Covers @stacksjs/security and config/security.ts.
4
+ license: MIT
5
+ compatibility: Bun >= 1.3.0, TypeScript
6
+ allowed-tools: Read Edit Write Bash Grep Glob
7
+ ---
8
+
9
+ # Stacks Security
10
+
11
+ ## Key Paths
12
+ - Core package: `storage/framework/core/security/src/`
13
+ - Security config: `config/security.ts`
14
+ - Hashing config: `config/hashing.ts`
15
+
16
+ ## Source Files
17
+ ```
18
+ security/src/
19
+ ├── index.ts # all exports
20
+ ├── key.ts # generateAppKey()
21
+ ├── crypt.ts # encrypt/decrypt (AES via APP_KEY)
22
+ └── hash.ts # password hashing (bcrypt/argon2)
23
+ ```
24
+
25
+ ## App Key Generation
26
+
27
+ ```typescript
28
+ import { generateAppKey } from '@stacksjs/security'
29
+
30
+ const key = generateAppKey() // 32-character random string
31
+ // Run via CLI: buddy key:generate
32
+ ```
33
+
34
+ ## Encryption / Decryption
35
+
36
+ ```typescript
37
+ import { encrypt, decrypt } from '@stacksjs/security'
38
+
39
+ const encrypted = await encrypt('sensitive data') // uses APP_KEY
40
+ const encrypted = await encrypt('data', 'custom-passphrase')
41
+ const decrypted = await decrypt(encrypted)
42
+ const decrypted = await decrypt(encrypted, 'custom-passphrase')
43
+ ```
44
+
45
+ ## Password Hashing
46
+
47
+ ```typescript
48
+ import { make, check, needsRehash, info, detectAlgorithm } from '@stacksjs/security'
49
+
50
+ // Hash a password
51
+ const hash = await make('password123') // bcrypt (default)
52
+ const hash = await make('password123', { algorithm: 'argon2' })
53
+ const hash = await make('password123', { rounds: 14 }) // bcrypt rounds
54
+
55
+ // Verify
56
+ const valid = await check('password123', hash) // true/false
57
+
58
+ // Check if rehash needed (e.g., after changing rounds)
59
+ const needs = needsRehash(hash, { rounds: 14 })
60
+
61
+ // Inspect hash
62
+ const hashInfo = info(hash) // { algorithm, options }
63
+ const algo = detectAlgorithm(hash) // 'bcrypt' | 'argon2' | 'argon2id' | ...
64
+ ```
65
+
66
+ ### Aliases
67
+ - `hashMake` = `make`
68
+ - `hashCheck` = `check`
69
+ - `hashNeedsRehash` = `needsRehash`
70
+ - `hashInfo` = `info`
71
+ - `makeHash` = `make`
72
+ - `verifyHash` = `check`
73
+
74
+ ### Algorithm-Specific Functions
75
+ ```typescript
76
+ bcryptEncode(value, rounds?) // bcrypt hash
77
+ bcryptVerify(value, hash) // bcrypt verify
78
+ argon2Encode(value, options?) // argon2 hash
79
+ argon2Verify(value, hash) // argon2 verify
80
+ md5Encode(value) // MD5 (legacy only)
81
+ base64Encode(value) // base64
82
+ base64Verify(value, encoded) // base64 compare
83
+ ```
84
+
85
+ ## HashMakeOptions
86
+ ```typescript
87
+ interface HashMakeOptions {
88
+ algorithm?: 'bcrypt' | 'argon2' | 'argon2id' | 'argon2i' | 'argon2d'
89
+ rounds?: number // bcrypt (default: 12)
90
+ memory?: number // argon2 (default: 65536)
91
+ time?: number // argon2 (default: 3)
92
+ }
93
+ ```
94
+
95
+ ## config/hashing.ts
96
+ ```typescript
97
+ {
98
+ driver: 'bcrypt',
99
+ bcrypt: { rounds: 12 },
100
+ argon2: { memory: 65536, time: 3 }
101
+ }
102
+ ```
103
+
104
+ ## config/security.ts
105
+ ```typescript
106
+ {
107
+ firewall: {
108
+ enabled: true,
109
+ countryCodes: [], // block by country
110
+ ipAddresses: {
111
+ allowlist: [],
112
+ blocklist: []
113
+ },
114
+ rateLimitPerMinute: 500,
115
+ useIpReputationLists: true,
116
+ useKnownBadInputsRuleSet: true
117
+ }
118
+ }
119
+ ```
120
+
121
+ ## Gotchas
122
+ - Default hashing is bcrypt with 12 rounds — sufficient for most applications
123
+ - `needsRehash()` compares current hash options against provided options — useful after config changes
124
+ - APP_KEY is used for `encrypt()`/`decrypt()` — generate via `buddy key:generate`
125
+ - APP_KEY format is colon-separated (validated during deployment)
126
+ - Argon2 requires more memory/time but is more resistant to GPU attacks
127
+ - `md5Encode()` exists for legacy compatibility only — never use for passwords
128
+ - The firewall config is used by cloud deployment for WAF rules
129
+ - Rate limiting is per-minute per-IP (500 default)
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: stacks-security-audit
3
+ description: Use when performing security analysis on a Stacks application — OWASP Top 10, STRIDE threat modeling, attack surface mapping, dependency audit. Requires concrete exploit scenarios. Invoke with /stacks-security-audit.
4
+ license: MIT
5
+ compatibility: Bun >= 1.3.0, TypeScript
6
+ allowed-tools: Read Edit Write Bash Grep Glob
7
+ ---
8
+
9
+ # /stacks-security-audit — Security Analysis
10
+
11
+ You are performing a security analysis for a Stacks application. Be concrete — every finding must include a realistic exploit scenario. Vague warnings are worthless.
12
+
13
+ ## Determine Scope
14
+
15
+ 1. If the user specifies files or a feature, analyze that scope
16
+ 2. Otherwise, analyze: API routes (`routes/`), auth flows (`@stacksjs/auth`), middleware, data handling, config/services.ts
17
+
18
+ ## Step 1: Attack Surface Map
19
+
20
+ ```
21
+ ## Attack Surface
22
+
23
+ | Entry Point | Type | Auth Required? | Input Validation |
24
+ |-------------|------|----------------|------------------|
25
+ | [route/handler] | [HTTP/CLI/WebSocket] | [yes/no] | [description] |
26
+ ```
27
+
28
+ For Stacks specifically, check:
29
+ - API routes in `routes/api.ts` (136+ routes auto-generated)
30
+ - CLI command handlers via `buddy` (command injection via user args)
31
+ - WebSocket endpoints (`@stacksjs/realtime`)
32
+ - Config file parsing
33
+ - Dev server endpoints (`rpx`, `localtunnels` exposure)
34
+ - Dashboard routes (auth middleware applied?)
35
+ - File upload handling via `EnhancedRequest.file()`
36
+
37
+ ## Step 2: OWASP Top 10
38
+
39
+ Evaluate each applicable category. **Only report findings with confidence ≥ 8/10.**
40
+
41
+ For each finding:
42
+ 1. **The vulnerability** — file:line reference
43
+ 2. **Exploit scenario** — step-by-step
44
+ 3. **Impact** — what attacker gains
45
+ 4. **Confidence** — 1-10
46
+ 5. **Fix** — concrete code change
47
+
48
+ ```
49
+ ### [OWASP Category]
50
+
51
+ 🔴 **[Finding]** (Confidence: [N]/10)
52
+
53
+ **Location**: [file:line]
54
+ **Vulnerability**: [what's wrong]
55
+
56
+ **Exploit scenario**:
57
+ 1. Attacker does [X]
58
+ 2. System responds with [Y]
59
+ 3. Attacker gains [Z]
60
+
61
+ **Impact**: [specific impact]
62
+ **Fix**: [concrete change]
63
+ ```
64
+
65
+ ### Stacks-Specific Security Checks
66
+
67
+ - **Auth token handling**: Check `@stacksjs/auth` for token validation, rotation (30d expiry, 7d rotation)
68
+ - **Webhook URLs in `config/services.ts`**: Discord, Slack, Stripe keys — are they properly secured?
69
+ - **ORM injection**: Check if user input flows unsanitized into query builder `.where()` calls
70
+ - **Middleware gaps**: Are admin routes protected by `auth` middleware? Check `routes/api.ts` group middleware
71
+ - **Rate limiting**: Is `throttle` middleware applied to auth endpoints?
72
+ - **Passkey handling**: Check `@stacksjs/auth` passkey credential storage
73
+ - **File uploads**: Check `EnhancedRequest.file()` for path traversal, size limits
74
+ - **Maintenance mode bypass**: Check secret URL mechanism in Maintenance middleware
75
+
76
+ ## Step 3: STRIDE Threat Model
77
+
78
+ | Threat | Question | Finding |
79
+ |--------|----------|---------|
80
+ | **Spoofing** | Can someone impersonate a user/service? | |
81
+ | **Tampering** | Can data be modified in transit/rest? | |
82
+ | **Repudiation** | Can actions happen without traces? | |
83
+ | **Information Disclosure** | Can unauthorized data be accessed? | |
84
+ | **Denial of Service** | Can the system be made unavailable? | |
85
+ | **Elevation of Privilege** | Can higher privileges be gained? | |
86
+
87
+ ## Step 4: Dependency Audit
88
+
89
+ 1. Read `package.json` for direct dependencies
90
+ 2. Check for known vulnerabilities
91
+ 3. Flag overly permissive version ranges
92
+ 4. Check dependencies with filesystem/network/child_process access
93
+
94
+ ## Output Format
95
+
96
+ ```
97
+ # Security Analysis: [scope]
98
+
99
+ ## Attack Surface
100
+ [table]
101
+
102
+ ## Critical Findings (Confidence ≥ 8/10)
103
+ [findings sorted by severity]
104
+
105
+ ## STRIDE Assessment
106
+ [table]
107
+
108
+ ## Dependency Audit
109
+ [findings]
110
+
111
+ ## Lower Confidence Observations
112
+ [< 8/10 findings]
113
+
114
+ ## Summary
115
+ - Critical findings: [count]
116
+ - Risk: [LOW / MEDIUM / HIGH / CRITICAL]
117
+ ```
118
+
119
+ ## Rules
120
+
121
+ - **Concrete exploits only.** "Doesn't validate input" is not a finding. Show the exact exploit.
122
+ - **8/10 confidence threshold.** False positives erode trust.
123
+ - **No theoretical threats.** If the code doesn't handle XML, skip XXE.
124
+ - **Never suggest security-through-obscurity.**
125
+
126
+ ## Downstream
127
+
128
+ > **Security analysis complete.** Run `/stacks-review` to verify fixes against these findings.