@jskit-ai/agent-docs 0.1.154 → 0.1.156

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 (74) hide show
  1. package/guide/agent/app-setup/authentication.md +68 -0
  2. package/package.json +1 -1
  3. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  4. package/patterns/minimal-foundation/example/package.json +4 -4
  5. package/patterns/shell-foundation/example/package.json +5 -5
  6. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  7. package/reference/autogen/PATTERN_INDEX.md +185 -20
  8. package/reference/autogen/README.md +8 -2
  9. package/reference/autogen/packages/auth-provider-local-core.md +3 -5
  10. package/reference/autogen/packages/connector-google-calendar.md +42 -0
  11. package/reference/autogen/packages/connectors-catalog.md +1320 -0
  12. package/reference/autogen/packages/connectors-core.md +85 -0
  13. package/reference/autogen/packages/connectors-web.md +31 -0
  14. package/reference/autogen/packages/payments-core.md +79 -0
  15. package/reference/autogen/packages/payments-web.md +37 -0
  16. package/reference/autogen/packages/{google-rewarded-core.md → rewarded-core.md} +36 -36
  17. package/reference/autogen/packages/rewarded-web.md +75 -0
  18. package/skills/jskit/references/pattern-index.md +185 -20
  19. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +4 -4
  20. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +5 -5
  21. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  22. package/skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md +25 -0
  23. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  24. package/skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md +84 -0
  25. package/skills/jskit/references/patterns/connectors/ai-connections/example/ai-model.js +11 -0
  26. package/skills/jskit/references/patterns/connectors/ai-connections/example/perplexity-answer.js +29 -0
  27. package/skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md +368 -0
  28. package/skills/jskit/references/patterns/connectors/api-key-connection/example/connections.js +18 -0
  29. package/skills/jskit/references/patterns/connectors/api-key-connection/example/integrations.json +19 -0
  30. package/skills/jskit/references/patterns/connectors/assistant-mcp/PATTERN.md +110 -0
  31. package/skills/jskit/references/patterns/connectors/assistant-mcp/example/integrations.json +13 -0
  32. package/skills/jskit/references/patterns/connectors/assistant-mcp-oauth/PATTERN.md +235 -0
  33. package/skills/jskit/references/patterns/connectors/assistant-mcp-oauth/example/integrations.json +102 -0
  34. package/skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md +169 -0
  35. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/formats/data-formats.js +35 -0
  36. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/formats/package-lock.json +49 -0
  37. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/formats/package.json +12 -0
  38. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/formats/verify-formats.mjs +37 -0
  39. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/integrations.json +38 -0
  40. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/s3-transfer.js +34 -0
  41. package/skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md +106 -0
  42. package/skills/jskit/references/patterns/connectors/calendar-cli/example/.env.example +6 -0
  43. package/skills/jskit/references/patterns/connectors/calendar-cli/example/integrations.json +23 -0
  44. package/skills/jskit/references/patterns/connectors/calendar-cli/example/knexfile.js +5 -0
  45. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +16 -0
  46. package/skills/jskit/references/patterns/connectors/calendar-cli/example/scripts/calendar.js +102 -0
  47. package/skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md +151 -0
  48. package/skills/jskit/references/patterns/connectors/event-delivery/example/integrations.json +17 -0
  49. package/skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md +156 -0
  50. package/skills/jskit/references/patterns/connectors/firebase-messaging/example/server/notifications.js +23 -0
  51. package/skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md +92 -0
  52. package/skills/jskit/references/patterns/connectors/google-ads-search/example/ads-setup.js +25 -0
  53. package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +724 -0
  54. package/skills/jskit/references/patterns/connectors/oauth-connection/example/integrations.json +20 -0
  55. package/skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md +78 -0
  56. package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +38 -0
  57. package/skills/jskit/references/patterns/connectors/public-image/PATTERN.md +84 -0
  58. package/skills/jskit/references/patterns/connectors/public-image/example/integrations.json +13 -0
  59. package/skills/jskit/references/patterns/connectors/public-image/example/logo-url.js +16 -0
  60. package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +150 -0
  61. package/skills/jskit/references/patterns/connectors/redshift-queries/example/integrations.json +33 -0
  62. package/skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md +83 -0
  63. package/skills/jskit/references/patterns/connectors/source-scanning/example/source-scanner.js +13 -0
  64. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +2 -2
  65. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  66. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  67. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  68. package/skills/jskit/references/patterns/rewards/google-rewarded/PATTERN.md +69 -0
  69. package/skills/jskit/references/patterns/rewards/google-rewarded/example/GoogleRewardedDeliveryProvider.js +12 -0
  70. package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +142 -0
  71. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +1 -1
  72. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +2 -2
  73. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +3 -3
  74. package/reference/autogen/packages/google-rewarded-web.md +0 -65
@@ -37,6 +37,74 @@ Protected server operations declare an auth policy; they do not trust a hidden
37
37
  button or a page-local session check. Other packages extend auth through the
38
38
  public extension capability rather than replacing the auth service.
39
39
 
40
+ ## Application-owned recovery email
41
+
42
+ Local auth owns recovery tokens, expiry and recovery-scoped sessions. The
43
+ application supplies the optional `auth.local.recovery-sender` capability as an
44
+ async function accepting `{ email, recoveryUrl }`. It owns message content,
45
+ sender address, provider credentials and delivery. The function must reject on
46
+ failure and must not log the recovery URL or raw provider credentials.
47
+
48
+ Wire the application's selected email integration or transport into this
49
+ capability using an ordinary application provider:
50
+
51
+ ```js
52
+ import { defineProvider } from "@jskit-ai/kernel/shared/capabilities";
53
+
54
+ export const RecoveryEmailProvider = defineProvider({
55
+ id: "app.recovery-email",
56
+ requires: { mail: "app.mail" },
57
+ provides: { recoverySender: "auth.local.recovery-sender" },
58
+ setup({ mail }) {
59
+ return {
60
+ recoverySender: async ({ email, recoveryUrl }) => {
61
+ await mail.send({
62
+ to: email,
63
+ subject: "Reset your password",
64
+ text: `Open this link to reset your password:\n\n${recoveryUrl}\n`
65
+ });
66
+ }
67
+ };
68
+ }
69
+ });
70
+ ```
71
+
72
+ `app.mail` is an application-owned capability in this example, not a built-in
73
+ JSKIT email API. Its `send()` implementation owns the selected integration,
74
+ credential resolution and safe error mapping. A connected account or a domain
75
+ listing adapter alone does not implement email sending. Install this provider
76
+ alongside the application's mail provider and `AuthLocalProvider`.
77
+ For direct library composition, pass the same function as `recoverySender` to
78
+ `createLocalAuthService()`.
79
+
80
+ Set `APP_PUBLIC_URL` to the application's actual public URL. When a sender is
81
+ configured, auth requires this value and does not return or log the recovery
82
+ URL. Without a sender, production recovery is disabled; explicit development
83
+ output remains available for local testing. A sender failure never falls back
84
+ to development output. The generic recovery delivery capability is `email`.
85
+
86
+ ### Pre-release migration
87
+
88
+ This is a V0 breaking change. There is one runtime path, with no old SMTP reader
89
+ or compatibility adapter.
90
+
91
+ 1. Supply `auth.local.recovery-sender` (or the direct `recoverySender` argument)
92
+ using your application’s chosen delivery implementation.
93
+ 2. Move sender, reply-to and transport credentials into that implementation's
94
+ configuration and private Env. Remove `AUTH_LOCAL_SMTP_HOST`,
95
+ `AUTH_LOCAL_SMTP_PORT`, `AUTH_LOCAL_SMTP_SECURE`, `AUTH_LOCAL_SMTP_USER`,
96
+ `AUTH_LOCAL_SMTP_PASSWORD`, `AUTH_LOCAL_SMTP_FROM` and
97
+ `AUTH_LOCAL_SMTP_REPLY_TO`. These variables are no longer consumed by auth.
98
+ 3. If retaining SMTP, explicitly install Nodemailer in the application and own
99
+ its transport there. Local auth no longer installs or imports Nodemailer.
100
+ 4. Retain `APP_PUBLIC_URL`. Replace direct-service `config.smtp` and
101
+ `config.smtpConfigured` with the sender argument. Update consumers that
102
+ inspect `features.passwordRecovery.delivery` from `smtp` to `email`, including
103
+ Supabase-backed consumers: this describes delivery, not transport protocol.
104
+ 5. Verify recovery delivery, unknown-account responses, delivery failures and
105
+ the completed password-reset flow before releasing the updated application.
106
+ This change does not alter identity, session or recovery-token storage.
107
+
40
108
  ## Browser boundary
41
109
 
42
110
  `@jskit-ai/auth-web` owns the normal auth views, guard runtime, sign-out flow,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.154",
3
+ "version": "0.1.156",
4
4
  "description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
5
5
  "type": "module",
6
6
  "files": [
@@ -5,7 +5,7 @@
5
5
  "private": true,
6
6
  "type": "module",
7
7
  "dependencies": {
8
- "@jskit-ai/kernel": "0.1.182",
8
+ "@jskit-ai/kernel": "0.1.184",
9
9
  "json-rest-schema": "^1.0.17"
10
10
  },
11
11
  "exports": {
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "@local/main": "0.1.0",
36
36
  "@fastify/static": "^10.1.3",
37
- "@jskit-ai/kernel": "0.1.182",
37
+ "@jskit-ai/kernel": "0.1.184",
38
38
  "@tanstack/vue-query": "^5.101.0",
39
39
  "fastify": "^5.8.5",
40
40
  "json-rest-schema": "^1.0.17",
@@ -42,11 +42,11 @@
42
42
  "vue": "^3.5.38",
43
43
  "vue-router": "^5.1.0",
44
44
  "vuetify": "^4.1.2",
45
- "@jskit-ai/http-runtime": "0.1.180"
45
+ "@jskit-ai/http-runtime": "0.1.182"
46
46
  },
47
47
  "devDependencies": {
48
- "@jskit-ai/config-eslint": "0.1.179",
49
- "@jskit-ai/jskit-catalog": "0.1.207",
48
+ "@jskit-ai/config-eslint": "0.1.181",
49
+ "@jskit-ai/jskit-catalog": "0.1.209",
50
50
  "@playwright/test": "1.61.1",
51
51
  "@vitejs/plugin-vue": "^6.0.7",
52
52
  "eslint": "^10.8.0",
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "@local/main": "0.1.0",
36
36
  "@fastify/static": "^10.1.3",
37
- "@jskit-ai/kernel": "0.1.182",
37
+ "@jskit-ai/kernel": "0.1.184",
38
38
  "@tanstack/vue-query": "^5.101.0",
39
39
  "fastify": "^5.8.5",
40
40
  "json-rest-schema": "^1.0.17",
@@ -42,13 +42,13 @@
42
42
  "vue": "^3.5.38",
43
43
  "vue-router": "^5.1.0",
44
44
  "vuetify": "^4.1.2",
45
- "@jskit-ai/http-runtime": "0.1.180",
45
+ "@jskit-ai/http-runtime": "0.1.182",
46
46
  "@mdi/js": "^7.4.47",
47
- "@jskit-ai/shell-web": "0.1.186"
47
+ "@jskit-ai/shell-web": "0.1.188"
48
48
  },
49
49
  "devDependencies": {
50
- "@jskit-ai/config-eslint": "0.1.179",
51
- "@jskit-ai/jskit-catalog": "0.1.207",
50
+ "@jskit-ai/config-eslint": "0.1.181",
51
+ "@jskit-ai/jskit-catalog": "0.1.209",
52
52
  "@playwright/test": "1.61.1",
53
53
  "@vitejs/plugin-vue": "^6.0.7",
54
54
  "eslint": "^10.8.0",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "description": "App-local runtime composition and lightweight glue.",
11
11
  "dependencies": {
12
- "@jskit-ai/kernel": "0.1.182"
12
+ "@jskit-ai/kernel": "0.1.184"
13
13
  },
14
14
  "jskit": {
15
15
  "kind": "runtime",
@@ -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.154`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.156`
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.154`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.156`
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,7 +37,7 @@ 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.153`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.155`
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/shell-web`
@@ -48,7 +48,7 @@ Compose JSKIT authentication routes, views, profile controls, and public surface
48
48
 
49
49
  - Id: `auth/auth-surface`
50
50
  - Keywords: `account`, `auth`, `login`, `logout`, `password`, `placement`, `profile`, `reset`, `surface`
51
- - Owner: `@jskit-ai/auth-web@0.1.182`
51
+ - Owner: `@jskit-ai/auth-web@0.1.184`
52
52
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/auth-surface/PATTERN.md)
53
53
  - Examples: [example/](../../skills/jskit/references/patterns/auth/auth-surface/example/)
54
54
  - Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
@@ -59,18 +59,172 @@ Add Supabase authentication through normal npm composition, explicit environment
59
59
 
60
60
  - Id: `auth/supabase-auth`
61
61
  - Keywords: `auth`, `authentication`, `oauth`, `sessions`, `supabase`
62
- - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.179`
62
+ - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.181`
63
63
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md)
64
64
  - Examples: [example/](../../skills/jskit/references/patterns/auth/supabase-auth/example/)
65
65
  - Requires: `@jskit-ai/auth-provider-supabase-core`
66
66
 
67
+ ## App-owned AI connections and static model selection
68
+
69
+ Resolve an administrator environment key or an individual user's grant, then use the application's chosen AI SDK directly.
70
+
71
+ - Id: `connectors/ai-connections`
72
+ - Keywords: `ai`, `api-key`, `big-pickle`, `cli`, `environment`, `free`, `models`, `ownership`, `zai`, `zen`
73
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
74
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md)
75
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/ai-connections/example/)
76
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
77
+
78
+ ## API-key connections with portable JSON configuration
79
+
80
+ Compose provider operations, authorization and encrypted file storage from a CLI or application server.
81
+
82
+ - Id: `connectors/api-key-connection`
83
+ - 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.1`
85
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md)
86
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/api-key-connection/example/)
87
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
88
+
89
+ ## Assistant MCP connections with portable files
90
+
91
+ Compose token-based MCP discovery and explicitly authorized tool calls using the shared connector runtime.
92
+
93
+ - Id: `connectors/assistant-mcp`
94
+ - Keywords: `assistant`, `cli`, `connectors`, `files`, `integrations`, `mcp`, `n8n`, `sanity`
95
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
96
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/assistant-mcp/PATTERN.md)
97
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/assistant-mcp/example/)
98
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
99
+
100
+ ## Assistant MCP OAuth with portable files
101
+
102
+ Configure assistant OAuth clients, then compose existing state, encrypted file grants and authorized MCP calls.
103
+
104
+ - Id: `connectors/assistant-mcp-oauth`
105
+ - 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.1`
107
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/assistant-mcp-oauth/PATTERN.md)
108
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/assistant-mcp-oauth/example/)
109
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
110
+
111
+ ## AWS object storage and Athena queries with explicit credentials
112
+
113
+ Compose signed AWS operations, file configuration and application authorization from CLI or server code.
114
+
115
+ - Id: `connectors/aws-storage-queries`
116
+ - Keywords: `athena`, `aws`, `cli`, `connectors`, `files`, `iam`, `queries`, `s3`, `storage`, `sts`
117
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
118
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md)
119
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/aws-storage-queries/example/)
120
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
121
+
122
+ ## Google Calendar from an application-owned CLI
123
+
124
+ Compose reusable connection libraries with portable configuration, application ownership and durable storage.
125
+
126
+ - Id: `connectors/calendar-cli`
127
+ - Keywords: `calendar`, `cli`, `connectors`, `google`, `integrations`, `oauth`, `permissions`
128
+ - Owner: `@jskit-ai/connector-google-calendar@0.1.1`
129
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md)
130
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/calendar-cli/example/)
131
+ - Requires: `@jskit-ai/connector-google-calendar`, `@jskit-ai/connectors-core`, `@jskit-ai/database-runtime-mysql`
132
+
133
+ ## Authorized Inngest event delivery with portable files
134
+
135
+ Compose the shared connector runtime for event delivery while leaving workflow code and event policy with the application.
136
+
137
+ - Id: `connectors/event-delivery`
138
+ - Keywords: `cli`, `connectors`, `events`, `files`, `inngest`, `integrations`, `workflows`
139
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
140
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md)
141
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/event-delivery/example/)
142
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
143
+
144
+ ## Firebase messaging from a CLI or application backend
145
+
146
+ Wire service-account grants, file storage, explicit message actions and public browser settings without generating an application.
147
+
148
+ - Id: `connectors/firebase-messaging`
149
+ - Keywords: `cli`, `connectors`, `fcm`, `files`, `firebase`, `integrations`, `jwt`, `notifications`, `push`, `service-account`, `vapid`
150
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
151
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md)
152
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/firebase-messaging/example/)
153
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
154
+
155
+ ## Existing-account Google Ads Search
156
+
157
+ Compose reviewed Search campaigns with project-owned Google OAuth and portable saved plans.
158
+
159
+ - Id: `connectors/google-ads-search`
160
+ - Keywords: `ads`, `campaigns`, `cli`, `connectors`, `conversion`, `google`, `search`
161
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
162
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md)
163
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/google-ads-search/example/)
164
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
165
+
166
+ ## OAuth connections with portable files
167
+
168
+ Compose provider consent, verification and encrypted file persistence from an application server or CLI.
169
+
170
+ - Id: `connectors/oauth-connection`
171
+ - 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.1`
173
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md)
174
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/oauth-connection/example/)
175
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
176
+
177
+ ## Create Paddle products with prices
178
+
179
+ Compose a sequential catalogue batch and preserve partial success for application-owned recovery.
180
+
181
+ - Id: `connectors/paddle-catalogue`
182
+ - Keywords: `batch`, `paddle`, `payments`, `prices`, `products`
183
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
184
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md)
185
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/paddle-catalogue/example/)
186
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
187
+
188
+ ## Public logo images from portable integration configuration
189
+
190
+ Resolve a publishable image key deliberately and use the shared URL library in a browser, backend or CLI.
191
+
192
+ - Id: `connectors/public-image`
193
+ - Keywords: `cli`, `connectors`, `files`, `images`, `integrations`, `logo-dev`, `public-key`
194
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
195
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/public-image/PATTERN.md)
196
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/public-image/example/)
197
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
198
+
199
+ ## Redshift queries with shared AWS credentials
200
+
201
+ Compose file configuration, Redshift Data API operations and application query ownership.
202
+
203
+ - Id: `connectors/redshift-queries`
204
+ - Keywords: `aws`, `cli`, `connectors`, `files`, `iam`, `provisioned`, `redshift`, `serverless`, `sql`, `warehouse`
205
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
206
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md)
207
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/redshift-queries/example/)
208
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
209
+
210
+ ## Authorised project source scans with Wiz
211
+
212
+ Use the shared scanner runtime from a CLI or a host worker with portable configuration and explicit source ownership.
213
+
214
+ - Id: `connectors/source-scanning`
215
+ - Keywords: `cancellation`, `cli`, `connectors`, `integrations`, `scanning`, `security`, `source`, `wiz`, `worker`
216
+ - Owner: `@jskit-ai/connectors-catalog@0.1.1`
217
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md)
218
+ - Examples: [example/](../../skills/jskit/references/patterns/connectors/source-scanning/example/)
219
+ - Requires: `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`
220
+
67
221
  ## Owner console surface
68
222
 
69
223
  Add a protected administration surface, settings shell, and semantic navigation through JSKIT console and shell APIs.
70
224
 
71
225
  - Id: `console/console-surface`
72
226
  - Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
73
- - Owner: `@jskit-ai/console-web@0.1.150`
227
+ - Owner: `@jskit-ai/console-web@0.1.152`
74
228
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/console/console-surface/PATTERN.md)
75
229
  - Examples: [example/](../../skills/jskit/references/patterns/console/console-surface/example/)
76
230
  - Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
@@ -81,7 +235,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
81
235
 
82
236
  - Id: `crud/crud-screen-set`
83
237
  - Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
84
- - Owner: `@jskit-ai/http-web@0.1.27`
238
+ - Owner: `@jskit-ai/http-web@0.1.29`
85
239
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md)
86
240
  - Examples: [example/](../../skills/jskit/references/patterns/crud/crud-screen-set/example/)
87
241
  - Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-crud-core`
@@ -92,7 +246,7 @@ Build a complete application-owned CRUD server package from a migration, resourc
92
246
 
93
247
  - Id: `crud/json-api-resource-package`
94
248
  - Keywords: `actions`, `crud`, `database`, `json-api`, `migration`, `permissions`, `provider`, `repository`, `routes`, `service`
95
- - Owner: `@jskit-ai/crud-core@0.1.193`
249
+ - Owner: `@jskit-ai/crud-core@0.1.195`
96
250
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md)
97
251
  - Examples: [example/](../../skills/jskit/references/patterns/crud/json-api-resource-package/example/)
98
252
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/resource-crud-core`
@@ -103,7 +257,7 @@ Define an authenticated application resource whose records belong to the current
103
257
 
104
258
  - Id: `crud/resource-contract`
105
259
  - Keywords: `authenticated`, `crud`, `database`, `owner-scoped`, `resource`, `user`
106
- - Owner: `@jskit-ai/resource-crud-core@0.1.124`
260
+ - Owner: `@jskit-ai/resource-crud-core@0.1.126`
107
261
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/resource-contract/PATTERN.md)
108
262
  - Examples: [example/](../../skills/jskit/references/patterns/crud/resource-contract/example/)
109
263
  - Requires: `@jskit-ai/resource-crud-core`
@@ -114,7 +268,7 @@ Configure a JSKIT application for MySQL with a fixed driver, ordinary environmen
114
268
 
115
269
  - Id: `database/mysql-application`
116
270
  - Keywords: `database`, `knex`, `mariadb`, `migrations`, `mysql`, `mysql2`
117
- - Owner: `@jskit-ai/database-runtime-mysql@0.1.180`
271
+ - Owner: `@jskit-ai/database-runtime-mysql@0.1.182`
118
272
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/mysql-application/PATTERN.md)
119
273
  - Examples: [example/](../../skills/jskit/references/patterns/database/mysql-application/example/)
120
274
  - Requires: `@jskit-ai/database-runtime-mysql`
@@ -125,7 +279,7 @@ Configure a JSKIT application for PostgreSQL with a fixed driver, ordinary envir
125
279
 
126
280
  - Id: `database/postgres-application`
127
281
  - Keywords: `database`, `knex`, `migrations`, `pg`, `postgres`, `postgresql`
128
- - Owner: `@jskit-ai/database-runtime-postgres@0.1.179`
282
+ - Owner: `@jskit-ai/database-runtime-postgres@0.1.181`
129
283
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/postgres-application/PATTERN.md)
130
284
  - Examples: [example/](../../skills/jskit/references/patterns/database/postgres-application/example/)
131
285
  - Requires: `@jskit-ai/database-runtime-postgres`
@@ -136,7 +290,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
136
290
 
137
291
  - Id: `mobile/android-application`
138
292
  - Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
139
- - Owner: `@jskit-ai/mobile-capacitor@0.1.117`
293
+ - Owner: `@jskit-ai/mobile-capacitor@0.1.119`
140
294
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/mobile/android-application/PATTERN.md)
141
295
  - Examples: [example/](../../skills/jskit/references/patterns/mobile/android-application/example/)
142
296
  - Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
@@ -147,18 +301,29 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
147
301
 
148
302
  - Id: `realtime/realtime-application`
149
303
  - Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
150
- - Owner: `@jskit-ai/realtime@0.1.179`
304
+ - Owner: `@jskit-ai/realtime@0.1.181`
151
305
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md)
152
306
  - Examples: [example/](../../skills/jskit/references/patterns/realtime/realtime-application/example/)
153
307
  - Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
154
308
 
309
+ ## Google rewarded delivery
310
+
311
+ Compose application-owned Google Publisher Tag delivery with the generic rewarded workflow.
312
+
313
+ - Id: `rewards/google-rewarded`
314
+ - Keywords: `ads`, `google`, `publisher tag`, `rewarded`, `unlock`
315
+ - Owner: `@jskit-ai/rewarded-web@0.1.120`
316
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/rewards/google-rewarded/PATTERN.md)
317
+ - Examples: [example/](../../skills/jskit/references/patterns/rewards/google-rewarded/example/)
318
+ - Requires: `@jskit-ai/rewarded-web`
319
+
155
320
  ## App-local server feature package
156
321
 
157
322
  Define a server feature through explicit capabilities and first-class actions, adding services or repositories only when its domain earns them.
158
323
 
159
324
  - Id: `server/feature-package`
160
325
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
161
- - Owner: `@jskit-ai/agent-docs@0.1.154`
326
+ - Owner: `@jskit-ai/agent-docs@0.1.156`
162
327
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/server/feature-package/PATTERN.md)
163
328
  - Examples: [example/](../../skills/jskit/references/patterns/server/feature-package/example/)
164
329
  - Requires: `@jskit-ai/kernel`
@@ -169,7 +334,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
169
334
 
170
335
  - Id: `shell/application-shell`
171
336
  - Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
172
- - Owner: `@jskit-ai/shell-web@0.1.186`
337
+ - Owner: `@jskit-ai/shell-web@0.1.188`
173
338
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/shell/application-shell/PATTERN.md)
174
339
  - Examples: [example/](../../skills/jskit/references/patterns/shell/application-shell/example/)
175
340
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -180,7 +345,7 @@ Add product routes and shell extensions through file routing, semantic placement
180
345
 
181
346
  - Id: `ui/page-and-placement`
182
347
  - Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
183
- - Owner: `@jskit-ai/shell-web@0.1.186`
348
+ - Owner: `@jskit-ai/shell-web@0.1.188`
184
349
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md)
185
350
  - Examples: [example/](../../skills/jskit/references/patterns/ui/page-and-placement/example/)
186
351
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -191,7 +356,7 @@ Compose an account settings route and profile, preference, and notification sect
191
356
 
192
357
  - Id: `users/account-settings`
193
358
  - Keywords: `account`, `notifications`, `preferences`, `profile`, `settings`, `user`, `vue`
194
- - Owner: `@jskit-ai/users-web@0.1.200`
359
+ - Owner: `@jskit-ai/users-web@0.1.202`
195
360
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/account-settings/PATTERN.md)
196
361
  - Examples: [example/](../../skills/jskit/references/patterns/users/account-settings/example/)
197
362
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
@@ -202,7 +367,7 @@ Expose user administration and workspace-scoped member operations through app-ow
202
367
 
203
368
  - Id: `users/user-administration-server`
204
369
  - Keywords: `account`, `admin`, `member`, `repository`, `resource`, `routes`, `service`, `user`, `workspace`
205
- - Owner: `@jskit-ai/users-core@0.1.195`
370
+ - Owner: `@jskit-ai/users-core@0.1.197`
206
371
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/user-administration-server/PATTERN.md)
207
372
  - Examples: [example/](../../skills/jskit/references/patterns/users/user-administration-server/example/)
208
373
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/users-core`
@@ -213,7 +378,7 @@ Configure roles, workspace access policy, invitations, and app-owned invitation
213
378
 
214
379
  - Id: `workspaces/workspace-server`
215
380
  - Keywords: `access`, `invite`, `membership`, `multitenancy`, `policy`, `role`, `tenancy`, `workspace`
216
- - Owner: `@jskit-ai/workspaces-core@0.1.160`
381
+ - Owner: `@jskit-ai/workspaces-core@0.1.162`
217
382
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md)
218
383
  - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-server/example/)
219
384
  - Requires: `@jskit-ai/users-core`, `@jskit-ai/workspaces-core`
@@ -224,7 +389,7 @@ Compose workspace selection, invitation, member administration, settings, and re
224
389
 
225
390
  - Id: `workspaces/workspace-surfaces`
226
391
  - Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
227
- - Owner: `@jskit-ai/workspaces-web@0.1.161`
392
+ - Owner: `@jskit-ai/workspaces-web@0.1.163`
228
393
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md)
229
394
  - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/example/)
230
395
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
@@ -19,22 +19,28 @@ AI-first source patterns are indexed in `PATTERN_INDEX.md`.
19
19
  - [auth-provider-local-db-core](/packages/agent-docs/reference/autogen/packages/auth-provider-local-db-core.md)
20
20
  - [auth-provider-supabase-core](/packages/agent-docs/reference/autogen/packages/auth-provider-supabase-core.md)
21
21
  - [auth-web](/packages/agent-docs/reference/autogen/packages/auth-web.md)
22
+ - [connector-google-calendar](/packages/agent-docs/reference/autogen/packages/connector-google-calendar.md)
23
+ - [connectors-catalog](/packages/agent-docs/reference/autogen/packages/connectors-catalog.md)
24
+ - [connectors-core](/packages/agent-docs/reference/autogen/packages/connectors-core.md)
25
+ - [connectors-web](/packages/agent-docs/reference/autogen/packages/connectors-web.md)
22
26
  - [console-core](/packages/agent-docs/reference/autogen/packages/console-core.md)
23
27
  - [console-web](/packages/agent-docs/reference/autogen/packages/console-web.md)
24
28
  - [crud-core](/packages/agent-docs/reference/autogen/packages/crud-core.md)
25
29
  - [database-runtime](/packages/agent-docs/reference/autogen/packages/database-runtime.md)
26
30
  - [database-runtime-mysql](/packages/agent-docs/reference/autogen/packages/database-runtime-mysql.md)
27
31
  - [database-runtime-postgres](/packages/agent-docs/reference/autogen/packages/database-runtime-postgres.md)
28
- - [google-rewarded-core](/packages/agent-docs/reference/autogen/packages/google-rewarded-core.md)
29
- - [google-rewarded-web](/packages/agent-docs/reference/autogen/packages/google-rewarded-web.md)
30
32
  - [http-runtime](/packages/agent-docs/reference/autogen/packages/http-runtime.md)
31
33
  - [http-web](/packages/agent-docs/reference/autogen/packages/http-web.md)
32
34
  - [json-rest-api-core](/packages/agent-docs/reference/autogen/packages/json-rest-api-core.md)
33
35
  - [kernel](/packages/agent-docs/reference/autogen/packages/kernel.md)
34
36
  - [mobile-capacitor](/packages/agent-docs/reference/autogen/packages/mobile-capacitor.md)
37
+ - [payments-core](/packages/agent-docs/reference/autogen/packages/payments-core.md)
38
+ - [payments-web](/packages/agent-docs/reference/autogen/packages/payments-web.md)
35
39
  - [realtime](/packages/agent-docs/reference/autogen/packages/realtime.md)
36
40
  - [resource-core](/packages/agent-docs/reference/autogen/packages/resource-core.md)
37
41
  - [resource-crud-core](/packages/agent-docs/reference/autogen/packages/resource-crud-core.md)
42
+ - [rewarded-core](/packages/agent-docs/reference/autogen/packages/rewarded-core.md)
43
+ - [rewarded-web](/packages/agent-docs/reference/autogen/packages/rewarded-web.md)
38
44
  - [shell-web](/packages/agent-docs/reference/autogen/packages/shell-web.md)
39
45
  - [storage-runtime](/packages/agent-docs/reference/autogen/packages/storage-runtime.md)
40
46
  - [uploads-image-web](/packages/agent-docs/reference/autogen/packages/uploads-image-web.md)
@@ -74,7 +74,7 @@ Local functions
74
74
 
75
75
  ### `src/server/lib/service.js`
76
76
  Exports
77
- - `createLocalAuthService({ backend, config, profileProjector = null, passwordStrategy = null, invitationContextResolver = null })`
77
+ - `createLocalAuthService({ backend, config, profileProjector = null, passwordStrategy = null, invitationContextResolver = null, recoverySender = null })`
78
78
  Local functions
79
79
  - `nowSeconds()`
80
80
  - `isoFromNow(seconds)`
@@ -102,7 +102,6 @@ Local functions
102
102
  - `devLoginAsValidationError(fieldErrors = {})`
103
103
  - `devLoginAsUserNotFound({ email = "", userId = "" } = {})`
104
104
  - `normalizeInvitationInput(value = null)`
105
- - `maybeSendRecoveryEmail(config, recoveryUrl, email)`
106
105
 
107
106
  ### `src/server/lib/tokens.js`
108
107
  Exports
@@ -117,9 +116,8 @@ Local functions
117
116
  ### `src/server/providers/AuthLocalProvider.js`
118
117
  Exports
119
118
  - `AuthLocalProvider`
120
- - `resolveConfig({ appRoot, backend, env, logger })`
119
+ - `resolveConfig({ appRoot, backend, env, logger, recoverySender = null })`
121
120
  Local functions
122
121
  - `resolveStoreDir(env, appRoot)`
123
122
  - `resolveSessionSecret(env, { storeDir, isProduction })`
124
- - `resolveSmtpConfig(env)`
125
- - `resolveAppPublicUrl(env, { smtpConfigured })`
123
+ - `resolveAppPublicUrl(env, { recoverySender })`
@@ -0,0 +1,42 @@
1
+ # packages/connector-google-calendar
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/connector-google-calendar`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/connector-google-calendar/**/*{.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/provider.js`
18
+ Exports
19
+ - `googleCalendarProvider`
20
+ Local functions
21
+ - `scope(name)`
22
+ - `queryUrl(path, input)`
23
+ - `invalid(message)`
24
+ - `eventBody(body, creating)`
25
+ - `writeEvent(method)`
26
+
27
+ ### `src/shared/definition.js`
28
+ Exports
29
+ - `googleCalendarDefinition`
30
+
31
+ ### patterns
32
+
33
+ ### `patterns/calendar-cli/example/knexfile.js`
34
+ Exports
35
+ - None
36
+
37
+ ### `patterns/calendar-cli/example/scripts/calendar.js`
38
+ Exports
39
+ - None
40
+ Local functions
41
+ - `connectInBrowser(service, context)`
42
+ - `main()`