@astrale-domains/shell 0.1.0-beta.21 → 0.1.0-beta.22

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.0-beta.22](https://github.com/astrale-os/shell/compare/shell-domain-v0.1.0-beta.21...shell-domain-v0.1.0-beta.22) (2026-09-03)
4
+
5
+
6
+ ### Features
7
+
8
+ * **core:** declare required node class icons ([#163](https://github.com/astrale-os/shell/issues/163)) ([2114424](https://github.com/astrale-os/shell/commit/2114424dc1295d978e49536aea76ace897917987))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **domain:** authorize installed app discovery ([#164](https://github.com/astrale-os/shell/issues/164)) ([cbcb559](https://github.com/astrale-os/shell/commit/cbcb5594ffa9701ec979333f76f7c5dc3597401e))
14
+
3
15
  ## [0.1.0-beta.21](https://github.com/astrale-os/shell/compare/shell-domain-v0.1.0-beta.20...shell-domain-v0.1.0-beta.21) (2026-09-01)
4
16
 
5
17
 
package/README.md CHANGED
@@ -34,11 +34,12 @@ The Methods are:
34
34
 
35
35
  Installation authors the `admin`, `member`, and `default-space` Core nodes. Shell infers no authority
36
36
  from email, claims, path spelling, creation order, or a successful handler-local boolean.
37
- The signed Publication declares installation-owned authority profiles: the Shell principal and
38
- Core `admin` receive the intended Kernel application-plane surface, excluding only the ability to
39
- grant `grant` or revoke `revoke`; Core `member` receives Kernel Introspection, Query, Mutation, and
40
- View resolution. Kernel install, upgrade, introspection, and uninstall own those authority edges as
41
- one generation.
37
+ The signed Publication declares installation-owned authority profiles: the Shell principal can
38
+ read installed Kernel `Domain` metadata so managed sessions can list applications and resolve their
39
+ domain Views, and the Shell principal plus Core `admin` receive the intended Kernel
40
+ application-plane surface, excluding only the ability to grant `grant` or revoke `revoke`; Core
41
+ `member` receives Kernel Introspection, Query, Mutation, and View resolution. Kernel install,
42
+ upgrade, introspection, and uninstall own those authority edges as one generation.
42
43
 
43
44
  ## Source ownership
44
45
 
@@ -16,6 +16,10 @@ const frontend = defineFrontend({
16
16
  const applicationRequirements = requirements({
17
17
  functions: KernelRootFunctions,
18
18
  classes: [
19
+ {
20
+ class: K.classes.Domain,
21
+ operations: ['read'],
22
+ },
19
23
  {
20
24
  class: K.classes.extends_with,
21
25
  operations: ['create', 'read', 'traverse', 'delete'],
@@ -1,4 +1,4 @@
1
- import { nodeClass, type Kernel } from '@astrale-os/sdk/schema';
1
+ import { nodeClass, type ClassIcon, type Kernel } from '@astrale-os/sdk/schema';
2
2
  import { groupAssignUser } from '../functions/assign-user.js';
3
3
  import { groupUnassignUser } from '../functions/unassign-user.js';
4
4
  export interface GroupConfig {
@@ -8,6 +8,7 @@ export interface GroupConfig {
8
8
  Kernel['classes']['Named'],
9
9
  Kernel['classes']['Descriptable']
10
10
  ];
11
+ readonly icon: ClassIcon;
11
12
  readonly methods: {
12
13
  readonly assignUser: typeof groupAssignUser;
13
14
  readonly unassignUser: typeof groupUnassignUser;
@@ -1,9 +1,10 @@
1
- import { K, nodeClass } from '@astrale-os/sdk/schema';
1
+ import { classIcon, K, nodeClass } from '@astrale-os/sdk/schema';
2
+ import { UsersRound } from '@astrale-os/sdk/schema/icons';
2
3
  import { groupAssignUser } from '../functions/assign-user.js';
3
4
  import { groupUnassignUser } from '../functions/unassign-user.js';
4
- const config = {
5
+ export const Group = nodeClass({
5
6
  description: 'A named compositional Shell Identity.',
6
7
  extends: [K.classes.Identity, K.classes.Named, K.classes.Descriptable],
8
+ icon: classIcon.lucide(UsersRound),
7
9
  methods: { assignUser: groupAssignUser, unassignUser: groupUnassignUser },
8
- };
9
- export const Group = nodeClass(config);
10
+ });
@@ -1,10 +1,11 @@
1
- import { nodeClass, type Kernel } from '@astrale-os/sdk/schema';
1
+ import { nodeClass, type ClassIcon, type Kernel } from '@astrale-os/sdk/schema';
2
2
  import { spaceAddUser } from '../functions/add-user.js';
3
3
  import { spaceRemoveUser } from '../functions/remove-user.js';
4
4
  import { spaceSetDefault } from '../functions/set-default.js';
5
5
  export interface SpaceConfig {
6
6
  readonly description: string;
7
7
  readonly extends: readonly [Kernel['classes']['Named'], Kernel['classes']['Descriptable']];
8
+ readonly icon: ClassIcon;
8
9
  readonly methods: {
9
10
  readonly addUser: typeof spaceAddUser;
10
11
  readonly removeUser: typeof spaceRemoveUser;
@@ -1,14 +1,15 @@
1
- import { K, nodeClass } from '@astrale-os/sdk/schema';
1
+ import { classIcon, K, nodeClass } from '@astrale-os/sdk/schema';
2
+ import { PanelsTopLeft } from '@astrale-os/sdk/schema/icons';
2
3
  import { spaceAddUser } from '../functions/add-user.js';
3
4
  import { spaceRemoveUser } from '../functions/remove-user.js';
4
5
  import { spaceSetDefault } from '../functions/set-default.js';
5
- const config = {
6
+ export const Space = nodeClass({
6
7
  description: 'A named Shell collaboration boundary.',
7
8
  extends: [K.classes.Named, K.classes.Descriptable],
9
+ icon: classIcon.lucide(PanelsTopLeft),
8
10
  methods: {
9
11
  addUser: spaceAddUser,
10
12
  removeUser: spaceRemoveUser,
11
13
  setDefault: spaceSetDefault,
12
14
  },
13
- };
14
- export const Space = nodeClass(config);
15
+ });
@@ -1,4 +1,4 @@
1
- import { nodeClass, type Kernel } from '@astrale-os/sdk/schema';
1
+ import { nodeClass, type ClassIcon, type Kernel } from '@astrale-os/sdk/schema';
2
2
  import { z } from 'zod';
3
3
  import { resolveHome } from '../functions/resolve-home.js';
4
4
  declare const displayName: import("@astrale-os/sdk/schema").Property<z.ZodString, {
@@ -7,6 +7,7 @@ declare const displayName: import("@astrale-os/sdk/schema").Property<z.ZodString
7
7
  export interface UserConfig {
8
8
  readonly description: string;
9
9
  readonly extends: readonly [Kernel['classes']['Identity']];
10
+ readonly icon: ClassIcon;
10
11
  readonly properties: {
11
12
  readonly displayName: typeof displayName;
12
13
  };
@@ -1,11 +1,12 @@
1
- import { K, nodeClass, property } from '@astrale-os/sdk/schema';
1
+ import { classIcon, K, nodeClass, property, } from '@astrale-os/sdk/schema';
2
+ import { UserRound } from '@astrale-os/sdk/schema/icons';
2
3
  import { z } from 'zod';
3
4
  import { resolveHome } from '../functions/resolve-home.js';
4
5
  const displayName = property(z.string().min(1).max(160), { required: false });
5
- const config = {
6
+ export const User = nodeClass({
6
7
  description: 'One externally identified person using Shell.',
7
8
  extends: [K.classes.Identity],
9
+ icon: classIcon.lucide(UserRound),
8
10
  properties: { displayName },
9
11
  methods: { resolveHome },
10
- };
11
- export const User = nodeClass(config);
12
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-domains/shell",
3
- "version": "0.1.0-beta.21",
3
+ "version": "0.1.0-beta.22",
4
4
  "description": "Astrale Shell Domain schema and remote product implementation",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@astrale-os/ox": "0.1.3",
53
- "@astrale-os/sdk": "0.5.0-beta.99",
53
+ "@astrale-os/sdk": "0.5.0-beta.106",
54
54
  "@astrale/typescript-config": "npm:@jsr/astrale__typescript-config@~1.1.3",
55
55
  "@types/node": "^22.0.0",
56
56
  "oxlint": "1.78.0",
@@ -58,7 +58,7 @@
58
58
  "vitest": "4.1.10"
59
59
  },
60
60
  "peerDependencies": {
61
- "@astrale-os/sdk": ">=0.5.0-beta.99 <1.0.0"
61
+ "@astrale-os/sdk": ">=0.5.0-beta.106 <1.0.0"
62
62
  },
63
63
  "devEngines": {
64
64
  "runtime": {