@astrale-domains/shell 0.1.6 → 0.1.8

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