@jini-ai/cms 0.1.0

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 (527) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +84 -0
  3. package/dist/content-types/agent-tools.d.ts +65 -0
  4. package/dist/content-types/agent-tools.d.ts.map +1 -0
  5. package/dist/content-types/agent-tools.js +172 -0
  6. package/dist/content-types/agent-tools.js.map +1 -0
  7. package/dist/content-types/cleanup.d.ts +118 -0
  8. package/dist/content-types/cleanup.d.ts.map +1 -0
  9. package/dist/content-types/cleanup.js +65 -0
  10. package/dist/content-types/cleanup.js.map +1 -0
  11. package/dist/content-types/errors.d.ts +90 -0
  12. package/dist/content-types/errors.d.ts.map +1 -0
  13. package/dist/content-types/errors.js +119 -0
  14. package/dist/content-types/errors.js.map +1 -0
  15. package/dist/content-types/field-defs.d.ts +25 -0
  16. package/dist/content-types/field-defs.d.ts.map +1 -0
  17. package/dist/content-types/field-defs.js +155 -0
  18. package/dist/content-types/field-defs.js.map +1 -0
  19. package/dist/content-types/index-provisioning.d.ts +94 -0
  20. package/dist/content-types/index-provisioning.d.ts.map +1 -0
  21. package/dist/content-types/index-provisioning.js +133 -0
  22. package/dist/content-types/index-provisioning.js.map +1 -0
  23. package/dist/content-types/index.d.ts +63 -0
  24. package/dist/content-types/index.d.ts.map +1 -0
  25. package/dist/content-types/index.js +36 -0
  26. package/dist/content-types/index.js.map +1 -0
  27. package/dist/content-types/lifecycle-dispatch.d.ts +38 -0
  28. package/dist/content-types/lifecycle-dispatch.d.ts.map +1 -0
  29. package/dist/content-types/lifecycle-dispatch.js +28 -0
  30. package/dist/content-types/lifecycle-dispatch.js.map +1 -0
  31. package/dist/content-types/lifecycle.d.ts +104 -0
  32. package/dist/content-types/lifecycle.d.ts.map +1 -0
  33. package/dist/content-types/lifecycle.js +143 -0
  34. package/dist/content-types/lifecycle.js.map +1 -0
  35. package/dist/content-types/list.d.ts +44 -0
  36. package/dist/content-types/list.d.ts.map +1 -0
  37. package/dist/content-types/list.js +13 -0
  38. package/dist/content-types/list.js.map +1 -0
  39. package/dist/content-types/repo.memory.d.ts +72 -0
  40. package/dist/content-types/repo.memory.d.ts.map +1 -0
  41. package/dist/content-types/repo.memory.js +71 -0
  42. package/dist/content-types/repo.memory.js.map +1 -0
  43. package/dist/content-types/tool-registrations.d.ts +65 -0
  44. package/dist/content-types/tool-registrations.d.ts.map +1 -0
  45. package/dist/content-types/tool-registrations.js +180 -0
  46. package/dist/content-types/tool-registrations.js.map +1 -0
  47. package/dist/content-types/types.d.ts +78 -0
  48. package/dist/content-types/types.d.ts.map +1 -0
  49. package/dist/content-types/types.js +32 -0
  50. package/dist/content-types/types.js.map +1 -0
  51. package/dist/content-types/write-service.d.ts +141 -0
  52. package/dist/content-types/write-service.d.ts.map +1 -0
  53. package/dist/content-types/write-service.js +180 -0
  54. package/dist/content-types/write-service.js.map +1 -0
  55. package/dist/core/commands/change-set.d.ts +98 -0
  56. package/dist/core/commands/change-set.d.ts.map +1 -0
  57. package/dist/core/commands/change-set.js +2 -0
  58. package/dist/core/commands/change-set.js.map +1 -0
  59. package/dist/core/commands/command.d.ts +168 -0
  60. package/dist/core/commands/command.d.ts.map +1 -0
  61. package/dist/core/commands/command.js +173 -0
  62. package/dist/core/commands/command.js.map +1 -0
  63. package/dist/core/index.d.ts +45 -0
  64. package/dist/core/index.d.ts.map +1 -0
  65. package/dist/core/index.js +43 -0
  66. package/dist/core/index.js.map +1 -0
  67. package/dist/core/ports.d.ts +139 -0
  68. package/dist/core/ports.d.ts.map +1 -0
  69. package/dist/core/ports.js +2 -0
  70. package/dist/core/ports.js.map +1 -0
  71. package/dist/core/tools/registration-kit.d.ts +308 -0
  72. package/dist/core/tools/registration-kit.d.ts.map +1 -0
  73. package/dist/core/tools/registration-kit.js +381 -0
  74. package/dist/core/tools/registration-kit.js.map +1 -0
  75. package/dist/entries/agent-tools.d.ts +78 -0
  76. package/dist/entries/agent-tools.d.ts.map +1 -0
  77. package/dist/entries/agent-tools.js +158 -0
  78. package/dist/entries/agent-tools.js.map +1 -0
  79. package/dist/entries/errors.d.ts +43 -0
  80. package/dist/entries/errors.d.ts.map +1 -0
  81. package/dist/entries/errors.js +59 -0
  82. package/dist/entries/errors.js.map +1 -0
  83. package/dist/entries/field-validation.d.ts +70 -0
  84. package/dist/entries/field-validation.d.ts.map +1 -0
  85. package/dist/entries/field-validation.js +87 -0
  86. package/dist/entries/field-validation.js.map +1 -0
  87. package/dist/entries/index.d.ts +55 -0
  88. package/dist/entries/index.d.ts.map +1 -0
  89. package/dist/entries/index.js +38 -0
  90. package/dist/entries/index.js.map +1 -0
  91. package/dist/entries/lifecycle-dispatch.d.ts +15 -0
  92. package/dist/entries/lifecycle-dispatch.d.ts.map +1 -0
  93. package/dist/entries/lifecycle-dispatch.js +16 -0
  94. package/dist/entries/lifecycle-dispatch.js.map +1 -0
  95. package/dist/entries/list.d.ts +47 -0
  96. package/dist/entries/list.d.ts.map +1 -0
  97. package/dist/entries/list.js +12 -0
  98. package/dist/entries/list.js.map +1 -0
  99. package/dist/entries/repo.memory.d.ts +64 -0
  100. package/dist/entries/repo.memory.d.ts.map +1 -0
  101. package/dist/entries/repo.memory.js +73 -0
  102. package/dist/entries/repo.memory.js.map +1 -0
  103. package/dist/entries/tool-registrations.d.ts +52 -0
  104. package/dist/entries/tool-registrations.d.ts.map +1 -0
  105. package/dist/entries/tool-registrations.js +141 -0
  106. package/dist/entries/tool-registrations.js.map +1 -0
  107. package/dist/entries/types.d.ts +55 -0
  108. package/dist/entries/types.d.ts.map +1 -0
  109. package/dist/entries/types.js +2 -0
  110. package/dist/entries/types.js.map +1 -0
  111. package/dist/entries/write-service.d.ts +202 -0
  112. package/dist/entries/write-service.d.ts.map +1 -0
  113. package/dist/entries/write-service.js +204 -0
  114. package/dist/entries/write-service.js.map +1 -0
  115. package/dist/identity/admin-crud-service.d.ts +252 -0
  116. package/dist/identity/admin-crud-service.d.ts.map +1 -0
  117. package/dist/identity/admin-crud-service.js +437 -0
  118. package/dist/identity/admin-crud-service.js.map +1 -0
  119. package/dist/identity/agent-tool-input.d.ts +58 -0
  120. package/dist/identity/agent-tool-input.d.ts.map +1 -0
  121. package/dist/identity/agent-tool-input.js +126 -0
  122. package/dist/identity/agent-tool-input.js.map +1 -0
  123. package/dist/identity/agent-tools.d.ts +101 -0
  124. package/dist/identity/agent-tools.d.ts.map +1 -0
  125. package/dist/identity/agent-tools.js +290 -0
  126. package/dist/identity/agent-tools.js.map +1 -0
  127. package/dist/identity/auth-service.d.ts +87 -0
  128. package/dist/identity/auth-service.d.ts.map +1 -0
  129. package/dist/identity/auth-service.js +141 -0
  130. package/dist/identity/auth-service.js.map +1 -0
  131. package/dist/identity/authorize.d.ts +90 -0
  132. package/dist/identity/authorize.d.ts.map +1 -0
  133. package/dist/identity/authorize.js +94 -0
  134. package/dist/identity/authorize.js.map +1 -0
  135. package/dist/identity/grant-service.d.ts +198 -0
  136. package/dist/identity/grant-service.d.ts.map +1 -0
  137. package/dist/identity/grant-service.js +361 -0
  138. package/dist/identity/grant-service.js.map +1 -0
  139. package/dist/identity/hasher.d.ts +39 -0
  140. package/dist/identity/hasher.d.ts.map +1 -0
  141. package/dist/identity/hasher.js +39 -0
  142. package/dist/identity/hasher.js.map +1 -0
  143. package/dist/identity/index.d.ts +59 -0
  144. package/dist/identity/index.d.ts.map +1 -0
  145. package/dist/identity/index.js +51 -0
  146. package/dist/identity/index.js.map +1 -0
  147. package/dist/identity/password-policy.d.ts +58 -0
  148. package/dist/identity/password-policy.d.ts.map +1 -0
  149. package/dist/identity/password-policy.js +67 -0
  150. package/dist/identity/password-policy.js.map +1 -0
  151. package/dist/identity/permission-migrations.d.ts +86 -0
  152. package/dist/identity/permission-migrations.d.ts.map +1 -0
  153. package/dist/identity/permission-migrations.js +67 -0
  154. package/dist/identity/permission-migrations.js.map +1 -0
  155. package/dist/identity/permissions.d.ts +35 -0
  156. package/dist/identity/permissions.d.ts.map +1 -0
  157. package/dist/identity/permissions.js +603 -0
  158. package/dist/identity/permissions.js.map +1 -0
  159. package/dist/identity/ports.d.ts +201 -0
  160. package/dist/identity/ports.d.ts.map +1 -0
  161. package/dist/identity/ports.js +2 -0
  162. package/dist/identity/ports.js.map +1 -0
  163. package/dist/identity/repo.memory.d.ts +164 -0
  164. package/dist/identity/repo.memory.d.ts.map +1 -0
  165. package/dist/identity/repo.memory.js +224 -0
  166. package/dist/identity/repo.memory.js.map +1 -0
  167. package/dist/identity/seed.d.ts +42 -0
  168. package/dist/identity/seed.d.ts.map +1 -0
  169. package/dist/identity/seed.js +277 -0
  170. package/dist/identity/seed.js.map +1 -0
  171. package/dist/identity/tool-registrations.d.ts +50 -0
  172. package/dist/identity/tool-registrations.d.ts.map +1 -0
  173. package/dist/identity/tool-registrations.js +419 -0
  174. package/dist/identity/tool-registrations.js.map +1 -0
  175. package/dist/identity/types.d.ts +185 -0
  176. package/dist/identity/types.d.ts.map +1 -0
  177. package/dist/identity/types.js +64 -0
  178. package/dist/identity/types.js.map +1 -0
  179. package/dist/identity/username.d.ts +12 -0
  180. package/dist/identity/username.d.ts.map +1 -0
  181. package/dist/identity/username.js +14 -0
  182. package/dist/identity/username.js.map +1 -0
  183. package/dist/media/agent-tools.d.ts +66 -0
  184. package/dist/media/agent-tools.d.ts.map +1 -0
  185. package/dist/media/agent-tools.js +131 -0
  186. package/dist/media/agent-tools.js.map +1 -0
  187. package/dist/media/blob-gc-lock.d.ts +37 -0
  188. package/dist/media/blob-gc-lock.d.ts.map +1 -0
  189. package/dist/media/blob-gc-lock.js +55 -0
  190. package/dist/media/blob-gc-lock.js.map +1 -0
  191. package/dist/media/blob-gc.d.ts +246 -0
  192. package/dist/media/blob-gc.d.ts.map +1 -0
  193. package/dist/media/blob-gc.js +254 -0
  194. package/dist/media/blob-gc.js.map +1 -0
  195. package/dist/media/blob-key.d.ts +28 -0
  196. package/dist/media/blob-key.d.ts.map +1 -0
  197. package/dist/media/blob-key.js +11 -0
  198. package/dist/media/blob-key.js.map +1 -0
  199. package/dist/media/blob-store.fs.d.ts +23 -0
  200. package/dist/media/blob-store.fs.d.ts.map +1 -0
  201. package/dist/media/blob-store.fs.js +48 -0
  202. package/dist/media/blob-store.fs.js.map +1 -0
  203. package/dist/media/blob-store.memory.d.ts +22 -0
  204. package/dist/media/blob-store.memory.d.ts.map +1 -0
  205. package/dist/media/blob-store.memory.js +23 -0
  206. package/dist/media/blob-store.memory.js.map +1 -0
  207. package/dist/media/content-type-sniffer.d.ts +49 -0
  208. package/dist/media/content-type-sniffer.d.ts.map +1 -0
  209. package/dist/media/content-type-sniffer.js +141 -0
  210. package/dist/media/content-type-sniffer.js.map +1 -0
  211. package/dist/media/image-transformer.d.ts +45 -0
  212. package/dist/media/image-transformer.d.ts.map +1 -0
  213. package/dist/media/image-transformer.js +23 -0
  214. package/dist/media/image-transformer.js.map +1 -0
  215. package/dist/media/image-transformer.sharp.d.ts +26 -0
  216. package/dist/media/image-transformer.sharp.d.ts.map +1 -0
  217. package/dist/media/image-transformer.sharp.js +91 -0
  218. package/dist/media/image-transformer.sharp.js.map +1 -0
  219. package/dist/media/index.d.ts +43 -0
  220. package/dist/media/index.d.ts.map +1 -0
  221. package/dist/media/index.js +31 -0
  222. package/dist/media/index.js.map +1 -0
  223. package/dist/media/media-service.d.ts +244 -0
  224. package/dist/media/media-service.d.ts.map +1 -0
  225. package/dist/media/media-service.js +345 -0
  226. package/dist/media/media-service.js.map +1 -0
  227. package/dist/media/ports.d.ts +142 -0
  228. package/dist/media/ports.d.ts.map +1 -0
  229. package/dist/media/ports.js +2 -0
  230. package/dist/media/ports.js.map +1 -0
  231. package/dist/media/rendition-service.d.ts +66 -0
  232. package/dist/media/rendition-service.d.ts.map +1 -0
  233. package/dist/media/rendition-service.js +135 -0
  234. package/dist/media/rendition-service.js.map +1 -0
  235. package/dist/media/repo.memory.d.ts +107 -0
  236. package/dist/media/repo.memory.d.ts.map +1 -0
  237. package/dist/media/repo.memory.js +131 -0
  238. package/dist/media/repo.memory.js.map +1 -0
  239. package/dist/media/tool-registrations.d.ts +42 -0
  240. package/dist/media/tool-registrations.d.ts.map +1 -0
  241. package/dist/media/tool-registrations.js +121 -0
  242. package/dist/media/tool-registrations.js.map +1 -0
  243. package/dist/media/transform-lock.d.ts +36 -0
  244. package/dist/media/transform-lock.d.ts.map +1 -0
  245. package/dist/media/transform-lock.js +50 -0
  246. package/dist/media/transform-lock.js.map +1 -0
  247. package/dist/media/transform-registry.d.ts +103 -0
  248. package/dist/media/transform-registry.d.ts.map +1 -0
  249. package/dist/media/transform-registry.js +87 -0
  250. package/dist/media/transform-registry.js.map +1 -0
  251. package/dist/media/transform-types.d.ts +82 -0
  252. package/dist/media/transform-types.d.ts.map +1 -0
  253. package/dist/media/transform-types.js +47 -0
  254. package/dist/media/transform-types.js.map +1 -0
  255. package/dist/media/types.d.ts +150 -0
  256. package/dist/media/types.d.ts.map +1 -0
  257. package/dist/media/types.js +26 -0
  258. package/dist/media/types.js.map +1 -0
  259. package/dist/navigation/agent-tools.d.ts +90 -0
  260. package/dist/navigation/agent-tools.d.ts.map +1 -0
  261. package/dist/navigation/agent-tools.js +225 -0
  262. package/dist/navigation/agent-tools.js.map +1 -0
  263. package/dist/navigation/contracts.d.ts +98 -0
  264. package/dist/navigation/contracts.d.ts.map +1 -0
  265. package/dist/navigation/contracts.js +70 -0
  266. package/dist/navigation/contracts.js.map +1 -0
  267. package/dist/navigation/index.d.ts +39 -0
  268. package/dist/navigation/index.d.ts.map +1 -0
  269. package/dist/navigation/index.js +30 -0
  270. package/dist/navigation/index.js.map +1 -0
  271. package/dist/navigation/menu-service.d.ts +256 -0
  272. package/dist/navigation/menu-service.d.ts.map +1 -0
  273. package/dist/navigation/menu-service.js +382 -0
  274. package/dist/navigation/menu-service.js.map +1 -0
  275. package/dist/navigation/ports.d.ts +147 -0
  276. package/dist/navigation/ports.d.ts.map +1 -0
  277. package/dist/navigation/ports.js +2 -0
  278. package/dist/navigation/ports.js.map +1 -0
  279. package/dist/navigation/read-model.d.ts +11 -0
  280. package/dist/navigation/read-model.d.ts.map +1 -0
  281. package/dist/navigation/read-model.js +27 -0
  282. package/dist/navigation/read-model.js.map +1 -0
  283. package/dist/navigation/reconcile.d.ts +57 -0
  284. package/dist/navigation/reconcile.d.ts.map +1 -0
  285. package/dist/navigation/reconcile.js +33 -0
  286. package/dist/navigation/reconcile.js.map +1 -0
  287. package/dist/navigation/repo.memory.d.ts +137 -0
  288. package/dist/navigation/repo.memory.d.ts.map +1 -0
  289. package/dist/navigation/repo.memory.js +95 -0
  290. package/dist/navigation/repo.memory.js.map +1 -0
  291. package/dist/navigation/resolver.d.ts +110 -0
  292. package/dist/navigation/resolver.d.ts.map +1 -0
  293. package/dist/navigation/resolver.js +131 -0
  294. package/dist/navigation/resolver.js.map +1 -0
  295. package/dist/navigation/tool-registrations.d.ts +43 -0
  296. package/dist/navigation/tool-registrations.d.ts.map +1 -0
  297. package/dist/navigation/tool-registrations.js +126 -0
  298. package/dist/navigation/tool-registrations.js.map +1 -0
  299. package/dist/navigation/types.d.ts +207 -0
  300. package/dist/navigation/types.d.ts.map +1 -0
  301. package/dist/navigation/types.js +14 -0
  302. package/dist/navigation/types.js.map +1 -0
  303. package/dist/presentation/index.d.ts +15 -0
  304. package/dist/presentation/index.d.ts.map +1 -0
  305. package/dist/presentation/index.js +15 -0
  306. package/dist/presentation/index.js.map +1 -0
  307. package/dist/presentation/presentation.d.ts +72 -0
  308. package/dist/presentation/presentation.d.ts.map +1 -0
  309. package/dist/presentation/presentation.js +51 -0
  310. package/dist/presentation/presentation.js.map +1 -0
  311. package/dist/presentation/repo.memory.d.ts +9 -0
  312. package/dist/presentation/repo.memory.d.ts.map +1 -0
  313. package/dist/presentation/repo.memory.js +21 -0
  314. package/dist/presentation/repo.memory.js.map +1 -0
  315. package/dist/server/index.d.ts +28 -0
  316. package/dist/server/index.d.ts.map +1 -0
  317. package/dist/server/index.js +28 -0
  318. package/dist/server/index.js.map +1 -0
  319. package/dist/settings/agent-tools.d.ts +83 -0
  320. package/dist/settings/agent-tools.d.ts.map +1 -0
  321. package/dist/settings/agent-tools.js +200 -0
  322. package/dist/settings/agent-tools.js.map +1 -0
  323. package/dist/settings/agent-writable-preferences.d.ts +67 -0
  324. package/dist/settings/agent-writable-preferences.d.ts.map +1 -0
  325. package/dist/settings/agent-writable-preferences.js +144 -0
  326. package/dist/settings/agent-writable-preferences.js.map +1 -0
  327. package/dist/settings/change-feed.d.ts +74 -0
  328. package/dist/settings/change-feed.d.ts.map +1 -0
  329. package/dist/settings/change-feed.js +61 -0
  330. package/dist/settings/change-feed.js.map +1 -0
  331. package/dist/settings/definitions-dispatch.d.ts +51 -0
  332. package/dist/settings/definitions-dispatch.d.ts.map +1 -0
  333. package/dist/settings/definitions-dispatch.js +86 -0
  334. package/dist/settings/definitions-dispatch.js.map +1 -0
  335. package/dist/settings/dictionaries/index.d.ts +45 -0
  336. package/dist/settings/dictionaries/index.d.ts.map +1 -0
  337. package/dist/settings/dictionaries/index.js +69 -0
  338. package/dist/settings/dictionaries/index.js.map +1 -0
  339. package/dist/settings/dictionaries/settings-dialog.ar.d.ts +3 -0
  340. package/dist/settings/dictionaries/settings-dialog.ar.d.ts.map +1 -0
  341. package/dist/settings/dictionaries/settings-dialog.ar.js +28 -0
  342. package/dist/settings/dictionaries/settings-dialog.ar.js.map +1 -0
  343. package/dist/settings/dictionaries/settings-dialog.bn.d.ts +3 -0
  344. package/dist/settings/dictionaries/settings-dialog.bn.d.ts.map +1 -0
  345. package/dist/settings/dictionaries/settings-dialog.bn.js +28 -0
  346. package/dist/settings/dictionaries/settings-dialog.bn.js.map +1 -0
  347. package/dist/settings/dictionaries/settings-dialog.de.d.ts +3 -0
  348. package/dist/settings/dictionaries/settings-dialog.de.d.ts.map +1 -0
  349. package/dist/settings/dictionaries/settings-dialog.de.js +28 -0
  350. package/dist/settings/dictionaries/settings-dialog.de.js.map +1 -0
  351. package/dist/settings/dictionaries/settings-dialog.es.d.ts +3 -0
  352. package/dist/settings/dictionaries/settings-dialog.es.d.ts.map +1 -0
  353. package/dist/settings/dictionaries/settings-dialog.es.js +28 -0
  354. package/dist/settings/dictionaries/settings-dialog.es.js.map +1 -0
  355. package/dist/settings/dictionaries/settings-dialog.fa.d.ts +3 -0
  356. package/dist/settings/dictionaries/settings-dialog.fa.d.ts.map +1 -0
  357. package/dist/settings/dictionaries/settings-dialog.fa.js +28 -0
  358. package/dist/settings/dictionaries/settings-dialog.fa.js.map +1 -0
  359. package/dist/settings/dictionaries/settings-dialog.fr.d.ts +3 -0
  360. package/dist/settings/dictionaries/settings-dialog.fr.d.ts.map +1 -0
  361. package/dist/settings/dictionaries/settings-dialog.fr.js +28 -0
  362. package/dist/settings/dictionaries/settings-dialog.fr.js.map +1 -0
  363. package/dist/settings/dictionaries/settings-dialog.hi.d.ts +3 -0
  364. package/dist/settings/dictionaries/settings-dialog.hi.d.ts.map +1 -0
  365. package/dist/settings/dictionaries/settings-dialog.hi.js +28 -0
  366. package/dist/settings/dictionaries/settings-dialog.hi.js.map +1 -0
  367. package/dist/settings/dictionaries/settings-dialog.hu.d.ts +3 -0
  368. package/dist/settings/dictionaries/settings-dialog.hu.d.ts.map +1 -0
  369. package/dist/settings/dictionaries/settings-dialog.hu.js +28 -0
  370. package/dist/settings/dictionaries/settings-dialog.hu.js.map +1 -0
  371. package/dist/settings/dictionaries/settings-dialog.id.d.ts +3 -0
  372. package/dist/settings/dictionaries/settings-dialog.id.d.ts.map +1 -0
  373. package/dist/settings/dictionaries/settings-dialog.id.js +28 -0
  374. package/dist/settings/dictionaries/settings-dialog.id.js.map +1 -0
  375. package/dist/settings/dictionaries/settings-dialog.it.d.ts +3 -0
  376. package/dist/settings/dictionaries/settings-dialog.it.d.ts.map +1 -0
  377. package/dist/settings/dictionaries/settings-dialog.it.js +28 -0
  378. package/dist/settings/dictionaries/settings-dialog.it.js.map +1 -0
  379. package/dist/settings/dictionaries/settings-dialog.ja.d.ts +3 -0
  380. package/dist/settings/dictionaries/settings-dialog.ja.d.ts.map +1 -0
  381. package/dist/settings/dictionaries/settings-dialog.ja.js +28 -0
  382. package/dist/settings/dictionaries/settings-dialog.ja.js.map +1 -0
  383. package/dist/settings/dictionaries/settings-dialog.ko.d.ts +3 -0
  384. package/dist/settings/dictionaries/settings-dialog.ko.d.ts.map +1 -0
  385. package/dist/settings/dictionaries/settings-dialog.ko.js +28 -0
  386. package/dist/settings/dictionaries/settings-dialog.ko.js.map +1 -0
  387. package/dist/settings/dictionaries/settings-dialog.pl.d.ts +3 -0
  388. package/dist/settings/dictionaries/settings-dialog.pl.d.ts.map +1 -0
  389. package/dist/settings/dictionaries/settings-dialog.pl.js +28 -0
  390. package/dist/settings/dictionaries/settings-dialog.pl.js.map +1 -0
  391. package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts +3 -0
  392. package/dist/settings/dictionaries/settings-dialog.pt-BR.d.ts.map +1 -0
  393. package/dist/settings/dictionaries/settings-dialog.pt-BR.js +28 -0
  394. package/dist/settings/dictionaries/settings-dialog.pt-BR.js.map +1 -0
  395. package/dist/settings/dictionaries/settings-dialog.ru.d.ts +3 -0
  396. package/dist/settings/dictionaries/settings-dialog.ru.d.ts.map +1 -0
  397. package/dist/settings/dictionaries/settings-dialog.ru.js +28 -0
  398. package/dist/settings/dictionaries/settings-dialog.ru.js.map +1 -0
  399. package/dist/settings/dictionaries/settings-dialog.th.d.ts +3 -0
  400. package/dist/settings/dictionaries/settings-dialog.th.d.ts.map +1 -0
  401. package/dist/settings/dictionaries/settings-dialog.th.js +28 -0
  402. package/dist/settings/dictionaries/settings-dialog.th.js.map +1 -0
  403. package/dist/settings/dictionaries/settings-dialog.tr.d.ts +3 -0
  404. package/dist/settings/dictionaries/settings-dialog.tr.d.ts.map +1 -0
  405. package/dist/settings/dictionaries/settings-dialog.tr.js +28 -0
  406. package/dist/settings/dictionaries/settings-dialog.tr.js.map +1 -0
  407. package/dist/settings/dictionaries/settings-dialog.uk.d.ts +3 -0
  408. package/dist/settings/dictionaries/settings-dialog.uk.d.ts.map +1 -0
  409. package/dist/settings/dictionaries/settings-dialog.uk.js +28 -0
  410. package/dist/settings/dictionaries/settings-dialog.uk.js.map +1 -0
  411. package/dist/settings/dictionaries/settings-dialog.ur.d.ts +3 -0
  412. package/dist/settings/dictionaries/settings-dialog.ur.d.ts.map +1 -0
  413. package/dist/settings/dictionaries/settings-dialog.ur.js +28 -0
  414. package/dist/settings/dictionaries/settings-dialog.ur.js.map +1 -0
  415. package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts +3 -0
  416. package/dist/settings/dictionaries/settings-dialog.zh-CN.d.ts.map +1 -0
  417. package/dist/settings/dictionaries/settings-dialog.zh-CN.js +28 -0
  418. package/dist/settings/dictionaries/settings-dialog.zh-CN.js.map +1 -0
  419. package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts +3 -0
  420. package/dist/settings/dictionaries/settings-dialog.zh-TW.d.ts.map +1 -0
  421. package/dist/settings/dictionaries/settings-dialog.zh-TW.js +28 -0
  422. package/dist/settings/dictionaries/settings-dialog.zh-TW.js.map +1 -0
  423. package/dist/settings/ensure-definitions.d.ts +88 -0
  424. package/dist/settings/ensure-definitions.d.ts.map +1 -0
  425. package/dist/settings/ensure-definitions.js +91 -0
  426. package/dist/settings/ensure-definitions.js.map +1 -0
  427. package/dist/settings/errors.d.ts +36 -0
  428. package/dist/settings/errors.d.ts.map +1 -0
  429. package/dist/settings/errors.js +40 -0
  430. package/dist/settings/errors.js.map +1 -0
  431. package/dist/settings/index.d.ts +37 -0
  432. package/dist/settings/index.d.ts.map +1 -0
  433. package/dist/settings/index.js +36 -0
  434. package/dist/settings/index.js.map +1 -0
  435. package/dist/settings/ports.d.ts +117 -0
  436. package/dist/settings/ports.d.ts.map +1 -0
  437. package/dist/settings/ports.js +2 -0
  438. package/dist/settings/ports.js.map +1 -0
  439. package/dist/settings/purge-service.d.ts +53 -0
  440. package/dist/settings/purge-service.d.ts.map +1 -0
  441. package/dist/settings/purge-service.js +105 -0
  442. package/dist/settings/purge-service.js.map +1 -0
  443. package/dist/settings/repo.memory.d.ts +119 -0
  444. package/dist/settings/repo.memory.d.ts.map +1 -0
  445. package/dist/settings/repo.memory.js +199 -0
  446. package/dist/settings/repo.memory.js.map +1 -0
  447. package/dist/settings/settings.d.ts +124 -0
  448. package/dist/settings/settings.d.ts.map +1 -0
  449. package/dist/settings/settings.js +238 -0
  450. package/dist/settings/settings.js.map +1 -0
  451. package/dist/settings/tool-registrations.d.ts +56 -0
  452. package/dist/settings/tool-registrations.d.ts.map +1 -0
  453. package/dist/settings/tool-registrations.js +240 -0
  454. package/dist/settings/tool-registrations.js.map +1 -0
  455. package/dist/settings/types.d.ts +125 -0
  456. package/dist/settings/types.d.ts.map +1 -0
  457. package/dist/settings/types.js +3 -0
  458. package/dist/settings/types.js.map +1 -0
  459. package/dist/settings/ui-tab-definitions.d.ts +41 -0
  460. package/dist/settings/ui-tab-definitions.d.ts.map +1 -0
  461. package/dist/settings/ui-tab-definitions.js +148 -0
  462. package/dist/settings/ui-tab-definitions.js.map +1 -0
  463. package/dist/settings/write-service.d.ts +314 -0
  464. package/dist/settings/write-service.d.ts.map +1 -0
  465. package/dist/settings/write-service.js +677 -0
  466. package/dist/settings/write-service.js.map +1 -0
  467. package/dist/taxonomy/agent-tools.d.ts +76 -0
  468. package/dist/taxonomy/agent-tools.d.ts.map +1 -0
  469. package/dist/taxonomy/agent-tools.js +178 -0
  470. package/dist/taxonomy/agent-tools.js.map +1 -0
  471. package/dist/taxonomy/content-lookup.d.ts +45 -0
  472. package/dist/taxonomy/content-lookup.d.ts.map +1 -0
  473. package/dist/taxonomy/content-lookup.js +9 -0
  474. package/dist/taxonomy/content-lookup.js.map +1 -0
  475. package/dist/taxonomy/index.d.ts +38 -0
  476. package/dist/taxonomy/index.d.ts.map +1 -0
  477. package/dist/taxonomy/index.js +38 -0
  478. package/dist/taxonomy/index.js.map +1 -0
  479. package/dist/taxonomy/list.d.ts +39 -0
  480. package/dist/taxonomy/list.d.ts.map +1 -0
  481. package/dist/taxonomy/list.js +19 -0
  482. package/dist/taxonomy/list.js.map +1 -0
  483. package/dist/taxonomy/merge-term.d.ts +94 -0
  484. package/dist/taxonomy/merge-term.d.ts.map +1 -0
  485. package/dist/taxonomy/merge-term.js +65 -0
  486. package/dist/taxonomy/merge-term.js.map +1 -0
  487. package/dist/taxonomy/repo.memory.d.ts +160 -0
  488. package/dist/taxonomy/repo.memory.d.ts.map +1 -0
  489. package/dist/taxonomy/repo.memory.js +171 -0
  490. package/dist/taxonomy/repo.memory.js.map +1 -0
  491. package/dist/taxonomy/validation-chain.d.ts +114 -0
  492. package/dist/taxonomy/validation-chain.d.ts.map +1 -0
  493. package/dist/taxonomy/validation-chain.js +152 -0
  494. package/dist/taxonomy/validation-chain.js.map +1 -0
  495. package/dist/taxonomy/write-service.d.ts +387 -0
  496. package/dist/taxonomy/write-service.d.ts.map +1 -0
  497. package/dist/taxonomy/write-service.js +350 -0
  498. package/dist/taxonomy/write-service.js.map +1 -0
  499. package/dist/workspace/agent-tools.d.ts +67 -0
  500. package/dist/workspace/agent-tools.d.ts.map +1 -0
  501. package/dist/workspace/agent-tools.js +103 -0
  502. package/dist/workspace/agent-tools.js.map +1 -0
  503. package/dist/workspace/create.d.ts +116 -0
  504. package/dist/workspace/create.d.ts.map +1 -0
  505. package/dist/workspace/create.js +69 -0
  506. package/dist/workspace/create.js.map +1 -0
  507. package/dist/workspace/delete.d.ts +50 -0
  508. package/dist/workspace/delete.d.ts.map +1 -0
  509. package/dist/workspace/delete.js +24 -0
  510. package/dist/workspace/delete.js.map +1 -0
  511. package/dist/workspace/index.d.ts +27 -0
  512. package/dist/workspace/index.d.ts.map +1 -0
  513. package/dist/workspace/index.js +27 -0
  514. package/dist/workspace/index.js.map +1 -0
  515. package/dist/workspace/repo.memory.d.ts +34 -0
  516. package/dist/workspace/repo.memory.d.ts.map +1 -0
  517. package/dist/workspace/repo.memory.js +50 -0
  518. package/dist/workspace/repo.memory.js.map +1 -0
  519. package/dist/workspace/tool-registrations.d.ts +38 -0
  520. package/dist/workspace/tool-registrations.d.ts.map +1 -0
  521. package/dist/workspace/tool-registrations.js +71 -0
  522. package/dist/workspace/tool-registrations.js.map +1 -0
  523. package/dist/workspace/update.d.ts +52 -0
  524. package/dist/workspace/update.d.ts.map +1 -0
  525. package/dist/workspace/update.js +41 -0
  526. package/dist/workspace/update.js.map +1 -0
  527. package/package.json +149 -0
@@ -0,0 +1,42 @@
1
+ import type { ClockPort, IdGeneratorPort, UUID } from "../core/ports.js";
2
+ import type { IdentityRepos, PasswordHasherPort } from "./ports.js";
3
+ export interface SeedIdentityDeps {
4
+ repos: IdentityRepos;
5
+ hasher: PasswordHasherPort;
6
+ clock: ClockPort;
7
+ idGen: IdGeneratorPort;
8
+ }
9
+ export interface SeedIdentityInput {
10
+ workspaceId: UUID;
11
+ /** Defaults to `"admin"`. A username is not a secret, so a library default costs nothing here. */
12
+ ownerUsername?: string | undefined;
13
+ /**
14
+ * Required, and deliberately without a default.
15
+ *
16
+ * This function mints the first credential that can administer a workspace. A library-supplied
17
+ * fallback would mean every host that forgot to pass one shipped the *same* owner password, and
18
+ * the omission would look like working code rather than a misconfiguration. Where the value comes
19
+ * from — an environment variable, an operator prompt, a secret store, a generated string — is a
20
+ * decision only the host can make, because only the host knows its deployment model. Making this
21
+ * required turns "forgot to decide" into a compile error instead of a shared default credential.
22
+ */
23
+ ownerPassword: string;
24
+ ownerEmail?: string | undefined;
25
+ }
26
+ export interface SeedIdentityResult {
27
+ ownerPrincipalId: UUID;
28
+ systemPrincipalId: UUID;
29
+ }
30
+ /**
31
+ * Seed first-boot identity data (idempotent — a no-op if the owner username
32
+ * already exists in the workspace).
33
+ *
34
+ * @complexity O(1) — fixed small number of inserts (4 roles/policies, ~2
35
+ * dozen policy_permissions, 3 principals, 1 user, 1 role assignment).
36
+ * @overallScore 100
37
+ */
38
+ export declare function seedIdentity(required: {
39
+ deps: SeedIdentityDeps;
40
+ input: SeedIdentityInput;
41
+ }): Promise<SeedIdentityResult>;
42
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/identity/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiJpE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,IAAI,CAAC;IAClB,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;;;;;;OASG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,IAAI,CAAC;IACvB,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAwCD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,iBAAiB,CAAC;CAC1B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+G9B"}
@@ -0,0 +1,277 @@
1
+ import { normalizeUsername } from "./username.js";
2
+ /**
3
+ * @file First-boot identity seed (REQ-09, state.spec `SEED_FIRST_BOOT`).
4
+ *
5
+ * Purpose:
6
+ * Seeds, in one idempotent pass: a `system` principal; a disabled legacy
7
+ * `user-local` principal (REQ-09/EC-09 — so any pre-existing `change_sets`
8
+ * stamped `actorId='user-local'` satisfy the composite FK without rewriting
9
+ * history); four built-in roles (`owner`/`admin`/`editor`/
10
+ * `viewer`) each 1:1 with a built-in policy; and the initial `owner` user.
11
+ *
12
+ * How it relates to the project:
13
+ * - Called once by each composition root (`server/app.ts` in-memory,
14
+ * `server/deps.ts` SQLite-content-with-in-memory-identity) before the
15
+ * server accepts requests. `RouteDeps.identityReady` is this call's
16
+ * promise — auth-adjacent middleware awaits it (see `middleware/dev-auth.ts`).
17
+ *
18
+ * Architectural role:
19
+ * Seed data lives in one place so both composition roots stay identical
20
+ * (mirrors `server/seed.ts`'s reasoning for workspace/post/presentation seed
21
+ * data). Idempotent: re-seeding an already-seeded workspace is a no-op
22
+ * (checked via the owner username).
23
+ */
24
+ /** REQ-09: the literal id the legacy Article VI actor stamp resolves to. */
25
+ const LEGACY_USER_LOCAL_PRINCIPAL_ID = "user-local";
26
+ const BUILTIN_ADMIN_PERMISSIONS = [
27
+ "content.read",
28
+ "content.write",
29
+ "content.publish",
30
+ "content.delete",
31
+ "theme.set",
32
+ // Editing a theme's source files is an admin capability, deliberately NOT in the editor set
33
+ // below (which keeps theme.set): an editor may switch the site between validated themes, but
34
+ // authoring template/CSS source is a build-time-shaped capability whose failure mode is a broken
35
+ // theme, not a different-looking one.
36
+ "theme.edit",
37
+ "plugin.read",
38
+ "plugin.enable",
39
+ "plugin.disable",
40
+ "changeset.read",
41
+ "changeset.revert",
42
+ "member.manage",
43
+ "settings.write",
44
+ "apikey.manage",
45
+ // Migration clause (mirrors the admin.menus.*/admin.integrations.manage
46
+ // precedent above): every freshly-seeded workspace's admin role gets the concrete media.* working
47
+ // actions directly, so it never depends on migrateDeprecatedPermissionGrants(). The umbrella
48
+ // "media.manage" is deliberately not included here (mirrors admin.menus.manage's exclusion
49
+ // above). "media.write" is deliberately dropped from THIS seed list only — the string stays
50
+ // registered (deprecated) in identity/permissions.ts.
51
+ "media.read",
52
+ "media.upload",
53
+ "media.update",
54
+ "media.delete",
55
+ "media.delete.force",
56
+ "media.download_original",
57
+ "media.upload_svg",
58
+ // Menus remediation migration clause: every freshly-seeded
59
+ // workspace gets the 6 new admin.menus.* CRUD strings directly, so it never depends on
60
+ // migrateDeprecatedPermissionGrants() for its own built-in role grants. The now-legacy
61
+ // "navigation.manage" is deliberately dropped from THIS seed list only — the string itself
62
+ // stays registered (deprecated) in identity/permissions.ts. migrateDeprecatedPermissionGrants()
63
+ // now IS wired into live boot (identity/wiring.ts, chained right after seedIdentity resolves)
64
+ // so any pre-existing policy still holding navigation.manage/integration.manage also gains
65
+ // the new string(s) — this fresh-seed list just doesn't need to depend on that fan-out for its
66
+ // own built-in role grants.
67
+ "admin.menus.read",
68
+ "admin.menus.create",
69
+ "admin.menus.update",
70
+ "admin.menus.delete",
71
+ "admin.menus.delete.force",
72
+ "admin.menus.assign",
73
+ // Migration clause (mirrors the admin.menus.* precedent immediately
74
+ // above): every freshly-seeded workspace gets admin.integrations.manage directly, so it never
75
+ // depends on migrateDeprecatedPermissionGrants(). "integration.manage" is deliberately dropped
76
+ // from THIS seed list only — the string stays registered (deprecated) in permissions.ts.
77
+ "admin.integrations.manage",
78
+ // Migration clause: every settings.write holder also
79
+ // gets settings.definitions.manage, so the admin role isn't left
80
+ // fail-closed-locked-out of definition-lifecycle operations it previously
81
+ // reached through the coarse settings.write grant. No separate migration
82
+ // script is needed pre-launch — this seed function is the sole source of
83
+ // built-in role grants (no existing installation's data to migrate yet).
84
+ "settings.definitions.manage",
85
+ "settings.global.write",
86
+ "settings.workspace.write",
87
+ "settings.user.self.write",
88
+ "settings.user.write",
89
+ // Internal audit F2 remediation (2026-07-29): granted directly here so a freshly-seeded
90
+ // workspace never depends on the `settings.user.write` -> `settings.user.read` fan-out in
91
+ // permissions.ts (same "don't depend on migrateDeprecatedPermissionGrants for our own built-in
92
+ // role grants" discipline as the admin.menus.*/admin.integrations.manage clauses above). The
93
+ // fan-out exists for ALREADY-seeded installations, which this list cannot reach because
94
+ // seedIdentity early-returns once an owner user exists.
95
+ "settings.user.read",
96
+ "settings.reset.global",
97
+ "settings.reset.workspace",
98
+ "settings.reset.user",
99
+ "settings.read",
100
+ "settings.read.raw",
101
+ "settings.read.revisions",
102
+ "settings.read.definitions",
103
+ // Every freshly-seeded workspace's built-in admin role
104
+ // gets the one SEO umbrella permission directly, mirroring the admin.menus.* precedent above.
105
+ "admin.seo.manage",
106
+ // The AI Assistant section's umbrella permission, granted directly here for the same reason
107
+ // `admin.seo.manage` above is: a freshly-seeded workspace's built-in admin must be able to reach
108
+ // the public assistant's master switch without depending on any deprecated-grant fan-out. Turning
109
+ // the public assistant ON is still a deliberate act — the SETTING defaults to off
110
+ // (`assistant/public-assistant-settings.ts`); this only grants the ability to flip it.
111
+ "admin.assistant.manage",
112
+ // Workspace Administration: admin gets workspace.manage
113
+ // directly at seed — a distinct grant from settings.write, not owner-only (unlike user.manage/
114
+ // role.manage below).
115
+ "workspace.manage",
116
+ // Owner-only per REQ-09: "user.manage", "role.manage" are deliberately absent.
117
+ ];
118
+ const BUILTIN_EDITOR_PERMISSIONS = [
119
+ "content.read",
120
+ "content.write",
121
+ "content.publish",
122
+ "content.delete",
123
+ // Migration clause: editor gets the ordinary media working actions
124
+ // (read/upload/update/trash) but, unlike admin above, NOT media.delete.force (destructive
125
+ // hard-purge), media.download_original (mint-only access to sensitive originals), or
126
+ // media.upload_svg (XSS-risk-gated capability) — mirrors the Forms admin.forms.manage vs
127
+ // admin.forms.submissions.* PII-split precedent rather than granting editor
128
+ // everything admin.write's single flat string previously implied. "media.write" is deliberately
129
+ // dropped from THIS seed list only — the string stays registered (deprecated) in
130
+ // identity/permissions.ts. Still a subset of admin's media.* set above (AC-12's owner ⊇ admin ⊇
131
+ // editor subset property).
132
+ "media.read",
133
+ "media.upload",
134
+ "media.update",
135
+ "media.delete",
136
+ "theme.set",
137
+ ];
138
+ const BUILTIN_VIEWER_PERMISSIONS = ["content.read", "changeset.read", "plugin.read"];
139
+ /** Builds one built-in role + its 1:1 policy + policy_permissions rows, and saves all three. */
140
+ async function seedBuiltinRoleWithPolicy(required) {
141
+ const { deps, workspaceId, name, permissions, nowIso } = required;
142
+ const roleId = deps.idGen.newId();
143
+ const policyId = deps.idGen.newId();
144
+ await deps.repos.roles.save({ id: roleId, workspaceId, name, isBuiltin: true });
145
+ await deps.repos.policies.save({
146
+ id: policyId,
147
+ workspaceId,
148
+ name: `${name}-builtin-policy`,
149
+ description: `Built-in policy for the seeded '${name}' role.`,
150
+ isBuiltin: true,
151
+ isFrozen: false,
152
+ });
153
+ await deps.repos.rolePolicies.save({ id: deps.idGen.newId(), workspaceId, roleId, policyId });
154
+ for (const permission of permissions) {
155
+ await deps.repos.policyPermissions.save({
156
+ id: deps.idGen.newId(),
157
+ workspaceId,
158
+ policyId,
159
+ permission,
160
+ resourceType: null,
161
+ constraintJson: null,
162
+ });
163
+ }
164
+ void nowIso; // reserved for a future createdAt column on roles/policies
165
+ return { roleId, policyId };
166
+ }
167
+ /**
168
+ * Seed first-boot identity data (idempotent — a no-op if the owner username
169
+ * already exists in the workspace).
170
+ *
171
+ * @complexity O(1) — fixed small number of inserts (4 roles/policies, ~2
172
+ * dozen policy_permissions, 3 principals, 1 user, 1 role assignment).
173
+ * @overallScore 100
174
+ */
175
+ export async function seedIdentity(required) {
176
+ const { deps, input } = required;
177
+ const workspaceId = input.workspaceId;
178
+ const ownerUsername = normalizeUsername(input.ownerUsername ?? "admin");
179
+ const ownerPassword = input.ownerPassword;
180
+ const nowIso = deps.clock.nowIso();
181
+ const existingOwnerUser = await deps.repos.users.findByUsername({
182
+ workspaceId,
183
+ username: ownerUsername,
184
+ });
185
+ if (existingOwnerUser) {
186
+ const existingSystem = (await deps.repos.principals.list({ workspaceId })).find((row) => row.kind === "system" && row.id !== LEGACY_USER_LOCAL_PRINCIPAL_ID);
187
+ return {
188
+ ownerPrincipalId: existingOwnerUser.principalId,
189
+ systemPrincipalId: existingSystem?.id ?? LEGACY_USER_LOCAL_PRINCIPAL_ID,
190
+ };
191
+ }
192
+ const systemPrincipalId = deps.idGen.newId();
193
+ await deps.repos.principals.save({
194
+ id: systemPrincipalId,
195
+ workspaceId,
196
+ kind: "system",
197
+ displayName: "System",
198
+ status: "active",
199
+ createdAt: nowIso,
200
+ });
201
+ // REQ-09/EC-09: disabled legacy actor so historical `actorId='user-local'`
202
+ // change-sets resolve without rewriting history.
203
+ await deps.repos.principals.save({
204
+ id: LEGACY_USER_LOCAL_PRINCIPAL_ID,
205
+ workspaceId,
206
+ kind: "system",
207
+ displayName: "Legacy actor (pre-identity)",
208
+ status: "disabled",
209
+ disabledAt: nowIso,
210
+ createdAt: nowIso,
211
+ });
212
+ const { roleId: ownerRoleId } = await seedBuiltinRoleWithPolicy({
213
+ deps,
214
+ workspaceId,
215
+ name: "owner",
216
+ permissions: [],
217
+ nowIso,
218
+ });
219
+ // REQ-04/REQ-09: the owner policy holds the wildcard `*`, not an enumerated
220
+ // list, so it automatically covers permissions features register later.
221
+ const ownerPolicy = (await deps.repos.policies.list({ workspaceId })).find((row) => row.name === "owner-builtin-policy");
222
+ if (!ownerPolicy)
223
+ throw new Error("seedIdentity: owner policy was not created");
224
+ await deps.repos.policyPermissions.save({
225
+ id: deps.idGen.newId(),
226
+ workspaceId,
227
+ policyId: ownerPolicy.id,
228
+ permission: "*",
229
+ resourceType: null,
230
+ constraintJson: null,
231
+ });
232
+ await seedBuiltinRoleWithPolicy({
233
+ deps,
234
+ workspaceId,
235
+ name: "admin",
236
+ permissions: BUILTIN_ADMIN_PERMISSIONS,
237
+ nowIso,
238
+ });
239
+ await seedBuiltinRoleWithPolicy({
240
+ deps,
241
+ workspaceId,
242
+ name: "editor",
243
+ permissions: BUILTIN_EDITOR_PERMISSIONS,
244
+ nowIso,
245
+ });
246
+ await seedBuiltinRoleWithPolicy({
247
+ deps,
248
+ workspaceId,
249
+ name: "viewer",
250
+ permissions: BUILTIN_VIEWER_PERMISSIONS,
251
+ nowIso,
252
+ });
253
+ const ownerPrincipalId = deps.idGen.newId();
254
+ await deps.repos.principals.save({
255
+ id: ownerPrincipalId,
256
+ workspaceId,
257
+ kind: "user",
258
+ displayName: "Owner",
259
+ status: "active",
260
+ createdAt: nowIso,
261
+ });
262
+ await deps.repos.users.save({
263
+ principalId: ownerPrincipalId,
264
+ workspaceId,
265
+ username: ownerUsername,
266
+ email: input.ownerEmail,
267
+ passwordHash: await deps.hasher.hash(ownerPassword),
268
+ });
269
+ await deps.repos.principalRoles.save({
270
+ id: deps.idGen.newId(),
271
+ workspaceId,
272
+ principalId: ownerPrincipalId,
273
+ roleId: ownerRoleId,
274
+ });
275
+ return { ownerPrincipalId, systemPrincipalId };
276
+ }
277
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/identity/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @file Identity's half of the agent-tool authorization wiring: maps `agent-tools.ts`'s fifteen catalog
3
+ * entries onto the users/roles/policies transitions `grant-service.ts`/`admin-crud-service.ts`
4
+ * export, plus the three repo-backed reads, as `ToolRegistration`s.
5
+ *
6
+ * `ToolPolicy.authorize` is a pass-through for all fifteen (see `buildDomainRegistrations`) for the
7
+ * "one evaluator" reason: the gate is the domain layer's, reached identically by every
8
+ * tool kind — mutations through their own service function, which opens with the check, and reads
9
+ * through {@link assertIdentityReadAllowed}, which calls the domain's own exported
10
+ * `assertCallerHasAnyPermission` rather than re-deriving an OR gate. A second check here would be a
11
+ * duplicate evaluator, and one any non-tool caller of the same service function would bypass. See
12
+ * `assistant/__tests__/tool-registrations.identity-authorization.test.ts`.
13
+ */
14
+ import { type DerivedRiskByToolId, type ToolRegistration } from "../core/tools/registration-kit.js";
15
+ import type { PasswordHasherPort, PolicyPermissionRepoPort, PolicyRepoPort, PrincipalPolicyRepoPort, PrincipalRepoPort, PrincipalRoleRepoPort, RolePolicyRepoPort, RoleRepoPort, SessionRepoPort, UserRepoPort } from "./ports.js";
16
+ /**
17
+ * The exact slice of the route-deps bag Identity's tool handlers read. Declared structurally
18
+ * (rather than importing `server/routes/types`'s `RouteDeps`) so this module carries no back-edge
19
+ * into the composition root. `server/routes/*` satisfies this structurally by passing its existing
20
+ * `RouteDeps` (in practice `UsersRouteDeps`, a `Pick<RouteDeps, ...>` subset — a strict superset of
21
+ * this shape) object; nothing there changes.
22
+ */
23
+ export interface IdentityToolDeps {
24
+ workspaceId: string;
25
+ clock: {
26
+ nowIso(): string;
27
+ };
28
+ idGen: {
29
+ newId(): string;
30
+ };
31
+ principalRepo: PrincipalRepoPort;
32
+ userRepo: UserRepoPort;
33
+ sessionRepo: SessionRepoPort;
34
+ roleRepo: RoleRepoPort;
35
+ policyRepo: PolicyRepoPort;
36
+ policyPermissionRepo: PolicyPermissionRepoPort;
37
+ rolePolicyRepo: RolePolicyRepoPort;
38
+ principalRoleRepo: PrincipalRoleRepoPort;
39
+ principalPolicyRepo: PrincipalPolicyRepoPort;
40
+ passwordHasher: PasswordHasherPort;
41
+ ownerPrincipalId: Promise<string>;
42
+ }
43
+ /**
44
+ * This wiring layer's OWN risk classification, authored from what each handler below actually
45
+ * calls. See `DerivedRiskByToolId` in the kit for why it is independent of the catalog's own
46
+ * `sideEffects` declaration.
47
+ */
48
+ export declare const identityDerivedRisk: DerivedRiskByToolId;
49
+ export declare function buildIdentityRegistrations(routeDeps: IdentityToolDeps): ToolRegistration[];
50
+ //# sourceMappingURL=tool-registrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registrations.d.ts","sourceRoot":"","sources":["../../src/identity/tool-registrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAIL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAM3C,OAAO,KAAK,EAEV,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QAAE,MAAM,IAAI,MAAM,CAAA;KAAE,CAAC;IAC5B,KAAK,EAAE;QAAE,KAAK,IAAI,MAAM,CAAA;KAAE,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,oBAAoB,EAAE,wBAAwB,CAAC;IAC/C,cAAc,EAAE,kBAAkB,CAAC;IACnC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,cAAc,EAAE,kBAAkB,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAmCD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAgChC,CAAC;AAkLH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CA8N1F"}