@astrale-domains/shell 0.1.6 → 0.1.7

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.
Files changed (301) hide show
  1. package/README.md +73 -173
  2. package/dist/domain.d.ts +477 -31
  3. package/dist/domain.js +87 -78
  4. package/dist/functions/application/index.js +2 -1
  5. package/dist/functions/application/legacy/index.js +1 -0
  6. package/dist/functions/application/legacy/list-entrypoints.js +8 -0
  7. package/dist/functions/authority/capabilities.js +1 -0
  8. package/dist/functions/authority/composition.js +47 -0
  9. package/dist/functions/authority/index.js +2 -0
  10. package/dist/functions/authority/roles.js +98 -0
  11. package/dist/functions/directory/disconnect-directory.js +35 -0
  12. package/dist/functions/directory/index.js +1 -0
  13. package/dist/functions/group/change-group-membership.js +43 -9
  14. package/dist/functions/group/create-group.js +23 -0
  15. package/dist/functions/group/delete-group.js +33 -0
  16. package/dist/functions/group/deprovision-group.js +27 -0
  17. package/dist/functions/group/group-errors.js +43 -0
  18. package/dist/functions/group/group-membership-errors.js +2 -0
  19. package/dist/functions/group/group.js +51 -0
  20. package/dist/functions/group/index.js +8 -2
  21. package/dist/functions/group/legacy/index.js +1 -0
  22. package/dist/functions/group/legacy/membership.js +60 -0
  23. package/dist/functions/group/membership-laws.js +40 -0
  24. package/dist/functions/group/provision-group.js +33 -0
  25. package/dist/functions/group/update-group.js +55 -0
  26. package/dist/functions/invitation/index.js +2 -0
  27. package/dist/functions/invitation/invitation-errors.js +13 -0
  28. package/dist/functions/invitation/invitation-methods.js +41 -0
  29. package/dist/functions/invitation/send-invitation.js +81 -0
  30. package/dist/functions/user/account.js +35 -0
  31. package/dist/functions/user/create-user.js +45 -0
  32. package/dist/functions/user/deactivate-user.js +19 -0
  33. package/dist/functions/user/delete-user.js +34 -0
  34. package/dist/functions/user/deprovision-user.js +21 -0
  35. package/dist/functions/user/index.js +15 -1
  36. package/dist/functions/user/invite-errors.js +18 -0
  37. package/dist/functions/user/invite-user.js +42 -34
  38. package/dist/functions/user/legacy/claimed-account.js +11 -0
  39. package/dist/functions/user/legacy/index.js +4 -0
  40. package/dist/functions/user/legacy/invite.js +20 -0
  41. package/dist/functions/user/legacy/migrate-accounts.js +98 -0
  42. package/dist/functions/user/legacy/record-profile.js +19 -0
  43. package/dist/functions/user/protect-administrators.js +16 -0
  44. package/dist/functions/user/provision-user.js +70 -0
  45. package/dist/functions/user/reactivate-user.js +19 -0
  46. package/dist/functions/user/read-account.js +12 -0
  47. package/dist/functions/user/request-invitation.js +17 -0
  48. package/dist/functions/user/update-profile.js +22 -0
  49. package/dist/functions/user/update-user.js +68 -0
  50. package/dist/functions/user/user-errors.js +69 -0
  51. package/dist/functions/user/write-account.js +57 -0
  52. package/dist/functions/view-access/index.js +2 -1
  53. package/dist/functions/view-access/{assign-views.js → legacy/assign-views.js} +11 -7
  54. package/dist/functions/view-access/legacy/index.js +1 -0
  55. package/dist/functions/view-access/{view-access-errors.js → legacy/view-access-errors.js} +5 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.js +3 -1
  58. package/dist/integrations/user-invitation/invite-user-request.d.ts +6 -0
  59. package/dist/legacy/index.js +1 -0
  60. package/dist/legacy/release.js +33 -0
  61. package/dist/mutations/composition/grant-role.js +13 -0
  62. package/dist/mutations/composition/index.js +1 -0
  63. package/dist/mutations/group/legacy/index.js +1 -0
  64. package/dist/mutations/group/legacy/membership-class.js +7 -0
  65. package/dist/mutations/group/set-group-membership.js +23 -14
  66. package/dist/mutations/identity/create-profile.js +37 -0
  67. package/dist/mutations/identity/delete-identity.js +28 -0
  68. package/dist/mutations/identity/index.js +4 -0
  69. package/dist/mutations/identity/write-account.js +109 -0
  70. package/dist/mutations/identity/write-group.js +72 -0
  71. package/dist/mutations/invitation/index.js +1 -0
  72. package/dist/mutations/invitation/write-invitation.js +62 -0
  73. package/dist/mutations/user/legacy/index.js +1 -0
  74. package/dist/mutations/user/{record-user-profile.js → legacy/record-user-profile.js} +5 -2
  75. package/dist/providers/admin-enrollment/create-admin-enrollment-provider.js +6 -3
  76. package/dist/providers/admin-enrollment/legacy/index.js +1 -0
  77. package/dist/providers/admin-enrollment/legacy/send-without-profile.js +16 -0
  78. package/dist/queries/application/legacy/index.js +1 -0
  79. package/dist/queries/application/legacy/read-installed-entrypoints.js +47 -0
  80. package/dist/queries/composition/index.js +2 -0
  81. package/dist/queries/composition/read-extensions.js +34 -0
  82. package/dist/queries/composition/read-role-nodes.js +41 -0
  83. package/dist/queries/group/index.js +1 -1
  84. package/dist/queries/group/legacy/index.js +2 -0
  85. package/dist/queries/group/legacy/read-core-groups.js +46 -0
  86. package/dist/queries/group/legacy/read-member-of-group.js +24 -0
  87. package/dist/queries/group/read-group-membership-endpoints.js +11 -0
  88. package/dist/queries/group/read-group-membership.js +6 -21
  89. package/dist/queries/identity/index.js +1 -0
  90. package/dist/queries/identity/read-identities.js +29 -0
  91. package/dist/queries/invitation/index.js +1 -0
  92. package/dist/queries/invitation/read-invitation.js +25 -0
  93. package/dist/queries/profile/index.js +1 -0
  94. package/dist/queries/profile/read-profile.js +15 -0
  95. package/dist/queries/role/index.js +1 -0
  96. package/dist/queries/role/read-role-node.js +13 -0
  97. package/dist/queries/user/legacy/index.js +1 -0
  98. package/dist/queries/user/legacy/read-user-profile.js +27 -0
  99. package/dist/runtime.d.ts +18203 -630
  100. package/dist/runtime.js +32 -7
  101. package/dist/schema/index.d.ts +7 -4
  102. package/dist/schema/index.js +8 -4
  103. package/dist/schema/legacy/index.js +1 -0
  104. package/dist/schema/legacy/schema.js +32 -0
  105. package/dist/schema/modules/application/legacy/entrypoint-entry.js +11 -0
  106. package/dist/schema/modules/application/legacy/functions/index.js +1 -0
  107. package/dist/schema/modules/application/legacy/functions/list-entrypoints.js +21 -0
  108. package/dist/schema/modules/application/legacy/index.js +2 -0
  109. package/dist/schema/modules/directory/functions/disconnect-directory.d.ts +13 -0
  110. package/dist/schema/modules/directory/functions/disconnect-directory.js +15 -0
  111. package/dist/schema/modules/directory/functions/index.d.ts +1 -0
  112. package/dist/schema/modules/directory/functions/index.js +1 -0
  113. package/dist/schema/modules/directory/index.d.ts +1 -0
  114. package/dist/schema/modules/directory/index.js +1 -0
  115. package/dist/schema/modules/group/classes/group-profile-link.d.ts +34 -0
  116. package/dist/schema/modules/group/classes/group-profile-link.js +21 -0
  117. package/dist/schema/modules/group/classes/group-profile.d.ts +15 -0
  118. package/dist/schema/modules/group/classes/group-profile.js +20 -0
  119. package/dist/schema/modules/group/classes/group.d.ts +73 -1
  120. package/dist/schema/modules/group/classes/group.js +28 -7
  121. package/dist/schema/modules/group/classes/index.d.ts +2 -1
  122. package/dist/schema/modules/group/classes/index.js +3 -1
  123. package/dist/schema/modules/group/functions/assign-member.js +17 -0
  124. package/dist/schema/modules/group/functions/create-group.js +20 -0
  125. package/dist/schema/modules/group/functions/delete-group.js +12 -0
  126. package/dist/schema/modules/group/functions/deprovision-group.js +14 -0
  127. package/dist/schema/modules/group/functions/index.js +7 -2
  128. package/dist/schema/modules/group/functions/provision-group.js +14 -0
  129. package/dist/schema/modules/group/functions/unassign-member.js +17 -0
  130. package/dist/schema/modules/group/functions/update-group.js +20 -0
  131. package/dist/schema/modules/group/index.d.ts +3 -3
  132. package/dist/schema/modules/group/index.js +4 -3
  133. package/dist/schema/modules/group/legacy/admission.d.ts +9 -0
  134. package/dist/schema/modules/group/legacy/admission.js +9 -0
  135. package/dist/schema/modules/group/legacy/classes/index.d.ts +1 -0
  136. package/dist/schema/modules/group/legacy/classes/index.js +1 -0
  137. package/dist/schema/modules/group/{classes → legacy/classes}/member-of-group.d.ts +10 -1
  138. package/dist/schema/modules/group/legacy/classes/member-of-group.js +32 -0
  139. package/dist/schema/modules/group/legacy/core-groups.d.ts +22 -0
  140. package/dist/schema/modules/group/legacy/core-groups.js +28 -0
  141. package/dist/schema/modules/group/legacy/index.d.ts +5 -0
  142. package/dist/schema/modules/group/legacy/index.js +6 -0
  143. package/dist/schema/modules/group/legacy/policies/belongs-to-group.d.ts +5 -0
  144. package/dist/schema/modules/group/legacy/policies/belongs-to-group.js +9 -0
  145. package/dist/schema/modules/group/legacy/policies/index.d.ts +2 -0
  146. package/dist/schema/modules/group/legacy/policies/index.js +2 -0
  147. package/dist/schema/modules/group/legacy/policies/owns-membership-group.d.ts +6 -0
  148. package/dist/schema/modules/group/legacy/policies/owns-membership-group.js +12 -0
  149. package/dist/schema/modules/group/legacy/relaxations.d.ts +21 -0
  150. package/dist/schema/modules/group/legacy/relaxations.js +27 -0
  151. package/dist/schema/modules/group/policies/describes-group-of-subject.d.ts +2 -0
  152. package/dist/schema/modules/group/policies/describes-group-of-subject.js +7 -0
  153. package/dist/schema/modules/group/policies/index.d.ts +2 -1
  154. package/dist/schema/modules/group/policies/index.js +2 -1
  155. package/dist/schema/modules/group/policies/is-group-profile-source.d.ts +2 -0
  156. package/dist/schema/modules/group/policies/is-group-profile-source.js +6 -0
  157. package/dist/schema/modules/group/types/group.js +10 -0
  158. package/dist/schema/modules/group/types/index.js +1 -0
  159. package/dist/schema/modules/invitation/classes/index.js +2 -0
  160. package/dist/schema/modules/invitation/classes/invitation-user.js +17 -0
  161. package/dist/schema/modules/invitation/classes/invitation.js +30 -0
  162. package/dist/schema/modules/invitation/functions/accept.js +16 -0
  163. package/dist/schema/modules/invitation/functions/cancel.js +12 -0
  164. package/dist/schema/modules/invitation/functions/index.js +4 -0
  165. package/dist/schema/modules/invitation/functions/resend.js +12 -0
  166. package/dist/schema/modules/invitation/functions/send.js +20 -0
  167. package/dist/schema/modules/invitation/index.js +2 -0
  168. package/dist/schema/modules/invitation/types/index.js +1 -0
  169. package/dist/schema/modules/invitation/types/invitation-status.js +5 -0
  170. package/dist/schema/modules/namespace/classes/alias.d.ts +2 -1
  171. package/dist/schema/modules/namespace/classes/alias.js +11 -2
  172. package/dist/schema/modules/namespace/functions/link.js +3 -2
  173. package/dist/schema/modules/namespace/functions/rename.js +3 -2
  174. package/dist/schema/modules/namespace/functions/unlink.js +3 -2
  175. package/dist/schema/modules/role/classes/index.d.ts +1 -0
  176. package/dist/schema/modules/role/classes/index.js +1 -0
  177. package/dist/schema/modules/role/classes/role.d.ts +16 -0
  178. package/dist/schema/modules/role/classes/role.js +19 -0
  179. package/dist/schema/modules/role/core/index.d.ts +1 -0
  180. package/dist/schema/modules/role/core/index.js +1 -0
  181. package/dist/schema/modules/role/core/roles.d.ts +37 -0
  182. package/dist/schema/modules/role/core/roles.js +30 -0
  183. package/dist/schema/modules/role/index.d.ts +2 -0
  184. package/dist/schema/modules/role/index.js +2 -0
  185. package/dist/schema/modules/user/classes/index.d.ts +2 -0
  186. package/dist/schema/modules/user/classes/index.js +3 -0
  187. package/dist/schema/modules/user/classes/user-profile-link.d.ts +35 -0
  188. package/dist/schema/modules/user/classes/user-profile-link.js +22 -0
  189. package/dist/schema/modules/user/classes/user-profile.d.ts +41 -0
  190. package/dist/schema/modules/user/classes/user-profile.js +30 -0
  191. package/dist/schema/modules/user/classes/user.d.ts +133 -8
  192. package/dist/schema/modules/user/classes/user.js +46 -15
  193. package/dist/schema/modules/user/functions/create-user.js +21 -0
  194. package/dist/schema/modules/user/functions/deactivate-user.js +12 -0
  195. package/dist/schema/modules/user/functions/delete-user.js +12 -0
  196. package/dist/schema/modules/user/functions/deprovision-user.js +14 -0
  197. package/dist/schema/modules/user/functions/index.js +8 -1
  198. package/dist/schema/modules/user/functions/invite-user.js +23 -4
  199. package/dist/schema/modules/user/functions/provision-user.js +25 -0
  200. package/dist/schema/modules/user/functions/reactivate-user.js +12 -0
  201. package/dist/schema/modules/user/functions/update-profile.js +16 -0
  202. package/dist/schema/modules/user/functions/update-user.js +22 -0
  203. package/dist/schema/modules/user/index.d.ts +2 -1
  204. package/dist/schema/modules/user/index.js +2 -1
  205. package/dist/schema/modules/user/legacy/account-properties.js +24 -0
  206. package/dist/schema/modules/user/legacy/functions/index.js +2 -0
  207. package/dist/schema/modules/user/legacy/functions/migrate-accounts.js +23 -0
  208. package/dist/schema/modules/user/legacy/functions/record-profile.js +18 -0
  209. package/dist/schema/modules/user/legacy/index.js +5 -0
  210. package/dist/schema/modules/user/legacy/invite.js +15 -0
  211. package/dist/schema/modules/user/legacy/relaxations.js +37 -0
  212. package/dist/schema/modules/user/policies/describes-subject.d.ts +2 -0
  213. package/dist/schema/modules/user/policies/describes-subject.js +7 -0
  214. package/dist/schema/modules/user/policies/index.d.ts +2 -0
  215. package/dist/schema/modules/user/policies/index.js +2 -0
  216. package/dist/schema/modules/user/policies/is-profile-source.d.ts +2 -0
  217. package/dist/schema/modules/user/policies/is-profile-source.js +6 -0
  218. package/dist/schema/modules/user/types/account.d.ts +12 -0
  219. package/dist/schema/modules/user/types/account.js +12 -0
  220. package/dist/schema/modules/user/types/index.d.ts +1 -1
  221. package/dist/schema/modules/user/types/index.js +1 -1
  222. package/dist/schema/modules/view-access/classes/view-access.d.ts +7 -11
  223. package/dist/schema/modules/view-access/classes/view-access.js +17 -12
  224. package/dist/schema/modules/view-access/index.d.ts +1 -2
  225. package/dist/schema/modules/view-access/index.js +1 -2
  226. package/dist/schema/modules/view-access/legacy/functions/assign-views.js +22 -0
  227. package/dist/schema/modules/view-access/legacy/functions/index.js +1 -0
  228. package/dist/schema/modules/view-access/legacy/index.js +2 -0
  229. package/dist/schema/modules/view-access/legacy/view-assignment.js +24 -0
  230. package/dist/schema/modules/view-access/policies/holds-view-access.d.ts +2 -0
  231. package/dist/schema/modules/view-access/policies/holds-view-access.js +5 -0
  232. package/dist/schema/modules/view-access/policies/index.d.ts +1 -0
  233. package/dist/schema/modules/view-access/policies/index.js +1 -0
  234. package/dist/schema/policies/has-role.d.ts +6 -0
  235. package/dist/schema/policies/has-role.js +9 -0
  236. package/dist/schema/policies/index.d.ts +1 -0
  237. package/dist/schema/policies/index.js +1 -4
  238. package/dist/schema/policies/legacy/administers-shell-class.js +21 -0
  239. package/dist/schema/policies/legacy/index.js +4 -0
  240. package/dist/schema/policies/legacy/is-self.js +9 -0
  241. package/dist/schema/policies/legacy/owns-class.js +12 -0
  242. package/dist/schema/policies/legacy/uses-function.js +9 -0
  243. package/dist/schema/schema.d.ts +1849 -118
  244. package/dist/schema/schema.js +35 -15
  245. package/dist/schema/types/attributes.js +15 -0
  246. package/dist/schema/types/index.js +1 -0
  247. package/dist/utils/attributes/attributes.js +12 -0
  248. package/dist/utils/attributes/index.js +1 -0
  249. package/dist/utils/index.js +3 -0
  250. package/dist/utils/same-json/index.js +1 -0
  251. package/dist/utils/same-json/same-json.js +9 -0
  252. package/package.json +3 -3
  253. package/dist/functions/application/list-entrypoints.js +0 -6
  254. package/dist/functions/user/record-profile.js +0 -18
  255. package/dist/mutations/user/index.js +0 -1
  256. package/dist/queries/application/index.js +0 -1
  257. package/dist/queries/application/read-installed-entrypoints.js +0 -28
  258. package/dist/queries/user/index.js +0 -1
  259. package/dist/queries/user/read-user-profile.js +0 -9
  260. package/dist/schema/modules/application/functions/index.d.ts +0 -1
  261. package/dist/schema/modules/application/functions/index.js +0 -1
  262. package/dist/schema/modules/application/functions/list-entrypoints.d.ts +0 -15
  263. package/dist/schema/modules/application/functions/list-entrypoints.js +0 -16
  264. package/dist/schema/modules/application/index.d.ts +0 -2
  265. package/dist/schema/modules/application/index.js +0 -2
  266. package/dist/schema/modules/application/types/entrypoint-entry.d.ts +0 -8
  267. package/dist/schema/modules/application/types/entrypoint-entry.js +0 -7
  268. package/dist/schema/modules/application/types/index.d.ts +0 -1
  269. package/dist/schema/modules/application/types/index.js +0 -1
  270. package/dist/schema/modules/group/classes/member-of-group.js +0 -12
  271. package/dist/schema/modules/group/core/administrators-group.d.ts +0 -1
  272. package/dist/schema/modules/group/core/administrators-group.js +0 -6
  273. package/dist/schema/modules/group/core/applications-group.d.ts +0 -1
  274. package/dist/schema/modules/group/core/applications-group.js +0 -6
  275. package/dist/schema/modules/group/core/index.d.ts +0 -3
  276. package/dist/schema/modules/group/core/index.js +0 -3
  277. package/dist/schema/modules/group/core/members-group.d.ts +0 -1
  278. package/dist/schema/modules/group/core/members-group.js +0 -6
  279. package/dist/schema/modules/group/functions/assign-member-to-group.js +0 -11
  280. package/dist/schema/modules/group/functions/unassign-member-from-group.js +0 -11
  281. package/dist/schema/modules/group/policies/belongs-to-group.d.ts +0 -1
  282. package/dist/schema/modules/group/policies/belongs-to-group.js +0 -5
  283. package/dist/schema/modules/user/functions/record-profile.js +0 -14
  284. package/dist/schema/modules/user/types/user-profile.d.ts +0 -7
  285. package/dist/schema/modules/user/types/user-profile.js +0 -7
  286. package/dist/schema/modules/view-access/core/index.d.ts +0 -1
  287. package/dist/schema/modules/view-access/core/index.js +0 -1
  288. package/dist/schema/modules/view-access/core/view-only-group.d.ts +0 -5
  289. package/dist/schema/modules/view-access/core/view-only-group.js +0 -10
  290. package/dist/schema/modules/view-access/functions/assign-views.d.ts +0 -16
  291. package/dist/schema/modules/view-access/functions/assign-views.js +0 -17
  292. package/dist/schema/modules/view-access/functions/index.d.ts +0 -1
  293. package/dist/schema/modules/view-access/functions/index.js +0 -1
  294. package/dist/schema/modules/view-access/types/index.js +0 -1
  295. package/dist/schema/modules/view-access/types/view-assignment.js +0 -16
  296. package/dist/schema/policies/administers-shell-class.js +0 -11
  297. package/dist/schema/policies/is-self.js +0 -5
  298. package/dist/schema/policies/owns-class.js +0 -7
  299. package/dist/schema/policies/uses-function.js +0 -5
  300. /package/dist/functions/group/{assign-member-to-group.js → assign-member.js} +0 -0
  301. /package/dist/functions/group/{unassign-member-from-group.js → unassign-member.js} +0 -0
@@ -1,22 +1,120 @@
1
1
  import { KernelSchema, schema } from '@astrale-os/sdk/schema';
2
2
  export declare const ORIGIN: 'shell.astrale.ai';
3
3
  declare const classes: {
4
+ readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
5
+ readonly depth: 0;
6
+ readonly abstract: false;
7
+ readonly extends: readonly [];
8
+ readonly properties: never;
9
+ readonly source: {
10
+ readonly as: "member";
11
+ readonly accepts: readonly (() => {
12
+ readonly kind: 'node';
13
+ readonly abstract: never;
14
+ readonly depth: never;
15
+ readonly properties: never;
16
+ readonly methods: never;
17
+ })[];
18
+ readonly outgoing: "0..*";
19
+ };
20
+ readonly target: {
21
+ readonly as: "group";
22
+ readonly accepts: readonly (() => {
23
+ readonly kind: 'node';
24
+ readonly abstract: never;
25
+ readonly depth: never;
26
+ readonly properties: never;
27
+ readonly methods: never;
28
+ })[];
29
+ readonly incoming: "0..*";
30
+ };
31
+ readonly constraints: Record<never, never>;
32
+ readonly effectiveProperties: never;
33
+ }>;
4
34
  readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
5
35
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
6
36
  readonly inheritance: "open";
7
- readonly policies: {
8
- readonly read: true;
9
- };
10
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
37
+ readonly abstract: false;
38
+ readonly description: "The account of one person in the workspace.";
39
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
11
40
  readonly properties: {
12
41
  readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
13
42
  readonly claimedEmail: import("zod").ZodOptional<import("zod").ZodString>;
14
43
  readonly claimedName: import("zod").ZodOptional<import("zod").ZodString>;
44
+ readonly suspended: import("zod").ZodOptional<import("zod").ZodBoolean>;
45
+ readonly directoryActive: import("zod").ZodOptional<import("zod").ZodBoolean>;
46
+ readonly name: import("@astrale-os/sdk/schema").AuthoredProperty<{
47
+ readonly type: "string";
48
+ readonly minLength: 1;
49
+ readonly maxLength: 100;
50
+ }, {
51
+ readonly required: false;
52
+ }>;
53
+ readonly email: import("@astrale-os/sdk/schema").AuthoredProperty<{
54
+ readonly type: "string";
55
+ readonly minLength: 3;
56
+ readonly maxLength: 320;
57
+ }, {
58
+ readonly required: false;
59
+ }>;
60
+ readonly givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
61
+ readonly type: 'string';
62
+ readonly minLength: 1;
63
+ readonly maxLength: number;
64
+ }, {
65
+ readonly required: false;
66
+ }>;
67
+ readonly familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
68
+ readonly type: 'string';
69
+ readonly minLength: 1;
70
+ readonly maxLength: number;
71
+ }, {
72
+ readonly required: false;
73
+ }>;
74
+ readonly directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
75
+ readonly type: 'string';
76
+ readonly minLength: 1;
77
+ readonly maxLength: number;
78
+ }, {
79
+ readonly required: false;
80
+ }>;
81
+ readonly externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
82
+ readonly type: 'string';
83
+ readonly minLength: 1;
84
+ readonly maxLength: number;
85
+ }, {
86
+ readonly required: false;
87
+ }>;
88
+ readonly attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
89
+ readonly type: "object";
90
+ readonly additionalProperties: true;
91
+ readonly maxProperties: 64;
92
+ }, {
93
+ readonly required: false;
94
+ }>;
95
+ };
96
+ readonly policies: {
97
+ readonly read: true;
98
+ readonly traverse: true;
15
99
  };
16
100
  readonly methods: {
101
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
102
+ email: string;
103
+ name: string;
104
+ givenName?: string | undefined;
105
+ familyName?: string | undefined;
106
+ attributes?: Record<string, unknown> | undefined;
107
+ }, {
108
+ readonly mode: 'value';
109
+ readonly value: {
110
+ user: string;
111
+ created: boolean;
112
+ };
113
+ }, "authorized", true, false, undefined, undefined>>;
17
114
  readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
115
+ email?: string | undefined;
18
116
  user: string;
19
- email: string;
117
+ profile?: "admin" | "member" | undefined;
20
118
  }, {
21
119
  readonly mode: 'value';
22
120
  readonly value: {
@@ -25,6 +123,59 @@ declare const classes: {
25
123
  state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
26
124
  };
27
125
  }, "authorized", true, false, undefined, undefined>>;
126
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
127
+ name?: string | undefined;
128
+ email?: string | undefined;
129
+ givenName?: string | null | undefined;
130
+ familyName?: string | null | undefined;
131
+ icon?: string | null | undefined;
132
+ attributes?: Record<string, unknown> | null | undefined;
133
+ }, {
134
+ readonly mode: 'value';
135
+ readonly value: Record<string, never>;
136
+ }, "authorized", false, false, undefined, undefined>>;
137
+ readonly updateProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
138
+ name?: string | undefined;
139
+ icon?: string | null | undefined;
140
+ }, {
141
+ readonly mode: 'value';
142
+ readonly value: Record<string, never>;
143
+ }, "authorized", false, false, undefined, undefined>>;
144
+ readonly deactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
145
+ readonly mode: 'value';
146
+ readonly value: Record<string, never>;
147
+ }, "authorized", false, false, undefined, undefined>>;
148
+ readonly reactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
149
+ readonly mode: 'value';
150
+ readonly value: Record<string, never>;
151
+ }, "authorized", false, false, undefined, undefined>>;
152
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
153
+ readonly mode: 'value';
154
+ readonly value: Record<string, never>;
155
+ }, "authorized", false, false, undefined, undefined>>;
156
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
157
+ directory: string;
158
+ externalId: string;
159
+ email: string;
160
+ name: string;
161
+ givenName?: string | undefined;
162
+ familyName?: string | undefined;
163
+ active: boolean;
164
+ }, {
165
+ readonly mode: 'value';
166
+ readonly value: {
167
+ user: string;
168
+ created: boolean;
169
+ adopted: boolean;
170
+ };
171
+ }, "authorized", true, false, undefined, undefined>>;
172
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
173
+ directory: string;
174
+ externalId: string;
175
+ }, {
176
+ readonly mode: 'value';
177
+ readonly value: Record<string, never>;
178
+ }, "authorized", true, false, undefined, undefined>>;
28
179
  readonly recordProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
29
180
  email?: string | undefined;
30
181
  displayName?: string | undefined;
@@ -34,14 +185,129 @@ declare const classes: {
34
185
  }, "authorized", false, false, undefined, undefined>>;
35
186
  };
36
187
  }>;
188
+ readonly UserProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
189
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
190
+ readonly inheritance: "final";
191
+ readonly abstract: false;
192
+ readonly description: "What others see of a person: name and email.";
193
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">];
194
+ readonly properties: {
195
+ givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
196
+ readonly type: 'string';
197
+ readonly minLength: 1;
198
+ readonly maxLength: number;
199
+ }, {
200
+ readonly required: false;
201
+ }>;
202
+ familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
203
+ readonly type: 'string';
204
+ readonly minLength: 1;
205
+ readonly maxLength: number;
206
+ }, {
207
+ readonly required: false;
208
+ }>;
209
+ email: import("@astrale-os/sdk/schema").AuthoredProperty<{
210
+ readonly type: "string";
211
+ readonly minLength: 3;
212
+ readonly maxLength: 100;
213
+ }, {
214
+ readonly required: false;
215
+ }>;
216
+ };
217
+ readonly unique: readonly [readonly ["email"]];
218
+ readonly policies: {
219
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
220
+ readonly traverse: true;
221
+ };
222
+ }>;
223
+ readonly user_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
224
+ readonly depth: 0;
225
+ readonly abstract: false;
226
+ readonly extends: readonly [];
227
+ readonly properties: never;
228
+ readonly source: {
229
+ readonly as: "user";
230
+ readonly accepts: readonly {
231
+ readonly kind: 'node';
232
+ readonly abstract: false;
233
+ readonly depth: 1;
234
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
235
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
236
+ }[];
237
+ readonly outgoing: "0..1";
238
+ };
239
+ readonly target: {
240
+ readonly as: "profile";
241
+ readonly accepts: readonly {
242
+ readonly kind: 'node';
243
+ readonly abstract: false;
244
+ readonly depth: 1;
245
+ readonly properties: "email" | "familyName" | "givenName" | "name";
246
+ readonly methods: never;
247
+ }[];
248
+ readonly incoming: "0..1";
249
+ };
250
+ readonly constraints: Record<never, never>;
251
+ readonly effectiveProperties: never;
252
+ }>;
37
253
  readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
38
254
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
39
255
  readonly inheritance: "open";
256
+ readonly abstract: false;
257
+ readonly description: "A set of accounts and groups; its members hold what it holds.";
258
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
259
+ readonly properties: {
260
+ directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
261
+ readonly type: 'string';
262
+ readonly minLength: 1;
263
+ readonly maxLength: 200;
264
+ }, {
265
+ readonly required: false;
266
+ }>;
267
+ externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
268
+ readonly type: 'string';
269
+ readonly minLength: 1;
270
+ readonly maxLength: 200;
271
+ }, {
272
+ readonly required: false;
273
+ }>;
274
+ attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
275
+ readonly type: "object";
276
+ readonly additionalProperties: true;
277
+ readonly maxProperties: 64;
278
+ }, {
279
+ readonly required: false;
280
+ }>;
281
+ };
40
282
  readonly policies: {
41
283
  readonly read: true;
284
+ readonly traverse: true;
42
285
  };
43
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
44
286
  readonly methods: {
287
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
288
+ name: string;
289
+ description?: string | undefined;
290
+ icon?: string | null | undefined;
291
+ attributes?: Record<string, unknown> | undefined;
292
+ }, {
293
+ readonly mode: 'value';
294
+ readonly value: {
295
+ group: string;
296
+ };
297
+ }, "authorized", true, false, undefined, undefined>>;
298
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
299
+ name?: string | undefined;
300
+ description?: string | null | undefined;
301
+ icon?: string | null | undefined;
302
+ attributes?: Record<string, unknown> | null | undefined;
303
+ }, {
304
+ readonly mode: 'value';
305
+ readonly value: Record<string, never>;
306
+ }, "authorized", false, false, undefined, undefined>>;
307
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
308
+ readonly mode: 'value';
309
+ readonly value: Record<string, never>;
310
+ }, "authorized", false, false, undefined, undefined>>;
45
311
  readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
46
312
  member: string;
47
313
  group: string;
@@ -56,38 +322,181 @@ declare const classes: {
56
322
  readonly mode: 'value';
57
323
  readonly value: Record<string, never>;
58
324
  }, "authorized", true, false, undefined, undefined>>;
325
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
326
+ directory: string;
327
+ externalId: string;
328
+ name: string;
329
+ }, {
330
+ readonly mode: 'value';
331
+ readonly value: {
332
+ group: string;
333
+ created: boolean;
334
+ };
335
+ }, "authorized", true, false, undefined, undefined>>;
336
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
337
+ directory: string;
338
+ externalId: string;
339
+ }, {
340
+ readonly mode: 'value';
341
+ readonly value: Record<string, never>;
342
+ }, "authorized", true, false, undefined, undefined>>;
59
343
  };
60
344
  }>;
61
- readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
345
+ readonly GroupProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
346
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
347
+ readonly inheritance: "final";
348
+ readonly abstract: false;
349
+ readonly description: "What others see of a group: name and description.";
350
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
351
+ readonly policies: {
352
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
353
+ readonly traverse: true;
354
+ };
355
+ }>;
356
+ readonly group_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
62
357
  readonly depth: 0;
63
358
  readonly abstract: false;
64
359
  readonly extends: readonly [];
65
360
  readonly properties: never;
66
361
  readonly source: {
67
- readonly as: "member";
68
- readonly accepts: readonly (() => {
362
+ readonly as: "group";
363
+ readonly accepts: readonly {
69
364
  readonly kind: 'node';
70
- readonly abstract: never;
71
- readonly depth: never;
72
- readonly properties: never;
73
- readonly methods: never;
74
- })[];
75
- readonly outgoing: "0..*";
365
+ readonly abstract: false;
366
+ readonly depth: 1;
367
+ readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
368
+ readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
369
+ }[];
370
+ readonly outgoing: "0..1";
76
371
  };
77
372
  readonly target: {
78
- readonly as: "group";
79
- readonly accepts: readonly (() => {
373
+ readonly as: "profile";
374
+ readonly accepts: readonly {
80
375
  readonly kind: 'node';
81
- readonly abstract: never;
82
- readonly depth: never;
83
- readonly properties: never;
376
+ readonly abstract: false;
377
+ readonly depth: 1;
378
+ readonly properties: "description" | "name";
84
379
  readonly methods: never;
85
- })[];
380
+ }[];
381
+ readonly incoming: "0..1";
382
+ };
383
+ readonly constraints: Record<never, never>;
384
+ readonly effectiveProperties: never;
385
+ }>;
386
+ readonly Invitation: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
387
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
388
+ readonly inheritance: "final";
389
+ readonly abstract: false;
390
+ readonly description: "One invitation of an account, until it is accepted, cancelled or expired.";
391
+ readonly properties: {
392
+ status: import("@astrale-os/sdk/schema").AuthoredProperty<{
393
+ readonly type: "string";
394
+ readonly enum: readonly ["pending", "accepted", "cancelled", "expired"];
395
+ }, {
396
+ readonly required?: boolean;
397
+ readonly description?: string;
398
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
399
+ }>;
400
+ expiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<{
401
+ readonly type: "string";
402
+ readonly minLength: 20;
403
+ readonly maxLength: 40;
404
+ }, {
405
+ readonly required?: boolean;
406
+ readonly description?: string;
407
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
408
+ }>;
409
+ execution: import("@astrale-os/sdk/schema").AuthoredProperty<{
410
+ readonly type: "string";
411
+ readonly minLength: 1;
412
+ readonly maxLength: 200;
413
+ }, {
414
+ readonly required?: boolean;
415
+ readonly description?: string;
416
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
417
+ }>;
418
+ round: import("@astrale-os/sdk/schema").AuthoredProperty<{
419
+ readonly type: "integer";
420
+ readonly minimum: 0;
421
+ }, {
422
+ readonly required?: boolean;
423
+ readonly description?: string;
424
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
425
+ }>;
426
+ };
427
+ readonly policies: {
428
+ readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
429
+ readonly traverse: true;
430
+ };
431
+ readonly methods: {
432
+ readonly send: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
433
+ user: string;
434
+ }, {
435
+ readonly mode: 'value';
436
+ readonly value: {
437
+ status: "accepted" | "cancelled" | "expired" | "pending";
438
+ };
439
+ }, "authorized", true, false, {
440
+ readonly durable: true;
441
+ }, undefined>>;
442
+ readonly resend: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
443
+ readonly mode: 'value';
444
+ readonly value: Record<string, never>;
445
+ }, "authorized", false, false, undefined, undefined>>;
446
+ readonly cancel: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
447
+ readonly mode: 'value';
448
+ readonly value: Record<string, never>;
449
+ }, "authorized", false, false, undefined, undefined>>;
450
+ readonly accept: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
451
+ iss: string;
452
+ sub: string;
453
+ }, {
454
+ readonly mode: 'value';
455
+ readonly value: Record<string, never>;
456
+ }, "authorized", false, false, undefined, undefined>>;
457
+ };
458
+ }>;
459
+ readonly invitation_user: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
460
+ readonly depth: 0;
461
+ readonly abstract: false;
462
+ readonly extends: readonly [];
463
+ readonly properties: never;
464
+ readonly source: {
465
+ readonly as: "invitation";
466
+ readonly accepts: readonly {
467
+ readonly kind: 'node';
468
+ readonly abstract: false;
469
+ readonly depth: 0;
470
+ readonly properties: "execution" | "expiresAt" | "round" | "status";
471
+ readonly methods: "accept" | "cancel" | "resend" | "send";
472
+ }[];
473
+ readonly outgoing: "0..1";
474
+ };
475
+ readonly target: {
476
+ readonly as: "user";
477
+ readonly accepts: readonly {
478
+ readonly kind: 'node';
479
+ readonly abstract: false;
480
+ readonly depth: 1;
481
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
482
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
483
+ }[];
86
484
  readonly incoming: "0..*";
87
485
  };
88
486
  readonly constraints: Record<never, never>;
89
487
  readonly effectiveProperties: never;
90
488
  }>;
489
+ readonly Role: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
490
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
491
+ readonly inheritance: "final";
492
+ readonly abstract: false;
493
+ readonly description: "A Role the Shell declares.";
494
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Role">];
495
+ readonly policies: {
496
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
497
+ readonly traverse: true;
498
+ };
499
+ }>;
91
500
  readonly Namespace: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
92
501
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
93
502
  readonly policies: {
@@ -150,13 +559,9 @@ declare const classes: {
150
559
  readonly extends: readonly [];
151
560
  readonly properties: never;
152
561
  readonly source: {
153
- readonly as: "holder";
154
- readonly accepts: readonly (() => {
155
- readonly kind: 'node';
156
- readonly abstract: never;
157
- readonly depth: never;
158
- readonly properties: never;
159
- readonly methods: never;
562
+ readonly as: "audience";
563
+ readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
564
+ readonly origin: "kernel.astrale.ai";
160
565
  })[];
161
566
  readonly outgoing: "0..*";
162
567
  };
@@ -179,22 +584,120 @@ declare const input: {
179
584
  readonly kernel: KernelSchema;
180
585
  };
181
586
  readonly classes: {
587
+ readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
588
+ readonly depth: 0;
589
+ readonly abstract: false;
590
+ readonly extends: readonly [];
591
+ readonly properties: never;
592
+ readonly source: {
593
+ readonly as: "member";
594
+ readonly accepts: readonly (() => {
595
+ readonly kind: 'node';
596
+ readonly abstract: never;
597
+ readonly depth: never;
598
+ readonly properties: never;
599
+ readonly methods: never;
600
+ })[];
601
+ readonly outgoing: "0..*";
602
+ };
603
+ readonly target: {
604
+ readonly as: "group";
605
+ readonly accepts: readonly (() => {
606
+ readonly kind: 'node';
607
+ readonly abstract: never;
608
+ readonly depth: never;
609
+ readonly properties: never;
610
+ readonly methods: never;
611
+ })[];
612
+ readonly incoming: "0..*";
613
+ };
614
+ readonly constraints: Record<never, never>;
615
+ readonly effectiveProperties: never;
616
+ }>;
182
617
  readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
183
618
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
184
619
  readonly inheritance: "open";
185
- readonly policies: {
186
- readonly read: true;
187
- };
188
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
620
+ readonly abstract: false;
621
+ readonly description: "The account of one person in the workspace.";
622
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
189
623
  readonly properties: {
190
624
  readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
191
625
  readonly claimedEmail: import("zod").ZodOptional<import("zod").ZodString>;
192
626
  readonly claimedName: import("zod").ZodOptional<import("zod").ZodString>;
627
+ readonly suspended: import("zod").ZodOptional<import("zod").ZodBoolean>;
628
+ readonly directoryActive: import("zod").ZodOptional<import("zod").ZodBoolean>;
629
+ readonly name: import("@astrale-os/sdk/schema").AuthoredProperty<{
630
+ readonly type: "string";
631
+ readonly minLength: 1;
632
+ readonly maxLength: 100;
633
+ }, {
634
+ readonly required: false;
635
+ }>;
636
+ readonly email: import("@astrale-os/sdk/schema").AuthoredProperty<{
637
+ readonly type: "string";
638
+ readonly minLength: 3;
639
+ readonly maxLength: 320;
640
+ }, {
641
+ readonly required: false;
642
+ }>;
643
+ readonly givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
644
+ readonly type: 'string';
645
+ readonly minLength: 1;
646
+ readonly maxLength: number;
647
+ }, {
648
+ readonly required: false;
649
+ }>;
650
+ readonly familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
651
+ readonly type: 'string';
652
+ readonly minLength: 1;
653
+ readonly maxLength: number;
654
+ }, {
655
+ readonly required: false;
656
+ }>;
657
+ readonly directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
658
+ readonly type: 'string';
659
+ readonly minLength: 1;
660
+ readonly maxLength: number;
661
+ }, {
662
+ readonly required: false;
663
+ }>;
664
+ readonly externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
665
+ readonly type: 'string';
666
+ readonly minLength: 1;
667
+ readonly maxLength: number;
668
+ }, {
669
+ readonly required: false;
670
+ }>;
671
+ readonly attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
672
+ readonly type: "object";
673
+ readonly additionalProperties: true;
674
+ readonly maxProperties: 64;
675
+ }, {
676
+ readonly required: false;
677
+ }>;
678
+ };
679
+ readonly policies: {
680
+ readonly read: true;
681
+ readonly traverse: true;
193
682
  };
194
683
  readonly methods: {
684
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
685
+ email: string;
686
+ name: string;
687
+ givenName?: string | undefined;
688
+ familyName?: string | undefined;
689
+ attributes?: Record<string, unknown> | undefined;
690
+ }, {
691
+ readonly mode: 'value';
692
+ readonly value: {
693
+ user: string;
694
+ created: boolean;
695
+ };
696
+ }, "authorized", true, false, undefined, undefined>>;
195
697
  readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
698
+ email?: string | undefined;
196
699
  user: string;
197
- email: string;
700
+ profile?: "admin" | "member" | undefined;
198
701
  }, {
199
702
  readonly mode: 'value';
200
703
  readonly value: {
@@ -203,6 +706,59 @@ declare const input: {
203
706
  state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
204
707
  };
205
708
  }, "authorized", true, false, undefined, undefined>>;
709
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
710
+ name?: string | undefined;
711
+ email?: string | undefined;
712
+ givenName?: string | null | undefined;
713
+ familyName?: string | null | undefined;
714
+ icon?: string | null | undefined;
715
+ attributes?: Record<string, unknown> | null | undefined;
716
+ }, {
717
+ readonly mode: 'value';
718
+ readonly value: Record<string, never>;
719
+ }, "authorized", false, false, undefined, undefined>>;
720
+ readonly updateProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
721
+ name?: string | undefined;
722
+ icon?: string | null | undefined;
723
+ }, {
724
+ readonly mode: 'value';
725
+ readonly value: Record<string, never>;
726
+ }, "authorized", false, false, undefined, undefined>>;
727
+ readonly deactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
728
+ readonly mode: 'value';
729
+ readonly value: Record<string, never>;
730
+ }, "authorized", false, false, undefined, undefined>>;
731
+ readonly reactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
732
+ readonly mode: 'value';
733
+ readonly value: Record<string, never>;
734
+ }, "authorized", false, false, undefined, undefined>>;
735
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
736
+ readonly mode: 'value';
737
+ readonly value: Record<string, never>;
738
+ }, "authorized", false, false, undefined, undefined>>;
739
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
740
+ directory: string;
741
+ externalId: string;
742
+ email: string;
743
+ name: string;
744
+ givenName?: string | undefined;
745
+ familyName?: string | undefined;
746
+ active: boolean;
747
+ }, {
748
+ readonly mode: 'value';
749
+ readonly value: {
750
+ user: string;
751
+ created: boolean;
752
+ adopted: boolean;
753
+ };
754
+ }, "authorized", true, false, undefined, undefined>>;
755
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
756
+ directory: string;
757
+ externalId: string;
758
+ }, {
759
+ readonly mode: 'value';
760
+ readonly value: Record<string, never>;
761
+ }, "authorized", true, false, undefined, undefined>>;
206
762
  readonly recordProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
207
763
  email?: string | undefined;
208
764
  displayName?: string | undefined;
@@ -212,14 +768,129 @@ declare const input: {
212
768
  }, "authorized", false, false, undefined, undefined>>;
213
769
  };
214
770
  }>;
771
+ readonly UserProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
772
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
773
+ readonly inheritance: "final";
774
+ readonly abstract: false;
775
+ readonly description: "What others see of a person: name and email.";
776
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">];
777
+ readonly properties: {
778
+ givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
779
+ readonly type: 'string';
780
+ readonly minLength: 1;
781
+ readonly maxLength: number;
782
+ }, {
783
+ readonly required: false;
784
+ }>;
785
+ familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
786
+ readonly type: 'string';
787
+ readonly minLength: 1;
788
+ readonly maxLength: number;
789
+ }, {
790
+ readonly required: false;
791
+ }>;
792
+ email: import("@astrale-os/sdk/schema").AuthoredProperty<{
793
+ readonly type: "string";
794
+ readonly minLength: 3;
795
+ readonly maxLength: 100;
796
+ }, {
797
+ readonly required: false;
798
+ }>;
799
+ };
800
+ readonly unique: readonly [readonly ["email"]];
801
+ readonly policies: {
802
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
803
+ readonly traverse: true;
804
+ };
805
+ }>;
806
+ readonly user_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
807
+ readonly depth: 0;
808
+ readonly abstract: false;
809
+ readonly extends: readonly [];
810
+ readonly properties: never;
811
+ readonly source: {
812
+ readonly as: "user";
813
+ readonly accepts: readonly {
814
+ readonly kind: 'node';
815
+ readonly abstract: false;
816
+ readonly depth: 1;
817
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
818
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
819
+ }[];
820
+ readonly outgoing: "0..1";
821
+ };
822
+ readonly target: {
823
+ readonly as: "profile";
824
+ readonly accepts: readonly {
825
+ readonly kind: 'node';
826
+ readonly abstract: false;
827
+ readonly depth: 1;
828
+ readonly properties: "email" | "familyName" | "givenName" | "name";
829
+ readonly methods: never;
830
+ }[];
831
+ readonly incoming: "0..1";
832
+ };
833
+ readonly constraints: Record<never, never>;
834
+ readonly effectiveProperties: never;
835
+ }>;
215
836
  readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
216
837
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
217
838
  readonly inheritance: "open";
839
+ readonly abstract: false;
840
+ readonly description: "A set of accounts and groups; its members hold what it holds.";
841
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
842
+ readonly properties: {
843
+ directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
844
+ readonly type: 'string';
845
+ readonly minLength: 1;
846
+ readonly maxLength: 200;
847
+ }, {
848
+ readonly required: false;
849
+ }>;
850
+ externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
851
+ readonly type: 'string';
852
+ readonly minLength: 1;
853
+ readonly maxLength: 200;
854
+ }, {
855
+ readonly required: false;
856
+ }>;
857
+ attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
858
+ readonly type: "object";
859
+ readonly additionalProperties: true;
860
+ readonly maxProperties: 64;
861
+ }, {
862
+ readonly required: false;
863
+ }>;
864
+ };
218
865
  readonly policies: {
219
866
  readonly read: true;
867
+ readonly traverse: true;
220
868
  };
221
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
222
869
  readonly methods: {
870
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
871
+ name: string;
872
+ description?: string | undefined;
873
+ icon?: string | null | undefined;
874
+ attributes?: Record<string, unknown> | undefined;
875
+ }, {
876
+ readonly mode: 'value';
877
+ readonly value: {
878
+ group: string;
879
+ };
880
+ }, "authorized", true, false, undefined, undefined>>;
881
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
882
+ name?: string | undefined;
883
+ description?: string | null | undefined;
884
+ icon?: string | null | undefined;
885
+ attributes?: Record<string, unknown> | null | undefined;
886
+ }, {
887
+ readonly mode: 'value';
888
+ readonly value: Record<string, never>;
889
+ }, "authorized", false, false, undefined, undefined>>;
890
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
891
+ readonly mode: 'value';
892
+ readonly value: Record<string, never>;
893
+ }, "authorized", false, false, undefined, undefined>>;
223
894
  readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
224
895
  member: string;
225
896
  group: string;
@@ -234,38 +905,181 @@ declare const input: {
234
905
  readonly mode: 'value';
235
906
  readonly value: Record<string, never>;
236
907
  }, "authorized", true, false, undefined, undefined>>;
908
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
909
+ directory: string;
910
+ externalId: string;
911
+ name: string;
912
+ }, {
913
+ readonly mode: 'value';
914
+ readonly value: {
915
+ group: string;
916
+ created: boolean;
917
+ };
918
+ }, "authorized", true, false, undefined, undefined>>;
919
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
920
+ directory: string;
921
+ externalId: string;
922
+ }, {
923
+ readonly mode: 'value';
924
+ readonly value: Record<string, never>;
925
+ }, "authorized", true, false, undefined, undefined>>;
237
926
  };
238
927
  }>;
239
- readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
928
+ readonly GroupProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
929
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
930
+ readonly inheritance: "final";
931
+ readonly abstract: false;
932
+ readonly description: "What others see of a group: name and description.";
933
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
934
+ readonly policies: {
935
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
936
+ readonly traverse: true;
937
+ };
938
+ }>;
939
+ readonly group_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
240
940
  readonly depth: 0;
241
941
  readonly abstract: false;
242
942
  readonly extends: readonly [];
243
943
  readonly properties: never;
244
944
  readonly source: {
245
- readonly as: "member";
246
- readonly accepts: readonly (() => {
945
+ readonly as: "group";
946
+ readonly accepts: readonly {
247
947
  readonly kind: 'node';
248
- readonly abstract: never;
249
- readonly depth: never;
250
- readonly properties: never;
251
- readonly methods: never;
252
- })[];
253
- readonly outgoing: "0..*";
948
+ readonly abstract: false;
949
+ readonly depth: 1;
950
+ readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
951
+ readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
952
+ }[];
953
+ readonly outgoing: "0..1";
254
954
  };
255
955
  readonly target: {
256
- readonly as: "group";
257
- readonly accepts: readonly (() => {
956
+ readonly as: "profile";
957
+ readonly accepts: readonly {
258
958
  readonly kind: 'node';
259
- readonly abstract: never;
260
- readonly depth: never;
261
- readonly properties: never;
959
+ readonly abstract: false;
960
+ readonly depth: 1;
961
+ readonly properties: "description" | "name";
262
962
  readonly methods: never;
263
- })[];
963
+ }[];
964
+ readonly incoming: "0..1";
965
+ };
966
+ readonly constraints: Record<never, never>;
967
+ readonly effectiveProperties: never;
968
+ }>;
969
+ readonly Invitation: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
970
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
971
+ readonly inheritance: "final";
972
+ readonly abstract: false;
973
+ readonly description: "One invitation of an account, until it is accepted, cancelled or expired.";
974
+ readonly properties: {
975
+ status: import("@astrale-os/sdk/schema").AuthoredProperty<{
976
+ readonly type: "string";
977
+ readonly enum: readonly ["pending", "accepted", "cancelled", "expired"];
978
+ }, {
979
+ readonly required?: boolean;
980
+ readonly description?: string;
981
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
982
+ }>;
983
+ expiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<{
984
+ readonly type: "string";
985
+ readonly minLength: 20;
986
+ readonly maxLength: 40;
987
+ }, {
988
+ readonly required?: boolean;
989
+ readonly description?: string;
990
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
991
+ }>;
992
+ execution: import("@astrale-os/sdk/schema").AuthoredProperty<{
993
+ readonly type: "string";
994
+ readonly minLength: 1;
995
+ readonly maxLength: 200;
996
+ }, {
997
+ readonly required?: boolean;
998
+ readonly description?: string;
999
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1000
+ }>;
1001
+ round: import("@astrale-os/sdk/schema").AuthoredProperty<{
1002
+ readonly type: "integer";
1003
+ readonly minimum: 0;
1004
+ }, {
1005
+ readonly required?: boolean;
1006
+ readonly description?: string;
1007
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1008
+ }>;
1009
+ };
1010
+ readonly policies: {
1011
+ readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1012
+ readonly traverse: true;
1013
+ };
1014
+ readonly methods: {
1015
+ readonly send: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1016
+ user: string;
1017
+ }, {
1018
+ readonly mode: 'value';
1019
+ readonly value: {
1020
+ status: "accepted" | "cancelled" | "expired" | "pending";
1021
+ };
1022
+ }, "authorized", true, false, {
1023
+ readonly durable: true;
1024
+ }, undefined>>;
1025
+ readonly resend: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1026
+ readonly mode: 'value';
1027
+ readonly value: Record<string, never>;
1028
+ }, "authorized", false, false, undefined, undefined>>;
1029
+ readonly cancel: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1030
+ readonly mode: 'value';
1031
+ readonly value: Record<string, never>;
1032
+ }, "authorized", false, false, undefined, undefined>>;
1033
+ readonly accept: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1034
+ iss: string;
1035
+ sub: string;
1036
+ }, {
1037
+ readonly mode: 'value';
1038
+ readonly value: Record<string, never>;
1039
+ }, "authorized", false, false, undefined, undefined>>;
1040
+ };
1041
+ }>;
1042
+ readonly invitation_user: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1043
+ readonly depth: 0;
1044
+ readonly abstract: false;
1045
+ readonly extends: readonly [];
1046
+ readonly properties: never;
1047
+ readonly source: {
1048
+ readonly as: "invitation";
1049
+ readonly accepts: readonly {
1050
+ readonly kind: 'node';
1051
+ readonly abstract: false;
1052
+ readonly depth: 0;
1053
+ readonly properties: "execution" | "expiresAt" | "round" | "status";
1054
+ readonly methods: "accept" | "cancel" | "resend" | "send";
1055
+ }[];
1056
+ readonly outgoing: "0..1";
1057
+ };
1058
+ readonly target: {
1059
+ readonly as: "user";
1060
+ readonly accepts: readonly {
1061
+ readonly kind: 'node';
1062
+ readonly abstract: false;
1063
+ readonly depth: 1;
1064
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
1065
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
1066
+ }[];
264
1067
  readonly incoming: "0..*";
265
1068
  };
266
1069
  readonly constraints: Record<never, never>;
267
1070
  readonly effectiveProperties: never;
268
1071
  }>;
1072
+ readonly Role: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
1073
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
1074
+ readonly inheritance: "final";
1075
+ readonly abstract: false;
1076
+ readonly description: "A Role the Shell declares.";
1077
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Role">];
1078
+ readonly policies: {
1079
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1080
+ readonly traverse: true;
1081
+ };
1082
+ }>;
269
1083
  readonly Namespace: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
270
1084
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
271
1085
  readonly policies: {
@@ -328,13 +1142,9 @@ declare const input: {
328
1142
  readonly extends: readonly [];
329
1143
  readonly properties: never;
330
1144
  readonly source: {
331
- readonly as: "holder";
332
- readonly accepts: readonly (() => {
333
- readonly kind: 'node';
334
- readonly abstract: never;
335
- readonly depth: never;
336
- readonly properties: never;
337
- readonly methods: never;
1145
+ readonly as: "audience";
1146
+ readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
1147
+ readonly origin: "kernel.astrale.ai";
338
1148
  })[];
339
1149
  readonly outgoing: "0..*";
340
1150
  };
@@ -370,6 +1180,26 @@ declare const input: {
370
1180
  readonly mode: 'value';
371
1181
  readonly value: Record<string, never>;
372
1182
  }, "authorized", false, false, undefined, undefined>>;
1183
+ readonly legacyMigrateAccounts: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1184
+ readonly mode: 'value';
1185
+ readonly value: {
1186
+ migrated: number;
1187
+ conflicts: {
1188
+ user: string;
1189
+ email: string;
1190
+ }[];
1191
+ profiles: number;
1192
+ };
1193
+ }, "authorized", false, false, undefined, undefined>>;
1194
+ readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
1195
+ directory: string;
1196
+ }, {
1197
+ readonly mode: 'value';
1198
+ readonly value: {
1199
+ users: number;
1200
+ groups: number;
1201
+ };
1202
+ }, "authorized", false, false, undefined, undefined>>;
373
1203
  };
374
1204
  readonly policies: {
375
1205
  readonly belongsToGroup: import("@astrale-os/sdk/schema").Policy;
@@ -377,17 +1207,34 @@ declare const input: {
377
1207
  readonly administersShellClass: import("@astrale-os/sdk/schema").Policy;
378
1208
  readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
379
1209
  readonly isSelf: import("@astrale-os/sdk/schema").Policy;
1210
+ readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
1211
+ readonly hasRole: import("@astrale-os/sdk/schema").Policy;
1212
+ readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
1213
+ readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
1214
+ readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
1215
+ readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
1216
+ readonly isGroupProfileSource: import("@astrale-os/sdk/schema").Policy;
380
1217
  };
381
1218
  readonly views: {
382
1219
  readonly application: import("@astrale-os/sdk/schema").View;
383
1220
  };
384
1221
  readonly core: {
385
1222
  readonly nodes: {
1223
+ readonly 'workspace.member': import("@astrale-os/sdk/schema").CoreNode;
1224
+ readonly 'workspace.admin': import("@astrale-os/sdk/schema").CoreNode;
1225
+ readonly 'user.reader': import("@astrale-os/sdk/schema").CoreNode;
1226
+ readonly 'user.writer': import("@astrale-os/sdk/schema").CoreNode;
1227
+ readonly 'group.reader': import("@astrale-os/sdk/schema").CoreNode;
1228
+ readonly 'group.writer': import("@astrale-os/sdk/schema").CoreNode;
1229
+ readonly 'directory.provisioner': import("@astrale-os/sdk/schema").CoreNode;
1230
+ readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
1231
+ readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
1232
+ readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
386
1233
  readonly admin: import("@astrale-os/sdk/schema").CoreNode;
387
- readonly applications: import("@astrale-os/sdk/schema").CoreNode;
388
1234
  readonly member: import("@astrale-os/sdk/schema").CoreNode;
389
- readonly views: import("@astrale-os/sdk/schema").CoreNode;
1235
+ readonly applications: import("@astrale-os/sdk/schema").CoreNode;
390
1236
  readonly 'view-only': import("@astrale-os/sdk/schema").CoreNode;
1237
+ readonly views: import("@astrale-os/sdk/schema").CoreNode;
391
1238
  };
392
1239
  };
393
1240
  };
@@ -396,22 +1243,120 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
396
1243
  readonly name: 'Shell';
397
1244
  readonly entrypoint: 'application';
398
1245
  readonly classes: {
1246
+ readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1247
+ readonly depth: 0;
1248
+ readonly abstract: false;
1249
+ readonly extends: readonly [];
1250
+ readonly properties: never;
1251
+ readonly source: {
1252
+ readonly as: "member";
1253
+ readonly accepts: readonly (() => {
1254
+ readonly kind: 'node';
1255
+ readonly abstract: never;
1256
+ readonly depth: never;
1257
+ readonly properties: never;
1258
+ readonly methods: never;
1259
+ })[];
1260
+ readonly outgoing: "0..*";
1261
+ };
1262
+ readonly target: {
1263
+ readonly as: "group";
1264
+ readonly accepts: readonly (() => {
1265
+ readonly kind: 'node';
1266
+ readonly abstract: never;
1267
+ readonly depth: never;
1268
+ readonly properties: never;
1269
+ readonly methods: never;
1270
+ })[];
1271
+ readonly incoming: "0..*";
1272
+ };
1273
+ readonly constraints: Record<never, never>;
1274
+ readonly effectiveProperties: never;
1275
+ }>;
399
1276
  readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
400
1277
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
401
1278
  readonly inheritance: "open";
402
- readonly policies: {
403
- readonly read: true;
404
- };
405
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
1279
+ readonly abstract: false;
1280
+ readonly description: "The account of one person in the workspace.";
1281
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
406
1282
  readonly properties: {
407
1283
  readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
408
1284
  readonly claimedEmail: import("zod").ZodOptional<import("zod").ZodString>;
409
1285
  readonly claimedName: import("zod").ZodOptional<import("zod").ZodString>;
1286
+ readonly suspended: import("zod").ZodOptional<import("zod").ZodBoolean>;
1287
+ readonly directoryActive: import("zod").ZodOptional<import("zod").ZodBoolean>;
1288
+ readonly name: import("@astrale-os/sdk/schema").AuthoredProperty<{
1289
+ readonly type: "string";
1290
+ readonly minLength: 1;
1291
+ readonly maxLength: 100;
1292
+ }, {
1293
+ readonly required: false;
1294
+ }>;
1295
+ readonly email: import("@astrale-os/sdk/schema").AuthoredProperty<{
1296
+ readonly type: "string";
1297
+ readonly minLength: 3;
1298
+ readonly maxLength: 320;
1299
+ }, {
1300
+ readonly required: false;
1301
+ }>;
1302
+ readonly givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1303
+ readonly type: 'string';
1304
+ readonly minLength: 1;
1305
+ readonly maxLength: number;
1306
+ }, {
1307
+ readonly required: false;
1308
+ }>;
1309
+ readonly familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1310
+ readonly type: 'string';
1311
+ readonly minLength: 1;
1312
+ readonly maxLength: number;
1313
+ }, {
1314
+ readonly required: false;
1315
+ }>;
1316
+ readonly directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
1317
+ readonly type: 'string';
1318
+ readonly minLength: 1;
1319
+ readonly maxLength: number;
1320
+ }, {
1321
+ readonly required: false;
1322
+ }>;
1323
+ readonly externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
1324
+ readonly type: 'string';
1325
+ readonly minLength: 1;
1326
+ readonly maxLength: number;
1327
+ }, {
1328
+ readonly required: false;
1329
+ }>;
1330
+ readonly attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
1331
+ readonly type: "object";
1332
+ readonly additionalProperties: true;
1333
+ readonly maxProperties: 64;
1334
+ }, {
1335
+ readonly required: false;
1336
+ }>;
1337
+ };
1338
+ readonly policies: {
1339
+ readonly read: true;
1340
+ readonly traverse: true;
410
1341
  };
411
1342
  readonly methods: {
1343
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1344
+ email: string;
1345
+ name: string;
1346
+ givenName?: string | undefined;
1347
+ familyName?: string | undefined;
1348
+ attributes?: Record<string, unknown> | undefined;
1349
+ }, {
1350
+ readonly mode: 'value';
1351
+ readonly value: {
1352
+ user: string;
1353
+ created: boolean;
1354
+ };
1355
+ }, "authorized", true, false, undefined, undefined>>;
412
1356
  readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1357
+ email?: string | undefined;
413
1358
  user: string;
414
- email: string;
1359
+ profile?: "admin" | "member" | undefined;
415
1360
  }, {
416
1361
  readonly mode: 'value';
417
1362
  readonly value: {
@@ -420,6 +1365,59 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
420
1365
  state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
421
1366
  };
422
1367
  }, "authorized", true, false, undefined, undefined>>;
1368
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1369
+ name?: string | undefined;
1370
+ email?: string | undefined;
1371
+ givenName?: string | null | undefined;
1372
+ familyName?: string | null | undefined;
1373
+ icon?: string | null | undefined;
1374
+ attributes?: Record<string, unknown> | null | undefined;
1375
+ }, {
1376
+ readonly mode: 'value';
1377
+ readonly value: Record<string, never>;
1378
+ }, "authorized", false, false, undefined, undefined>>;
1379
+ readonly updateProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1380
+ name?: string | undefined;
1381
+ icon?: string | null | undefined;
1382
+ }, {
1383
+ readonly mode: 'value';
1384
+ readonly value: Record<string, never>;
1385
+ }, "authorized", false, false, undefined, undefined>>;
1386
+ readonly deactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1387
+ readonly mode: 'value';
1388
+ readonly value: Record<string, never>;
1389
+ }, "authorized", false, false, undefined, undefined>>;
1390
+ readonly reactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1391
+ readonly mode: 'value';
1392
+ readonly value: Record<string, never>;
1393
+ }, "authorized", false, false, undefined, undefined>>;
1394
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1395
+ readonly mode: 'value';
1396
+ readonly value: Record<string, never>;
1397
+ }, "authorized", false, false, undefined, undefined>>;
1398
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1399
+ directory: string;
1400
+ externalId: string;
1401
+ email: string;
1402
+ name: string;
1403
+ givenName?: string | undefined;
1404
+ familyName?: string | undefined;
1405
+ active: boolean;
1406
+ }, {
1407
+ readonly mode: 'value';
1408
+ readonly value: {
1409
+ user: string;
1410
+ created: boolean;
1411
+ adopted: boolean;
1412
+ };
1413
+ }, "authorized", true, false, undefined, undefined>>;
1414
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1415
+ directory: string;
1416
+ externalId: string;
1417
+ }, {
1418
+ readonly mode: 'value';
1419
+ readonly value: Record<string, never>;
1420
+ }, "authorized", true, false, undefined, undefined>>;
423
1421
  readonly recordProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
424
1422
  email?: string | undefined;
425
1423
  displayName?: string | undefined;
@@ -429,14 +1427,129 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
429
1427
  }, "authorized", false, false, undefined, undefined>>;
430
1428
  };
431
1429
  }>;
1430
+ readonly UserProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
1431
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
1432
+ readonly inheritance: "final";
1433
+ readonly abstract: false;
1434
+ readonly description: "What others see of a person: name and email.";
1435
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">];
1436
+ readonly properties: {
1437
+ givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1438
+ readonly type: 'string';
1439
+ readonly minLength: 1;
1440
+ readonly maxLength: number;
1441
+ }, {
1442
+ readonly required: false;
1443
+ }>;
1444
+ familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1445
+ readonly type: 'string';
1446
+ readonly minLength: 1;
1447
+ readonly maxLength: number;
1448
+ }, {
1449
+ readonly required: false;
1450
+ }>;
1451
+ email: import("@astrale-os/sdk/schema").AuthoredProperty<{
1452
+ readonly type: "string";
1453
+ readonly minLength: 3;
1454
+ readonly maxLength: 100;
1455
+ }, {
1456
+ readonly required: false;
1457
+ }>;
1458
+ };
1459
+ readonly unique: readonly [readonly ["email"]];
1460
+ readonly policies: {
1461
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1462
+ readonly traverse: true;
1463
+ };
1464
+ }>;
1465
+ readonly user_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1466
+ readonly depth: 0;
1467
+ readonly abstract: false;
1468
+ readonly extends: readonly [];
1469
+ readonly properties: never;
1470
+ readonly source: {
1471
+ readonly as: "user";
1472
+ readonly accepts: readonly {
1473
+ readonly kind: 'node';
1474
+ readonly abstract: false;
1475
+ readonly depth: 1;
1476
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
1477
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
1478
+ }[];
1479
+ readonly outgoing: "0..1";
1480
+ };
1481
+ readonly target: {
1482
+ readonly as: "profile";
1483
+ readonly accepts: readonly {
1484
+ readonly kind: 'node';
1485
+ readonly abstract: false;
1486
+ readonly depth: 1;
1487
+ readonly properties: "email" | "familyName" | "givenName" | "name";
1488
+ readonly methods: never;
1489
+ }[];
1490
+ readonly incoming: "0..1";
1491
+ };
1492
+ readonly constraints: Record<never, never>;
1493
+ readonly effectiveProperties: never;
1494
+ }>;
432
1495
  readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
433
1496
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
434
1497
  readonly inheritance: "open";
1498
+ readonly abstract: false;
1499
+ readonly description: "A set of accounts and groups; its members hold what it holds.";
1500
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
1501
+ readonly properties: {
1502
+ directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
1503
+ readonly type: 'string';
1504
+ readonly minLength: 1;
1505
+ readonly maxLength: 200;
1506
+ }, {
1507
+ readonly required: false;
1508
+ }>;
1509
+ externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
1510
+ readonly type: 'string';
1511
+ readonly minLength: 1;
1512
+ readonly maxLength: 200;
1513
+ }, {
1514
+ readonly required: false;
1515
+ }>;
1516
+ attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
1517
+ readonly type: "object";
1518
+ readonly additionalProperties: true;
1519
+ readonly maxProperties: 64;
1520
+ }, {
1521
+ readonly required: false;
1522
+ }>;
1523
+ };
435
1524
  readonly policies: {
436
1525
  readonly read: true;
1526
+ readonly traverse: true;
437
1527
  };
438
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
439
1528
  readonly methods: {
1529
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1530
+ name: string;
1531
+ description?: string | undefined;
1532
+ icon?: string | null | undefined;
1533
+ attributes?: Record<string, unknown> | undefined;
1534
+ }, {
1535
+ readonly mode: 'value';
1536
+ readonly value: {
1537
+ group: string;
1538
+ };
1539
+ }, "authorized", true, false, undefined, undefined>>;
1540
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1541
+ name?: string | undefined;
1542
+ description?: string | null | undefined;
1543
+ icon?: string | null | undefined;
1544
+ attributes?: Record<string, unknown> | null | undefined;
1545
+ }, {
1546
+ readonly mode: 'value';
1547
+ readonly value: Record<string, never>;
1548
+ }, "authorized", false, false, undefined, undefined>>;
1549
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1550
+ readonly mode: 'value';
1551
+ readonly value: Record<string, never>;
1552
+ }, "authorized", false, false, undefined, undefined>>;
440
1553
  readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
441
1554
  member: string;
442
1555
  group: string;
@@ -451,38 +1564,181 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
451
1564
  readonly mode: 'value';
452
1565
  readonly value: Record<string, never>;
453
1566
  }, "authorized", true, false, undefined, undefined>>;
1567
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1568
+ directory: string;
1569
+ externalId: string;
1570
+ name: string;
1571
+ }, {
1572
+ readonly mode: 'value';
1573
+ readonly value: {
1574
+ group: string;
1575
+ created: boolean;
1576
+ };
1577
+ }, "authorized", true, false, undefined, undefined>>;
1578
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1579
+ directory: string;
1580
+ externalId: string;
1581
+ }, {
1582
+ readonly mode: 'value';
1583
+ readonly value: Record<string, never>;
1584
+ }, "authorized", true, false, undefined, undefined>>;
454
1585
  };
455
1586
  }>;
456
- readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1587
+ readonly GroupProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
1588
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
1589
+ readonly inheritance: "final";
1590
+ readonly abstract: false;
1591
+ readonly description: "What others see of a group: name and description.";
1592
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
1593
+ readonly policies: {
1594
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1595
+ readonly traverse: true;
1596
+ };
1597
+ }>;
1598
+ readonly group_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
457
1599
  readonly depth: 0;
458
1600
  readonly abstract: false;
459
1601
  readonly extends: readonly [];
460
1602
  readonly properties: never;
461
1603
  readonly source: {
462
- readonly as: "member";
463
- readonly accepts: readonly (() => {
1604
+ readonly as: "group";
1605
+ readonly accepts: readonly {
464
1606
  readonly kind: 'node';
465
- readonly abstract: never;
466
- readonly depth: never;
467
- readonly properties: never;
468
- readonly methods: never;
469
- })[];
470
- readonly outgoing: "0..*";
1607
+ readonly abstract: false;
1608
+ readonly depth: 1;
1609
+ readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
1610
+ readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
1611
+ }[];
1612
+ readonly outgoing: "0..1";
471
1613
  };
472
1614
  readonly target: {
473
- readonly as: "group";
474
- readonly accepts: readonly (() => {
1615
+ readonly as: "profile";
1616
+ readonly accepts: readonly {
475
1617
  readonly kind: 'node';
476
- readonly abstract: never;
477
- readonly depth: never;
478
- readonly properties: never;
1618
+ readonly abstract: false;
1619
+ readonly depth: 1;
1620
+ readonly properties: "description" | "name";
479
1621
  readonly methods: never;
480
- })[];
1622
+ }[];
1623
+ readonly incoming: "0..1";
1624
+ };
1625
+ readonly constraints: Record<never, never>;
1626
+ readonly effectiveProperties: never;
1627
+ }>;
1628
+ readonly Invitation: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
1629
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
1630
+ readonly inheritance: "final";
1631
+ readonly abstract: false;
1632
+ readonly description: "One invitation of an account, until it is accepted, cancelled or expired.";
1633
+ readonly properties: {
1634
+ status: import("@astrale-os/sdk/schema").AuthoredProperty<{
1635
+ readonly type: "string";
1636
+ readonly enum: readonly ["pending", "accepted", "cancelled", "expired"];
1637
+ }, {
1638
+ readonly required?: boolean;
1639
+ readonly description?: string;
1640
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1641
+ }>;
1642
+ expiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<{
1643
+ readonly type: "string";
1644
+ readonly minLength: 20;
1645
+ readonly maxLength: 40;
1646
+ }, {
1647
+ readonly required?: boolean;
1648
+ readonly description?: string;
1649
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1650
+ }>;
1651
+ execution: import("@astrale-os/sdk/schema").AuthoredProperty<{
1652
+ readonly type: "string";
1653
+ readonly minLength: 1;
1654
+ readonly maxLength: 200;
1655
+ }, {
1656
+ readonly required?: boolean;
1657
+ readonly description?: string;
1658
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1659
+ }>;
1660
+ round: import("@astrale-os/sdk/schema").AuthoredProperty<{
1661
+ readonly type: "integer";
1662
+ readonly minimum: 0;
1663
+ }, {
1664
+ readonly required?: boolean;
1665
+ readonly description?: string;
1666
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
1667
+ }>;
1668
+ };
1669
+ readonly policies: {
1670
+ readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1671
+ readonly traverse: true;
1672
+ };
1673
+ readonly methods: {
1674
+ readonly send: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1675
+ user: string;
1676
+ }, {
1677
+ readonly mode: 'value';
1678
+ readonly value: {
1679
+ status: "accepted" | "cancelled" | "expired" | "pending";
1680
+ };
1681
+ }, "authorized", true, false, {
1682
+ readonly durable: true;
1683
+ }, undefined>>;
1684
+ readonly resend: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1685
+ readonly mode: 'value';
1686
+ readonly value: Record<string, never>;
1687
+ }, "authorized", false, false, undefined, undefined>>;
1688
+ readonly cancel: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1689
+ readonly mode: 'value';
1690
+ readonly value: Record<string, never>;
1691
+ }, "authorized", false, false, undefined, undefined>>;
1692
+ readonly accept: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1693
+ iss: string;
1694
+ sub: string;
1695
+ }, {
1696
+ readonly mode: 'value';
1697
+ readonly value: Record<string, never>;
1698
+ }, "authorized", false, false, undefined, undefined>>;
1699
+ };
1700
+ }>;
1701
+ readonly invitation_user: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1702
+ readonly depth: 0;
1703
+ readonly abstract: false;
1704
+ readonly extends: readonly [];
1705
+ readonly properties: never;
1706
+ readonly source: {
1707
+ readonly as: "invitation";
1708
+ readonly accepts: readonly {
1709
+ readonly kind: 'node';
1710
+ readonly abstract: false;
1711
+ readonly depth: 0;
1712
+ readonly properties: "execution" | "expiresAt" | "round" | "status";
1713
+ readonly methods: "accept" | "cancel" | "resend" | "send";
1714
+ }[];
1715
+ readonly outgoing: "0..1";
1716
+ };
1717
+ readonly target: {
1718
+ readonly as: "user";
1719
+ readonly accepts: readonly {
1720
+ readonly kind: 'node';
1721
+ readonly abstract: false;
1722
+ readonly depth: 1;
1723
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
1724
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
1725
+ }[];
481
1726
  readonly incoming: "0..*";
482
1727
  };
483
1728
  readonly constraints: Record<never, never>;
484
1729
  readonly effectiveProperties: never;
485
1730
  }>;
1731
+ readonly Role: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
1732
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
1733
+ readonly inheritance: "final";
1734
+ readonly abstract: false;
1735
+ readonly description: "A Role the Shell declares.";
1736
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Role">];
1737
+ readonly policies: {
1738
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
1739
+ readonly traverse: true;
1740
+ };
1741
+ }>;
486
1742
  readonly Namespace: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
487
1743
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
488
1744
  readonly policies: {
@@ -545,13 +1801,9 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
545
1801
  readonly extends: readonly [];
546
1802
  readonly properties: never;
547
1803
  readonly source: {
548
- readonly as: "holder";
549
- readonly accepts: readonly (() => {
550
- readonly kind: 'node';
551
- readonly abstract: never;
552
- readonly depth: never;
553
- readonly properties: never;
554
- readonly methods: never;
1804
+ readonly as: "audience";
1805
+ readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
1806
+ readonly origin: "kernel.astrale.ai";
555
1807
  })[];
556
1808
  readonly outgoing: "0..*";
557
1809
  };
@@ -587,6 +1839,26 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
587
1839
  readonly mode: 'value';
588
1840
  readonly value: Record<string, never>;
589
1841
  }, "authorized", false, false, undefined, undefined>>;
1842
+ readonly legacyMigrateAccounts: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
1843
+ readonly mode: 'value';
1844
+ readonly value: {
1845
+ migrated: number;
1846
+ conflicts: {
1847
+ user: string;
1848
+ email: string;
1849
+ }[];
1850
+ profiles: number;
1851
+ };
1852
+ }, "authorized", false, false, undefined, undefined>>;
1853
+ readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
1854
+ directory: string;
1855
+ }, {
1856
+ readonly mode: 'value';
1857
+ readonly value: {
1858
+ users: number;
1859
+ groups: number;
1860
+ };
1861
+ }, "authorized", false, false, undefined, undefined>>;
590
1862
  };
591
1863
  readonly policies: {
592
1864
  readonly belongsToGroup: import("@astrale-os/sdk/schema").Policy;
@@ -594,17 +1866,34 @@ export declare const ShellSchema: import("@astrale-os/sdk/schema").AuthoredSchem
594
1866
  readonly administersShellClass: import("@astrale-os/sdk/schema").Policy;
595
1867
  readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
596
1868
  readonly isSelf: import("@astrale-os/sdk/schema").Policy;
1869
+ readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
1870
+ readonly hasRole: import("@astrale-os/sdk/schema").Policy;
1871
+ readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
1872
+ readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
1873
+ readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
1874
+ readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
1875
+ readonly isGroupProfileSource: import("@astrale-os/sdk/schema").Policy;
597
1876
  };
598
1877
  readonly views: {
599
1878
  readonly application: import("@astrale-os/sdk/schema").View;
600
1879
  };
601
1880
  readonly core: {
602
1881
  readonly nodes: {
1882
+ readonly 'workspace.member': import("@astrale-os/sdk/schema").CoreNode;
1883
+ readonly 'workspace.admin': import("@astrale-os/sdk/schema").CoreNode;
1884
+ readonly 'user.reader': import("@astrale-os/sdk/schema").CoreNode;
1885
+ readonly 'user.writer': import("@astrale-os/sdk/schema").CoreNode;
1886
+ readonly 'group.reader': import("@astrale-os/sdk/schema").CoreNode;
1887
+ readonly 'group.writer': import("@astrale-os/sdk/schema").CoreNode;
1888
+ readonly 'directory.provisioner': import("@astrale-os/sdk/schema").CoreNode;
1889
+ readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
1890
+ readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
1891
+ readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
603
1892
  readonly admin: import("@astrale-os/sdk/schema").CoreNode;
604
- readonly applications: import("@astrale-os/sdk/schema").CoreNode;
605
1893
  readonly member: import("@astrale-os/sdk/schema").CoreNode;
606
- readonly views: import("@astrale-os/sdk/schema").CoreNode;
1894
+ readonly applications: import("@astrale-os/sdk/schema").CoreNode;
607
1895
  readonly 'view-only': import("@astrale-os/sdk/schema").CoreNode;
1896
+ readonly views: import("@astrale-os/sdk/schema").CoreNode;
608
1897
  };
609
1898
  };
610
1899
  }, {
@@ -615,22 +1904,120 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
615
1904
  readonly name: 'Shell';
616
1905
  readonly entrypoint: 'application';
617
1906
  readonly classes: {
1907
+ readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
1908
+ readonly depth: 0;
1909
+ readonly abstract: false;
1910
+ readonly extends: readonly [];
1911
+ readonly properties: never;
1912
+ readonly source: {
1913
+ readonly as: "member";
1914
+ readonly accepts: readonly (() => {
1915
+ readonly kind: 'node';
1916
+ readonly abstract: never;
1917
+ readonly depth: never;
1918
+ readonly properties: never;
1919
+ readonly methods: never;
1920
+ })[];
1921
+ readonly outgoing: "0..*";
1922
+ };
1923
+ readonly target: {
1924
+ readonly as: "group";
1925
+ readonly accepts: readonly (() => {
1926
+ readonly kind: 'node';
1927
+ readonly abstract: never;
1928
+ readonly depth: never;
1929
+ readonly properties: never;
1930
+ readonly methods: never;
1931
+ })[];
1932
+ readonly incoming: "0..*";
1933
+ };
1934
+ readonly constraints: Record<never, never>;
1935
+ readonly effectiveProperties: never;
1936
+ }>;
618
1937
  readonly User: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
619
1938
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
620
1939
  readonly inheritance: "open";
621
- readonly policies: {
622
- readonly read: true;
623
- };
624
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">];
1940
+ readonly abstract: false;
1941
+ readonly description: "The account of one person in the workspace.";
1942
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
625
1943
  readonly properties: {
626
1944
  readonly creationKey: import("zod").ZodOptional<import("zod").ZodString>;
627
1945
  readonly claimedEmail: import("zod").ZodOptional<import("zod").ZodString>;
628
1946
  readonly claimedName: import("zod").ZodOptional<import("zod").ZodString>;
1947
+ readonly suspended: import("zod").ZodOptional<import("zod").ZodBoolean>;
1948
+ readonly directoryActive: import("zod").ZodOptional<import("zod").ZodBoolean>;
1949
+ readonly name: import("@astrale-os/sdk/schema").AuthoredProperty<{
1950
+ readonly type: "string";
1951
+ readonly minLength: 1;
1952
+ readonly maxLength: 100;
1953
+ }, {
1954
+ readonly required: false;
1955
+ }>;
1956
+ readonly email: import("@astrale-os/sdk/schema").AuthoredProperty<{
1957
+ readonly type: "string";
1958
+ readonly minLength: 3;
1959
+ readonly maxLength: 320;
1960
+ }, {
1961
+ readonly required: false;
1962
+ }>;
1963
+ readonly givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1964
+ readonly type: 'string';
1965
+ readonly minLength: 1;
1966
+ readonly maxLength: number;
1967
+ }, {
1968
+ readonly required: false;
1969
+ }>;
1970
+ readonly familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
1971
+ readonly type: 'string';
1972
+ readonly minLength: 1;
1973
+ readonly maxLength: number;
1974
+ }, {
1975
+ readonly required: false;
1976
+ }>;
1977
+ readonly directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
1978
+ readonly type: 'string';
1979
+ readonly minLength: 1;
1980
+ readonly maxLength: number;
1981
+ }, {
1982
+ readonly required: false;
1983
+ }>;
1984
+ readonly externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
1985
+ readonly type: 'string';
1986
+ readonly minLength: 1;
1987
+ readonly maxLength: number;
1988
+ }, {
1989
+ readonly required: false;
1990
+ }>;
1991
+ readonly attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
1992
+ readonly type: "object";
1993
+ readonly additionalProperties: true;
1994
+ readonly maxProperties: 64;
1995
+ }, {
1996
+ readonly required: false;
1997
+ }>;
1998
+ };
1999
+ readonly policies: {
2000
+ readonly read: true;
2001
+ readonly traverse: true;
629
2002
  };
630
2003
  readonly methods: {
2004
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2005
+ email: string;
2006
+ name: string;
2007
+ givenName?: string | undefined;
2008
+ familyName?: string | undefined;
2009
+ attributes?: Record<string, unknown> | undefined;
2010
+ }, {
2011
+ readonly mode: 'value';
2012
+ readonly value: {
2013
+ user: string;
2014
+ created: boolean;
2015
+ };
2016
+ }, "authorized", true, false, undefined, undefined>>;
631
2017
  readonly invite: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2018
+ email?: string | undefined;
632
2019
  user: string;
633
- email: string;
2020
+ profile?: "admin" | "member" | undefined;
634
2021
  }, {
635
2022
  readonly mode: 'value';
636
2023
  readonly value: {
@@ -639,6 +2026,59 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
639
2026
  state: "accepted" | "cancelled" | "completed" | "expired" | "failed" | "pending" | "registered" | "registering";
640
2027
  };
641
2028
  }, "authorized", true, false, undefined, undefined>>;
2029
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2030
+ name?: string | undefined;
2031
+ email?: string | undefined;
2032
+ givenName?: string | null | undefined;
2033
+ familyName?: string | null | undefined;
2034
+ icon?: string | null | undefined;
2035
+ attributes?: Record<string, unknown> | null | undefined;
2036
+ }, {
2037
+ readonly mode: 'value';
2038
+ readonly value: Record<string, never>;
2039
+ }, "authorized", false, false, undefined, undefined>>;
2040
+ readonly updateProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2041
+ name?: string | undefined;
2042
+ icon?: string | null | undefined;
2043
+ }, {
2044
+ readonly mode: 'value';
2045
+ readonly value: Record<string, never>;
2046
+ }, "authorized", false, false, undefined, undefined>>;
2047
+ readonly deactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2048
+ readonly mode: 'value';
2049
+ readonly value: Record<string, never>;
2050
+ }, "authorized", false, false, undefined, undefined>>;
2051
+ readonly reactivate: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2052
+ readonly mode: 'value';
2053
+ readonly value: Record<string, never>;
2054
+ }, "authorized", false, false, undefined, undefined>>;
2055
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2056
+ readonly mode: 'value';
2057
+ readonly value: Record<string, never>;
2058
+ }, "authorized", false, false, undefined, undefined>>;
2059
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2060
+ directory: string;
2061
+ externalId: string;
2062
+ email: string;
2063
+ name: string;
2064
+ givenName?: string | undefined;
2065
+ familyName?: string | undefined;
2066
+ active: boolean;
2067
+ }, {
2068
+ readonly mode: 'value';
2069
+ readonly value: {
2070
+ user: string;
2071
+ created: boolean;
2072
+ adopted: boolean;
2073
+ };
2074
+ }, "authorized", true, false, undefined, undefined>>;
2075
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2076
+ directory: string;
2077
+ externalId: string;
2078
+ }, {
2079
+ readonly mode: 'value';
2080
+ readonly value: Record<string, never>;
2081
+ }, "authorized", true, false, undefined, undefined>>;
642
2082
  readonly recordProfile: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
643
2083
  email?: string | undefined;
644
2084
  displayName?: string | undefined;
@@ -648,14 +2088,129 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
648
2088
  }, "authorized", false, false, undefined, undefined>>;
649
2089
  };
650
2090
  }>;
2091
+ readonly UserProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
2092
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
2093
+ readonly inheritance: "final";
2094
+ readonly abstract: false;
2095
+ readonly description: "What others see of a person: name and email.";
2096
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">];
2097
+ readonly properties: {
2098
+ givenName: import("@astrale-os/sdk/schema").AuthoredProperty<{
2099
+ readonly type: 'string';
2100
+ readonly minLength: 1;
2101
+ readonly maxLength: number;
2102
+ }, {
2103
+ readonly required: false;
2104
+ }>;
2105
+ familyName: import("@astrale-os/sdk/schema").AuthoredProperty<{
2106
+ readonly type: 'string';
2107
+ readonly minLength: 1;
2108
+ readonly maxLength: number;
2109
+ }, {
2110
+ readonly required: false;
2111
+ }>;
2112
+ email: import("@astrale-os/sdk/schema").AuthoredProperty<{
2113
+ readonly type: "string";
2114
+ readonly minLength: 3;
2115
+ readonly maxLength: 100;
2116
+ }, {
2117
+ readonly required: false;
2118
+ }>;
2119
+ };
2120
+ readonly unique: readonly [readonly ["email"]];
2121
+ readonly policies: {
2122
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
2123
+ readonly traverse: true;
2124
+ };
2125
+ }>;
2126
+ readonly user_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
2127
+ readonly depth: 0;
2128
+ readonly abstract: false;
2129
+ readonly extends: readonly [];
2130
+ readonly properties: never;
2131
+ readonly source: {
2132
+ readonly as: "user";
2133
+ readonly accepts: readonly {
2134
+ readonly kind: 'node';
2135
+ readonly abstract: false;
2136
+ readonly depth: 1;
2137
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
2138
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
2139
+ }[];
2140
+ readonly outgoing: "0..1";
2141
+ };
2142
+ readonly target: {
2143
+ readonly as: "profile";
2144
+ readonly accepts: readonly {
2145
+ readonly kind: 'node';
2146
+ readonly abstract: false;
2147
+ readonly depth: 1;
2148
+ readonly properties: "email" | "familyName" | "givenName" | "name";
2149
+ readonly methods: never;
2150
+ }[];
2151
+ readonly incoming: "0..1";
2152
+ };
2153
+ readonly constraints: Record<never, never>;
2154
+ readonly effectiveProperties: never;
2155
+ }>;
651
2156
  readonly Group: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
652
2157
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
653
2158
  readonly inheritance: "open";
2159
+ readonly abstract: false;
2160
+ readonly description: "A set of accounts and groups; its members hold what it holds.";
2161
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">, import("@astrale-os/sdk/schema").KernelClass<"Iconable">];
2162
+ readonly properties: {
2163
+ directory: import("@astrale-os/sdk/schema").AuthoredProperty<{
2164
+ readonly type: 'string';
2165
+ readonly minLength: 1;
2166
+ readonly maxLength: 200;
2167
+ }, {
2168
+ readonly required: false;
2169
+ }>;
2170
+ externalId: import("@astrale-os/sdk/schema").AuthoredProperty<{
2171
+ readonly type: 'string';
2172
+ readonly minLength: 1;
2173
+ readonly maxLength: 200;
2174
+ }, {
2175
+ readonly required: false;
2176
+ }>;
2177
+ attributes: import("@astrale-os/sdk/schema").AuthoredProperty<{
2178
+ readonly type: "object";
2179
+ readonly additionalProperties: true;
2180
+ readonly maxProperties: 64;
2181
+ }, {
2182
+ readonly required: false;
2183
+ }>;
2184
+ };
654
2185
  readonly policies: {
655
2186
  readonly read: true;
2187
+ readonly traverse: true;
656
2188
  };
657
- readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Identity">, import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
658
2189
  readonly methods: {
2190
+ readonly create: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2191
+ name: string;
2192
+ description?: string | undefined;
2193
+ icon?: string | null | undefined;
2194
+ attributes?: Record<string, unknown> | undefined;
2195
+ }, {
2196
+ readonly mode: 'value';
2197
+ readonly value: {
2198
+ group: string;
2199
+ };
2200
+ }, "authorized", true, false, undefined, undefined>>;
2201
+ readonly update: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2202
+ name?: string | undefined;
2203
+ description?: string | null | undefined;
2204
+ icon?: string | null | undefined;
2205
+ attributes?: Record<string, unknown> | null | undefined;
2206
+ }, {
2207
+ readonly mode: 'value';
2208
+ readonly value: Record<string, never>;
2209
+ }, "authorized", false, false, undefined, undefined>>;
2210
+ readonly delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2211
+ readonly mode: 'value';
2212
+ readonly value: Record<string, never>;
2213
+ }, "authorized", false, false, undefined, undefined>>;
659
2214
  readonly assignMember: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
660
2215
  member: string;
661
2216
  group: string;
@@ -670,38 +2225,181 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
670
2225
  readonly mode: 'value';
671
2226
  readonly value: Record<string, never>;
672
2227
  }, "authorized", true, false, undefined, undefined>>;
2228
+ readonly provision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2229
+ directory: string;
2230
+ externalId: string;
2231
+ name: string;
2232
+ }, {
2233
+ readonly mode: 'value';
2234
+ readonly value: {
2235
+ group: string;
2236
+ created: boolean;
2237
+ };
2238
+ }, "authorized", true, false, undefined, undefined>>;
2239
+ readonly deprovision: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2240
+ directory: string;
2241
+ externalId: string;
2242
+ }, {
2243
+ readonly mode: 'value';
2244
+ readonly value: Record<string, never>;
2245
+ }, "authorized", true, false, undefined, undefined>>;
673
2246
  };
674
2247
  }>;
675
- readonly member_of_group: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
2248
+ readonly GroupProfile: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
2249
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
2250
+ readonly inheritance: "final";
2251
+ readonly abstract: false;
2252
+ readonly description: "What others see of a group: name and description.";
2253
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Named">, import("@astrale-os/sdk/schema").KernelClass<"Descriptable">];
2254
+ readonly policies: {
2255
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
2256
+ readonly traverse: true;
2257
+ };
2258
+ }>;
2259
+ readonly group_profile: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
676
2260
  readonly depth: 0;
677
2261
  readonly abstract: false;
678
2262
  readonly extends: readonly [];
679
2263
  readonly properties: never;
680
2264
  readonly source: {
681
- readonly as: "member";
682
- readonly accepts: readonly (() => {
2265
+ readonly as: "group";
2266
+ readonly accepts: readonly {
683
2267
  readonly kind: 'node';
684
- readonly abstract: never;
685
- readonly depth: never;
686
- readonly properties: never;
687
- readonly methods: never;
688
- })[];
689
- readonly outgoing: "0..*";
2268
+ readonly abstract: false;
2269
+ readonly depth: 1;
2270
+ readonly properties: "attributes" | "description" | "directory" | "externalId" | "frozen" | "icon" | "iss" | "name" | "sub";
2271
+ readonly methods: "assignMember" | "create" | "delete" | "deprovision" | "provision" | "unassignMember" | "update";
2272
+ }[];
2273
+ readonly outgoing: "0..1";
690
2274
  };
691
2275
  readonly target: {
692
- readonly as: "group";
693
- readonly accepts: readonly (() => {
2276
+ readonly as: "profile";
2277
+ readonly accepts: readonly {
694
2278
  readonly kind: 'node';
695
- readonly abstract: never;
696
- readonly depth: never;
697
- readonly properties: never;
2279
+ readonly abstract: false;
2280
+ readonly depth: 1;
2281
+ readonly properties: "description" | "name";
698
2282
  readonly methods: never;
699
- })[];
2283
+ }[];
2284
+ readonly incoming: "0..1";
2285
+ };
2286
+ readonly constraints: Record<never, never>;
2287
+ readonly effectiveProperties: never;
2288
+ }>;
2289
+ readonly Invitation: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
2290
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
2291
+ readonly inheritance: "final";
2292
+ readonly abstract: false;
2293
+ readonly description: "One invitation of an account, until it is accepted, cancelled or expired.";
2294
+ readonly properties: {
2295
+ status: import("@astrale-os/sdk/schema").AuthoredProperty<{
2296
+ readonly type: "string";
2297
+ readonly enum: readonly ["pending", "accepted", "cancelled", "expired"];
2298
+ }, {
2299
+ readonly required?: boolean;
2300
+ readonly description?: string;
2301
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
2302
+ }>;
2303
+ expiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<{
2304
+ readonly type: "string";
2305
+ readonly minLength: 20;
2306
+ readonly maxLength: 40;
2307
+ }, {
2308
+ readonly required?: boolean;
2309
+ readonly description?: string;
2310
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
2311
+ }>;
2312
+ execution: import("@astrale-os/sdk/schema").AuthoredProperty<{
2313
+ readonly type: "string";
2314
+ readonly minLength: 1;
2315
+ readonly maxLength: 200;
2316
+ }, {
2317
+ readonly required?: boolean;
2318
+ readonly description?: string;
2319
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
2320
+ }>;
2321
+ round: import("@astrale-os/sdk/schema").AuthoredProperty<{
2322
+ readonly type: "integer";
2323
+ readonly minimum: 0;
2324
+ }, {
2325
+ readonly required?: boolean;
2326
+ readonly description?: string;
2327
+ readonly immutable?: import("@astrale-os/sdk/schema").PropertyImmutability;
2328
+ }>;
2329
+ };
2330
+ readonly policies: {
2331
+ readonly read: ({ check, ref }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
2332
+ readonly traverse: true;
2333
+ };
2334
+ readonly methods: {
2335
+ readonly send: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2336
+ user: string;
2337
+ }, {
2338
+ readonly mode: 'value';
2339
+ readonly value: {
2340
+ status: "accepted" | "cancelled" | "expired" | "pending";
2341
+ };
2342
+ }, "authorized", true, false, {
2343
+ readonly durable: true;
2344
+ }, undefined>>;
2345
+ readonly resend: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2346
+ readonly mode: 'value';
2347
+ readonly value: Record<string, never>;
2348
+ }, "authorized", false, false, undefined, undefined>>;
2349
+ readonly cancel: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2350
+ readonly mode: 'value';
2351
+ readonly value: Record<string, never>;
2352
+ }, "authorized", false, false, undefined, undefined>>;
2353
+ readonly accept: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2354
+ iss: string;
2355
+ sub: string;
2356
+ }, {
2357
+ readonly mode: 'value';
2358
+ readonly value: Record<string, never>;
2359
+ }, "authorized", false, false, undefined, undefined>>;
2360
+ };
2361
+ }>;
2362
+ readonly invitation_user: import("@astrale-os/sdk/schema").DirectedEdgeClass<{
2363
+ readonly depth: 0;
2364
+ readonly abstract: false;
2365
+ readonly extends: readonly [];
2366
+ readonly properties: never;
2367
+ readonly source: {
2368
+ readonly as: "invitation";
2369
+ readonly accepts: readonly {
2370
+ readonly kind: 'node';
2371
+ readonly abstract: false;
2372
+ readonly depth: 0;
2373
+ readonly properties: "execution" | "expiresAt" | "round" | "status";
2374
+ readonly methods: "accept" | "cancel" | "resend" | "send";
2375
+ }[];
2376
+ readonly outgoing: "0..1";
2377
+ };
2378
+ readonly target: {
2379
+ readonly as: "user";
2380
+ readonly accepts: readonly {
2381
+ readonly kind: 'node';
2382
+ readonly abstract: false;
2383
+ readonly depth: 1;
2384
+ readonly properties: "attributes" | "claimedEmail" | "claimedName" | "creationKey" | "directory" | "directoryActive" | "email" | "externalId" | "familyName" | "frozen" | "givenName" | "icon" | "iss" | "name" | "sub" | "suspended";
2385
+ readonly methods: "create" | "deactivate" | "delete" | "deprovision" | "invite" | "provision" | "reactivate" | "recordProfile" | "update" | "updateProfile";
2386
+ }[];
700
2387
  readonly incoming: "0..*";
701
2388
  };
702
2389
  readonly constraints: Record<never, never>;
703
2390
  readonly effectiveProperties: never;
704
2391
  }>;
2392
+ readonly Role: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
2393
+ readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
2394
+ readonly inheritance: "final";
2395
+ readonly abstract: false;
2396
+ readonly description: "A Role the Shell declares.";
2397
+ readonly extends: readonly [import("@astrale-os/sdk/schema").KernelClass<"Role">];
2398
+ readonly policies: {
2399
+ readonly read: ({ anyOf, check, ref, self }: import("@astrale-os/sdk/schema").ClassRuleContext) => import("@astrale-os/sdk/schema").PolicyCheckExpression<import("@astrale-os/sdk/schema").PolicyRef, import("@astrale-os/sdk/schema").ClassRuleObject>;
2400
+ readonly traverse: true;
2401
+ };
2402
+ }>;
705
2403
  readonly Namespace: import("@astrale-os/sdk/schema").AuthoredNodeClass<{
706
2404
  readonly icon: import("@astrale-os/sdk/schema").ClassIcon;
707
2405
  readonly policies: {
@@ -764,13 +2462,9 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
764
2462
  readonly extends: readonly [];
765
2463
  readonly properties: never;
766
2464
  readonly source: {
767
- readonly as: "holder";
768
- readonly accepts: readonly (() => {
769
- readonly kind: 'node';
770
- readonly abstract: never;
771
- readonly depth: never;
772
- readonly properties: never;
773
- readonly methods: never;
2465
+ readonly as: "audience";
2466
+ readonly accepts: readonly (import("@astrale-os/sdk/schema").ClassRef<"Identity"> & {
2467
+ readonly origin: "kernel.astrale.ai";
774
2468
  })[];
775
2469
  readonly outgoing: "0..*";
776
2470
  };
@@ -806,6 +2500,26 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
806
2500
  readonly mode: 'value';
807
2501
  readonly value: Record<string, never>;
808
2502
  }, "authorized", false, false, undefined, undefined>>;
2503
+ readonly legacyMigrateAccounts: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
2504
+ readonly mode: 'value';
2505
+ readonly value: {
2506
+ migrated: number;
2507
+ conflicts: {
2508
+ user: string;
2509
+ email: string;
2510
+ }[];
2511
+ profiles: number;
2512
+ };
2513
+ }, "authorized", false, false, undefined, undefined>>;
2514
+ readonly disconnectDirectory: import("@astrale-os/sdk/schema").Function<import("@astrale-os/sdk/schema").CallableProjection<{
2515
+ directory: string;
2516
+ }, {
2517
+ readonly mode: 'value';
2518
+ readonly value: {
2519
+ users: number;
2520
+ groups: number;
2521
+ };
2522
+ }, "authorized", false, false, undefined, undefined>>;
809
2523
  };
810
2524
  readonly policies: {
811
2525
  readonly belongsToGroup: import("@astrale-os/sdk/schema").Policy;
@@ -813,17 +2527,34 @@ export declare const S: schema.ResolvedDomainOf<import("@astrale-os/sdk/schema")
813
2527
  readonly administersShellClass: import("@astrale-os/sdk/schema").Policy;
814
2528
  readonly usesFunction: import("@astrale-os/sdk/schema").Policy;
815
2529
  readonly isSelf: import("@astrale-os/sdk/schema").Policy;
2530
+ readonly legacyOwnsMembershipGroup: import("@astrale-os/sdk/schema").Policy;
2531
+ readonly hasRole: import("@astrale-os/sdk/schema").Policy;
2532
+ readonly holdsViewAccess: import("@astrale-os/sdk/schema").Policy;
2533
+ readonly describesSubject: import("@astrale-os/sdk/schema").Policy;
2534
+ readonly isProfileSource: import("@astrale-os/sdk/schema").Policy;
2535
+ readonly describesGroupOfSubject: import("@astrale-os/sdk/schema").Policy;
2536
+ readonly isGroupProfileSource: import("@astrale-os/sdk/schema").Policy;
816
2537
  };
817
2538
  readonly views: {
818
2539
  readonly application: import("@astrale-os/sdk/schema").View;
819
2540
  };
820
2541
  readonly core: {
821
2542
  readonly nodes: {
2543
+ readonly 'workspace.member': import("@astrale-os/sdk/schema").CoreNode;
2544
+ readonly 'workspace.admin': import("@astrale-os/sdk/schema").CoreNode;
2545
+ readonly 'user.reader': import("@astrale-os/sdk/schema").CoreNode;
2546
+ readonly 'user.writer': import("@astrale-os/sdk/schema").CoreNode;
2547
+ readonly 'group.reader': import("@astrale-os/sdk/schema").CoreNode;
2548
+ readonly 'group.writer': import("@astrale-os/sdk/schema").CoreNode;
2549
+ readonly 'directory.provisioner': import("@astrale-os/sdk/schema").CoreNode;
2550
+ readonly 'user-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
2551
+ readonly 'user-profile.self-writer': import("@astrale-os/sdk/schema").CoreNode;
2552
+ readonly 'group-profile.reader': import("@astrale-os/sdk/schema").CoreNode;
822
2553
  readonly admin: import("@astrale-os/sdk/schema").CoreNode;
823
- readonly applications: import("@astrale-os/sdk/schema").CoreNode;
824
2554
  readonly member: import("@astrale-os/sdk/schema").CoreNode;
825
- readonly views: import("@astrale-os/sdk/schema").CoreNode;
2555
+ readonly applications: import("@astrale-os/sdk/schema").CoreNode;
826
2556
  readonly 'view-only': import("@astrale-os/sdk/schema").CoreNode;
2557
+ readonly views: import("@astrale-os/sdk/schema").CoreNode;
827
2558
  };
828
2559
  };
829
2560
  }, {