@jskit-ai/agent-docs 0.1.295 → 0.1.297
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-setup/multi-homing.md +34 -0
- package/guide/agent/framework/data-access.md +9 -1
- package/guide/agent/framework/typed-features.md +11 -0
- package/package.json +1 -1
- package/patterns/feature-package/example/booking-engine/package.json +1 -1
- package/patterns/minimal-foundation/example/package.json +3 -3
- package/patterns/shell-foundation/example/package.json +4 -4
- package/patterns/shell-foundation/example/packages/main/package.json +1 -1
- package/reference/autogen/PATTERN_INDEX.md +38 -38
- package/reference/autogen/packages/assistant-core.md +2 -0
- package/reference/autogen/packages/crud-core.md +14 -9
- package/reference/autogen/packages/kernel.md +6 -2
- package/reference/autogen/packages/resource-crud-core.md +2 -0
- package/reference/autogen/packages/shell-web.md +4 -2
- package/reference/autogen/packages/workspaces-core.md +21 -0
- package/reference/autogen/tooling/jskit-catalog.md +1 -0
- package/skills/jskit/references/data-access.md +9 -1
- package/skills/jskit/references/heuristics/client-requests.md +1 -1
- package/skills/jskit/references/heuristics/filters.md +1 -0
- package/skills/jskit/references/heuristics/row-policies.md +2 -1
- package/skills/jskit/references/multi-homing.md +34 -0
- package/skills/jskit/references/pattern-index.md +38 -38
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +3 -3
- 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/auth/accounts-hub/example/package.json +3 -3
- 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/crud/crud-feature-package/PATTERN.md +2 -1
- package/skills/jskit/references/patterns/crud/crud-feature-package/example/packages/books/package.json +3 -3
- package/skills/jskit/references/patterns/database/mysql-application/example/package.json +2 -2
- package/skills/jskit/references/patterns/database/postgres-application/example/package.json +2 -2
- 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/users/user-administration-server/example/packages/users/package.json +3 -3
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +6 -6
- package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +16 -0
- package/skills/jskit/references/typed-features.md +11 -0
|
@@ -132,7 +132,8 @@ so an action without an HTTP route would otherwise reach records that no route
|
|
|
132
132
|
shows the user. The actions of an `internal: true` or `routes: false` feature
|
|
133
133
|
therefore stay off `automation` (the assistant cannot call them) unless their
|
|
134
134
|
permission names a permission (`require: "all"` or `"any"`), as the workspace
|
|
135
|
-
scope's default `crud.<namespace>.<operation>` permissions do
|
|
135
|
+
scope's default `crud.<namespace>.<operation>` permissions do (the operation is
|
|
136
|
+
`list`, `view`, `create`, `update` or `delete`; an HTTP `PATCH` is `update`). Give such a
|
|
136
137
|
feature explicit `permissions` when the assistant should read it for the users
|
|
137
138
|
who hold them; the default for other surfaces, `require: "authenticated"`,
|
|
138
139
|
would admit every signed-in user. An additional action's own `channels`
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"./shared": "./src/shared/index.js"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@jskit-ai/crud-core": "0.2.
|
|
13
|
-
"@jskit-ai/resource-core": "0.1.
|
|
14
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
12
|
+
"@jskit-ai/crud-core": "0.2.27",
|
|
13
|
+
"@jskit-ai/resource-core": "0.1.210",
|
|
14
|
+
"@jskit-ai/resource-crud-core": "0.1.212"
|
|
15
15
|
},
|
|
16
16
|
"jskit": {
|
|
17
17
|
"kind": "runtime",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"test": "jskit test --databases"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
13
|
-
"@jskit-ai/database-runtime-postgres": "0.1.
|
|
12
|
+
"@jskit-ai/database-runtime": "0.1.268",
|
|
13
|
+
"@jskit-ai/database-runtime-postgres": "0.1.265"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"./shared": "./src/shared/index.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@jskit-ai/crud-core": "0.2.
|
|
14
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
15
|
-
"@jskit-ai/users-core": "0.2.
|
|
13
|
+
"@jskit-ai/crud-core": "0.2.27",
|
|
14
|
+
"@jskit-ai/resource-crud-core": "0.1.212",
|
|
15
|
+
"@jskit-ai/users-core": "0.2.28"
|
|
16
16
|
},
|
|
17
17
|
"jskit": {
|
|
18
18
|
"kind": "runtime",
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"./shared": "./src/shared/index.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@jskit-ai/crud-core": "0.2.
|
|
14
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
15
|
-
"@jskit-ai/users-core": "0.2.
|
|
16
|
-
"@jskit-ai/workspaces-core": "0.2.
|
|
13
|
+
"@jskit-ai/crud-core": "0.2.27",
|
|
14
|
+
"@jskit-ai/resource-crud-core": "0.1.212",
|
|
15
|
+
"@jskit-ai/users-core": "0.2.28",
|
|
16
|
+
"@jskit-ai/workspaces-core": "0.2.28"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@jskit-ai/kernel": "0.2.
|
|
20
|
-
"@jskit-ai/resource-runtime": "0.2.
|
|
19
|
+
"@jskit-ai/kernel": "0.2.19",
|
|
20
|
+
"@jskit-ai/resource-runtime": "0.2.24"
|
|
21
21
|
},
|
|
22
22
|
"jskit": {
|
|
23
23
|
"kind": "runtime",
|
|
@@ -34,6 +34,22 @@ the other palette fields) that new workspaces start with.
|
|
|
34
34
|
Use workspace routes, resources, scope helpers, tenancy profiles, and settings
|
|
35
35
|
contracts exported by `@jskit-ai/workspaces-core`.
|
|
36
36
|
|
|
37
|
+
## Role permissions
|
|
38
|
+
|
|
39
|
+
A role's `permissions` grant names that something requires:
|
|
40
|
+
|
|
41
|
+
| Grant | Covers |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| `crud.<namespace>.list`, `.view`, `.create`, `.update`, `.delete` | A workspace CRUD operation; an HTTP `PATCH` is `update` |
|
|
44
|
+
| `crud.<namespace>.<action name>` | A custom CRUD action |
|
|
45
|
+
| `<prefix>.*`, `*` | Every required permission under the prefix; every permission |
|
|
46
|
+
|
|
47
|
+
At startup a grant that covers no permission an action, a route's `permission`
|
|
48
|
+
or a surface access policy requires stops the server outside production, with
|
|
49
|
+
a "did you mean"; production logs it. List a permission the application checks
|
|
50
|
+
itself (a service, a row policy, `access.can()`) in
|
|
51
|
+
`roleCatalog.customPermissions`.
|
|
52
|
+
|
|
37
53
|
## Role display labels
|
|
38
54
|
|
|
39
55
|
Each `roleCatalog.roles[roleId]` definition may include an optional string
|
|
@@ -478,6 +478,13 @@ record declares `mode: "patch"`; a command never does.**
|
|
|
478
478
|
- An input field lists its allowed values with `enum`; the kernel refuses
|
|
479
479
|
`oneOf` on an input field at startup, because json-rest-schema checks no
|
|
480
480
|
`oneOf` and the field would accept any value.
|
|
481
|
+
- A check of the input that the schema cannot make until the application
|
|
482
|
+
runs (a value only boot resolves, such as the types a CRUD read's includes
|
|
483
|
+
reach) is the definition's `checkInput(input)`, never a check inside
|
|
484
|
+
`execute`. The kernel runs it on the validated input before the action and
|
|
485
|
+
answers the field errors it throws (`createValidationError`) as an
|
|
486
|
+
`ACTION_VALIDATION_FAILED`, exactly as a schema refusal, so HTTP clients and
|
|
487
|
+
assistant tools are told the field to correct.
|
|
481
488
|
|
|
482
489
|
Why: a command whose required field is never enforced reaches the service
|
|
483
490
|
without it.
|
|
@@ -1005,6 +1012,10 @@ and Vitest's `maxWorkers` come from `testConcurrency()`.**
|
|
|
1005
1012
|
`node --test` and sets `--test-concurrency` to the budget.
|
|
1006
1013
|
`testConcurrency()` from `@jskit-ai/jskit-catalog/test-budget` returns the
|
|
1007
1014
|
same number for a config.
|
|
1015
|
+
- A Node test file is named `<name>.test.js`, and a database test
|
|
1016
|
+
`<name>.integration.test.js`: given no files, `jskit test` runs node's
|
|
1017
|
+
default pattern and fails on a `tests/` file it would leave out, such as
|
|
1018
|
+
`<name>.integration.js` or `<name>.spec.js`.
|
|
1008
1019
|
- No script passes a fixed concurrency or worker count. `jskit check` fails a
|
|
1009
1020
|
package script that runs `node --test` directly or passes one, and a
|
|
1010
1021
|
Playwright or Vitest config those scripts use whose workers do not come from
|