@jskit-ai/agent-docs 0.1.148 → 0.1.150

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 (232) hide show
  1. package/guide/agent/app-setup/existing-application-migration.md +8 -6
  2. package/guide/agent/app-setup/initial-scaffolding.md +26 -7
  3. package/guide/agent/app-setup/quickstart.md +9 -6
  4. package/guide/agent/framework/application-operations.md +91 -0
  5. package/guide/agent/framework/crud-operations.md +83 -0
  6. package/guide/agent/framework/material-3.md +112 -0
  7. package/guide/agent/framework/ui-operations.md +78 -0
  8. package/guide/agent/index.md +13 -3
  9. package/package.json +1 -1
  10. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  11. package/patterns/minimal-foundation/PATTERN.md +5 -0
  12. package/patterns/minimal-foundation/example/AGENTS.md +8 -8
  13. package/patterns/minimal-foundation/example/package.json +4 -5
  14. package/patterns/minimal-foundation/example/vite.config.mjs +0 -1
  15. package/patterns/shell-foundation/PATTERN.md +5 -0
  16. package/patterns/shell-foundation/example/AGENTS.md +8 -8
  17. package/patterns/shell-foundation/example/package.json +5 -6
  18. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  19. package/patterns/shell-foundation/example/vite.config.mjs +0 -1
  20. package/reference/autogen/PATTERN_INDEX.md +61 -61
  21. package/reference/autogen/tooling/testUtils.md +1 -1
  22. package/skills/jskit/SKILL.md +8 -5
  23. package/skills/jskit/references/app-operations.md +12 -11
  24. package/skills/jskit/references/crud-operations.md +10 -6
  25. package/skills/jskit/references/existing-application-migration.md +9 -12
  26. package/skills/jskit/references/material-3.md +2 -0
  27. package/skills/jskit/references/pattern-index.md +61 -61
  28. package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +105 -0
  29. package/skills/jskit/references/patterns/app/minimal-foundation/example/.nvmrc +1 -0
  30. package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +17 -0
  31. package/skills/jskit/references/patterns/app/minimal-foundation/example/Procfile +2 -0
  32. package/skills/jskit/references/patterns/app/minimal-foundation/example/app.json +14 -0
  33. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +71 -0
  34. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/server.js +8 -0
  35. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/public.js +40 -0
  36. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/server.js +1 -0
  37. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/surfaceAccessPolicies.js +3 -0
  38. package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +19 -0
  39. package/skills/jskit/references/patterns/app/minimal-foundation/example/favicon.svg +7 -0
  40. package/skills/jskit/references/patterns/app/minimal-foundation/example/gitignore +9 -0
  41. package/skills/jskit/references/patterns/app/minimal-foundation/example/index.html +13 -0
  42. package/skills/jskit/references/patterns/app/minimal-foundation/example/jsconfig.json +8 -0
  43. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +62 -0
  44. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/package.json +42 -0
  45. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/index.js +10 -0
  46. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
  47. package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +31 -0
  48. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +45 -0
  49. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/surfaceRuntime.js +10 -0
  50. package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +195 -0
  51. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/App.vue +13 -0
  52. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/main.js +85 -0
  53. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home/index.vue +48 -0
  54. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home.vue +13 -0
  55. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/views/NotFound.vue +13 -0
  56. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/client/smoke.vitest.js +7 -0
  57. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
  58. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +16 -0
  59. package/skills/jskit/references/patterns/app/minimal-foundation/example/vite.config.mjs +80 -0
  60. package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +111 -0
  61. package/skills/jskit/references/patterns/app/shell-foundation/example/.nvmrc +1 -0
  62. package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +17 -0
  63. package/skills/jskit/references/patterns/app/shell-foundation/example/Procfile +2 -0
  64. package/skills/jskit/references/patterns/app/shell-foundation/example/app.json +14 -0
  65. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +71 -0
  66. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/server.js +8 -0
  67. package/skills/jskit/references/patterns/app/shell-foundation/example/config/public.js +40 -0
  68. package/skills/jskit/references/patterns/app/shell-foundation/example/config/server.js +1 -0
  69. package/skills/jskit/references/patterns/app/shell-foundation/example/config/surfaceAccessPolicies.js +3 -0
  70. package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +19 -0
  71. package/skills/jskit/references/patterns/app/shell-foundation/example/favicon.svg +7 -0
  72. package/skills/jskit/references/patterns/app/shell-foundation/example/gitignore +9 -0
  73. package/skills/jskit/references/patterns/app/shell-foundation/example/index.html +13 -0
  74. package/skills/jskit/references/patterns/app/shell-foundation/example/jsconfig.json +8 -0
  75. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +64 -0
  76. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +56 -0
  77. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/index.js +9 -0
  78. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +18 -0
  79. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/index.js +10 -0
  80. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
  81. package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +31 -0
  82. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +45 -0
  83. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/surfaceRuntime.js +10 -0
  84. package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +195 -0
  85. package/skills/jskit/references/patterns/app/shell-foundation/example/src/App.vue +11 -0
  86. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/ShellLayout.vue +12 -0
  87. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/MenuLinkItem.vue +30 -0
  88. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
  89. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/TabLinkItem.vue +42 -0
  90. package/skills/jskit/references/patterns/app/shell-foundation/example/src/error.js +19 -0
  91. package/skills/jskit/references/patterns/app/shell-foundation/example/src/main.js +85 -0
  92. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/index.vue +116 -0
  93. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/general/index.vue +40 -0
  94. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/index.vue +7 -0
  95. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings.vue +109 -0
  96. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home.vue +20 -0
  97. package/skills/jskit/references/patterns/app/shell-foundation/example/src/placement.js +56 -0
  98. package/skills/jskit/references/patterns/app/shell-foundation/example/src/placementTopology.js +149 -0
  99. package/skills/jskit/references/patterns/app/shell-foundation/example/src/views/NotFound.vue +13 -0
  100. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/client/smoke.vitest.js +7 -0
  101. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/adaptive-shell.spec.ts +10 -0
  102. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
  103. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +16 -0
  104. package/skills/jskit/references/patterns/app/shell-foundation/example/vite.config.mjs +80 -0
  105. package/skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md +77 -0
  106. package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/public.js +19 -0
  107. package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/server.js +9 -0
  108. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/assistant/index.vue +7 -0
  109. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/settings/assistant/index.vue +7 -0
  110. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/placement.js +38 -0
  111. package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +90 -0
  112. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/login.vue +17 -0
  113. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/reset-password.vue +17 -0
  114. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/signout.vue +17 -0
  115. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authGuardRuntime.js +7 -0
  116. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authHttpClient.js +1 -0
  117. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/useSignOut.js +1 -0
  118. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/LoginView.vue +7 -0
  119. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/ResetPasswordView.vue +7 -0
  120. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/SignOutView.vue +7 -0
  121. package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +5 -0
  122. package/skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md +67 -0
  123. package/skills/jskit/references/patterns/auth/supabase-auth/example/.env.example +4 -0
  124. package/skills/jskit/references/patterns/auth/supabase-auth/example/config/server.js +11 -0
  125. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +7 -0
  126. package/skills/jskit/references/patterns/console/console-surface/PATTERN.md +58 -0
  127. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/index.vue +62 -0
  128. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings/index.vue +17 -0
  129. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings.vue +95 -0
  130. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console.vue +20 -0
  131. package/skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md +88 -0
  132. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookEditPage.vue +54 -0
  133. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookFormFields.vue +52 -0
  134. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookListPage.vue +54 -0
  135. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookNewPage.vue +45 -0
  136. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookViewPage.vue +50 -0
  137. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/formFields.js +31 -0
  138. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/listExtensions.js +9 -0
  139. package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +160 -0
  140. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/migrations/20260815000000_books.cjs +22 -0
  141. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +41 -0
  142. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/BooksFeature.js +13 -0
  143. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/bookResource.js +83 -0
  144. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/index.js +1 -0
  145. package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +102 -0
  146. package/skills/jskit/references/patterns/crud/resource-contract/example/bookResource.js +87 -0
  147. package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +80 -0
  148. package/skills/jskit/references/patterns/database/mysql-application/example/.env.example +5 -0
  149. package/skills/jskit/references/patterns/database/mysql-application/example/.github/workflows/verify.yml +39 -0
  150. package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +11 -0
  151. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +13 -0
  152. package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +3 -0
  153. package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +80 -0
  154. package/skills/jskit/references/patterns/database/postgres-application/example/.env.example +5 -0
  155. package/skills/jskit/references/patterns/database/postgres-application/example/.github/workflows/verify.yml +38 -0
  156. package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +11 -0
  157. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +13 -0
  158. package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +3 -0
  159. package/skills/jskit/references/patterns/mobile/android-application/PATTERN.md +71 -0
  160. package/skills/jskit/references/patterns/mobile/android-application/example/capacitor.config.json +10 -0
  161. package/skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md +69 -0
  162. package/skills/jskit/references/patterns/realtime/realtime-application/example/.env.example +1 -0
  163. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +8 -0
  164. package/skills/jskit/references/patterns/realtime/realtime-application/example/src/placement.js +17 -0
  165. package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +108 -0
  166. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +48 -0
  167. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +33 -0
  168. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +26 -0
  169. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +19 -0
  170. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +31 -0
  171. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +36 -0
  172. package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +34 -0
  173. package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +23 -0
  174. package/skills/jskit/references/patterns/shell/application-shell/PATTERN.md +66 -0
  175. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/App.vue +13 -0
  176. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home/index.vue +48 -0
  177. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home.vue +13 -0
  178. package/skills/jskit/references/patterns/shell/application-shell/example/src/App.vue +11 -0
  179. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/ShellLayout.vue +13 -0
  180. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/MenuLinkItem.vue +30 -0
  181. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
  182. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/TabLinkItem.vue +42 -0
  183. package/skills/jskit/references/patterns/shell/application-shell/example/src/error.js +19 -0
  184. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue +106 -0
  185. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/general/index.vue +40 -0
  186. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/index.vue +7 -0
  187. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings.vue +109 -0
  188. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home.vue +20 -0
  189. package/skills/jskit/references/patterns/shell/application-shell/example/src/placement.js +56 -0
  190. package/skills/jskit/references/patterns/shell/application-shell/example/src/placementTopology.js +149 -0
  191. package/skills/jskit/references/patterns/shell/application-shell/example/tests/e2e/adaptive-shell.spec.ts +10 -0
  192. package/skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md +76 -0
  193. package/skills/jskit/references/patterns/ui/page-and-placement/example/packages/main/src/client/providers/MainClientProvider.js +14 -0
  194. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/components/SyncStatusElement.vue +16 -0
  195. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/activity.vue +8 -0
  196. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/index.vue +7 -0
  197. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/overview.vue +8 -0
  198. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports.vue +33 -0
  199. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placement.js +52 -0
  200. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placementTopology.js +29 -0
  201. package/skills/jskit/references/patterns/users/account-settings/PATTERN.md +61 -0
  202. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsNotificationsSection.vue +81 -0
  203. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsPreferencesSection.vue +151 -0
  204. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsProfileSection.vue +120 -0
  205. package/skills/jskit/references/patterns/users/account-settings/example/src/pages/account/index.vue +17 -0
  206. package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +64 -0
  207. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +42 -0
  208. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/UsersFeature.js +13 -0
  209. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/index.js +1 -0
  210. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/userResource.js +69 -0
  211. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +43 -0
  212. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +22 -0
  213. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/index.js +1 -0
  214. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/userResource.js +56 -0
  215. package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +60 -0
  216. package/skills/jskit/references/patterns/workspaces/workspace-server/example/config/roles.js +27 -0
  217. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +23 -0
  218. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md +63 -0
  219. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountPendingInvitesCue.vue +106 -0
  220. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountSettingsInvitesSection.vue +7 -0
  221. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/components/WorkspaceNotFoundCard.vue +53 -0
  222. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/composables/useWorkspaceNotFoundState.js +41 -0
  223. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/members/index.vue +7 -0
  224. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings/index.vue +23 -0
  225. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings.vue +95 -0
  226. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/invite/[token].vue +7 -0
  227. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/index.vue +85 -0
  228. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/root.vue +20 -0
  229. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/index.vue +46 -0
  230. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/root.vue +20 -0
  231. package/skills/jskit/references/ui-operations.md +5 -3
  232. package/templates/app/AGENTS.md +8 -8
@@ -0,0 +1,95 @@
1
+ <script setup>
2
+ import ShellOutlet from "@jskit-ai/shell-web/client/components/ShellOutlet";
3
+ import { RouterView } from "vue-router";
4
+ </script>
5
+
6
+ <template>
7
+ <section class="settings-shell d-flex flex-column ga-4">
8
+ <header>
9
+ <p class="text-overline text-medium-emphasis mb-1">Settings</p>
10
+ <h1 class="settings-shell__title">Workspace settings</h1>
11
+ <p class="text-body-2 text-medium-emphasis mb-0">Configure the current workspace and its members.</p>
12
+ </header>
13
+
14
+ <v-sheet rounded="lg" border class="settings-shell__panel">
15
+ <nav class="settings-shell__nav" aria-label="Workspace settings sections">
16
+ <v-list nav density="compact" class="settings-shell__nav-list">
17
+ <ShellOutlet target="admin-settings:primary-menu" />
18
+ </v-list>
19
+ </nav>
20
+ <main class="settings-shell__content">
21
+ <RouterView />
22
+ </main>
23
+ </v-sheet>
24
+ </section>
25
+ </template>
26
+
27
+ <style scoped>
28
+ .settings-shell__title {
29
+ font-size: clamp(1.35rem, 2vw, 1.85rem);
30
+ font-weight: 650;
31
+ letter-spacing: -0.02em;
32
+ line-height: 1.15;
33
+ margin: 0 0 0.35rem;
34
+ }
35
+
36
+ .settings-shell__panel {
37
+ display: grid;
38
+ gap: 1rem;
39
+ grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
40
+ padding: 1rem;
41
+ }
42
+
43
+ .settings-shell__nav-list {
44
+ padding: 0.35rem;
45
+ }
46
+
47
+ .settings-shell__nav-list :deep(.v-list-item) {
48
+ min-height: 48px;
49
+ padding-inline: 0.6rem 0.7rem;
50
+ }
51
+
52
+ .settings-shell__nav-list :deep(.v-list-item__prepend) {
53
+ margin-inline-end: 0;
54
+ }
55
+
56
+ .settings-shell__nav-list :deep(.v-list-item__spacer) {
57
+ min-width: 0.5rem;
58
+ width: 0.5rem;
59
+ }
60
+
61
+ .settings-shell__nav-list :deep(.v-list-item-title) {
62
+ line-height: 1.2;
63
+ }
64
+
65
+ .settings-shell__content {
66
+ border-left: 1px solid rgba(var(--v-theme-on-surface), 0.18);
67
+ min-width: 0;
68
+ padding-left: 1rem;
69
+ }
70
+
71
+ @media (max-width: 960px) {
72
+ .settings-shell__panel {
73
+ grid-template-columns: 1fr;
74
+ }
75
+
76
+ .settings-shell__nav {
77
+ overflow-x: auto;
78
+ }
79
+
80
+ .settings-shell__nav-list {
81
+ display: flex;
82
+ gap: 0.25rem;
83
+ min-width: max-content;
84
+ }
85
+
86
+ .settings-shell__nav-list :deep(.v-list-item) {
87
+ min-height: 48px;
88
+ }
89
+
90
+ .settings-shell__content {
91
+ border-left: 0;
92
+ padding-left: 0;
93
+ }
94
+ }
95
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <WorkspaceInviteLanding />
3
+ </template>
4
+
5
+ <script setup>
6
+ import WorkspaceInviteLanding from "@jskit-ai/workspaces-web/client/components/WorkspaceInviteLanding";
7
+ </script>
@@ -0,0 +1,85 @@
1
+ <script setup>
2
+ import { useRoute } from "vue-router";
3
+ import WorkspaceNotFoundCard from "@/components/WorkspaceNotFoundCard.vue";
4
+ import { useWorkspaceNotFoundState } from "@/composables/useWorkspaceNotFoundState";
5
+
6
+ const route = useRoute();
7
+ const { workspaceUnavailable, workspaceUnavailableMessage } = useWorkspaceNotFoundState();
8
+
9
+ function adminChildPath(suffix = "") {
10
+ const basePath = String(route.path || "").replace(/\/+$/u, "");
11
+ const childPath = String(suffix || "").replace(/^\/+|\/+$/gu, "");
12
+ return childPath ? `${basePath}/${childPath}` : basePath;
13
+ }
14
+ </script>
15
+
16
+ <template>
17
+ <WorkspaceNotFoundCard
18
+ v-if="workspaceUnavailable"
19
+ :message="workspaceUnavailableMessage"
20
+ surface-label="Admin"
21
+ />
22
+ <section v-else class="workspace-admin-screen d-flex flex-column ga-4">
23
+ <header class="workspace-admin-screen__header">
24
+ <div>
25
+ <p class="text-overline text-medium-emphasis mb-1">Admin</p>
26
+ <h1 class="workspace-admin-screen__title">Workspace Admin</h1>
27
+ <p class="text-body-2 text-medium-emphasis mb-0">Manage members and workspace settings.</p>
28
+ </div>
29
+ <div class="workspace-admin-screen__actions">
30
+ <v-btn color="primary" variant="flat" :to="adminChildPath('members')">Members</v-btn>
31
+ <v-btn color="primary" variant="tonal" :to="adminChildPath('workspace/settings')">Settings</v-btn>
32
+ </div>
33
+ </header>
34
+
35
+ <v-sheet rounded="lg" border class="workspace-admin-screen__panel">
36
+ <h2 class="text-h6 mb-2">Admin tasks</h2>
37
+ <p class="text-body-2 text-medium-emphasis mb-0">
38
+ Review workspace access, members, and operational settings from this surface.
39
+ </p>
40
+ </v-sheet>
41
+ </section>
42
+ </template>
43
+
44
+ <style scoped>
45
+ .workspace-admin-screen__header {
46
+ align-items: flex-start;
47
+ display: flex;
48
+ gap: 1rem;
49
+ justify-content: space-between;
50
+ }
51
+
52
+ .workspace-admin-screen__title {
53
+ font-size: clamp(1.5rem, 2.5vw, 2.25rem);
54
+ font-weight: 700;
55
+ letter-spacing: -0.03em;
56
+ line-height: 1.1;
57
+ margin: 0 0 0.4rem;
58
+ }
59
+
60
+ .workspace-admin-screen__actions {
61
+ display: flex;
62
+ flex-wrap: wrap;
63
+ gap: 0.5rem;
64
+ justify-content: flex-end;
65
+ }
66
+
67
+ .workspace-admin-screen__panel {
68
+ padding: 1rem;
69
+ }
70
+
71
+ @media (max-width: 640px) {
72
+ .workspace-admin-screen__header {
73
+ flex-direction: column;
74
+ }
75
+
76
+ .workspace-admin-screen__actions {
77
+ width: 100%;
78
+ }
79
+
80
+ .workspace-admin-screen__actions :deep(.v-btn) {
81
+ min-height: 48px;
82
+ flex: 1 1 10rem;
83
+ }
84
+ }
85
+ </style>
@@ -0,0 +1,20 @@
1
+ <route lang="json">
2
+ {
3
+ "meta": {
4
+ "jskit": {
5
+ "surface": "admin"
6
+ }
7
+ }
8
+ }
9
+ </route>
10
+
11
+ <script setup>
12
+ import ShellLayout from "@/components/ShellLayout.vue";
13
+ import { RouterView } from "vue-router";
14
+ </script>
15
+
16
+ <template>
17
+ <ShellLayout title="" subtitle="">
18
+ <RouterView />
19
+ </ShellLayout>
20
+ </template>
@@ -0,0 +1,46 @@
1
+ <script setup>
2
+ import WorkspaceNotFoundCard from "@/components/WorkspaceNotFoundCard.vue";
3
+ import { useWorkspaceNotFoundState } from "@/composables/useWorkspaceNotFoundState";
4
+
5
+ const { workspaceUnavailable, workspaceUnavailableMessage } = useWorkspaceNotFoundState();
6
+ </script>
7
+
8
+ <template>
9
+ <WorkspaceNotFoundCard
10
+ v-if="workspaceUnavailable"
11
+ :message="workspaceUnavailableMessage"
12
+ surface-label="App"
13
+ />
14
+ <section v-else class="workspace-home-screen d-flex flex-column ga-4">
15
+ <header>
16
+ <p class="text-overline text-medium-emphasis mb-1">Workspace</p>
17
+ <h1 class="workspace-home-screen__title">Workspace Home</h1>
18
+ <p class="text-body-2 text-medium-emphasis mb-0">The current workspace is active.</p>
19
+ </header>
20
+
21
+ <v-sheet rounded="lg" border class="workspace-home-screen__panel">
22
+ <h2 class="text-h6 mb-2">No workspace activity yet</h2>
23
+ <p class="text-body-2 text-medium-emphasis mb-0">
24
+ Activity from workspace workflows will appear here.
25
+ </p>
26
+ </v-sheet>
27
+ </section>
28
+ </template>
29
+
30
+ <style scoped>
31
+ .workspace-home-screen__title {
32
+ font-size: clamp(1.5rem, 2.5vw, 2.25rem);
33
+ font-weight: 700;
34
+ letter-spacing: -0.03em;
35
+ line-height: 1.1;
36
+ margin: 0 0 0.4rem;
37
+ }
38
+
39
+ .workspace-home-screen__panel {
40
+ margin-inline: auto;
41
+ max-width: 34rem;
42
+ padding: 2rem 1.25rem;
43
+ text-align: center;
44
+ width: 100%;
45
+ }
46
+ </style>
@@ -0,0 +1,20 @@
1
+ <route lang="json">
2
+ {
3
+ "meta": {
4
+ "jskit": {
5
+ "surface": "app"
6
+ }
7
+ }
8
+ }
9
+ </route>
10
+
11
+ <script setup>
12
+ import ShellLayout from "@/components/ShellLayout.vue";
13
+ import { RouterView } from "vue-router";
14
+ </script>
15
+
16
+ <template>
17
+ <ShellLayout title="" subtitle="">
18
+ <RouterView />
19
+ </ShellLayout>
20
+ </template>
@@ -1,14 +1,16 @@
1
+ <!-- Generated from `packages/agent-docs/site/guide/framework/ui-operations.md` by `npm run agent-docs:build`. -->
2
+
1
3
  # UI operations
2
4
 
3
5
  Read this for routes, pages, surfaces, placements, responsive UI, and browser
4
- verification.
6
+ verification. Also read the complete [Material 3 contract](material-3.md).
5
7
 
6
8
  ## Pages, surfaces, and placements
7
9
 
8
10
  Take the surface and navigation role from the request, product context, and
9
11
  current app. They control routes, access, placement visibility, and often
10
- ownership. Inspect `app/shell-foundation` plus the narrow UI pattern that
11
- matches the requested outcome before authoring source.
12
+ ownership. Inspect `app/shell-foundation` plus the narrow matching entry in
13
+ the [bundled source pattern index](pattern-index.md) before authoring source.
12
14
 
13
15
  Create route files and placement declarations as normal application code.
14
16
  Use semantic placement ids and shell public helpers; use concrete outlet ids
@@ -1,16 +1,16 @@
1
1
  # App Agent Instructions
2
2
 
3
- Use current project context, JSKIT public APIs, and the installed JSKIT pattern
4
- index as the source of truth for application work.
3
+ Use current project context, JSKIT public APIs, and the official framework
4
+ documentation as the source of truth for application work.
5
5
 
6
- Recommended references:
6
+ Framework references:
7
7
 
8
- - `node_modules/@jskit-ai/agent-docs/guide/agent/index.md`
9
- - `node_modules/@jskit-ai/agent-docs/patterns/INDEX.md`
8
+ - `https://mobily-enterprises.github.io/jskit-ai/guide/`
9
+ - `https://mobily-enterprises.github.io/jskit-ai/patterns/`
10
10
 
11
- Before database, schema, CRUD, repository, or persistence work, read and follow
12
- the relevant package-owned pattern listed in
13
- `node_modules/@jskit-ai/agent-docs/reference/autogen/PATTERN_INDEX.md`.
11
+ Before implementation, read the narrow relevant source pattern completely. If
12
+ its owner package is installed, prefer that version-matched package-owned copy.
13
+ Do not install an unrelated runtime package only to read documentation.
14
14
 
15
15
  Copied pattern source is ordinary application source. Do not add generator
16
16
  provenance, receipts, completion ledgers, or tooling-operation history. Keep