@jskit-ai/agent-docs 0.1.238 → 0.1.240

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 (51) hide show
  1. package/guide/agent/app-extras/assistant-conversation.md +11 -6
  2. package/guide/agent/app-setup/authentication.md +28 -2
  3. package/guide/agent/app-setup/existing-application-migration.md +5 -3
  4. package/guide/agent/app-setup/initial-scaffolding.md +4 -1
  5. package/guide/agent/app-setup/run-an-accounts-hub.md +152 -0
  6. package/guide/agent/app-setup/sign-in-through-oidc-issuer.md +148 -0
  7. package/guide/agent/app-setup/upgrading-jskit.md +13 -0
  8. package/guide/agent/framework/application-operations.md +3 -0
  9. package/guide/agent/framework/ui-operations.md +24 -0
  10. package/guide/agent/index.md +2 -0
  11. package/package.json +1 -1
  12. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  13. package/patterns/minimal-foundation/example/package.json +3 -3
  14. package/patterns/shell-foundation/example/package.json +4 -4
  15. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  16. package/reference/autogen/KERNEL_MAP.md +1 -0
  17. package/reference/autogen/PATTERN_INDEX.md +57 -35
  18. package/reference/autogen/README.md +2 -0
  19. package/reference/autogen/packages/auth-core.md +1 -0
  20. package/reference/autogen/packages/auth-provider-oidc-core.md +144 -0
  21. package/reference/autogen/packages/auth-web.md +16 -0
  22. package/reference/autogen/packages/kernel.md +6 -1
  23. package/reference/autogen/packages/oidc-issuer-core.md +201 -0
  24. package/reference/autogen/packages/shell-web.md +3 -0
  25. package/reference/autogen/tooling/jskit-release.md +1 -1
  26. package/skills/jskit/references/app-operations.md +3 -0
  27. package/skills/jskit/references/existing-application-migration.md +5 -3
  28. package/skills/jskit/references/pattern-index.md +57 -35
  29. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +3 -3
  30. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +4 -4
  31. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  32. package/skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md +97 -0
  33. package/skills/jskit/references/patterns/auth/accounts-hub/example/.env.example +10 -0
  34. package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +8 -0
  35. package/skills/jskit/references/patterns/auth/accounts-hub/example/server/hubPaths.js +7 -0
  36. package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +33 -11
  37. package/skills/jskit/references/patterns/auth/oidc-sign-in/PATTERN.md +87 -0
  38. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/.env.example +13 -0
  39. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +8 -0
  40. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  41. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
  42. package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +25 -0
  43. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +2 -2
  44. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  45. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  46. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  47. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +1 -1
  48. package/skills/jskit/references/patterns/shell/application-shell/PATTERN.md +9 -0
  49. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +2 -2
  50. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +3 -3
  51. package/skills/jskit/references/ui-operations.md +24 -0
@@ -15,7 +15,7 @@ A concrete Fastify, Vue, and JSKIT application foundation for products that do n
15
15
 
16
16
  - Id: `app/minimal-foundation`
17
17
  - Keywords: `app`, `fastify`, `foundation`, `minimal`, `server`, `vite`, `vue`
18
- - Owner: `@jskit-ai/agent-docs@0.1.238`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.240`
19
19
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md)
20
20
  - Examples: [example/](../../skills/jskit/references/patterns/app/minimal-foundation/example/)
21
21
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`
@@ -26,7 +26,7 @@ A concrete JSKIT web application foundation with responsive shell navigation, se
26
26
 
27
27
  - Id: `app/shell-foundation`
28
28
  - Keywords: `app`, `foundation`, `material`, `navigation`, `placements`, `shell`, `vite`, `vue`
29
- - Owner: `@jskit-ai/agent-docs@0.1.238`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.240`
30
30
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/shell-foundation/PATTERN.md)
31
31
  - Examples: [example/](../../skills/jskit/references/patterns/app/shell-foundation/example/)
32
32
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -37,29 +37,51 @@ Configure an assistant runtime for one application surface and expose its chat a
37
37
 
38
38
  - Id: `assistant/assistant-surface`
39
39
  - Keywords: `ai`, `assistant`, `chat`, `config`, `environment`, `page`, `placement`, `settings`, `surface`
40
- - Owner: `@jskit-ai/assistant-runtime@0.1.232`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.233`
41
41
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md)
42
42
  - Examples: [example/](../../skills/jskit/references/patterns/assistant/assistant-surface/example/)
43
43
  - Requires: `@jskit-ai/assistant-runtime`, `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`, `@jskit-ai/shell-web`
44
44
 
45
+ ## Accounts hub
46
+
47
+ Run one OpenID Connect sign-in for all of an owner's apps as its own JSKIT project, with production apps approved by the owner.
48
+
49
+ - Id: `auth/accounts-hub`
50
+ - Keywords: `accounts hub`, `auth`, `authentication`, `issuer`, `master login`, `oidc`, `openid connect`, `single sign-on`, `sso`
51
+ - Owner: `@jskit-ai/oidc-issuer-core@0.1.0`
52
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md)
53
+ - Examples: [example/](../../skills/jskit/references/patterns/auth/accounts-hub/example/)
54
+ - Requires: `@jskit-ai/oidc-issuer-core`
55
+
45
56
  ## Authentication surface
46
57
 
47
58
  Compose JSKIT authentication routes, views, profile controls, and public surface configuration without generated source.
48
59
 
49
60
  - Id: `auth/auth-surface`
50
61
  - Keywords: `account`, `auth`, `login`, `logout`, `password`, `placement`, `profile`, `reset`, `surface`
51
- - Owner: `@jskit-ai/auth-web@0.1.245`
62
+ - Owner: `@jskit-ai/auth-web@0.1.246`
52
63
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/auth-surface/PATTERN.md)
53
64
  - Examples: [example/](../../skills/jskit/references/patterns/auth/auth-surface/example/)
54
65
  - Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
55
66
 
67
+ ## Sign in through an OIDC issuer
68
+
69
+ Let people sign in with the accounts they already have in an accounts hub or another OpenID Connect issuer, instead of app-local passwords.
70
+
71
+ - Id: `auth/oidc-sign-in`
72
+ - Keywords: `accounts hub`, `auth`, `authentication`, `back-channel logout`, `dynamic client registration`, `issuer`, `master login`, `oidc`, `openid connect`, `single sign-on`, `sso`
73
+ - Owner: `@jskit-ai/auth-provider-oidc-core@0.1.0`
74
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/oidc-sign-in/PATTERN.md)
75
+ - Examples: [example/](../../skills/jskit/references/patterns/auth/oidc-sign-in/example/)
76
+ - Requires: `@jskit-ai/auth-provider-oidc-core`, `@jskit-ai/auth-web`
77
+
56
78
  ## Supabase authentication
57
79
 
58
80
  Add Supabase authentication through normal npm composition, explicit environment values, and app-owned auth policy.
59
81
 
60
82
  - Id: `auth/supabase-auth`
61
83
  - Keywords: `auth`, `authentication`, `oauth`, `sessions`, `supabase`
62
- - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.241`
84
+ - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.242`
63
85
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md)
64
86
  - Examples: [example/](../../skills/jskit/references/patterns/auth/supabase-auth/example/)
65
87
  - Requires: `@jskit-ai/auth-provider-supabase-core`
@@ -70,7 +92,7 @@ Resolve an administrator environment key or an individual user's grant, then use
70
92
 
71
93
  - Id: `connectors/ai-connections`
72
94
  - Keywords: `ai`, `api-key`, `cli`, `environment`, `free`, `models`, `ownership`, `zai`, `zen`
73
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
95
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
74
96
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md)
75
97
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/ai-connections/example/)
76
98
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -81,7 +103,7 @@ Compose provider operations, authorization and encrypted file storage from a CLI
81
103
 
82
104
  - Id: `connectors/api-key-connection`
83
105
  - Keywords: `api-key`, `clay`, `cli`, `clickhouse`, `connectors`, `dbt`, `files`, `firecrawl`, `granola`, `integrations`, `metrics`, `prestashop`, `resend`, `semantic-layer`, `semrush`, `x-twitter`
84
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
106
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
85
107
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md)
86
108
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/api-key-connection/example/)
87
109
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -92,7 +114,7 @@ Compose token-based MCP discovery and explicitly authorized tool calls using the
92
114
 
93
115
  - Id: `connectors/assistant-mcp`
94
116
  - Keywords: `assistant`, `cli`, `connectors`, `files`, `integrations`, `mcp`, `n8n`, `sanity`
95
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
117
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
96
118
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/assistant-mcp/PATTERN.md)
97
119
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/assistant-mcp/example/)
98
120
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -103,7 +125,7 @@ Configure assistant OAuth clients, then compose existing state, encrypted file g
103
125
 
104
126
  - Id: `connectors/assistant-mcp-oauth`
105
127
  - Keywords: `amplitude`, `assistant`, `atlassian`, `canva`, `cli`, `client metadata`, `confidence`, `connectors`, `figma`, `files`, `granola`, `hex`, `mcp`, `miro`, `oauth`
106
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
128
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
107
129
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/assistant-mcp-oauth/PATTERN.md)
108
130
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/assistant-mcp-oauth/example/)
109
131
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -114,7 +136,7 @@ Compose signed AWS operations, file configuration and application authorization
114
136
 
115
137
  - Id: `connectors/aws-storage-queries`
116
138
  - Keywords: `athena`, `aws`, `cli`, `connectors`, `files`, `iam`, `queries`, `s3`, `storage`, `sts`
117
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
139
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
118
140
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md)
119
141
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/aws-storage-queries/example/)
120
142
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -125,7 +147,7 @@ Compose reusable connection libraries with portable configuration, application o
125
147
 
126
148
  - Id: `connectors/calendar-cli`
127
149
  - Keywords: `calendar`, `cli`, `connectors`, `google`, `integrations`, `oauth`, `permissions`
128
- - Owner: `@jskit-ai/connector-google-calendar@0.1.61`
150
+ - Owner: `@jskit-ai/connector-google-calendar@0.1.62`
129
151
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md)
130
152
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/calendar-cli/example/)
131
153
  - Requires: `@jskit-ai/connector-google-calendar`, `@jskit-ai/connectors-core`, `@jskit-ai/database-runtime-mysql`
@@ -136,7 +158,7 @@ Compose the shared connector runtime for event delivery while leaving workflow c
136
158
 
137
159
  - Id: `connectors/event-delivery`
138
160
  - Keywords: `cli`, `connectors`, `events`, `files`, `inngest`, `integrations`, `workflows`
139
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
161
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
140
162
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md)
141
163
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/event-delivery/example/)
142
164
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -147,7 +169,7 @@ Wire service-account grants, file storage, explicit message actions and public b
147
169
 
148
170
  - Id: `connectors/firebase-messaging`
149
171
  - Keywords: `cli`, `connectors`, `fcm`, `files`, `firebase`, `integrations`, `jwt`, `notifications`, `push`, `service-account`, `vapid`
150
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
172
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
151
173
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md)
152
174
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/firebase-messaging/example/)
153
175
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -158,7 +180,7 @@ Compose reviewed Search campaigns with project-owned Google OAuth and portable s
158
180
 
159
181
  - Id: `connectors/google-ads-search`
160
182
  - Keywords: `ads`, `campaigns`, `cli`, `connectors`, `conversion`, `google`, `search`
161
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
183
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
162
184
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md)
163
185
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/google-ads-search/example/)
164
186
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -169,7 +191,7 @@ Compose provider consent, verification and encrypted file persistence from an ap
169
191
 
170
192
  - Id: `connectors/oauth-connection`
171
193
  - Keywords: `accounting`, `assistant permissions`, `books`, `cli`, `client credentials`, `connectors`, `consent`, `crm`, `databricks`, `developer token`, `fabric`, `files`, `gaql`, `google ads`, `graphql`, `integrations`, `linkedin`, `microsoft`, `oauth`, `powerpoint`, `salesforce`, `service principal`, `shopify`, `soql`, `staffing`, `tiktok`, `twitch`, `wave`, `word`, `wordpress`, `workday`, `xero`, `zoho`
172
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
194
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
173
195
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md)
174
196
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/oauth-connection/example/)
175
197
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -180,7 +202,7 @@ Compose a sequential catalogue batch and preserve partial success for applicatio
180
202
 
181
203
  - Id: `connectors/paddle-catalogue`
182
204
  - Keywords: `batch`, `paddle`, `payments`, `prices`, `products`
183
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
205
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
184
206
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md)
185
207
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/paddle-catalogue/example/)
186
208
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -191,7 +213,7 @@ Resolve a publishable image key deliberately and use the shared URL library in a
191
213
 
192
214
  - Id: `connectors/public-image`
193
215
  - Keywords: `cli`, `connectors`, `files`, `images`, `integrations`, `logo-dev`, `public-key`
194
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
216
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
195
217
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/public-image/PATTERN.md)
196
218
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/public-image/example/)
197
219
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -202,7 +224,7 @@ Compose file configuration, Redshift Data API operations and application query o
202
224
 
203
225
  - Id: `connectors/redshift-queries`
204
226
  - Keywords: `aws`, `cli`, `connectors`, `files`, `iam`, `provisioned`, `redshift`, `serverless`, `sql`, `warehouse`
205
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
227
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
206
228
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md)
207
229
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/redshift-queries/example/)
208
230
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -213,7 +235,7 @@ Use the shared scanner runtime from a CLI or a host worker with portable configu
213
235
 
214
236
  - Id: `connectors/source-scanning`
215
237
  - Keywords: `cancellation`, `cli`, `connectors`, `integrations`, `scanning`, `security`, `source`, `wiz`, `worker`
216
- - Owner: `@jskit-ai/connectors-catalog@0.1.62`
238
+ - Owner: `@jskit-ai/connectors-catalog@0.1.63`
217
239
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md)
218
240
  - Examples: [example/](../../skills/jskit/references/patterns/connectors/source-scanning/example/)
219
241
  - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
@@ -224,7 +246,7 @@ Add a protected administration surface, settings shell, and semantic navigation
224
246
 
225
247
  - Id: `console/console-surface`
226
248
  - Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
227
- - Owner: `@jskit-ai/console-web@0.1.213`
249
+ - Owner: `@jskit-ai/console-web@0.1.214`
228
250
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/console/console-surface/PATTERN.md)
229
251
  - Examples: [example/](../../skills/jskit/references/patterns/console/console-surface/example/)
230
252
  - Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
@@ -235,7 +257,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
235
257
 
236
258
  - Id: `crud/crud-screen-set`
237
259
  - Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
238
- - Owner: `@jskit-ai/http-web@0.1.90`
260
+ - Owner: `@jskit-ai/http-web@0.1.91`
239
261
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md)
240
262
  - Examples: [example/](../../skills/jskit/references/patterns/crud/crud-screen-set/example/)
241
263
  - Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-crud-core`
@@ -246,7 +268,7 @@ Build a complete application-owned CRUD server package from a migration, resourc
246
268
 
247
269
  - Id: `crud/json-api-resource-package`
248
270
  - Keywords: `actions`, `crud`, `database`, `json-api`, `migration`, `permissions`, `provider`, `repository`, `routes`, `service`
249
- - Owner: `@jskit-ai/crud-core@0.1.255`
271
+ - Owner: `@jskit-ai/crud-core@0.1.256`
250
272
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md)
251
273
  - Examples: [example/](../../skills/jskit/references/patterns/crud/json-api-resource-package/example/)
252
274
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/resource-crud-core`
@@ -257,7 +279,7 @@ Define an authenticated application resource whose records belong to the current
257
279
 
258
280
  - Id: `crud/resource-contract`
259
281
  - Keywords: `authenticated`, `crud`, `database`, `owner-scoped`, `resource`, `user`
260
- - Owner: `@jskit-ai/resource-crud-core@0.1.186`
282
+ - Owner: `@jskit-ai/resource-crud-core@0.1.187`
261
283
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/resource-contract/PATTERN.md)
262
284
  - Examples: [example/](../../skills/jskit/references/patterns/crud/resource-contract/example/)
263
285
  - Requires: `@jskit-ai/resource-crud-core`
@@ -268,7 +290,7 @@ Configure a JSKIT application for MySQL with a fixed driver, ordinary environmen
268
290
 
269
291
  - Id: `database/mysql-application`
270
292
  - Keywords: `database`, `knex`, `mariadb`, `migrations`, `mysql`, `mysql2`
271
- - Owner: `@jskit-ai/database-runtime-mysql@0.1.242`
293
+ - Owner: `@jskit-ai/database-runtime-mysql@0.1.243`
272
294
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/mysql-application/PATTERN.md)
273
295
  - Examples: [example/](../../skills/jskit/references/patterns/database/mysql-application/example/)
274
296
  - Requires: `@jskit-ai/database-runtime-mysql`
@@ -279,7 +301,7 @@ Configure a JSKIT application for PostgreSQL with a fixed driver, ordinary envir
279
301
 
280
302
  - Id: `database/postgres-application`
281
303
  - Keywords: `database`, `knex`, `migrations`, `pg`, `postgres`, `postgresql`
282
- - Owner: `@jskit-ai/database-runtime-postgres@0.1.241`
304
+ - Owner: `@jskit-ai/database-runtime-postgres@0.1.242`
283
305
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/postgres-application/PATTERN.md)
284
306
  - Examples: [example/](../../skills/jskit/references/patterns/database/postgres-application/example/)
285
307
  - Requires: `@jskit-ai/database-runtime-postgres`
@@ -290,7 +312,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
290
312
 
291
313
  - Id: `mobile/android-application`
292
314
  - Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
293
- - Owner: `@jskit-ai/mobile-capacitor@0.1.180`
315
+ - Owner: `@jskit-ai/mobile-capacitor@0.1.181`
294
316
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/mobile/android-application/PATTERN.md)
295
317
  - Examples: [example/](../../skills/jskit/references/patterns/mobile/android-application/example/)
296
318
  - Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
@@ -301,7 +323,7 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
301
323
 
302
324
  - Id: `realtime/realtime-application`
303
325
  - Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
304
- - Owner: `@jskit-ai/realtime@0.1.242`
326
+ - Owner: `@jskit-ai/realtime@0.1.243`
305
327
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md)
306
328
  - Examples: [example/](../../skills/jskit/references/patterns/realtime/realtime-application/example/)
307
329
  - Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
@@ -312,7 +334,7 @@ Compose application-owned Google Publisher Tag delivery with the generic rewarde
312
334
 
313
335
  - Id: `rewards/google-rewarded`
314
336
  - Keywords: `ads`, `google`, `publisher tag`, `rewarded`, `unlock`
315
- - Owner: `@jskit-ai/rewarded-web@0.1.181`
337
+ - Owner: `@jskit-ai/rewarded-web@0.1.182`
316
338
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/rewards/google-rewarded/PATTERN.md)
317
339
  - Examples: [example/](../../skills/jskit/references/patterns/rewards/google-rewarded/example/)
318
340
  - Requires: `@jskit-ai/rewarded-web`
@@ -323,7 +345,7 @@ Define a server feature through explicit capabilities and first-class actions, a
323
345
 
324
346
  - Id: `server/feature-package`
325
347
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
326
- - Owner: `@jskit-ai/agent-docs@0.1.238`
348
+ - Owner: `@jskit-ai/agent-docs@0.1.240`
327
349
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/server/feature-package/PATTERN.md)
328
350
  - Examples: [example/](../../skills/jskit/references/patterns/server/feature-package/example/)
329
351
  - Requires: `@jskit-ai/kernel`
@@ -334,7 +356,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
334
356
 
335
357
  - Id: `shell/application-shell`
336
358
  - Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
337
- - Owner: `@jskit-ai/shell-web@0.1.249`
359
+ - Owner: `@jskit-ai/shell-web@0.1.250`
338
360
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/shell/application-shell/PATTERN.md)
339
361
  - Examples: [example/](../../skills/jskit/references/patterns/shell/application-shell/example/)
340
362
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -345,7 +367,7 @@ Add product routes and shell extensions through file routing, semantic placement
345
367
 
346
368
  - Id: `ui/page-and-placement`
347
369
  - Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
348
- - Owner: `@jskit-ai/shell-web@0.1.249`
370
+ - Owner: `@jskit-ai/shell-web@0.1.250`
349
371
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md)
350
372
  - Examples: [example/](../../skills/jskit/references/patterns/ui/page-and-placement/example/)
351
373
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -356,7 +378,7 @@ Compose an account settings route and profile, preference, and notification sect
356
378
 
357
379
  - Id: `users/account-settings`
358
380
  - Keywords: `account`, `notifications`, `preferences`, `profile`, `settings`, `user`, `vue`
359
- - Owner: `@jskit-ai/users-web@0.1.263`
381
+ - Owner: `@jskit-ai/users-web@0.1.264`
360
382
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/account-settings/PATTERN.md)
361
383
  - Examples: [example/](../../skills/jskit/references/patterns/users/account-settings/example/)
362
384
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
@@ -367,7 +389,7 @@ Expose user administration and workspace-scoped member operations through app-ow
367
389
 
368
390
  - Id: `users/user-administration-server`
369
391
  - Keywords: `account`, `admin`, `member`, `repository`, `resource`, `routes`, `service`, `user`, `workspace`
370
- - Owner: `@jskit-ai/users-core@0.1.257`
392
+ - Owner: `@jskit-ai/users-core@0.1.258`
371
393
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/user-administration-server/PATTERN.md)
372
394
  - Examples: [example/](../../skills/jskit/references/patterns/users/user-administration-server/example/)
373
395
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/users-core`
@@ -378,7 +400,7 @@ Configure roles, workspace access policy, invitations, and app-owned invitation
378
400
 
379
401
  - Id: `workspaces/workspace-server`
380
402
  - Keywords: `access`, `invite`, `membership`, `multitenancy`, `policy`, `role`, `tenancy`, `workspace`
381
- - Owner: `@jskit-ai/workspaces-core@0.1.222`
403
+ - Owner: `@jskit-ai/workspaces-core@0.1.223`
382
404
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md)
383
405
  - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-server/example/)
384
406
  - Requires: `@jskit-ai/users-core`, `@jskit-ai/workspaces-core`
@@ -389,7 +411,7 @@ Compose workspace selection, invitation, member administration, settings, and re
389
411
 
390
412
  - Id: `workspaces/workspace-surfaces`
391
413
  - Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
392
- - Owner: `@jskit-ai/workspaces-web@0.1.224`
414
+ - Owner: `@jskit-ai/workspaces-web@0.1.225`
393
415
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md)
394
416
  - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/example/)
395
417
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
@@ -19,6 +19,7 @@ AI-first source patterns are indexed in `PATTERN_INDEX.md`.
19
19
  - [auth-core](/packages/agent-docs/reference/autogen/packages/auth-core.md)
20
20
  - [auth-provider-local-core](/packages/agent-docs/reference/autogen/packages/auth-provider-local-core.md)
21
21
  - [auth-provider-local-db-core](/packages/agent-docs/reference/autogen/packages/auth-provider-local-db-core.md)
22
+ - [auth-provider-oidc-core](/packages/agent-docs/reference/autogen/packages/auth-provider-oidc-core.md)
22
23
  - [auth-provider-supabase-core](/packages/agent-docs/reference/autogen/packages/auth-provider-supabase-core.md)
23
24
  - [auth-web](/packages/agent-docs/reference/autogen/packages/auth-web.md)
24
25
  - [connector-google-calendar](/packages/agent-docs/reference/autogen/packages/connector-google-calendar.md)
@@ -36,6 +37,7 @@ AI-first source patterns are indexed in `PATTERN_INDEX.md`.
36
37
  - [json-rest-api-core](/packages/agent-docs/reference/autogen/packages/json-rest-api-core.md)
37
38
  - [kernel](/packages/agent-docs/reference/autogen/packages/kernel.md)
38
39
  - [mobile-capacitor](/packages/agent-docs/reference/autogen/packages/mobile-capacitor.md)
40
+ - [oidc-issuer-core](/packages/agent-docs/reference/autogen/packages/oidc-issuer-core.md)
39
41
  - [payments-core](/packages/agent-docs/reference/autogen/packages/payments-core.md)
40
42
  - [payments-web](/packages/agent-docs/reference/autogen/packages/payments-web.md)
41
43
  - [realtime](/packages/agent-docs/reference/autogen/packages/realtime.md)
@@ -197,6 +197,7 @@ Exports
197
197
 
198
198
  ### `src/server/utils.js`
199
199
  Exports
200
+ - `hostOnlyCookieName(name, secure)`
200
201
  - `normalizeEmail(value)`
201
202
  - `normalizeOAuthIntent(value, { fallback = "login" } = {})`
202
203
  - `normalizeReturnToPath(value, { fallback = "/", allowedOrigins = [] } = {})`
@@ -0,0 +1,144 @@
1
+ # packages/auth-provider-oidc-core
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/auth-provider-oidc-core`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/auth-provider-oidc-core/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/server/lib/backchannelLogout.js`
18
+ Exports
19
+ - `BACKCHANNEL_LOGOUT_EVENT`
20
+ - `BackchannelLogoutError`
21
+ - `createBackchannelLogout({ config, store, issuer, fetchImpl = null, now = Date.now })`
22
+
23
+ ### `src/server/lib/config.js`
24
+ Exports
25
+ - `isLoopbackHostname(hostname)`
26
+ - `resolveOidcConfig({ env = {}, appRoot = process.cwd() } = {})`
27
+ Local functions
28
+ - `text(value)`
29
+ - `parseAddress(value, name)`
30
+ - `resolveAppName(appRoot)`
31
+ - `resolveSessionSecret(env, { appRoot, isProduction })`
32
+
33
+ ### `src/server/lib/index.js`
34
+ Exports
35
+ - `createBackchannelLogout`
36
+ - `resolveOidcConfig`
37
+ - `createIssuerClient`
38
+ - `registrationMetadata`
39
+ - `adoptOidcAccounts`
40
+ - `exportLocalAccounts`
41
+ - `createOidcAuthService`
42
+ - `createOidcStore`
43
+
44
+ ### `src/server/lib/issuer.js`
45
+ Exports
46
+ - `createIssuerClient({ config, store, logger = null, fetchImpl = null, now = Date.now })`
47
+ - `registrationMetadata(origin, appName)`
48
+ Local functions
49
+ - `unreachable(error, logger)`
50
+
51
+ ### `src/server/lib/localAccounts.js`
52
+ Exports
53
+ - `adoptOidcAccounts({ knex, file, apply = false })`
54
+ - `exportLocalAccounts({ knex, out })`
55
+ Local functions
56
+ - `isTruthy(value)`
57
+ - `readExportedIds(file)`
58
+
59
+ ### `src/server/lib/routes.js`
60
+ Exports
61
+ - `registerOidcRoutes(fastify, { authService, backchannelLogout })`
62
+ Local functions
63
+ - `parseForm(_request, body, done)`
64
+ - `isCrossSiteNavigation(request)`
65
+
66
+ ### `src/server/lib/service.js`
67
+ Exports
68
+ - `SESSION_COOKIE`
69
+ - `createOidcAuthService({ config, store, issuer, profileProjector = null, logger = null, now = Date.now })`
70
+ Local functions
71
+ - `sha256(value)`
72
+ - `cookiesOf(request)`
73
+ - `firstHeader(value)`
74
+ - `isLoopbackPeer(request)`
75
+ - `unauthenticated(clearSession = false)`
76
+ - `displayNameFrom(claims, email)`
77
+ - `buildProfile(identity)`
78
+ - `buildResult(identity, { session = null, appProfile = null } = {})`
79
+
80
+ ### `src/server/lib/store.js`
81
+ Exports
82
+ - `TABLES`
83
+ - `createOidcStore({ knex, now = Date.now })`
84
+ Local functions
85
+ - `toDate(value)`
86
+ - `isExpired(value, now)`
87
+ - `mapClient(row)`
88
+ - `mapSession(row)`
89
+ - `isDuplicateError(error)`
90
+
91
+ ### `src/server/lib/transactionCookie.js`
92
+ Exports
93
+ - `TRANSACTION_COOKIE`
94
+ - `createTransactionSealer({ secret, now = Date.now })`
95
+ - `transactionCookieOptions(secure, maxAge = TRANSACTION_TTL_SECONDS)`
96
+ Local functions
97
+ - `transactionKey(secret)`
98
+
99
+ ### `src/server/providers/AuthOidcProvider.js`
100
+ Exports
101
+ - `AuthOidcProvider`
102
+
103
+ ### `src/shared/index.js`
104
+ Exports
105
+ - `AUTH_OIDC_BACKCHANNEL_LOGOUT_PATH`
106
+ - `AUTH_OIDC_DEFAULT_LABEL`
107
+ - `AUTH_OIDC_LOGOUT_PATH`
108
+ - `AUTH_OIDC_PROVIDER_ID`
109
+ - `AUTH_OIDC_REDIRECT_PATH`
110
+
111
+ ### bin
112
+
113
+ ### `bin/jskit-oidc-sign-in.js`
114
+ Exports
115
+ - None
116
+ Local functions
117
+ - `appKnex()`
118
+ - `sameAddress(left, right)`
119
+ - `main(argv)`
120
+
121
+ ### migrations
122
+
123
+ ### `migrations/auth_oidc_initial.cjs`
124
+ Exports
125
+ - None
126
+
127
+ ### test-support
128
+
129
+ ### `test-support/harness.js`
130
+ Exports
131
+ - `APP_ORIGIN`
132
+ - `createRelyingParty({ issuer, env = {}, fetchImpl = null, now = Date.now } = {})`
133
+ - `requestAt(origin = APP_ORIGIN, cookies = {})`
134
+ - `signInAtIssuer(rp, { origin = APP_ORIGIN, returnTo = "/home" } = {})`
135
+ Local functions
136
+ - `createDatabase()`
137
+ - `createProfileProjector(knex)`
138
+
139
+ ### `test-support/mockIssuer.js`
140
+ Exports
141
+ - `ACCOUNT`
142
+ - `REGISTRATION_TOKEN`
143
+ - `followAuthorization(url, { redirectPrefix })`
144
+ - `startMockIssuer({ blocked = false, account = ACCOUNT, staticClients = [] } = {})`
@@ -88,6 +88,8 @@ Exports
88
88
  - `AuthProfileMenuLinkItem`
89
89
  - `useAuthStore`
90
90
  - `useAuthGuardRuntime`
91
+ - `completeOAuthPopupSignIn`
92
+ - `createPopupOAuthLaunchClient`
91
93
  - `completeOAuthCallbackFromCurrentLocation`
92
94
  - `completeOAuthCallbackFromUrl`
93
95
  - `readOAuthCallbackParamsFromUrl`
@@ -191,6 +193,20 @@ Exports
191
193
  - `stripPasswordRecoveryCallbackParamsFromLocation()`
192
194
  - `stripPasswordRecoveryCallbackParamsFromUrl(url = "")`
193
195
 
196
+ ### `src/client/runtime/popupOAuthLaunchClient.js`
197
+ Exports
198
+ - `OAUTH_POPUP_BLOCKED_MESSAGE`
199
+ - `OAUTH_POPUP_MESSAGE_TYPE`
200
+ - `completeOAuthPopupSignIn(win = browserWindow())`
201
+ - `createPopupOAuthLaunchClient({ window: win = browserWindow(), fallback = createBrowserOAuthLaunchClient(), onComplete = null } = {})`
202
+ - `isFramedWindow(win)`
203
+ Local functions
204
+ - `browserWindow()`
205
+ - `storageOf(win)`
206
+ - `popupFeatures(win, width = 520, height = 680)`
207
+ - `openChannel(win)`
208
+ - `sameOriginOpener(win)`
209
+
194
210
  ### `src/client/runtime/useLoginView.js`
195
211
  Exports
196
212
  - `useLoginView()`
@@ -265,6 +265,7 @@ Exports
265
265
  - `resolveAllowedOriginsFromSurfaceDefinitions(surfaceDefinitions = {}, { seedOrigins = [] } = {})`
266
266
  - `resolveAllowedOriginsFromPlacementContext(contextValue = null, { includeWindowOrigin = true } = {})`
267
267
  Local functions
268
+ - `staysOnSameOrigin(path)`
268
269
  - `appendNormalizedOrigin(origins, value)`
269
270
  - `normalizeBlockedPathnames(blockedPathnames = [])`
270
271
 
@@ -536,6 +537,7 @@ Exports
536
537
  - `registerMobileLaunchRouting`
537
538
  - `resolveClientBootstrapDebugEnabled`
538
539
  - `createShellRouter`
540
+ - `shellScrollBehavior`
539
541
  - `bootstrapClientShellApp`
540
542
  - `createComponentInteractionEmitter`
541
543
 
@@ -588,12 +590,15 @@ Local functions
588
590
 
589
591
  ### `client/shellBootstrap.js`
590
592
  Exports
593
+ - `shellScrollBehavior(to, from, savedPosition)`
591
594
  - `resolveClientBootstrapDebugEnabled({ env = {}, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG" } = {})`
592
595
  - `createClientBootstrapLogger({ env = {}, logger = console, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG" } = {})`
593
- - `createSurfaceShellRouter({ createRouter, history, routes = [], surfaceRuntime, surfaceMode, fallbackRoute = null, notFoundComponent = null, guard = false } = {})`
596
+ - `createSurfaceShellRouter({ createRouter, history, routes = [], surfaceRuntime, surfaceMode, fallbackRoute = null, notFoundComponent = null, guard = false, scrollBehavior = shellScrollBehavior } = {})`
594
597
  - `bootstrapClientShellApp({ createApp, rootComponent, appConfig = {}, appPlugins = [], pinia = null, queryClient = null, router, bootClientModules, surfaceRuntime, surfaceMode, env = {}, fallbackRoute = null, logger = console, createBootstrapLogger = null, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG", debugMessage = "Client modules bootstrapped before router install.", onAfterModulesBootstrapped = null, onAfterRouterReady = null, mountSelector = "#app" } = {})`
595
598
  Local functions
596
599
  - `installAppPlugins(app, appPlugins = [])`
600
+ - `isSurfaceRootRecord(record)`
601
+ - `staysOnSamePage(to, from)`
597
602
 
598
603
  ### `client/shellRouting.js`
599
604
  Exports