@jskit-ai/agent-docs 0.1.138 → 0.1.139

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.
@@ -37,6 +37,48 @@ Workspace scope is valid only when both the runtime and its settings surface
37
37
  are workspace-aware. Requests must retain the selected workspace through the
38
38
  server action boundary.
39
39
 
40
+ ## Action tools
41
+
42
+ The assistant reads automation-capable actions from `runtime.actions`. It keeps
43
+ the typing user's actor, permissions, target surface, and workspace context,
44
+ then executes through `runtime.actions.execute()` with the `automation`
45
+ channel. When workspace context resolves `workspaceSlug`, the tool schema hides
46
+ that field and execution overwrites any model-supplied value with the trusted
47
+ context value.
48
+
49
+ An action is available as a tool only when it has an input contract and a
50
+ truthful model-facing output contract. Ordinary actions use their normal
51
+ `output`. An action whose native result needs a different model-facing shape
52
+ can declare the adapter-specific contract and transformation explicitly:
53
+
54
+ ```js
55
+ {
56
+ input,
57
+ output: null,
58
+ extensions: {
59
+ assistant: {
60
+ description: "List books.",
61
+ output: booksResource.operations.list.output,
62
+ transformResult(result, { input, context }) {
63
+ return toAssistantBookList(result, { input, context });
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ```
69
+
70
+ The assistant validates the transformed result against
71
+ `extensions.assistant.output` before returning it to the model. Generated
72
+ JSON:API CRUD actions supply these assistant contracts and transformations
73
+ automatically; their native action and HTTP result shapes do not change.
74
+
75
+ Up to 32 authorized actions remain direct tools. For a larger authorized
76
+ catalog, the runtime automatically exposes compact paged action search, exact
77
+ one-action contract lookup, and contract-gated execution tools. Search returns
78
+ at most 20 compact matches and never includes schemas. Tool arguments and
79
+ results are byte-bounded; an oversized result returns a controlled error so it
80
+ cannot overflow assistant transcript storage.
81
+
40
82
  ## Verification
41
83
 
42
84
  Run migrations, load assistant and settings pages through normal navigation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.138",
3
+ "version": "0.1.139",
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.166",
8
+ "@jskit-ai/kernel": "0.1.167",
9
9
  "json-rest-schema": "^1.0.17"
10
10
  },
11
11
  "exports": {
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "@local/main": "file:packages/main",
31
31
  "@fastify/static": "^10.1.3",
32
- "@jskit-ai/kernel": "0.1.166",
32
+ "@jskit-ai/kernel": "0.1.167",
33
33
  "@tanstack/vue-query": "^5.101.0",
34
34
  "fastify": "^5.8.5",
35
35
  "json-rest-schema": "^1.0.17",
@@ -37,11 +37,11 @@
37
37
  "vue": "^3.5.38",
38
38
  "vue-router": "^5.1.0",
39
39
  "vuetify": "^4.1.2",
40
- "@jskit-ai/http-runtime": "0.1.164"
40
+ "@jskit-ai/http-runtime": "0.1.165"
41
41
  },
42
42
  "devDependencies": {
43
- "@jskit-ai/agent-docs": "0.1.138",
44
- "@jskit-ai/config-eslint": "0.1.163",
43
+ "@jskit-ai/agent-docs": "0.1.139",
44
+ "@jskit-ai/config-eslint": "0.1.164",
45
45
  "@playwright/test": "1.61.1",
46
46
  "@vitejs/plugin-vue": "^6.0.7",
47
47
  "eslint": "^10.8.0",
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "@local/main": "file:packages/main",
31
31
  "@fastify/static": "^10.1.3",
32
- "@jskit-ai/kernel": "0.1.166",
32
+ "@jskit-ai/kernel": "0.1.167",
33
33
  "@tanstack/vue-query": "^5.101.0",
34
34
  "fastify": "^5.8.5",
35
35
  "json-rest-schema": "^1.0.17",
@@ -37,13 +37,13 @@
37
37
  "vue": "^3.5.38",
38
38
  "vue-router": "^5.1.0",
39
39
  "vuetify": "^4.1.2",
40
- "@jskit-ai/http-runtime": "0.1.164",
40
+ "@jskit-ai/http-runtime": "0.1.165",
41
41
  "@mdi/js": "^7.4.47",
42
- "@jskit-ai/shell-web": "0.1.170"
42
+ "@jskit-ai/shell-web": "0.1.171"
43
43
  },
44
44
  "devDependencies": {
45
- "@jskit-ai/agent-docs": "0.1.138",
46
- "@jskit-ai/config-eslint": "0.1.163",
45
+ "@jskit-ai/agent-docs": "0.1.139",
46
+ "@jskit-ai/config-eslint": "0.1.164",
47
47
  "@playwright/test": "1.61.1",
48
48
  "@vitejs/plugin-vue": "^6.0.7",
49
49
  "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.166"
12
+ "@jskit-ai/kernel": "0.1.167"
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.138`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
19
19
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/minimal-foundation/PATTERN.md`
20
20
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/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.138`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
30
30
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/shell-foundation/PATTERN.md`
31
31
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/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.137`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.138`
41
41
  - Read: `node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md`
42
42
  - Examples: `node_modules/@jskit-ai/assistant-runtime/patterns/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.166`
51
+ - Owner: `@jskit-ai/auth-web@0.1.167`
52
52
  - Read: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/PATTERN.md`
53
53
  - Examples: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/example/`
54
54
  - Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
@@ -59,7 +59,7 @@ 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.163`
62
+ - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.164`
63
63
  - Read: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/PATTERN.md`
64
64
  - Examples: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/example/`
65
65
  - Requires: `@jskit-ai/auth-provider-supabase-core`
@@ -70,7 +70,7 @@ Add a protected administration surface, settings shell, and semantic navigation
70
70
 
71
71
  - Id: `console/console-surface`
72
72
  - Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
73
- - Owner: `@jskit-ai/console-web@0.1.134`
73
+ - Owner: `@jskit-ai/console-web@0.1.135`
74
74
  - Read: `node_modules/@jskit-ai/console-web/patterns/console-surface/PATTERN.md`
75
75
  - Examples: `node_modules/@jskit-ai/console-web/patterns/console-surface/example/`
76
76
  - Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
@@ -81,7 +81,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
81
81
 
82
82
  - Id: `crud/crud-screen-set`
83
83
  - Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
84
- - Owner: `@jskit-ai/http-web@0.1.11`
84
+ - Owner: `@jskit-ai/http-web@0.1.12`
85
85
  - Read: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/PATTERN.md`
86
86
  - Examples: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/example/`
87
87
  - Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-crud-core`
@@ -92,7 +92,7 @@ Build a complete application-owned CRUD server package from a migration, resourc
92
92
 
93
93
  - Id: `crud/json-api-resource-package`
94
94
  - Keywords: `actions`, `crud`, `database`, `json-api`, `migration`, `permissions`, `provider`, `repository`, `routes`, `service`
95
- - Owner: `@jskit-ai/crud-core@0.1.177`
95
+ - Owner: `@jskit-ai/crud-core@0.1.178`
96
96
  - Read: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/PATTERN.md`
97
97
  - Examples: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/example/`
98
98
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/resource-crud-core`
@@ -103,7 +103,7 @@ Define an authenticated application resource whose records belong to the current
103
103
 
104
104
  - Id: `crud/resource-contract`
105
105
  - Keywords: `authenticated`, `crud`, `database`, `owner-scoped`, `resource`, `user`
106
- - Owner: `@jskit-ai/resource-crud-core@0.1.108`
106
+ - Owner: `@jskit-ai/resource-crud-core@0.1.109`
107
107
  - Read: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/PATTERN.md`
108
108
  - Examples: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/example/`
109
109
  - Requires: `@jskit-ai/resource-crud-core`
@@ -114,7 +114,7 @@ Configure a JSKIT application for MySQL with a fixed driver, ordinary environmen
114
114
 
115
115
  - Id: `database/mysql-application`
116
116
  - Keywords: `database`, `knex`, `mariadb`, `migrations`, `mysql`, `mysql2`
117
- - Owner: `@jskit-ai/database-runtime-mysql@0.1.164`
117
+ - Owner: `@jskit-ai/database-runtime-mysql@0.1.165`
118
118
  - Read: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/PATTERN.md`
119
119
  - Examples: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/example/`
120
120
  - Requires: `@jskit-ai/database-runtime-mysql`
@@ -125,7 +125,7 @@ Configure a JSKIT application for PostgreSQL with a fixed driver, ordinary envir
125
125
 
126
126
  - Id: `database/postgres-application`
127
127
  - Keywords: `database`, `knex`, `migrations`, `pg`, `postgres`, `postgresql`
128
- - Owner: `@jskit-ai/database-runtime-postgres@0.1.163`
128
+ - Owner: `@jskit-ai/database-runtime-postgres@0.1.164`
129
129
  - Read: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/PATTERN.md`
130
130
  - Examples: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/example/`
131
131
  - Requires: `@jskit-ai/database-runtime-postgres`
@@ -136,7 +136,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
136
136
 
137
137
  - Id: `mobile/android-application`
138
138
  - Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
139
- - Owner: `@jskit-ai/mobile-capacitor@0.1.101`
139
+ - Owner: `@jskit-ai/mobile-capacitor@0.1.102`
140
140
  - Read: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/PATTERN.md`
141
141
  - Examples: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/example/`
142
142
  - Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
@@ -147,7 +147,7 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
147
147
 
148
148
  - Id: `realtime/realtime-application`
149
149
  - Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
150
- - Owner: `@jskit-ai/realtime@0.1.163`
150
+ - Owner: `@jskit-ai/realtime@0.1.164`
151
151
  - Read: `node_modules/@jskit-ai/realtime/patterns/realtime-application/PATTERN.md`
152
152
  - Examples: `node_modules/@jskit-ai/realtime/patterns/realtime-application/example/`
153
153
  - Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
@@ -158,7 +158,7 @@ Define a server feature through explicit capabilities and first-class actions, a
158
158
 
159
159
  - Id: `server/feature-package`
160
160
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
161
- - Owner: `@jskit-ai/agent-docs@0.1.138`
161
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
162
162
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/PATTERN.md`
163
163
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/example/`
164
164
  - Requires: `@jskit-ai/kernel`
@@ -169,7 +169,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
169
169
 
170
170
  - Id: `shell/application-shell`
171
171
  - Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
172
- - Owner: `@jskit-ai/shell-web@0.1.170`
172
+ - Owner: `@jskit-ai/shell-web@0.1.171`
173
173
  - Read: `node_modules/@jskit-ai/shell-web/patterns/application-shell/PATTERN.md`
174
174
  - Examples: `node_modules/@jskit-ai/shell-web/patterns/application-shell/example/`
175
175
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -180,7 +180,7 @@ Add product routes and shell extensions through file routing, semantic placement
180
180
 
181
181
  - Id: `ui/page-and-placement`
182
182
  - Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
183
- - Owner: `@jskit-ai/shell-web@0.1.170`
183
+ - Owner: `@jskit-ai/shell-web@0.1.171`
184
184
  - Read: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/PATTERN.md`
185
185
  - Examples: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/example/`
186
186
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -191,7 +191,7 @@ Compose an account settings route and profile, preference, and notification sect
191
191
 
192
192
  - Id: `users/account-settings`
193
193
  - Keywords: `account`, `notifications`, `preferences`, `profile`, `settings`, `user`, `vue`
194
- - Owner: `@jskit-ai/users-web@0.1.184`
194
+ - Owner: `@jskit-ai/users-web@0.1.185`
195
195
  - Read: `node_modules/@jskit-ai/users-web/patterns/account-settings/PATTERN.md`
196
196
  - Examples: `node_modules/@jskit-ai/users-web/patterns/account-settings/example/`
197
197
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
@@ -202,7 +202,7 @@ Expose user administration and workspace-scoped member operations through app-ow
202
202
 
203
203
  - Id: `users/user-administration-server`
204
204
  - Keywords: `account`, `admin`, `member`, `repository`, `resource`, `routes`, `service`, `user`, `workspace`
205
- - Owner: `@jskit-ai/users-core@0.1.179`
205
+ - Owner: `@jskit-ai/users-core@0.1.180`
206
206
  - Read: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/PATTERN.md`
207
207
  - Examples: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/example/`
208
208
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/users-core`
@@ -213,7 +213,7 @@ Configure roles, workspace access policy, invitations, and app-owned invitation
213
213
 
214
214
  - Id: `workspaces/workspace-server`
215
215
  - Keywords: `access`, `invite`, `membership`, `multitenancy`, `policy`, `role`, `tenancy`, `workspace`
216
- - Owner: `@jskit-ai/workspaces-core@0.1.144`
216
+ - Owner: `@jskit-ai/workspaces-core@0.1.145`
217
217
  - Read: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/PATTERN.md`
218
218
  - Examples: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/example/`
219
219
  - Requires: `@jskit-ai/users-core`, `@jskit-ai/workspaces-core`
@@ -224,7 +224,7 @@ Compose workspace selection, invitation, member administration, settings, and re
224
224
 
225
225
  - Id: `workspaces/workspace-surfaces`
226
226
  - Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
227
- - Owner: `@jskit-ai/workspaces-web@0.1.145`
227
+ - Owner: `@jskit-ai/workspaces-web@0.1.146`
228
228
  - Read: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/PATTERN.md`
229
229
  - Examples: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/example/`
230
230
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
@@ -166,7 +166,7 @@ Exports
166
166
 
167
167
  ### `src/server/lib/serviceToolCatalog.js`
168
168
  Exports
169
- - `createServiceToolCatalog(actions, { barredActionIds = [], skipActionPrefixes = [] } = {})`
169
+ - `createServiceToolCatalog(actions, { barredActionIds = [], skipActionPrefixes = [], maxDirectTools: rawMaxDirectTools = DEFAULT_MAX_DIRECT_TOOLS, discoveryPageSize: rawDiscoveryPageSize = DEFAULT_DISCOVERY_PAGE_SIZE, maxToolArgumentBytes: rawMaxToolArgumentBytes = DEFAULT_MAX_TOOL_ARGUMENT_BYTES, maxToolResultBytes: rawMaxToolResultBytes = DEFAULT_MAX_TOOL_RESULT_BYTES } = {})`
170
170
  Local functions
171
171
  - `normalizeAssistantExtension(value)`
172
172
  - `normalizeAssistantActionExtension(action = {})`
@@ -176,6 +176,17 @@ Local functions
176
176
  - `sanitizeToolName(value)`
177
177
  - `resolveUniqueToolName(baseName, used)`
178
178
  - `parseToolPayload(argumentsText)`
179
+ - `normalizeNonNegativeInteger(value, fallback)`
180
+ - `normalizePositiveInteger(value, fallback)`
181
+ - `serializedByteLength(value)`
182
+ - `createToolError(status, code, message)`
183
+ - `ensureSerializedSize(value, maxBytes, { code = "assistant_tool_result_too_large", label = "Tool result" } = {})`
184
+ - `ensureToolArgumentsSize(argumentsText, maxBytes)`
185
+ - `normalizeActionLookupKey(actionId, version)`
186
+ - `normalizeDiscoveryQuery(value)`
187
+ - `encodeDiscoveryCursor(offset, query)`
188
+ - `decodeDiscoveryCursor(value, query)`
189
+ - `truncateDescription(value, maxLength = 240)`
179
190
  - `canInvokeMethod(permission, context)`
180
191
  - `normalizePermissionSpec(permission)`
181
192
  - `stripWorkspaceSlugFromSchema(schema, context = {})`
@@ -292,3 +303,17 @@ Exports
292
303
  ### `src/shared/support/positiveInteger.js`
293
304
  Exports
294
305
  - `toPositiveInteger(value, fallback = 0)`
306
+
307
+ ### fixtures
308
+
309
+ ### `fixtures/responsive-assistant/App.vue`
310
+ Exports
311
+ - None
312
+
313
+ ### `fixtures/responsive-assistant/main.js`
314
+ Exports
315
+ - None
316
+
317
+ ### `fixtures/responsive-assistant/vite.config.mjs`
318
+ Exports
319
+ - None
@@ -77,6 +77,12 @@ Exports
77
77
  - `createCrudJsonApiActions({ namespace, resource, repository = null, service, surface, permissionForOperation, permissionForAction = permissionForOperation, operations = CRUD_OPERATION_NAMES, scopeInputValidator = null, scopeInputKeys = [], listFilterQueryValidator = null, operationLifecycle = {}, operationInputs = {}, actions: additionalActionDefinitions = {}, dependencies = {} } = {})`
78
78
  - `normalizeCrudOperationLifecycle(value = {})`
79
79
  Local functions
80
+ - `isRecord(value)`
81
+ - `normalizeOptionalCursor(value)`
82
+ - `resolveDocumentNextCursor(document = {})`
83
+ - `resolveAssistantResultValue(result)`
84
+ - `transformCrudAssistantResult(operation, result, { input = {} } = {})`
85
+ - `createCrudAssistantExtension(resource, namespace, operation)`
80
86
  - `createActionInput(resource, operation, scopeInputValidator = null, listFilterQueryValidator = null, operationInputs = {})`
81
87
  - `omitInputKeys(input = {}, keys = [])`
82
88
  - `createLifecycleContext(value = {})`
@@ -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.138`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
19
19
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/minimal-foundation/PATTERN.md`
20
20
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/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.138`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
30
30
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/shell-foundation/PATTERN.md`
31
31
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/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.137`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.138`
41
41
  - Read: `node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md`
42
42
  - Examples: `node_modules/@jskit-ai/assistant-runtime/patterns/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.166`
51
+ - Owner: `@jskit-ai/auth-web@0.1.167`
52
52
  - Read: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/PATTERN.md`
53
53
  - Examples: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/example/`
54
54
  - Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
@@ -59,7 +59,7 @@ 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.163`
62
+ - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.164`
63
63
  - Read: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/PATTERN.md`
64
64
  - Examples: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/example/`
65
65
  - Requires: `@jskit-ai/auth-provider-supabase-core`
@@ -70,7 +70,7 @@ Add a protected administration surface, settings shell, and semantic navigation
70
70
 
71
71
  - Id: `console/console-surface`
72
72
  - Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
73
- - Owner: `@jskit-ai/console-web@0.1.134`
73
+ - Owner: `@jskit-ai/console-web@0.1.135`
74
74
  - Read: `node_modules/@jskit-ai/console-web/patterns/console-surface/PATTERN.md`
75
75
  - Examples: `node_modules/@jskit-ai/console-web/patterns/console-surface/example/`
76
76
  - Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
@@ -81,7 +81,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
81
81
 
82
82
  - Id: `crud/crud-screen-set`
83
83
  - Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
84
- - Owner: `@jskit-ai/http-web@0.1.11`
84
+ - Owner: `@jskit-ai/http-web@0.1.12`
85
85
  - Read: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/PATTERN.md`
86
86
  - Examples: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/example/`
87
87
  - Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-crud-core`
@@ -92,7 +92,7 @@ Build a complete application-owned CRUD server package from a migration, resourc
92
92
 
93
93
  - Id: `crud/json-api-resource-package`
94
94
  - Keywords: `actions`, `crud`, `database`, `json-api`, `migration`, `permissions`, `provider`, `repository`, `routes`, `service`
95
- - Owner: `@jskit-ai/crud-core@0.1.177`
95
+ - Owner: `@jskit-ai/crud-core@0.1.178`
96
96
  - Read: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/PATTERN.md`
97
97
  - Examples: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/example/`
98
98
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/resource-crud-core`
@@ -103,7 +103,7 @@ Define an authenticated application resource whose records belong to the current
103
103
 
104
104
  - Id: `crud/resource-contract`
105
105
  - Keywords: `authenticated`, `crud`, `database`, `owner-scoped`, `resource`, `user`
106
- - Owner: `@jskit-ai/resource-crud-core@0.1.108`
106
+ - Owner: `@jskit-ai/resource-crud-core@0.1.109`
107
107
  - Read: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/PATTERN.md`
108
108
  - Examples: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/example/`
109
109
  - Requires: `@jskit-ai/resource-crud-core`
@@ -114,7 +114,7 @@ Configure a JSKIT application for MySQL with a fixed driver, ordinary environmen
114
114
 
115
115
  - Id: `database/mysql-application`
116
116
  - Keywords: `database`, `knex`, `mariadb`, `migrations`, `mysql`, `mysql2`
117
- - Owner: `@jskit-ai/database-runtime-mysql@0.1.164`
117
+ - Owner: `@jskit-ai/database-runtime-mysql@0.1.165`
118
118
  - Read: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/PATTERN.md`
119
119
  - Examples: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/example/`
120
120
  - Requires: `@jskit-ai/database-runtime-mysql`
@@ -125,7 +125,7 @@ Configure a JSKIT application for PostgreSQL with a fixed driver, ordinary envir
125
125
 
126
126
  - Id: `database/postgres-application`
127
127
  - Keywords: `database`, `knex`, `migrations`, `pg`, `postgres`, `postgresql`
128
- - Owner: `@jskit-ai/database-runtime-postgres@0.1.163`
128
+ - Owner: `@jskit-ai/database-runtime-postgres@0.1.164`
129
129
  - Read: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/PATTERN.md`
130
130
  - Examples: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/example/`
131
131
  - Requires: `@jskit-ai/database-runtime-postgres`
@@ -136,7 +136,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
136
136
 
137
137
  - Id: `mobile/android-application`
138
138
  - Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
139
- - Owner: `@jskit-ai/mobile-capacitor@0.1.101`
139
+ - Owner: `@jskit-ai/mobile-capacitor@0.1.102`
140
140
  - Read: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/PATTERN.md`
141
141
  - Examples: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/example/`
142
142
  - Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
@@ -147,7 +147,7 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
147
147
 
148
148
  - Id: `realtime/realtime-application`
149
149
  - Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
150
- - Owner: `@jskit-ai/realtime@0.1.163`
150
+ - Owner: `@jskit-ai/realtime@0.1.164`
151
151
  - Read: `node_modules/@jskit-ai/realtime/patterns/realtime-application/PATTERN.md`
152
152
  - Examples: `node_modules/@jskit-ai/realtime/patterns/realtime-application/example/`
153
153
  - Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
@@ -158,7 +158,7 @@ Define a server feature through explicit capabilities and first-class actions, a
158
158
 
159
159
  - Id: `server/feature-package`
160
160
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
161
- - Owner: `@jskit-ai/agent-docs@0.1.138`
161
+ - Owner: `@jskit-ai/agent-docs@0.1.139`
162
162
  - Read: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/PATTERN.md`
163
163
  - Examples: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/example/`
164
164
  - Requires: `@jskit-ai/kernel`
@@ -169,7 +169,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
169
169
 
170
170
  - Id: `shell/application-shell`
171
171
  - Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
172
- - Owner: `@jskit-ai/shell-web@0.1.170`
172
+ - Owner: `@jskit-ai/shell-web@0.1.171`
173
173
  - Read: `node_modules/@jskit-ai/shell-web/patterns/application-shell/PATTERN.md`
174
174
  - Examples: `node_modules/@jskit-ai/shell-web/patterns/application-shell/example/`
175
175
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -180,7 +180,7 @@ Add product routes and shell extensions through file routing, semantic placement
180
180
 
181
181
  - Id: `ui/page-and-placement`
182
182
  - Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
183
- - Owner: `@jskit-ai/shell-web@0.1.170`
183
+ - Owner: `@jskit-ai/shell-web@0.1.171`
184
184
  - Read: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/PATTERN.md`
185
185
  - Examples: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/example/`
186
186
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -191,7 +191,7 @@ Compose an account settings route and profile, preference, and notification sect
191
191
 
192
192
  - Id: `users/account-settings`
193
193
  - Keywords: `account`, `notifications`, `preferences`, `profile`, `settings`, `user`, `vue`
194
- - Owner: `@jskit-ai/users-web@0.1.184`
194
+ - Owner: `@jskit-ai/users-web@0.1.185`
195
195
  - Read: `node_modules/@jskit-ai/users-web/patterns/account-settings/PATTERN.md`
196
196
  - Examples: `node_modules/@jskit-ai/users-web/patterns/account-settings/example/`
197
197
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
@@ -202,7 +202,7 @@ Expose user administration and workspace-scoped member operations through app-ow
202
202
 
203
203
  - Id: `users/user-administration-server`
204
204
  - Keywords: `account`, `admin`, `member`, `repository`, `resource`, `routes`, `service`, `user`, `workspace`
205
- - Owner: `@jskit-ai/users-core@0.1.179`
205
+ - Owner: `@jskit-ai/users-core@0.1.180`
206
206
  - Read: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/PATTERN.md`
207
207
  - Examples: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/example/`
208
208
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/users-core`
@@ -213,7 +213,7 @@ Configure roles, workspace access policy, invitations, and app-owned invitation
213
213
 
214
214
  - Id: `workspaces/workspace-server`
215
215
  - Keywords: `access`, `invite`, `membership`, `multitenancy`, `policy`, `role`, `tenancy`, `workspace`
216
- - Owner: `@jskit-ai/workspaces-core@0.1.144`
216
+ - Owner: `@jskit-ai/workspaces-core@0.1.145`
217
217
  - Read: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/PATTERN.md`
218
218
  - Examples: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/example/`
219
219
  - Requires: `@jskit-ai/users-core`, `@jskit-ai/workspaces-core`
@@ -224,7 +224,7 @@ Compose workspace selection, invitation, member administration, settings, and re
224
224
 
225
225
  - Id: `workspaces/workspace-surfaces`
226
226
  - Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
227
- - Owner: `@jskit-ai/workspaces-web@0.1.145`
227
+ - Owner: `@jskit-ai/workspaces-web@0.1.146`
228
228
  - Read: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/PATTERN.md`
229
229
  - Examples: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/example/`
230
230
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`