@jskit-ai/agent-docs 0.1.131 → 0.1.133
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.
- package/guide/agent/app-extras/assistant.md +29 -605
- package/guide/agent/app-extras/mobile-capacitor.md +29 -362
- package/guide/agent/app-extras/realtime.md +29 -277
- package/guide/agent/app-setup/a-more-interesting-shell.md +44 -815
- package/guide/agent/app-setup/authentication.md +43 -1073
- package/guide/agent/app-setup/console.md +26 -298
- package/guide/agent/app-setup/database-layer.md +110 -790
- package/guide/agent/app-setup/existing-application-migration.md +273 -0
- package/guide/agent/app-setup/initial-scaffolding.md +50 -784
- package/guide/agent/app-setup/multi-homing.md +39 -712
- package/guide/agent/app-setup/quickstart.md +43 -179
- package/guide/agent/app-setup/users.md +34 -353
- package/guide/agent/index.md +17 -23
- package/package.json +2 -2
- package/patterns/INDEX.md +7 -7
- package/patterns/child-cruds.md +3 -3
- package/patterns/client-requests.md +6 -6
- package/patterns/crud-authoring.md +94 -0
- package/patterns/crud-links.md +1 -1
- package/patterns/feature-package/PATTERN.md +108 -0
- package/patterns/feature-package/example/booking-engine/package.json +48 -0
- package/patterns/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +33 -0
- package/patterns/feature-package/example/booking-engine/src/server/actions.js +26 -0
- package/patterns/feature-package/example/booking-engine/src/server/inputSchemas.js +19 -0
- package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +31 -0
- package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +36 -0
- package/patterns/feature-package/example/variations/customKnexRepository.js +34 -0
- package/patterns/feature-package/example/variations/orchestratorService.js +23 -0
- package/patterns/filters.md +8 -8
- package/patterns/live-actions.md +5 -18
- package/patterns/minimal-foundation/PATTERN.md +98 -0
- package/patterns/minimal-foundation/example/.nvmrc +1 -0
- package/patterns/minimal-foundation/example/AGENTS.md +17 -0
- package/patterns/minimal-foundation/example/Procfile +2 -0
- package/patterns/minimal-foundation/example/app.json +14 -0
- package/patterns/minimal-foundation/example/bin/develop.js +71 -0
- package/patterns/minimal-foundation/example/bin/server.js +8 -0
- package/patterns/minimal-foundation/example/config/public.js +40 -0
- package/patterns/minimal-foundation/example/config/server.js +1 -0
- package/patterns/minimal-foundation/example/config/surfaceAccessPolicies.js +3 -0
- package/patterns/minimal-foundation/example/eslint.config.mjs +19 -0
- package/patterns/minimal-foundation/example/favicon.svg +7 -0
- package/patterns/minimal-foundation/example/gitignore +9 -0
- package/patterns/minimal-foundation/example/index.html +13 -0
- package/patterns/minimal-foundation/example/jsconfig.json +8 -0
- package/patterns/minimal-foundation/example/package.json +57 -0
- package/patterns/minimal-foundation/example/packages/main/package.json +42 -0
- package/patterns/minimal-foundation/example/packages/main/src/shared/index.js +10 -0
- package/patterns/minimal-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
- package/patterns/minimal-foundation/example/playwright.config.mjs +31 -0
- package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +45 -0
- package/patterns/minimal-foundation/example/server/lib/surfaceRuntime.js +10 -0
- package/patterns/minimal-foundation/example/server.js +195 -0
- package/patterns/minimal-foundation/example/src/App.vue +13 -0
- package/patterns/minimal-foundation/example/src/main.js +85 -0
- package/patterns/minimal-foundation/example/src/pages/home/index.vue +48 -0
- package/patterns/minimal-foundation/example/src/pages/home.vue +13 -0
- package/patterns/minimal-foundation/example/src/views/NotFound.vue +13 -0
- package/patterns/minimal-foundation/example/tests/client/smoke.vitest.js +7 -0
- package/patterns/minimal-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
- package/patterns/minimal-foundation/example/tests/server/smoke.test.js +16 -0
- package/patterns/minimal-foundation/example/vite.config.mjs +81 -0
- package/patterns/page-scaffolding.md +20 -17
- package/patterns/placements.md +17 -15
- package/patterns/row-policies.md +4 -5
- package/patterns/server-search.md +3 -3
- package/patterns/shell-foundation/PATTERN.md +104 -0
- package/patterns/shell-foundation/example/.nvmrc +1 -0
- package/patterns/shell-foundation/example/AGENTS.md +17 -0
- package/patterns/shell-foundation/example/Procfile +2 -0
- package/patterns/shell-foundation/example/app.json +14 -0
- package/patterns/shell-foundation/example/bin/develop.js +71 -0
- package/patterns/shell-foundation/example/bin/server.js +8 -0
- package/patterns/shell-foundation/example/config/public.js +40 -0
- package/patterns/shell-foundation/example/config/server.js +1 -0
- package/patterns/shell-foundation/example/config/surfaceAccessPolicies.js +3 -0
- package/patterns/shell-foundation/example/eslint.config.mjs +19 -0
- package/patterns/shell-foundation/example/favicon.svg +7 -0
- package/patterns/shell-foundation/example/gitignore +9 -0
- package/patterns/shell-foundation/example/index.html +13 -0
- package/patterns/shell-foundation/example/jsconfig.json +8 -0
- package/patterns/shell-foundation/example/package.json +59 -0
- package/patterns/shell-foundation/example/packages/main/package.json +56 -0
- package/patterns/shell-foundation/example/packages/main/src/client/index.js +9 -0
- package/patterns/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +18 -0
- package/patterns/shell-foundation/example/packages/main/src/shared/index.js +10 -0
- package/patterns/shell-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
- package/patterns/shell-foundation/example/playwright.config.mjs +31 -0
- package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +45 -0
- package/patterns/shell-foundation/example/server/lib/surfaceRuntime.js +10 -0
- package/patterns/shell-foundation/example/server.js +195 -0
- package/patterns/shell-foundation/example/src/App.vue +11 -0
- package/patterns/shell-foundation/example/src/components/ShellLayout.vue +12 -0
- package/patterns/shell-foundation/example/src/components/menus/MenuLinkItem.vue +30 -0
- package/patterns/shell-foundation/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
- package/patterns/shell-foundation/example/src/components/menus/TabLinkItem.vue +42 -0
- package/patterns/shell-foundation/example/src/error.js +19 -0
- package/patterns/shell-foundation/example/src/main.js +85 -0
- package/patterns/shell-foundation/example/src/pages/home/index.vue +116 -0
- package/patterns/shell-foundation/example/src/pages/home/settings/general/index.vue +40 -0
- package/patterns/shell-foundation/example/src/pages/home/settings/index.vue +7 -0
- package/patterns/shell-foundation/example/src/pages/home/settings.vue +109 -0
- package/patterns/shell-foundation/example/src/pages/home.vue +20 -0
- package/patterns/shell-foundation/example/src/placement.js +56 -0
- package/patterns/shell-foundation/example/src/placementTopology.js +149 -0
- package/patterns/shell-foundation/example/src/views/NotFound.vue +13 -0
- package/patterns/shell-foundation/example/tests/client/smoke.vitest.js +7 -0
- package/patterns/shell-foundation/example/tests/e2e/adaptive-shell.spec.ts +10 -0
- package/patterns/shell-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
- package/patterns/shell-foundation/example/tests/server/smoke.test.js +16 -0
- package/patterns/shell-foundation/example/vite.config.mjs +81 -0
- package/patterns/ui-contract.md +56 -0
- package/patterns/ui-testing.md +10 -12
- package/reference/autogen/KERNEL_MAP.md +29 -107
- package/reference/autogen/PATTERN_INDEX.md +230 -0
- package/reference/autogen/README.md +4 -8
- package/reference/autogen/packages/agent-docs.md +259 -0
- package/reference/autogen/packages/assistant-core.md +3 -3
- package/reference/autogen/packages/assistant-runtime.md +32 -17
- package/reference/autogen/packages/auth-core.md +31 -33
- package/reference/autogen/packages/auth-provider-local-core.md +4 -12
- package/reference/autogen/packages/auth-provider-local-db-core.md +4 -4
- package/reference/autogen/packages/auth-provider-supabase-core.md +14 -18
- package/reference/autogen/packages/auth-web.md +42 -22
- package/reference/autogen/packages/console-core.md +8 -25
- package/reference/autogen/packages/console-web.md +5 -5
- package/reference/autogen/packages/crud-core.md +61 -17
- package/reference/autogen/packages/database-runtime-mysql.md +12 -2
- package/reference/autogen/packages/database-runtime-postgres.md +12 -2
- package/reference/autogen/packages/database-runtime.md +26 -25
- package/reference/autogen/packages/google-rewarded-core.md +19 -104
- package/reference/autogen/packages/http-runtime.md +4 -8
- package/reference/autogen/packages/http-web.md +32 -0
- package/reference/autogen/packages/json-rest-api-core.md +4 -6
- package/reference/autogen/packages/kernel.md +109 -390
- package/reference/autogen/packages/mobile-capacitor.md +2 -13
- package/reference/autogen/packages/realtime.md +29 -26
- package/reference/autogen/packages/resource-crud-core.md +6 -0
- package/reference/autogen/packages/shell-web.md +69 -54
- package/reference/autogen/packages/storage-runtime.md +3 -3
- package/reference/autogen/packages/uploads-image-web.md +0 -1
- package/reference/autogen/packages/uploads-runtime.md +3 -3
- package/reference/autogen/packages/users-core.md +45 -90
- package/reference/autogen/packages/users-web.md +5 -7
- package/reference/autogen/packages/workspaces-core.md +53 -74
- package/reference/autogen/packages/workspaces-web.md +15 -16
- package/reference/autogen/tooling/jskit-catalog.md +34 -0
- package/reference/autogen/tooling/testUtils.md +4 -4
- package/skills/jskit/SKILL.md +38 -31
- package/skills/jskit/references/app-operations.md +68 -53
- package/skills/jskit/references/crud-operations.md +58 -106
- package/skills/jskit/references/material-3.md +1 -1
- package/skills/jskit/references/ui-operations.md +41 -44
- package/templates/app/AGENTS.md +7 -3
- package/guide/agent/app-setup/upgrade-beta-1-to-final.md +0 -252
- package/guide/agent/app-setup/working-with-the-jskit-cli.md +0 -325
- package/guide/agent/generators/advanced-cruds.md +0 -1935
- package/guide/agent/generators/crud-generators.md +0 -948
- package/guide/agent/generators/intro.md +0 -65
- package/guide/agent/generators/row-policies.md +0 -537
- package/guide/agent/generators/ui-generators.md +0 -690
- package/patterns/crud-scaffolding.md +0 -198
- package/patterns/generated-ui-contract-tracking.md +0 -66
- package/reference/autogen/packages/assistant.md +0 -68
- package/reference/autogen/packages/crud-server-generator.md +0 -215
- package/reference/autogen/packages/crud-ui-generator.md +0 -192
- package/reference/autogen/packages/feature-server-generator.md +0 -65
- package/reference/autogen/packages/ui-generator.md +0 -127
- package/reference/autogen/tooling/create-app.md +0 -317
- package/reference/autogen/tooling/jskit-cli.md +0 -933
- package/reference/autogen/tooling/test-support.md +0 -27
|
@@ -26,7 +26,6 @@ Exports
|
|
|
26
26
|
### `src/client/bootstrap/user-bootstrap-handler.js`
|
|
27
27
|
Exports
|
|
28
28
|
- `createUsersBootstrapUserHandler()`
|
|
29
|
-
- `registerUsersBootstrapPayloadHandlers(app)`
|
|
30
29
|
|
|
31
30
|
### `src/client/components/AccountSettingsClientElement.vue`
|
|
32
31
|
Exports
|
|
@@ -78,7 +77,6 @@ Exports
|
|
|
78
77
|
Exports
|
|
79
78
|
- `UsersWebClientProvider`
|
|
80
79
|
- `AccountSettingsClientElement`
|
|
81
|
-
- `clientProviders`
|
|
82
80
|
|
|
83
81
|
### `src/client/lib/bootstrap.js`
|
|
84
82
|
Exports
|
|
@@ -110,20 +108,20 @@ Exports
|
|
|
110
108
|
Exports
|
|
111
109
|
- `HOME_COG_OUTLET`
|
|
112
110
|
|
|
113
|
-
###
|
|
111
|
+
### patterns
|
|
114
112
|
|
|
115
|
-
### `
|
|
113
|
+
### `patterns/account-settings/example/src/components/account/settings/AccountSettingsNotificationsSection.vue`
|
|
116
114
|
Exports
|
|
117
115
|
- None
|
|
118
116
|
|
|
119
|
-
### `
|
|
117
|
+
### `patterns/account-settings/example/src/components/account/settings/AccountSettingsPreferencesSection.vue`
|
|
120
118
|
Exports
|
|
121
119
|
- None
|
|
122
120
|
|
|
123
|
-
### `
|
|
121
|
+
### `patterns/account-settings/example/src/components/account/settings/AccountSettingsProfileSection.vue`
|
|
124
122
|
Exports
|
|
125
123
|
- None
|
|
126
124
|
|
|
127
|
-
### `
|
|
125
|
+
### `patterns/account-settings/example/src/pages/account/index.vue`
|
|
128
126
|
Exports
|
|
129
127
|
- None
|
|
@@ -16,17 +16,17 @@ Use this on demand; do not load the full index at startup.
|
|
|
16
16
|
|
|
17
17
|
### `src/server/common/contributors/workspaceActionContextContributor.js`
|
|
18
18
|
Exports
|
|
19
|
-
- `createWorkspaceActionContextContributor({ workspaceService, workspaceSurfaceIds = [] } = {})`
|
|
19
|
+
- `createWorkspaceActionContextContributor({ workspaceService, workspaceMembershipOptionalSurfaceIds = [], workspaceSurfaceIds = [] } = {})`
|
|
20
20
|
Local functions
|
|
21
21
|
- `normalizeWorkspaceSurfaceIds(surfaceIds = [])`
|
|
22
22
|
|
|
23
23
|
### `src/server/common/contributors/workspaceAuthPolicyContextResolver.js`
|
|
24
24
|
Exports
|
|
25
|
-
- `createWorkspaceAuthPolicyContextResolver({ workspaceService } = {})`
|
|
25
|
+
- `createWorkspaceAuthPolicyContextResolver({ workspaceService, workspaceMembershipOptionalSurfaceIds = [] } = {})`
|
|
26
26
|
|
|
27
27
|
### `src/server/common/contributors/workspaceRouteVisibilityResolver.js`
|
|
28
28
|
Exports
|
|
29
|
-
- `createWorkspaceRouteVisibilityResolver({ workspaceService } = {})`
|
|
29
|
+
- `createWorkspaceRouteVisibilityResolver({ workspaceService, workspaceMembershipOptionalSurfaceIds = [] } = {})`
|
|
30
30
|
Local functions
|
|
31
31
|
- `buildVisibilityContribution({ visibility, scopeOwnerId = null, userId = null } = {})`
|
|
32
32
|
|
|
@@ -91,11 +91,17 @@ Exports
|
|
|
91
91
|
|
|
92
92
|
### `src/server/common/support/realtimeServiceEvents.js`
|
|
93
93
|
Exports
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
94
|
+
- `INVITE_RECIPIENT_BOOTSTRAP_AUDIENCE`
|
|
95
|
+
- `createInviteDecisionEvents()`
|
|
96
|
+
- `createWorkspaceEntityAndBootstrapEvents({ workspaceEntity, workspaceOperation, workspaceRealtimeEvent, bootstrapEntityId = workspaceId, bootstrapAudience = "event_scope" } = {})`
|
|
96
97
|
Local functions
|
|
97
|
-
- `
|
|
98
|
-
- `
|
|
98
|
+
- `resultValue({ result } = {})`
|
|
99
|
+
- `actorId({ context } = {})`
|
|
100
|
+
- `workspaceId(execution = {})`
|
|
101
|
+
- `workspaceSlugPayload(execution = {})`
|
|
102
|
+
- `createActorEvent({ source, entity, realtimeEvent })`
|
|
103
|
+
- `createWorkspaceAudienceEvent({ entity, realtimeEvent })`
|
|
104
|
+
- `onlyAccepted(builder)`
|
|
99
105
|
|
|
100
106
|
### `src/server/common/support/resolveActionUser.js`
|
|
101
107
|
Exports
|
|
@@ -111,18 +117,6 @@ Exports
|
|
|
111
117
|
- `routeParamsValidator`
|
|
112
118
|
- `workspaceSlugParamsValidator`
|
|
113
119
|
|
|
114
|
-
### `src/server/registerWorkspaceBootstrap.js`
|
|
115
|
-
Exports
|
|
116
|
-
- `registerWorkspaceBootstrap(app)`
|
|
117
|
-
|
|
118
|
-
### `src/server/registerWorkspaceCore.js`
|
|
119
|
-
Exports
|
|
120
|
-
- `registerWorkspaceCore(app)`
|
|
121
|
-
|
|
122
|
-
### `src/server/registerWorkspaceRepositories.js`
|
|
123
|
-
Exports
|
|
124
|
-
- `registerWorkspaceRepositories(app)`
|
|
125
|
-
|
|
126
120
|
### `src/server/support/resolveWorkspace.js`
|
|
127
121
|
Exports
|
|
128
122
|
- `resolveWorkspace(context = {}, input = {})`
|
|
@@ -132,10 +126,10 @@ Local functions
|
|
|
132
126
|
### `src/server/support/workspaceActionSurfaces.js`
|
|
133
127
|
Exports
|
|
134
128
|
- `resolveWorkspaceSurfaceIdsFromAppConfig(appConfig = {})`
|
|
129
|
+
- `resolveWorkspaceMembershipOptionalSurfaceIdsFromAppConfig(appConfig = {})`
|
|
135
130
|
- `resolveDefaultWorkspaceRouteSurfaceIdFromAppConfig(appConfig = {})`
|
|
136
131
|
- `materializeWorkspaceActionSurfaces(actions = [], { workspaceSurfaceIds = [] } = {})`
|
|
137
132
|
- `materializeWorkspaceActionSurfacesFromAppConfig(actions = [], { appConfig = {} } = {})`
|
|
138
|
-
- `registerWorkspaceActionSurfaceSources(app)`
|
|
139
133
|
Local functions
|
|
140
134
|
- `normalizeSurfaceIds(surfaceIds = [])`
|
|
141
135
|
- `resolveSurfaceIdsFromAppConfig(appConfig = {}, predicate)`
|
|
@@ -150,10 +144,6 @@ Exports
|
|
|
150
144
|
- `readWorkspaceSlugFromRouteParams(params = {})`
|
|
151
145
|
- `buildWorkspaceInputFromRouteParams(params = {})`
|
|
152
146
|
|
|
153
|
-
### `src/server/support/workspaceServerScopeSupport.js`
|
|
154
|
-
Exports
|
|
155
|
-
- `createWorkspaceServerScopeSupport()`
|
|
156
|
-
|
|
157
147
|
### `src/server/workspaceBootstrapContributor.js`
|
|
158
148
|
Exports
|
|
159
149
|
- `createWorkspaceBootstrapContributor({ workspaceService, workspacePendingInvitationsService, userProfilesRepository, workspaceInvitationsEnabled = false, appConfig = {}, tenancyProfile = null } = {})`
|
|
@@ -167,21 +157,18 @@ Local functions
|
|
|
167
157
|
|
|
168
158
|
### `src/server/workspaceDirectory/bootWorkspaceDirectoryRoutes.js`
|
|
169
159
|
Exports
|
|
170
|
-
- `
|
|
160
|
+
- `registerWorkspaceDirectoryRoutes(router, { config = {}, workspaceSelfCreateEnabled = false } = {})`
|
|
171
161
|
Local functions
|
|
172
162
|
- `resolveWorkspaceRecordId(record = {}, context = {})`
|
|
173
163
|
|
|
174
|
-
### `src/server/workspaceDirectory/registerWorkspaceDirectory.js`
|
|
175
|
-
Exports
|
|
176
|
-
- `registerWorkspaceDirectory(app)`
|
|
177
|
-
|
|
178
164
|
### `src/server/workspaceDirectory/workspaceDirectoryActions.js`
|
|
179
165
|
Exports
|
|
180
|
-
- `
|
|
166
|
+
- `workspaceDirectoryActionSpecifications`
|
|
167
|
+
- `buildWorkspaceDirectoryActions({ workspaceService } = {})`
|
|
181
168
|
|
|
182
169
|
### `src/server/workspaceMembers/bootWorkspaceMembers.js`
|
|
183
170
|
Exports
|
|
184
|
-
- `
|
|
171
|
+
- `registerWorkspaceMembersRoutes(router, { config = {}, workspaceInvitationsEnabled = false } = {})`
|
|
185
172
|
Local functions
|
|
186
173
|
- `resolveWorkspaceAggregateRecordId(record = {}, context = {})`
|
|
187
174
|
|
|
@@ -191,13 +178,6 @@ Exports
|
|
|
191
178
|
Local functions
|
|
192
179
|
- `escapeHtml(value = "")`
|
|
193
180
|
|
|
194
|
-
### `src/server/workspaceMembers/registerWorkspaceMembers.js`
|
|
195
|
-
Exports
|
|
196
|
-
- `registerWorkspaceMembers(app)`
|
|
197
|
-
Local functions
|
|
198
|
-
- `resolveWorkspaceMembersInviteExpiresInMs(appConfig = {})`
|
|
199
|
-
- `resolveWorkspaceInviteEmailTemplate(scope, appConfig = {})`
|
|
200
|
-
|
|
201
181
|
### `src/server/workspaceMembers/workspaceInviteUrls.js`
|
|
202
182
|
Exports
|
|
203
183
|
- `buildInvitePath(token, pathTemplate = "/invite/:token")`
|
|
@@ -208,7 +188,8 @@ Local functions
|
|
|
208
188
|
|
|
209
189
|
### `src/server/workspaceMembers/workspaceMembersActions.js`
|
|
210
190
|
Exports
|
|
211
|
-
- `
|
|
191
|
+
- `workspaceMembersActionSpecifications`
|
|
192
|
+
- `buildWorkspaceMembersActions({ workspaceMembersService } = {})`
|
|
212
193
|
|
|
213
194
|
### `src/server/workspaceMembers/workspaceMembersService.js`
|
|
214
195
|
Exports
|
|
@@ -216,60 +197,56 @@ Exports
|
|
|
216
197
|
|
|
217
198
|
### `src/server/workspacePendingInvitations/bootWorkspacePendingInvitations.js`
|
|
218
199
|
Exports
|
|
219
|
-
- `
|
|
200
|
+
- `registerWorkspacePendingInvitationsRoutes(router)`
|
|
220
201
|
Local functions
|
|
221
202
|
- `resolveAuthenticatedUserRecordId(_record, context = {})`
|
|
222
203
|
- `resolveInviteResolutionRecordId(record = {})`
|
|
223
204
|
|
|
224
|
-
### `src/server/workspacePendingInvitations/registerWorkspacePendingInvitations.js`
|
|
225
|
-
Exports
|
|
226
|
-
- `registerWorkspacePendingInvitations(app)`
|
|
227
|
-
Local functions
|
|
228
|
-
- `workspaceAudienceFromEntityId({ event } = {})`
|
|
229
|
-
- `actorUserEntityId({ options } = {})`
|
|
230
|
-
- `createActorUserEvent({ source, entity, realtimeEvent })`
|
|
231
|
-
- `createWorkspaceAudienceEvent({ entity, realtimeEvent })`
|
|
232
|
-
- `createInviteDecisionEvents({ includeDirectoryAndMembers = false } = {})`
|
|
233
|
-
|
|
234
205
|
### `src/server/workspacePendingInvitations/workspacePendingInvitationsActions.js`
|
|
235
206
|
Exports
|
|
236
|
-
- `
|
|
207
|
+
- `workspacePendingInvitationsActionSpecifications`
|
|
208
|
+
- `buildWorkspacePendingInvitationsActions({ workspacePendingInvitationsService } = {})`
|
|
237
209
|
|
|
238
210
|
### `src/server/workspacePendingInvitations/workspacePendingInvitationsService.js`
|
|
239
211
|
Exports
|
|
240
212
|
- `createService({ workspaceInvitesRepository, workspaceMembershipsRepository } = {})`
|
|
241
213
|
|
|
242
|
-
### `src/server/WorkspacesCoreServiceProvider.js`
|
|
243
|
-
Exports
|
|
244
|
-
- `WorkspacesCoreServiceProvider`
|
|
245
|
-
|
|
246
214
|
### `src/server/workspaceSettings/bootWorkspaceSettings.js`
|
|
247
215
|
Exports
|
|
248
|
-
- `
|
|
216
|
+
- `registerWorkspaceSettingsRoutes(router, { config = {} } = {})`
|
|
249
217
|
Local functions
|
|
250
218
|
- `resolveWorkspaceSettingsRecordId(record = {}, context = {})`
|
|
251
219
|
|
|
252
|
-
### `src/server/workspaceSettings/registerWorkspaceSettings.js`
|
|
253
|
-
Exports
|
|
254
|
-
- `registerWorkspaceSettings(app)`
|
|
255
|
-
Local functions
|
|
256
|
-
- `resolveWorkspaceSettingsDefaultInvitesEnabled(appConfig = {})`
|
|
257
|
-
|
|
258
220
|
### `src/server/workspaceSettings/workspaceSettingsActions.js`
|
|
259
221
|
Exports
|
|
260
|
-
- `
|
|
222
|
+
- `workspaceSettingsActionSpecifications`
|
|
223
|
+
- `buildWorkspaceSettingsActions({ workspaceSettingsService } = {})`
|
|
261
224
|
|
|
262
225
|
### `src/server/workspaceSettings/workspaceSettingsRepository.js`
|
|
263
226
|
Exports
|
|
264
|
-
- `createRepository({ api, knex } = {})`
|
|
227
|
+
- `createRepository({ api, knex, defaultInvitesEnabled = true } = {})`
|
|
265
228
|
Local functions
|
|
266
229
|
- `pickPatchFields(source = {})`
|
|
267
|
-
- `createDefaultWorkspaceSettingsCreatePayload(workspaceId)`
|
|
230
|
+
- `createDefaultWorkspaceSettingsCreatePayload(workspaceId, defaultInvitesEnabled)`
|
|
268
231
|
|
|
269
232
|
### `src/server/workspaceSettings/workspaceSettingsService.js`
|
|
270
233
|
Exports
|
|
271
234
|
- `createService({ workspaceSettingsRepository, workspaceInvitationsEnabled = true, roleCatalog = null } = {})`
|
|
272
235
|
|
|
236
|
+
### `src/server/WorkspacesFeature.js`
|
|
237
|
+
Exports
|
|
238
|
+
- `WorkspacesFeature`
|
|
239
|
+
- `createWorkspacesRuntime({ config, database, env, jsonRestApi } = {})`
|
|
240
|
+
- `installWorkspaceResources(jsonRestApi)`
|
|
241
|
+
Local functions
|
|
242
|
+
- `requirePositiveInteger(value, label)`
|
|
243
|
+
- `requireBoolean(value, label)`
|
|
244
|
+
- `resolveInviteEmailTemplate(config)`
|
|
245
|
+
|
|
246
|
+
### `src/server/WorkspacesIntegrationsProvider.js`
|
|
247
|
+
Exports
|
|
248
|
+
- `WorkspacesIntegrationsProvider`
|
|
249
|
+
|
|
273
250
|
### `src/shared/jsonApiTransports.js`
|
|
274
251
|
Exports
|
|
275
252
|
- `WORKSPACES_TRANSPORT`
|
|
@@ -397,24 +374,20 @@ Local functions
|
|
|
397
374
|
- `resolveWorkspacePolicyOverrides(appConfig = {})`
|
|
398
375
|
- `resolveWorkspacePolicy(mode, overrides = {})`
|
|
399
376
|
|
|
400
|
-
###
|
|
401
|
-
|
|
402
|
-
### `templates/config/roles.js`
|
|
403
|
-
Exports
|
|
404
|
-
- `roleCatalog`
|
|
377
|
+
### migrations
|
|
405
378
|
|
|
406
|
-
### `
|
|
379
|
+
### `migrations/workspaces_core_initial.cjs`
|
|
407
380
|
Exports
|
|
408
381
|
- None
|
|
409
382
|
|
|
410
|
-
### `
|
|
383
|
+
### `migrations/workspaces_core_workspace_settings_single_name_source.cjs`
|
|
411
384
|
Exports
|
|
412
385
|
- None
|
|
413
386
|
Local functions
|
|
414
387
|
- `hasTable(knex, tableName)`
|
|
415
388
|
- `hasColumn(knex, tableName, columnName)`
|
|
416
389
|
|
|
417
|
-
### `
|
|
390
|
+
### `migrations/workspaces_core_workspaces_drop_color.cjs`
|
|
418
391
|
Exports
|
|
419
392
|
- None
|
|
420
393
|
Local functions
|
|
@@ -422,6 +395,12 @@ Local functions
|
|
|
422
395
|
- `hasColumn(knex, tableName, columnName)`
|
|
423
396
|
- `normalizeHexColor(value)`
|
|
424
397
|
|
|
425
|
-
###
|
|
398
|
+
### patterns
|
|
399
|
+
|
|
400
|
+
### `patterns/workspace-server/example/config/roles.js`
|
|
401
|
+
Exports
|
|
402
|
+
- `roleCatalog`
|
|
403
|
+
|
|
404
|
+
### `patterns/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js`
|
|
426
405
|
Exports
|
|
427
406
|
- `renderWorkspaceInviteEmail({ inviteUrl = "", workspace = {}, inviter = null, roleSid = "member", expiresAt = "" } = {})`
|
|
@@ -136,7 +136,6 @@ Exports
|
|
|
136
136
|
- `WorkspacesWebClientProvider`
|
|
137
137
|
- `WorkspaceMembersClientElement`
|
|
138
138
|
- `WorkspaceInviteLanding`
|
|
139
|
-
- `clientProviders`
|
|
140
139
|
|
|
141
140
|
### `src/client/lib/bootstrap.js`
|
|
142
141
|
Exports
|
|
@@ -247,7 +246,7 @@ Exports
|
|
|
247
246
|
- `WORKSPACE_BOOTSTRAP_STATUS_FORBIDDEN`
|
|
248
247
|
- `WORKSPACE_BOOTSTRAP_STATUS_UNAUTHENTICATED`
|
|
249
248
|
- `WORKSPACE_BOOTSTRAP_STATUS_ERROR`
|
|
250
|
-
- `createBootstrapPlacementRuntime({
|
|
249
|
+
- `createBootstrapPlacementRuntime({ bootstrapRuntime, placementRuntime, realtime = null, router = null, vueApp = null, logger = null } = {})`
|
|
251
250
|
|
|
252
251
|
### `src/client/runtime/bootstrapPlacementRuntimeConstants.js`
|
|
253
252
|
Exports
|
|
@@ -264,7 +263,7 @@ Exports
|
|
|
264
263
|
### `src/client/runtime/bootstrapPlacementRuntimeHelpers.js`
|
|
265
264
|
Exports
|
|
266
265
|
- `countPendingInvites(entries = [])`
|
|
267
|
-
- `createProviderLogger(
|
|
266
|
+
- `createProviderLogger(logger)`
|
|
268
267
|
- `fetchBootstrapPayload(workspaceSlug = "")`
|
|
269
268
|
- `isGuardDenied(outcome)`
|
|
270
269
|
- `normalizeSearch(search = "")`
|
|
@@ -300,9 +299,9 @@ Exports
|
|
|
300
299
|
Exports
|
|
301
300
|
- `ADMIN_COG_OUTLET`
|
|
302
301
|
|
|
303
|
-
###
|
|
302
|
+
### patterns
|
|
304
303
|
|
|
305
|
-
### `
|
|
304
|
+
### `patterns/workspace-surfaces/example/packages/main/src/client/components/AccountPendingInvitesCue.vue`
|
|
306
305
|
Exports
|
|
307
306
|
- None
|
|
308
307
|
Local functions
|
|
@@ -310,48 +309,48 @@ Local functions
|
|
|
310
309
|
- `resolveReturnTo()`
|
|
311
310
|
- `resolveReturnToHref()`
|
|
312
311
|
|
|
313
|
-
### `
|
|
312
|
+
### `patterns/workspace-surfaces/example/packages/main/src/client/components/AccountSettingsInvitesSection.vue`
|
|
314
313
|
Exports
|
|
315
314
|
- None
|
|
316
315
|
|
|
317
|
-
### `
|
|
316
|
+
### `patterns/workspace-surfaces/example/src/components/WorkspaceNotFoundCard.vue`
|
|
318
317
|
Exports
|
|
319
318
|
- None
|
|
320
319
|
|
|
321
|
-
### `
|
|
320
|
+
### `patterns/workspace-surfaces/example/src/composables/useWorkspaceNotFoundState.js`
|
|
322
321
|
Exports
|
|
323
322
|
- `useWorkspaceNotFoundState()`
|
|
324
323
|
|
|
325
|
-
### `
|
|
324
|
+
### `patterns/workspace-surfaces/example/src/pages/admin/members/index.vue`
|
|
326
325
|
Exports
|
|
327
326
|
- None
|
|
328
327
|
|
|
329
|
-
### `
|
|
328
|
+
### `patterns/workspace-surfaces/example/src/pages/admin/workspace/settings.vue`
|
|
330
329
|
Exports
|
|
331
330
|
- None
|
|
332
331
|
|
|
333
|
-
### `
|
|
332
|
+
### `patterns/workspace-surfaces/example/src/pages/admin/workspace/settings/index.vue`
|
|
334
333
|
Exports
|
|
335
334
|
- None
|
|
336
335
|
|
|
337
|
-
### `
|
|
336
|
+
### `patterns/workspace-surfaces/example/src/pages/invite/[token].vue`
|
|
338
337
|
Exports
|
|
339
338
|
- None
|
|
340
339
|
|
|
341
|
-
### `
|
|
340
|
+
### `patterns/workspace-surfaces/example/src/surfaces/admin/index.vue`
|
|
342
341
|
Exports
|
|
343
342
|
- None
|
|
344
343
|
Local functions
|
|
345
344
|
- `adminChildPath(suffix = "")`
|
|
346
345
|
|
|
347
|
-
### `
|
|
346
|
+
### `patterns/workspace-surfaces/example/src/surfaces/admin/root.vue`
|
|
348
347
|
Exports
|
|
349
348
|
- None
|
|
350
349
|
|
|
351
|
-
### `
|
|
350
|
+
### `patterns/workspace-surfaces/example/src/surfaces/app/index.vue`
|
|
352
351
|
Exports
|
|
353
352
|
- None
|
|
354
353
|
|
|
355
|
-
### `
|
|
354
|
+
### `patterns/workspace-surfaces/example/src/surfaces/app/root.vue`
|
|
356
355
|
Exports
|
|
357
356
|
- None
|
|
@@ -25,3 +25,37 @@ Local functions
|
|
|
25
25
|
- `readJson(absolutePath)`
|
|
26
26
|
- `buildCatalog({ repoRoot, packagesRoot, outputPath })`
|
|
27
27
|
- `main()`
|
|
28
|
+
|
|
29
|
+
### `scripts/pattern-assets.mjs`
|
|
30
|
+
Exports
|
|
31
|
+
- `PATTERN_DOCUMENT_NAME`
|
|
32
|
+
- `PATTERN_EXAMPLE_DIRECTORY`
|
|
33
|
+
- `REQUIRED_PATTERN_SECTIONS`
|
|
34
|
+
- `assertUniquePatternIds(patterns = [])`
|
|
35
|
+
- `discoverPackagePatterns({ packageRoot, packageJson } = {})`
|
|
36
|
+
- `parsePatternDocument(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
|
|
37
|
+
Local functions
|
|
38
|
+
- `normalizeText(value = "")`
|
|
39
|
+
- `normalizePath(value = "")`
|
|
40
|
+
- `sortedUniqueStrings(values = [])`
|
|
41
|
+
- `parseCommaSeparatedValue(value = "")`
|
|
42
|
+
- `requirePatternFrontMatter(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
|
|
43
|
+
- `requirePatternSections(body = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
|
|
44
|
+
- `directoryExists(directoryPath)`
|
|
45
|
+
- `collectFiles(rootDirectory)`
|
|
46
|
+
|
|
47
|
+
### `scripts/verify-packages.mjs`
|
|
48
|
+
Exports
|
|
49
|
+
- `main()`
|
|
50
|
+
- `validateCapabilityClosure(packages, { builtinCapabilities = BUILTIN_CAPABILITIES } = {})`
|
|
51
|
+
- `validateMigrations(packageRecord, migrationOwners)`
|
|
52
|
+
- `validateProviderExport(value, label)`
|
|
53
|
+
- `validateProviderList(packageRecord, side)`
|
|
54
|
+
Local functions
|
|
55
|
+
- `fileExists(filePath)`
|
|
56
|
+
- `discoverFrameworkPackages()`
|
|
57
|
+
- `requireStringArray(value, label)`
|
|
58
|
+
- `requireArchitectureId(value, label)`
|
|
59
|
+
- `validateCapabilityMap(value, label)`
|
|
60
|
+
- `validateProviderDefinition(value, label)`
|
|
61
|
+
- `validatePackage(packageRecord, localVersions, migrationOwners)`
|
|
@@ -41,13 +41,13 @@ Exports
|
|
|
41
41
|
Local functions
|
|
42
42
|
- `resolveJskitConfig(jskitOrSource)`
|
|
43
43
|
|
|
44
|
-
### `
|
|
44
|
+
### `patternApp.mjs`
|
|
45
45
|
Exports
|
|
46
|
-
- `
|
|
46
|
+
- `copyFoundationPattern({ cwd, name, pattern = "shell-foundation" } = {})`
|
|
47
47
|
|
|
48
|
-
### `
|
|
48
|
+
### `runCli.js`
|
|
49
49
|
Exports
|
|
50
|
-
- `
|
|
50
|
+
- `createCliRunner(cliPath)`
|
|
51
51
|
|
|
52
52
|
### `tempDir.mjs`
|
|
53
53
|
Exports
|
package/skills/jskit/SKILL.md
CHANGED
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jskit
|
|
3
|
-
description: Build, extend, troubleshoot, review, deslop, and verify JSKIT apps using its
|
|
3
|
+
description: Build, extend, troubleshoot, review, deslop, and verify JSKIT apps using its public framework APIs, package-owned source patterns, runtime capabilities, surfaces, placements, CRUDs, verification conventions, and Vue/Vuetify Material 3 UI contract. Use for every JSKIT UI creation, modification, review, or cleanup task.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# JSKIT
|
|
7
7
|
|
|
8
|
-
Use JSKIT's
|
|
9
|
-
and app files define the product.
|
|
8
|
+
Use JSKIT's framework APIs, package-owned patterns, packages, and app-local
|
|
9
|
+
contracts. The request and app files define the product. Adapted pattern source
|
|
10
|
+
belongs to the application immediately.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## Pattern-first implementation
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
Search [the generated source pattern index](../../reference/autogen/PATTERN_INDEX.md)
|
|
15
|
+
for the requested outcome before reading broad operational guidance or
|
|
16
|
+
inventing a local structure. Read a selected package's `PATTERN.md` completely,
|
|
17
|
+
then use its example directly, adapt it, compose compatible patterns, or treat
|
|
18
|
+
it as evidence for a different implementation through the same public APIs.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Do not write or consult receipts, provenance, completion ledgers, or other
|
|
21
|
+
durable bookkeeping for pattern or authoring-tool runs. Current source,
|
|
22
|
+
manifests, migrations, tests, and runtime behaviour are the evidence.
|
|
20
23
|
|
|
21
24
|
## Establish context
|
|
22
25
|
|
|
23
26
|
1. Read the request and nearest `AGENTS.md`.
|
|
24
27
|
2. Inspect `package.json`, `package-lock.json`, installed package metadata, the
|
|
25
28
|
existing tree, and the current diff when reviewing changes.
|
|
26
|
-
3. Read
|
|
29
|
+
3. Read the project's product documentation and current source. JSKIT does not
|
|
30
|
+
own a second project brain or prescribe a particular agent orchestrator.
|
|
27
31
|
4. Load only the task-relevant direct reference:
|
|
28
|
-
-
|
|
32
|
+
- Existing-app migration: read
|
|
33
|
+
[port guide](../../guide/agent/app-setup/existing-application-migration.md).
|
|
34
|
+
- For creation, foundation patterns, or package selection, read
|
|
29
35
|
[application operations](references/app-operations.md).
|
|
30
36
|
- Before database, schema, CRUD, repository, or persistence work, read
|
|
31
37
|
[CRUD operations](references/crud-operations.md) completely.
|
|
@@ -34,25 +40,28 @@ Discover only a missing fact or exact-command failure, then resume the lane.
|
|
|
34
40
|
- For every Vue/Vuetify UI creation, modification, review, or deslop task,
|
|
35
41
|
also read [Material 3](references/material-3.md) completely before acting.
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
These are complete operational references required by this skill. Do not load
|
|
44
|
+
irrelevant references or other docs.
|
|
39
45
|
|
|
40
46
|
Do not invent missing tenancy, authentication, database, surface, ownership,
|
|
41
47
|
or permission decisions when they would materially change the application.
|
|
42
48
|
|
|
43
49
|
## Discovery fallback
|
|
44
50
|
|
|
45
|
-
Use the
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
Use the pattern index, package metadata, and public API reference for a missing
|
|
52
|
+
fact. Prefer existing framework APIs, patterns, placements, and high-level
|
|
53
|
+
composables. JSKIT has no general authoring CLI: inspect current source and
|
|
54
|
+
installed packages directly, edit app-owned files deliberately, and use npm
|
|
55
|
+
for dependency installation.
|
|
48
56
|
|
|
49
57
|
## Implement a change
|
|
50
58
|
|
|
51
|
-
Read the matching
|
|
52
|
-
documented seams. Install
|
|
53
|
-
fresh disposable development database for
|
|
54
|
-
For UI, respect surface/placements, compact
|
|
55
|
-
permissions/ownership, and browser
|
|
59
|
+
Read the matching pattern and reference, then implement the smallest complete
|
|
60
|
+
slice at documented seams. Install one planned dependency closure and migrate
|
|
61
|
+
only when required. Use only a fresh disposable development database for
|
|
62
|
+
schema work—never valuable data. For UI, respect surface/placements, compact
|
|
63
|
+
layout, all operational states, permissions/ownership, and browser
|
|
64
|
+
verification.
|
|
56
65
|
|
|
57
66
|
## Caller-owned verification
|
|
58
67
|
|
|
@@ -63,16 +72,14 @@ unless requested in the current task.
|
|
|
63
72
|
|
|
64
73
|
## Review or deslop
|
|
65
74
|
|
|
66
|
-
For review-only work, report without editing. Check
|
|
75
|
+
For review-only work, report without editing. Check dead or duplicated code,
|
|
67
76
|
accidental abstraction, incomplete states, missed high-level JSKIT seams,
|
|
68
|
-
invalid
|
|
69
|
-
|
|
70
|
-
the Material 3 audit in the selected reference. Put findings first by severity
|
|
71
|
-
with file references; state when none exist.
|
|
77
|
+
invalid ownership or migration choices, UI quality, and verification. Run the
|
|
78
|
+
Material 3 audit for affected UI. Put findings first by severity and file.
|
|
72
79
|
|
|
73
80
|
## Verify
|
|
74
81
|
|
|
75
|
-
Run focused tests for a slice and
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
Run focused tests for a slice and the application's `npm run verify` for a
|
|
83
|
+
whole changeset. Use the current-state owners in application operations and
|
|
84
|
+
Playwright for affected UI. There is no current JSKIT Doctor command; ignore
|
|
85
|
+
old CLI authoring-history diagnoses. Never expose environment values.
|