@jskit-ai/agent-docs 0.1.241 → 0.1.243
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-conversation.md +4 -2
- package/guide/agent/app-extras/assistant.md +3 -1
- package/guide/agent/app-extras/realtime.md +12 -3
- package/guide/agent/app-setup/database-layer.md +1 -1
- package/guide/agent/app-setup/existing-application-migration.md +0 -7
- package/guide/agent/framework/application-operations.md +1 -1
- package/guide/agent/framework/crud-operations.md +9 -9
- package/guide/agent/framework/ui-operations.md +6 -30
- package/guide/agent/index.md +2 -0
- package/package.json +2 -3
- package/patterns/feature-package/example/booking-engine/package.json +1 -1
- package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -2
- package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +1 -1
- package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +1 -1
- package/patterns/minimal-foundation/example/AGENTS.md +19 -0
- package/patterns/minimal-foundation/example/package.json +3 -3
- package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +3 -11
- package/patterns/minimal-foundation/example/src/main.js +0 -2
- package/patterns/shell-foundation/PATTERN.md +11 -20
- package/patterns/shell-foundation/example/AGENTS.md +19 -0
- package/patterns/shell-foundation/example/package.json +4 -4
- package/patterns/shell-foundation/example/packages/main/package.json +1 -1
- package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +3 -11
- package/patterns/shell-foundation/example/src/components/ShellLayout.vue +1 -0
- package/patterns/shell-foundation/example/src/main.js +0 -2
- package/patterns/shell-foundation/example/src/pages/home/settings.vue +2 -2
- package/reference/autogen/KERNEL_MAP.md +16 -147
- package/reference/autogen/PATTERN_INDEX.md +37 -37
- package/reference/autogen/packages/agent-docs.md +1 -9
- package/reference/autogen/packages/assistant-core.md +102 -68
- package/reference/autogen/packages/assistant-runtime.md +29 -15
- package/reference/autogen/packages/assistant-voice-sherpa.md +2 -1
- package/reference/autogen/packages/assistant-voice.md +8 -11
- package/reference/autogen/packages/auth-core.md +1 -1
- package/reference/autogen/packages/auth-provider-local-core.md +1 -1
- package/reference/autogen/packages/auth-provider-local-db-core.md +1 -1
- package/reference/autogen/packages/auth-provider-oidc-core.md +1 -1
- package/reference/autogen/packages/auth-provider-supabase-core.md +1 -1
- package/reference/autogen/packages/auth-web.md +1 -2
- package/reference/autogen/packages/connector-google-calendar.md +6 -2
- package/reference/autogen/packages/connectors-catalog.md +26 -7
- package/reference/autogen/packages/connectors-core.md +14 -3
- package/reference/autogen/packages/connectors-web.md +6 -1
- package/reference/autogen/packages/console-core.md +1 -1
- package/reference/autogen/packages/console-web.md +1 -1
- package/reference/autogen/packages/crud-core.md +1 -1
- package/reference/autogen/packages/database-runtime-mysql.md +1 -1
- package/reference/autogen/packages/database-runtime-postgres.md +1 -1
- package/reference/autogen/packages/database-runtime.md +2 -86
- package/reference/autogen/packages/http-runtime.md +6 -92
- package/reference/autogen/packages/http-web.md +29 -49
- package/reference/autogen/packages/json-rest-api-core.md +1 -1
- package/reference/autogen/packages/kernel.md +108 -405
- package/reference/autogen/packages/mobile-capacitor.md +11 -1
- package/reference/autogen/packages/oidc-issuer-core.md +1 -1
- package/reference/autogen/packages/payments-core.md +12 -4
- package/reference/autogen/packages/payments-web.md +1 -1
- package/reference/autogen/packages/realtime.md +7 -5
- package/reference/autogen/packages/resource-core.md +1 -4
- package/reference/autogen/packages/resource-crud-core.md +4 -3
- package/reference/autogen/packages/rewarded-core.md +1 -1
- package/reference/autogen/packages/rewarded-web.md +1 -1
- package/reference/autogen/packages/shell-web.md +114 -49
- package/reference/autogen/packages/storage-runtime.md +1 -1
- package/reference/autogen/packages/uploads-image-web.md +1 -1
- package/reference/autogen/packages/uploads-runtime.md +1 -1
- package/reference/autogen/packages/users-core.md +1 -1
- package/reference/autogen/packages/users-web.md +1 -2
- package/reference/autogen/packages/workspaces-core.md +3 -1
- package/reference/autogen/packages/workspaces-web.md +1 -1
- package/reference/autogen/tooling/config-eslint.md +1 -1
- package/reference/autogen/tooling/jskit-catalog.md +8 -9
- package/reference/autogen/tooling/jskit-release.md +3 -4
- package/reference/autogen/tooling/testUtils.md +1 -28
- package/skills/jskit/SKILL.md +8 -6
- package/skills/jskit/references/app-operations.md +1 -1
- package/skills/jskit/references/crud-form-actions.md +62 -0
- package/skills/jskit/references/crud-operations.md +9 -9
- package/skills/jskit/references/existing-application-migration.md +0 -7
- package/{patterns → skills/jskit/references/heuristics}/INDEX.md +24 -38
- package/{patterns → skills/jskit/references/heuristics}/child-cruds.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/client-requests.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/crud-authoring.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/crud-links.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/crud-repository-mapping.md +3 -1
- package/{patterns → skills/jskit/references/heuristics}/filters.md +3 -1
- package/{patterns → skills/jskit/references/heuristics}/live-actions.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/page-redirects.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/page-scaffolding.md +5 -3
- package/{patterns → skills/jskit/references/heuristics}/placements.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/row-policies.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/server-search.md +2 -0
- package/{patterns → skills/jskit/references/heuristics}/surfaces.md +5 -3
- package/{patterns → skills/jskit/references/heuristics}/ui-contract.md +3 -1
- package/{patterns → skills/jskit/references/heuristics}/ui-testing.md +2 -0
- package/skills/jskit/references/pattern-index.md +37 -37
- package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +19 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +3 -3
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +3 -11
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/main.js +0 -2
- package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +11 -20
- package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +19 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +4 -4
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +3 -11
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/ShellLayout.vue +1 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/main.js +0 -2
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings.vue +2 -2
- package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
- package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +27 -610
- package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +2 -1
- package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md +11 -1
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +2 -2
- package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +1 -1
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -2
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +1 -1
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +1 -1
- package/skills/jskit/references/patterns/shell/application-shell/PATTERN.md +18 -4
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue +15 -5
- package/skills/jskit/references/patterns/shell/application-shell/example/tests/e2e/adaptive-shell.spec.ts +1 -1
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +2 -2
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +3 -3
- package/skills/jskit/references/ui-operations.md +6 -30
- package/templates/app/AGENTS.md +0 -38
|
@@ -42,7 +42,7 @@ invoking the service. Matching the configured warehouse is only a target check.
|
|
|
42
42
|
The library does not resolve ambient AWS profiles or switch to a more privileged
|
|
43
43
|
account after a denial. The application resolves its own credential bindings; editable references do
|
|
44
44
|
not grant AWS permissions. This shared credential mode has no provider callback
|
|
45
|
-
URL and does not depend on
|
|
45
|
+
URL and does not depend on a hosting platform's registration or allocation.
|
|
46
46
|
|
|
47
47
|
## Framework APIs
|
|
48
48
|
|
|
@@ -76,9 +76,19 @@ id (or a distinct new-record marker) so form cache entries stay separate.
|
|
|
76
76
|
The New/Edit examples supply it; list/view screen wrappers derive their
|
|
77
77
|
standard keys from `resourceNamespace`.
|
|
78
78
|
|
|
79
|
+
Each form fact has one input. `resource`, `input`, `buildPayload`,
|
|
80
|
+
`mapPayloadToModel` and `createModel` are top-level `useCrudAddEditScreen()`
|
|
81
|
+
options; `addEditOptions` carries only request and route options for
|
|
82
|
+
`useAddEdit()` (such as `apiSuffix`, `queryKeyFactory`, `readEnabled`,
|
|
83
|
+
`writeMethod`, URL templates, permissions, `client`, `transport` and
|
|
84
|
+
`onSaveSuccess`) and rejects anything else. The save-error message is
|
|
85
|
+
`addEditOptions.fallbackSaveError` when given, otherwise the resource's
|
|
86
|
+
`messages.saveError`; the request error and its toast use the same string.
|
|
87
|
+
|
|
79
88
|
Save navigation is configured in the top-level `saveSuccess` object. The default
|
|
80
89
|
prefers a configured record-view URL, then the list. A create-and-list variation
|
|
81
|
-
sets `navigateToView: false` and `listUrlTemplate` to its list
|
|
90
|
+
sets `navigateToView: false` and `saveSuccess.listUrlTemplate` to its list
|
|
91
|
+
route; `addEditOptions.listUrlTemplate` does not drive save navigation. Set both
|
|
82
92
|
`navigateToView` and `navigateToList` to `false` to stay on the form. A custom
|
|
83
93
|
`addEditOptions.onSaveSuccess` replaces default invalidation and navigation;
|
|
84
94
|
it is unnecessary for ordinary list navigation. The generic CRUD guide explains
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"./shared": "./src/shared/index.js"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@jskit-ai/crud-core": "0.1.
|
|
12
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
11
|
+
"@jskit-ai/crud-core": "0.1.257",
|
|
12
|
+
"@jskit-ai/resource-crud-core": "0.1.188"
|
|
13
13
|
},
|
|
14
14
|
"jskit": {
|
|
15
15
|
"kind": "runtime",
|
|
@@ -14,8 +14,6 @@ function createActions({ bookingEngine } = {}) {
|
|
|
14
14
|
input: statusQueryInputValidator,
|
|
15
15
|
output: null,
|
|
16
16
|
idempotency: "none",
|
|
17
|
-
audit: { actionName: ACTION_GET_STATUS },
|
|
18
|
-
observability: {},
|
|
19
17
|
async execute(input) {
|
|
20
18
|
return bookingEngine.readStatus(input);
|
|
21
19
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineFeature } from "@jskit-ai/kernel/server/features";
|
|
2
|
-
import { emptyInputValidator } from "@jskit-ai/kernel/
|
|
2
|
+
import { emptyInputValidator } from "@jskit-ai/kernel/server/actions/actionContributorHelpers";
|
|
3
3
|
import { createService } from "./orchestratorService.js";
|
|
4
4
|
|
|
5
5
|
const AvailabilityEngineProvider = defineFeature({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineFeature } from "@jskit-ai/kernel/server/features";
|
|
2
|
-
import { emptyInputValidator } from "@jskit-ai/kernel/
|
|
2
|
+
import { emptyInputValidator } from "@jskit-ai/kernel/server/actions/actionContributorHelpers";
|
|
3
3
|
import { createRepository } from "./repository.js";
|
|
4
4
|
|
|
5
5
|
const InvoiceRollupProvider = defineFeature({
|
|
@@ -43,10 +43,24 @@ placement registry, topology, and adaptive smoke helper exported by
|
|
|
43
43
|
above the content so they never cover it. A full-viewport fixed screen on
|
|
44
44
|
such a surface starts at `var(--shell-error-banners-inline-height, 0px)`, as
|
|
45
45
|
`@jskit-ai/auth-web`'s login and reset views do.
|
|
46
|
-
- Restyle shell chrome through its
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
- Restyle shell chrome through its custom properties, not by overriding
|
|
47
|
+
Vuetify internals: `--shell-chrome-border-width` and
|
|
48
|
+
`--shell-chrome-border-color` for the shared dividers,
|
|
49
|
+
`--shell-app-bar-border-width`, `--shell-navigation-border-width` and
|
|
50
|
+
`--shell-bottom-navigation-border-width` per edge, and
|
|
51
|
+
`--shell-app-bar-background`, `--shell-navigation-background` and
|
|
52
|
+
`--shell-bottom-navigation-background` for the surfaces. The defaults keep
|
|
53
|
+
one thin divider on each separating edge, because Vuetify's default themes
|
|
54
|
+
define no Material 3 surface-container roles. A Material 3 restyle sets the
|
|
55
|
+
border widths to `0` and gives navigation a tonal surface, for example
|
|
56
|
+
`rgb(var(--v-theme-surface-container-low))` when the theme defines it.
|
|
57
|
+
- `createShellRouter()` from `@jskit-ai/kernel/client` installs
|
|
58
|
+
`shellScrollBehavior`: a new screen opens at the top (or its hash target),
|
|
59
|
+
Back/Forward restore the saved position, and query, hash, tab or sub-view
|
|
60
|
+
changes within the same page keep it. A tab or sub-view is the same page when
|
|
61
|
+
both locations share a parent page record below the surface root. Pass
|
|
62
|
+
`scrollBehavior` to replace it, or `scrollBehavior: false` to disable it; do
|
|
63
|
+
not wrap the router or reset scroll in page components.
|
|
50
64
|
- The adaptive browser check closes navigation through its public close control.
|
|
51
65
|
|
|
52
66
|
## Example files
|
package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue
CHANGED
|
@@ -15,16 +15,16 @@ const healthQuery = useQuery({
|
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
const health = computed(() => {
|
|
18
|
-
if (healthQuery.isPending.value || healthQuery.isFetching.value) {
|
|
19
|
-
return "loading...";
|
|
20
|
-
}
|
|
21
|
-
|
|
22
18
|
if (healthQuery.error.value) {
|
|
23
19
|
return "unreachable";
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
return healthQuery.data.value?.ok ? "ok" : "unhealthy";
|
|
27
23
|
});
|
|
24
|
+
|
|
25
|
+
const healthPending = computed(
|
|
26
|
+
() => healthQuery.isPending.value || healthQuery.isFetching.value
|
|
27
|
+
);
|
|
28
28
|
</script>
|
|
29
29
|
|
|
30
30
|
<template>
|
|
@@ -36,7 +36,13 @@ const health = computed(() => {
|
|
|
36
36
|
<v-sheet rounded="lg" border class="home-surface-screen__panel">
|
|
37
37
|
<div class="home-surface-screen__status">
|
|
38
38
|
<span class="text-caption text-medium-emphasis">Service health</span>
|
|
39
|
-
<
|
|
39
|
+
<v-skeleton-loader
|
|
40
|
+
v-if="healthPending"
|
|
41
|
+
aria-label="Loading service health"
|
|
42
|
+
class="home-surface-screen__health-skeleton"
|
|
43
|
+
type="text"
|
|
44
|
+
/>
|
|
45
|
+
<strong v-else>{{ health }}</strong>
|
|
40
46
|
</div>
|
|
41
47
|
<v-divider vertical class="d-none d-sm-block" />
|
|
42
48
|
<div class="home-surface-screen__status">
|
|
@@ -71,6 +77,10 @@ const health = computed(() => {
|
|
|
71
77
|
min-width: 9rem;
|
|
72
78
|
}
|
|
73
79
|
|
|
80
|
+
.home-surface-screen__health-skeleton {
|
|
81
|
+
max-width: 5rem;
|
|
82
|
+
}
|
|
83
|
+
|
|
74
84
|
@media (max-width: 640px) {
|
|
75
85
|
.home-surface-screen__actions :deep(.v-btn) {
|
|
76
86
|
min-height: 48px;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expect, test } from "@playwright/test";
|
|
2
2
|
import { DEFAULT_VIEWPORTS, runAdaptiveShellSmokeCase } from "@jskit-ai/shell-web/test/adaptiveShellSmoke";
|
|
3
3
|
|
|
4
|
-
test.describe("
|
|
4
|
+
test.describe("adaptive shell smoke", () => {
|
|
5
5
|
for (const viewport of DEFAULT_VIEWPORTS) {
|
|
6
6
|
test(`${viewport.name} layout has reachable navigation and no horizontal overflow`, async ({ page }) => {
|
|
7
7
|
await runAdaptiveShellSmokeCase({ page, expect, viewport });
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"./shared": "./src/shared/index.js"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@jskit-ai/crud-core": "0.1.
|
|
13
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
12
|
+
"@jskit-ai/crud-core": "0.1.257",
|
|
13
|
+
"@jskit-ai/resource-crud-core": "0.1.188"
|
|
14
14
|
},
|
|
15
15
|
"jskit": {
|
|
16
16
|
"kind": "runtime",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"./shared": "./src/shared/index.js"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@jskit-ai/crud-core": "0.1.
|
|
13
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
14
|
-
"@jskit-ai/workspaces-core": "0.1.
|
|
12
|
+
"@jskit-ai/crud-core": "0.1.257",
|
|
13
|
+
"@jskit-ai/resource-crud-core": "0.1.188",
|
|
14
|
+
"@jskit-ai/workspaces-core": "0.1.224"
|
|
15
15
|
},
|
|
16
16
|
"jskit": {
|
|
17
17
|
"kind": "runtime",
|
|
@@ -50,16 +50,8 @@ shared-screen controls; avoid duplicates, drawer-only access, or adding a page
|
|
|
50
50
|
heading just to house it. Keep its meaning and accessible name clear at every
|
|
51
51
|
supported width.
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`createShellRouter()` from `@jskit-ai/kernel/client` installs
|
|
56
|
-
`shellScrollBehavior` by default: a new screen opens at the top (or at its
|
|
57
|
-
hash target), Back/Forward restore the saved position, and query, hash, tab or
|
|
58
|
-
sub-view changes within the same page keep the current position. A tab or
|
|
59
|
-
sub-view counts as the same page when both locations share a parent page record
|
|
60
|
-
below the surface root. Pass `scrollBehavior` to `createShellRouter()` to
|
|
61
|
-
replace it with your own Vue Router function, or `scrollBehavior: false` to
|
|
62
|
-
disable it. Do not wrap the router or reset scroll in page components.
|
|
53
|
+
`createShellRouter()` owns scroll position (`shell/application-shell`
|
|
54
|
+
pattern); never reset scroll in page components.
|
|
63
55
|
|
|
64
56
|
## Application-owned files
|
|
65
57
|
|
|
@@ -70,16 +62,10 @@ hash, pattern receipt, or tool-owned source declaration.
|
|
|
70
62
|
|
|
71
63
|
## Screen behavior
|
|
72
64
|
|
|
73
|
-
- Keep screens phone/task-first with drawer-independent primary actions
|
|
74
|
-
at least 48 CSS-pixel targets.
|
|
75
|
-
- Never add page headers or standalone headings unless the user explicitly asks.
|
|
65
|
+
- Keep screens phone/task-first with drawer-independent primary actions.
|
|
76
66
|
- Use direct surfaces instead of needless nested cards.
|
|
77
67
|
- Render all meaningful loading, empty, error, permission, and retry states.
|
|
78
|
-
-
|
|
79
|
-
generic spinner or circular progress indicator.
|
|
80
|
-
- Keep read failures local when the screen cannot render. Present transient
|
|
81
|
-
command success/failure through shared toast/snackbar feedback so the page
|
|
82
|
-
does not jump.
|
|
68
|
+
- Follow the Material 3 contract for targets, loading and failure feedback.
|
|
83
69
|
- Extend shared CRUD screens through public slots and composables.
|
|
84
70
|
- Keep row actions and filters near the screen unless the framework owns them.
|
|
85
71
|
- Import neutral request and CRUD UI APIs from `@jskit-ai/http-web`. Install
|
|
@@ -99,18 +85,8 @@ icon/label and label/end gaps. The normal 80px rail centres 48px targets;
|
|
|
99
85
|
`railWidth` and `drawerWidth` are public density/width controls. Do not override
|
|
100
86
|
the shell's private implementation CSS.
|
|
101
87
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
and `--shell-chrome-border-color` for the shared dividers,
|
|
105
|
-
`--shell-app-bar-border-width`, `--shell-navigation-border-width` and
|
|
106
|
-
`--shell-bottom-navigation-border-width` per edge, and
|
|
107
|
-
`--shell-app-bar-background`, `--shell-navigation-background` and
|
|
108
|
-
`--shell-bottom-navigation-background` for the surfaces. The defaults keep one
|
|
109
|
-
thin divider on each separating edge, because Vuetify's default themes define
|
|
110
|
-
no Material 3 surface-container roles to separate surfaces tonally. A Material 3
|
|
111
|
-
restyle sets the border widths to `0` and gives navigation a tonal surface, for
|
|
112
|
-
example `--shell-navigation-background: rgb(var(--v-theme-surface-container-low))`
|
|
113
|
-
when the theme defines that role.
|
|
88
|
+
Restyle shell chrome only through the `--shell-*` tokens in the
|
|
89
|
+
`shell/application-shell` pattern.
|
|
114
90
|
|
|
115
91
|
## Browser verification
|
|
116
92
|
|
package/templates/app/AGENTS.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# App Agent Instructions
|
|
2
|
-
|
|
3
|
-
Use current project context, JSKIT public APIs, and the official framework
|
|
4
|
-
documentation as the source of truth for application work.
|
|
5
|
-
|
|
6
|
-
Framework references:
|
|
7
|
-
|
|
8
|
-
- `https://mobily-enterprises.github.io/jskit-ai/guide/`
|
|
9
|
-
- `https://mobily-enterprises.github.io/jskit-ai/patterns/`
|
|
10
|
-
|
|
11
|
-
Before implementation, read the narrow relevant source pattern completely. If
|
|
12
|
-
its owner package is installed, prefer that version-matched package-owned copy.
|
|
13
|
-
Do not install an unrelated runtime package only to read documentation.
|
|
14
|
-
|
|
15
|
-
Before adding or changing browser-test setup, read `patterns/ui-testing.md` in
|
|
16
|
-
this package. Routine tests reuse the isolated schema and prepare fixtures once
|
|
17
|
-
per suite invocation. Keep `BROWSER_TEST_DB_NAME` distinct from disposable
|
|
18
|
-
`TEST_DB_NAME` and prove that disposable cleanup preserves browser migrations.
|
|
19
|
-
Require repeat-start regression proof; do not rebuild the
|
|
20
|
-
database or production frontend for each focused browser check.
|
|
21
|
-
|
|
22
|
-
Keep verification output small. Run the relevant cases together, save complete
|
|
23
|
-
stdout/stderr to local artifacts, and preserve the exit status. Report counts,
|
|
24
|
-
duration, failed case names and artifact paths; read only actionable failure
|
|
25
|
-
excerpts. Do not dump full JSON/TAP reports, passing assertions, request logs or
|
|
26
|
-
traces into agent context. Wait on the existing run instead of restarting it or
|
|
27
|
-
repeatedly printing unchanged output. Keep startup and cleanup errors visible.
|
|
28
|
-
For browser evidence, use existing automated cases, targeted locators and
|
|
29
|
-
meaningful visual checkpoints. Avoid a full DOM snapshot or screenshot after
|
|
30
|
-
every action; retain the required viewport, identity and security checks.
|
|
31
|
-
|
|
32
|
-
Pages never start with a page header, title block, welcome heading, or other
|
|
33
|
-
standalone heading copy. Start with the useful content and actions. If the user
|
|
34
|
-
wants a heading, they will ask for or add one.
|
|
35
|
-
|
|
36
|
-
Copied pattern source is ordinary application source. Do not add generator
|
|
37
|
-
provenance, receipts, completion ledgers, or tooling-operation history. Keep
|
|
38
|
-
changes scoped to the user request and verify runtime behavior directly.
|