@jskit-ai/agent-docs 0.1.301 → 0.1.303
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/guide/agent/app-extras/assistant.md +20 -0
- package/guide/agent/framework/side-effects.md +4 -1
- package/guide/agent/framework/ui-operations.md +2 -1
- package/package.json +1 -1
- package/patterns/minimal-foundation/example/package.json +1 -1
- package/patterns/shell-foundation/example/package.json +2 -2
- package/reference/autogen/PATTERN_INDEX.md +15 -15
- package/reference/autogen/packages/assistant-runtime.md +5 -0
- package/skills/jskit/references/heuristics/INDEX.md +1 -1
- package/skills/jskit/references/heuristics/ui-testing.md +5 -0
- package/skills/jskit/references/pattern-index.md +15 -15
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
- package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
- package/skills/jskit/references/side-effects.md +4 -1
- package/skills/jskit/references/ui-operations.md +2 -1
|
@@ -492,6 +492,26 @@ The assistant validates the transformed result against
|
|
|
492
492
|
JSON:API CRUD actions supply these assistant contracts and transformations
|
|
493
493
|
automatically; their native action and HTTP result shapes do not change.
|
|
494
494
|
|
|
495
|
+
A tool call's arguments may be at most 32 KiB, and its result at most 48 KiB.
|
|
496
|
+
A surface whose assistant writes a larger document in one call, or reads one
|
|
497
|
+
back, raises its own limits, up to 1 MiB each:
|
|
498
|
+
|
|
499
|
+
```js
|
|
500
|
+
assistantServer: {
|
|
501
|
+
planner: { aiIntegrationId: "assistant", maxToolArgumentBytes: 128 * 1024, maxToolResultBytes: 128 * 1024 }
|
|
502
|
+
}
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Every engine is given the surface's argument limit, and a larger call ends the
|
|
506
|
+
turn with "The application tool arguments exceed their size limit." before the
|
|
507
|
+
action runs. A larger result is not handed to the model: the action has run, and
|
|
508
|
+
the model reads the error `assistant_tool_result_too_large` (status 413) in its
|
|
509
|
+
place and carries on. A malformed value stops the server from starting. On
|
|
510
|
+
MySQL, apply the package's migrations as usual: one lets a saved call's
|
|
511
|
+
arguments and result pass 64 KiB. The model must still write the call in one
|
|
512
|
+
step: the API engine asks for at most 32,000 output tokens a step, and a model's
|
|
513
|
+
own output limit, or its reasoning, can leave less.
|
|
514
|
+
|
|
495
515
|
### Framework account and workspace actions
|
|
496
516
|
|
|
497
517
|
Account and workspace action owners supply assistant-specific descriptions,
|
|
@@ -24,7 +24,10 @@ purpose: any host can set it. The host sets it; a request never chooses it.
|
|
|
24
24
|
- Every HTML page the server sends, and every page the Vite development server
|
|
25
25
|
sends, names the setting in a `jskit-side-effects` meta tag. The shell
|
|
26
26
|
(`@jskit-ai/shell-web`) shows the "Test copy" banner from it, with no
|
|
27
|
-
application code. The banner never takes a click or a tap.
|
|
27
|
+
application code. The banner never takes a click or a tap. Screen readers
|
|
28
|
+
read it as a note, with "emails, messages and payments are simulated, not
|
|
29
|
+
sent" as its description. It has no label, so a browser test's
|
|
30
|
+
`getByLabel("Email")` never finds it.
|
|
28
31
|
- The server logs once at startup whether it acts for real. A production server
|
|
29
32
|
that simulates logs a warning.
|
|
30
33
|
- Local-password emails (confirmation and password reset) with an installed
|
|
@@ -85,7 +85,8 @@ URLs. With `PLAYWRIGHT_BASE_URL` set, start no duplicate server. For Up
|
|
|
85
85
|
sideways) and verify each Up returns to its own origin and that chains unwind;
|
|
86
86
|
open the page directly and verify Up reaches its declared parent; verify
|
|
87
87
|
main-menu destinations show no arrow, a reload keeps the trail, and Save or
|
|
88
|
-
Cancel never leaves the form in it.
|
|
88
|
+
Cancel never leaves the form in it. Find a field by its exact label:
|
|
89
|
+
`page.getByLabel("Email", { exact: true })`.
|
|
89
90
|
|
|
90
91
|
A managed host owns its browser and may provide
|
|
91
92
|
`PLAYWRIGHT_STORAGE_STATE`; never print or commit that value, bypass it,
|
package/package.json
CHANGED
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"vue-router": "^5.3.1",
|
|
46
46
|
"vuetify": "^4.3.0",
|
|
47
47
|
"@jskit-ai/http-runtime": "0.2.20",
|
|
48
|
-
"@jskit-ai/shell-web": "0.2.
|
|
48
|
+
"@jskit-ai/shell-web": "0.2.27",
|
|
49
49
|
"@fastify/fast-json-stringify-compiler": "^5.1.0",
|
|
50
50
|
"@vue/devtools-api": "^8.2.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@jskit-ai/config-eslint": "0.1.250",
|
|
54
|
-
"@jskit-ai/jskit-catalog": "0.2.
|
|
54
|
+
"@jskit-ai/jskit-catalog": "0.2.55",
|
|
55
55
|
"@playwright/test": "1.61.1",
|
|
56
56
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
57
57
|
"eslint": "^10.8.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.
|
|
18
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
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.
|
|
29
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
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.2.
|
|
40
|
+
- Owner: `@jskit-ai/assistant-runtime@0.2.47`
|
|
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`
|
|
@@ -59,7 +59,7 @@ Compose JSKIT authentication routes, views, profile controls, and public surface
|
|
|
59
59
|
|
|
60
60
|
- Id: `auth/auth-surface`
|
|
61
61
|
- Keywords: `account`, `auth`, `login`, `logout`, `password`, `placement`, `profile`, `reset`, `surface`
|
|
62
|
-
- Owner: `@jskit-ai/auth-web@0.2.
|
|
62
|
+
- Owner: `@jskit-ai/auth-web@0.2.29`
|
|
63
63
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/auth-surface/PATTERN.md)
|
|
64
64
|
- Examples: [example/](../../skills/jskit/references/patterns/auth/auth-surface/example/)
|
|
65
65
|
- Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
|
|
@@ -70,7 +70,7 @@ Let people sign in with the accounts they already have in an accounts hub or ano
|
|
|
70
70
|
|
|
71
71
|
- Id: `auth/oidc-sign-in`
|
|
72
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.2.
|
|
73
|
+
- Owner: `@jskit-ai/auth-provider-oidc-core@0.2.31`
|
|
74
74
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/oidc-sign-in/PATTERN.md)
|
|
75
75
|
- Examples: [example/](../../skills/jskit/references/patterns/auth/oidc-sign-in/example/)
|
|
76
76
|
- Requires: `@jskit-ai/auth-provider-oidc-core`, `@jskit-ai/auth-web`
|
|
@@ -246,7 +246,7 @@ Add a protected administration surface, settings shell, and semantic navigation
|
|
|
246
246
|
|
|
247
247
|
- Id: `console/console-surface`
|
|
248
248
|
- Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
|
|
249
|
-
- Owner: `@jskit-ai/console-web@0.1.
|
|
249
|
+
- Owner: `@jskit-ai/console-web@0.1.257`
|
|
250
250
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/console/console-surface/PATTERN.md)
|
|
251
251
|
- Examples: [example/](../../skills/jskit/references/patterns/console/console-surface/example/)
|
|
252
252
|
- Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
|
|
@@ -279,7 +279,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
|
|
|
279
279
|
|
|
280
280
|
- Id: `crud/crud-screen-set`
|
|
281
281
|
- Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
|
|
282
|
-
- Owner: `@jskit-ai/http-web@0.2.
|
|
282
|
+
- Owner: `@jskit-ai/http-web@0.2.32`
|
|
283
283
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md)
|
|
284
284
|
- Examples: [example/](../../skills/jskit/references/patterns/crud/crud-screen-set/example/)
|
|
285
285
|
- Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-core`, `@jskit-ai/resource-crud-core`
|
|
@@ -323,7 +323,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
|
|
|
323
323
|
|
|
324
324
|
- Id: `mobile/android-application`
|
|
325
325
|
- Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
|
|
326
|
-
- Owner: `@jskit-ai/mobile-capacitor@0.2.
|
|
326
|
+
- Owner: `@jskit-ai/mobile-capacitor@0.2.27`
|
|
327
327
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/mobile/android-application/PATTERN.md)
|
|
328
328
|
- Examples: [example/](../../skills/jskit/references/patterns/mobile/android-application/example/)
|
|
329
329
|
- Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
|
|
@@ -334,7 +334,7 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
|
|
|
334
334
|
|
|
335
335
|
- Id: `realtime/realtime-application`
|
|
336
336
|
- Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
|
|
337
|
-
- Owner: `@jskit-ai/realtime@0.2.
|
|
337
|
+
- Owner: `@jskit-ai/realtime@0.2.30`
|
|
338
338
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md)
|
|
339
339
|
- Examples: [example/](../../skills/jskit/references/patterns/realtime/realtime-application/example/)
|
|
340
340
|
- Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
|
|
@@ -345,7 +345,7 @@ Compose application-owned Google Publisher Tag delivery with the generic rewarde
|
|
|
345
345
|
|
|
346
346
|
- Id: `rewards/google-rewarded`
|
|
347
347
|
- Keywords: `ads`, `google`, `publisher tag`, `rewarded`, `unlock`
|
|
348
|
-
- Owner: `@jskit-ai/rewarded-web@0.2.
|
|
348
|
+
- Owner: `@jskit-ai/rewarded-web@0.2.35`
|
|
349
349
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/rewards/google-rewarded/PATTERN.md)
|
|
350
350
|
- Examples: [example/](../../skills/jskit/references/patterns/rewards/google-rewarded/example/)
|
|
351
351
|
- Requires: `@jskit-ai/rewarded-web`
|
|
@@ -356,7 +356,7 @@ Define a server feature through explicit capabilities and first-class actions, a
|
|
|
356
356
|
|
|
357
357
|
- Id: `server/feature-package`
|
|
358
358
|
- Keywords: `actions`, `aggregate`, `feature`, `handle`, `orchestration`, `owns`, `package`, `provider`, `repository`, `routes`, `server`, `table resource`
|
|
359
|
-
- Owner: `@jskit-ai/agent-docs@0.1.
|
|
359
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
360
360
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/server/feature-package/PATTERN.md)
|
|
361
361
|
- Examples: [example/](../../skills/jskit/references/patterns/server/feature-package/example/)
|
|
362
362
|
- Requires: `@jskit-ai/kernel`
|
|
@@ -367,7 +367,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
|
|
|
367
367
|
|
|
368
368
|
- Id: `shell/application-shell`
|
|
369
369
|
- Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
|
|
370
|
-
- Owner: `@jskit-ai/shell-web@0.2.
|
|
370
|
+
- Owner: `@jskit-ai/shell-web@0.2.27`
|
|
371
371
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/shell/application-shell/PATTERN.md)
|
|
372
372
|
- Examples: [example/](../../skills/jskit/references/patterns/shell/application-shell/example/)
|
|
373
373
|
- Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
|
|
@@ -378,7 +378,7 @@ Add product routes and shell extensions through file routing, semantic placement
|
|
|
378
378
|
|
|
379
379
|
- Id: `ui/page-and-placement`
|
|
380
380
|
- Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
|
|
381
|
-
- Owner: `@jskit-ai/shell-web@0.2.
|
|
381
|
+
- Owner: `@jskit-ai/shell-web@0.2.27`
|
|
382
382
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md)
|
|
383
383
|
- Examples: [example/](../../skills/jskit/references/patterns/ui/page-and-placement/example/)
|
|
384
384
|
- Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
|
|
@@ -389,7 +389,7 @@ Compose an account settings route and profile, preference, notification, and sig
|
|
|
389
389
|
|
|
390
390
|
- Id: `users/account-settings`
|
|
391
391
|
- Keywords: `account`, `link provider`, `notifications`, `oauth`, `preferences`, `profile`, `settings`, `sign-in methods`, `user`, `vue`
|
|
392
|
-
- Owner: `@jskit-ai/users-web@0.2.
|
|
392
|
+
- Owner: `@jskit-ai/users-web@0.2.40`
|
|
393
393
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/users/account-settings/PATTERN.md)
|
|
394
394
|
- Examples: [example/](../../skills/jskit/references/patterns/users/account-settings/example/)
|
|
395
395
|
- Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
|
|
@@ -422,7 +422,7 @@ Compose workspace selection, invitation, member administration, settings, and re
|
|
|
422
422
|
|
|
423
423
|
- Id: `workspaces/workspace-surfaces`
|
|
424
424
|
- Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
|
|
425
|
-
- Owner: `@jskit-ai/workspaces-web@0.2.
|
|
425
|
+
- Owner: `@jskit-ai/workspaces-web@0.2.40`
|
|
426
426
|
- Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md)
|
|
427
427
|
- Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/example/)
|
|
428
428
|
- Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
|
|
@@ -427,6 +427,7 @@ Exports
|
|
|
427
427
|
- `resolveAssistantAiConfig({ appConfig = {}, env = {} } = {}, targetSurfaceId = "")`
|
|
428
428
|
Local functions
|
|
429
429
|
- `normalizeSettingsUpdatePermission(value, targetSurfaceId)`
|
|
430
|
+
- `normalizeMaxToolBytes(entry, key, targetSurfaceId)`
|
|
430
431
|
- `readPrefixedEnvValue(env = {}, prefix = "", key = "")`
|
|
431
432
|
|
|
432
433
|
### `src/server/support/assistantStreamWriter.js`
|
|
@@ -566,6 +567,10 @@ Exports
|
|
|
566
567
|
Exports
|
|
567
568
|
- None
|
|
568
569
|
|
|
570
|
+
### `migrations/assistant_transcripts_tool_arguments.cjs`
|
|
571
|
+
Exports
|
|
572
|
+
- None
|
|
573
|
+
|
|
569
574
|
### `migrations/assistant_turn_requests.cjs`
|
|
570
575
|
Exports
|
|
571
576
|
- None
|
|
@@ -32,7 +32,7 @@ How to use it:
|
|
|
32
32
|
- [live-actions.md](./live-actions.md)
|
|
33
33
|
- ajax, fetch, API call, request, endpoint, HTTP client, `useCrudListScreen()`, `useCrudViewScreen()`, `useCrudAddEditScreen()`, `useList()`, `useView()`, `useAddEdit()`, `useEndpointResource()`, `httpWebClient`
|
|
34
34
|
- [client-requests.md](./client-requests.md)
|
|
35
|
-
- playwright, browser test, e2e, ui verification, baseline test, authenticated ui test, test auth, dev login as, dev auth bypass
|
|
35
|
+
- playwright, browser test, e2e, ui verification, baseline test, authenticated ui test, test auth, dev login as, dev auth bypass, `getByLabel`, strict mode violation
|
|
36
36
|
- [ui-testing.md](./ui-testing.md)
|
|
37
37
|
- UI contract, design contract, navigation roles, Up arrow, Back button, declared parent, jskit.parent, in-app trail, history.back, hand-built links, jskit check, Deslop, density, placeholder copy, card shells, shared CRUD screens, row actions, synthetic rows, detail slots
|
|
38
38
|
- [ui-contract.md](./ui-contract.md)
|
|
@@ -22,6 +22,11 @@ Rules:
|
|
|
22
22
|
app-owned. Do not duplicate base-URL, web-server, or storage-state logic in
|
|
23
23
|
individual tests.
|
|
24
24
|
- Use relative paths such as `page.goto("/home")`. The shared config owns the browser base URL.
|
|
25
|
+
- Find a form field by its exact label: `page.getByLabel("Email", { exact: true })`
|
|
26
|
+
or `page.getByRole("textbox", { name: "Email", exact: true })`. Without
|
|
27
|
+
`exact`, Playwright matches any element whose label contains the text, in any
|
|
28
|
+
case, so "Email" also finds "Confirm email" or any other labelled element that
|
|
29
|
+
mentions emails, and the lookup fails strict mode.
|
|
25
30
|
- After clicking a client-side navigation control, wait for its destination
|
|
26
31
|
with `await expect(page).toHaveURL(...)` before reloading. Awaiting the click
|
|
27
32
|
alone does not wait for Vue Router to complete. Up tests reach a page
|
|
@@ -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.
|
|
18
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
19
19
|
- Read: [PATTERN.md](patterns/app/minimal-foundation/PATTERN.md)
|
|
20
20
|
- Examples: [example/](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.
|
|
29
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
30
30
|
- Read: [PATTERN.md](patterns/app/shell-foundation/PATTERN.md)
|
|
31
31
|
- Examples: [example/](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.2.
|
|
40
|
+
- Owner: `@jskit-ai/assistant-runtime@0.2.47`
|
|
41
41
|
- Read: [PATTERN.md](patterns/assistant/assistant-surface/PATTERN.md)
|
|
42
42
|
- Examples: [example/](patterns/assistant/assistant-surface/example/)
|
|
43
43
|
- Requires: `@jskit-ai/assistant-runtime`, `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`, `@jskit-ai/shell-web`
|
|
@@ -59,7 +59,7 @@ Compose JSKIT authentication routes, views, profile controls, and public surface
|
|
|
59
59
|
|
|
60
60
|
- Id: `auth/auth-surface`
|
|
61
61
|
- Keywords: `account`, `auth`, `login`, `logout`, `password`, `placement`, `profile`, `reset`, `surface`
|
|
62
|
-
- Owner: `@jskit-ai/auth-web@0.2.
|
|
62
|
+
- Owner: `@jskit-ai/auth-web@0.2.29`
|
|
63
63
|
- Read: [PATTERN.md](patterns/auth/auth-surface/PATTERN.md)
|
|
64
64
|
- Examples: [example/](patterns/auth/auth-surface/example/)
|
|
65
65
|
- Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
|
|
@@ -70,7 +70,7 @@ Let people sign in with the accounts they already have in an accounts hub or ano
|
|
|
70
70
|
|
|
71
71
|
- Id: `auth/oidc-sign-in`
|
|
72
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.2.
|
|
73
|
+
- Owner: `@jskit-ai/auth-provider-oidc-core@0.2.31`
|
|
74
74
|
- Read: [PATTERN.md](patterns/auth/oidc-sign-in/PATTERN.md)
|
|
75
75
|
- Examples: [example/](patterns/auth/oidc-sign-in/example/)
|
|
76
76
|
- Requires: `@jskit-ai/auth-provider-oidc-core`, `@jskit-ai/auth-web`
|
|
@@ -246,7 +246,7 @@ Add a protected administration surface, settings shell, and semantic navigation
|
|
|
246
246
|
|
|
247
247
|
- Id: `console/console-surface`
|
|
248
248
|
- Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
|
|
249
|
-
- Owner: `@jskit-ai/console-web@0.1.
|
|
249
|
+
- Owner: `@jskit-ai/console-web@0.1.257`
|
|
250
250
|
- Read: [PATTERN.md](patterns/console/console-surface/PATTERN.md)
|
|
251
251
|
- Examples: [example/](patterns/console/console-surface/example/)
|
|
252
252
|
- Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
|
|
@@ -279,7 +279,7 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
|
|
|
279
279
|
|
|
280
280
|
- Id: `crud/crud-screen-set`
|
|
281
281
|
- Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
|
|
282
|
-
- Owner: `@jskit-ai/http-web@0.2.
|
|
282
|
+
- Owner: `@jskit-ai/http-web@0.2.32`
|
|
283
283
|
- Read: [PATTERN.md](patterns/crud/crud-screen-set/PATTERN.md)
|
|
284
284
|
- Examples: [example/](patterns/crud/crud-screen-set/example/)
|
|
285
285
|
- Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-core`, `@jskit-ai/resource-crud-core`
|
|
@@ -323,7 +323,7 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
|
|
|
323
323
|
|
|
324
324
|
- Id: `mobile/android-application`
|
|
325
325
|
- Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
|
|
326
|
-
- Owner: `@jskit-ai/mobile-capacitor@0.2.
|
|
326
|
+
- Owner: `@jskit-ai/mobile-capacitor@0.2.27`
|
|
327
327
|
- Read: [PATTERN.md](patterns/mobile/android-application/PATTERN.md)
|
|
328
328
|
- Examples: [example/](patterns/mobile/android-application/example/)
|
|
329
329
|
- Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
|
|
@@ -334,7 +334,7 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
|
|
|
334
334
|
|
|
335
335
|
- Id: `realtime/realtime-application`
|
|
336
336
|
- Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
|
|
337
|
-
- Owner: `@jskit-ai/realtime@0.2.
|
|
337
|
+
- Owner: `@jskit-ai/realtime@0.2.30`
|
|
338
338
|
- Read: [PATTERN.md](patterns/realtime/realtime-application/PATTERN.md)
|
|
339
339
|
- Examples: [example/](patterns/realtime/realtime-application/example/)
|
|
340
340
|
- Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
|
|
@@ -345,7 +345,7 @@ Compose application-owned Google Publisher Tag delivery with the generic rewarde
|
|
|
345
345
|
|
|
346
346
|
- Id: `rewards/google-rewarded`
|
|
347
347
|
- Keywords: `ads`, `google`, `publisher tag`, `rewarded`, `unlock`
|
|
348
|
-
- Owner: `@jskit-ai/rewarded-web@0.2.
|
|
348
|
+
- Owner: `@jskit-ai/rewarded-web@0.2.35`
|
|
349
349
|
- Read: [PATTERN.md](patterns/rewards/google-rewarded/PATTERN.md)
|
|
350
350
|
- Examples: [example/](patterns/rewards/google-rewarded/example/)
|
|
351
351
|
- Requires: `@jskit-ai/rewarded-web`
|
|
@@ -356,7 +356,7 @@ Define a server feature through explicit capabilities and first-class actions, a
|
|
|
356
356
|
|
|
357
357
|
- Id: `server/feature-package`
|
|
358
358
|
- Keywords: `actions`, `aggregate`, `feature`, `handle`, `orchestration`, `owns`, `package`, `provider`, `repository`, `routes`, `server`, `table resource`
|
|
359
|
-
- Owner: `@jskit-ai/agent-docs@0.1.
|
|
359
|
+
- Owner: `@jskit-ai/agent-docs@0.1.303`
|
|
360
360
|
- Read: [PATTERN.md](patterns/server/feature-package/PATTERN.md)
|
|
361
361
|
- Examples: [example/](patterns/server/feature-package/example/)
|
|
362
362
|
- Requires: `@jskit-ai/kernel`
|
|
@@ -367,7 +367,7 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
|
|
|
367
367
|
|
|
368
368
|
- Id: `shell/application-shell`
|
|
369
369
|
- Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
|
|
370
|
-
- Owner: `@jskit-ai/shell-web@0.2.
|
|
370
|
+
- Owner: `@jskit-ai/shell-web@0.2.27`
|
|
371
371
|
- Read: [PATTERN.md](patterns/shell/application-shell/PATTERN.md)
|
|
372
372
|
- Examples: [example/](patterns/shell/application-shell/example/)
|
|
373
373
|
- Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
|
|
@@ -378,7 +378,7 @@ Add product routes and shell extensions through file routing, semantic placement
|
|
|
378
378
|
|
|
379
379
|
- Id: `ui/page-and-placement`
|
|
380
380
|
- Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
|
|
381
|
-
- Owner: `@jskit-ai/shell-web@0.2.
|
|
381
|
+
- Owner: `@jskit-ai/shell-web@0.2.27`
|
|
382
382
|
- Read: [PATTERN.md](patterns/ui/page-and-placement/PATTERN.md)
|
|
383
383
|
- Examples: [example/](patterns/ui/page-and-placement/example/)
|
|
384
384
|
- Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
|
|
@@ -389,7 +389,7 @@ Compose an account settings route and profile, preference, notification, and sig
|
|
|
389
389
|
|
|
390
390
|
- Id: `users/account-settings`
|
|
391
391
|
- Keywords: `account`, `link provider`, `notifications`, `oauth`, `preferences`, `profile`, `settings`, `sign-in methods`, `user`, `vue`
|
|
392
|
-
- Owner: `@jskit-ai/users-web@0.2.
|
|
392
|
+
- Owner: `@jskit-ai/users-web@0.2.40`
|
|
393
393
|
- Read: [PATTERN.md](patterns/users/account-settings/PATTERN.md)
|
|
394
394
|
- Examples: [example/](patterns/users/account-settings/example/)
|
|
395
395
|
- Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
|
|
@@ -422,7 +422,7 @@ Compose workspace selection, invitation, member administration, settings, and re
|
|
|
422
422
|
|
|
423
423
|
- Id: `workspaces/workspace-surfaces`
|
|
424
424
|
- Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
|
|
425
|
-
- Owner: `@jskit-ai/workspaces-web@0.2.
|
|
425
|
+
- Owner: `@jskit-ai/workspaces-web@0.2.40`
|
|
426
426
|
- Read: [PATTERN.md](patterns/workspaces/workspace-surfaces/PATTERN.md)
|
|
427
427
|
- Examples: [example/](patterns/workspaces/workspace-surfaces/example/)
|
|
428
428
|
- Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"vue-router": "^5.3.1",
|
|
46
46
|
"vuetify": "^4.3.0",
|
|
47
47
|
"@jskit-ai/http-runtime": "0.2.20",
|
|
48
|
-
"@jskit-ai/shell-web": "0.2.
|
|
48
|
+
"@jskit-ai/shell-web": "0.2.27",
|
|
49
49
|
"@fastify/fast-json-stringify-compiler": "^5.1.0",
|
|
50
50
|
"@vue/devtools-api": "^8.2.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@jskit-ai/config-eslint": "0.1.250",
|
|
54
|
-
"@jskit-ai/jskit-catalog": "0.2.
|
|
54
|
+
"@jskit-ai/jskit-catalog": "0.2.55",
|
|
55
55
|
"@playwright/test": "1.61.1",
|
|
56
56
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
57
57
|
"eslint": "^10.8.0",
|
|
@@ -19,7 +19,10 @@ purpose: any host can set it. The host sets it; a request never chooses it.
|
|
|
19
19
|
- Every HTML page the server sends, and every page the Vite development server
|
|
20
20
|
sends, names the setting in a `jskit-side-effects` meta tag. The shell
|
|
21
21
|
(`@jskit-ai/shell-web`) shows the "Test copy" banner from it, with no
|
|
22
|
-
application code. The banner never takes a click or a tap.
|
|
22
|
+
application code. The banner never takes a click or a tap. Screen readers
|
|
23
|
+
read it as a note, with "emails, messages and payments are simulated, not
|
|
24
|
+
sent" as its description. It has no label, so a browser test's
|
|
25
|
+
`getByLabel("Email")` never finds it.
|
|
23
26
|
- The server logs once at startup whether it acts for real. A production server
|
|
24
27
|
that simulates logs a warning.
|
|
25
28
|
- Local-password emails (confirmation and password reset) with an installed
|
|
@@ -80,7 +80,8 @@ URLs. With `PLAYWRIGHT_BASE_URL` set, start no duplicate server. For Up
|
|
|
80
80
|
sideways) and verify each Up returns to its own origin and that chains unwind;
|
|
81
81
|
open the page directly and verify Up reaches its declared parent; verify
|
|
82
82
|
main-menu destinations show no arrow, a reload keeps the trail, and Save or
|
|
83
|
-
Cancel never leaves the form in it.
|
|
83
|
+
Cancel never leaves the form in it. Find a field by its exact label:
|
|
84
|
+
`page.getByLabel("Email", { exact: true })`.
|
|
84
85
|
|
|
85
86
|
A managed host owns its browser and may provide
|
|
86
87
|
`PLAYWRIGHT_STORAGE_STATE`; never print or commit that value, bypass it,
|