@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,603 @@
1
+ /**
2
+ * @file The registered permission catalog (REQ-03/REQ-12).
3
+ *
4
+ * **This module has import-time side effects and is the only one in the package that does.** It
5
+ * makes ~60 top-level `registerPermission()` calls plus a `registerPermissionMigration()`, so
6
+ * merely loading it is what populates the catalog. The package therefore declares
7
+ * `"sideEffects": ["./dist/identity/permissions.js"]` rather than `false`.
8
+ *
9
+ * Do not change that back. Under a blanket `sideEffects: false`, a bundler is free to drop any
10
+ * module whose exports the consumer does not reference — so an app that imports only `authorize`
11
+ * would legally ship without this file, leaving the catalog empty, `isKnownPermission()` returning
12
+ * false for every string, and authorization failing closed. It would work in Node (no
13
+ * tree-shaking) and fail only in a production bundle, which is the worst possible place to find
14
+ * out. If this file is ever split, every resulting side-effectful module must be listed too.
15
+ *
16
+ * Purpose:
17
+ * Permissions are flat dotted strings validated against a code-side
18
+ * registered catalog, not a DB enum (REQ-03) — the anti-hook-soup rule
19
+ * applied to authZ. Core owns the base vocabulary;
20
+ * features may register more at startup.
21
+ *
22
+ * Scope note (core path): a "permissions list" CLI surface (REQ-12) has no
23
+ * caller inside this library, and should not — exposing the catalog to an
24
+ * operator is a host concern. `listPermissions()` is the capability such a
25
+ * surface wires to; it is exercised directly by tests instead.
26
+ *
27
+ * `navigation.manage` below is renamed/split into the `admin.menus.*` 7-entry
28
+ * catalog. `navigation.manage` itself stays registered (deprecated, not deleted — see its own doc
29
+ * comment) until the Point of No Return described in
30
+ * `docs/decisions/permission-catalog-migration.md`; `permission-migrations.ts`'s
31
+ * `migrateDeprecatedPermissionGrants()` is the fan-out mechanism that keeps
32
+ * any policy holding the old string from being silently narrowed by the
33
+ * split. NOTE: registration only — wiring the migration call into
34
+ * `seed.ts`'s live boot path is gated on a dedicated security-focused audit
35
+ * pass and is deliberately NOT done in this pass; see `seed.ts`'s own doc comment.
36
+ */
37
+ import { registerPermissionMigration } from "./permission-migrations.js";
38
+ /** REQ-09: the base vocabulary core registers at startup. */
39
+ const BASE_CATALOG = [
40
+ { id: "content.read", owner: "core", description: "Read content entries." },
41
+ { id: "content.write", owner: "core", description: "Create and edit content entries." },
42
+ { id: "content.publish", owner: "core", description: "Publish/unpublish content entries." },
43
+ { id: "content.delete", owner: "core", description: "Delete content entries." },
44
+ {
45
+ id: "media.write",
46
+ owner: "core",
47
+ description: "DEPRECATED — superseded by the flat media.* permission " +
48
+ "set registered below. Retained (not deleted) — see the media.* registration block's own " +
49
+ "comment and docs/decisions/permission-catalog-migration.md for the same migration contract " +
50
+ "this repo's other permission renames (navigation.manage, integration.manage) have used. " +
51
+ "Do not register a new dependency on this string.",
52
+ },
53
+ { id: "theme.set", owner: "core", description: "Change the active theme/presentation settings." },
54
+ {
55
+ id: "theme.edit",
56
+ owner: "core",
57
+ description: "Create and edit the source files inside a theme package (templates, tokens, styles, manifest). " +
58
+ "Distinct from theme.set, which only chooses among already-validated themes: editing a theme's " +
59
+ "files can take that theme to status:'invalid', degrading its pages to the built-in fallback " +
60
+ "body until corrected. Granted to admin (and owner via '*'), not to editor.",
61
+ },
62
+ { id: "plugin.read", owner: "core", description: "List installed plugins and their state." },
63
+ { id: "plugin.enable", owner: "core", description: "Enable a plugin." },
64
+ { id: "plugin.disable", owner: "core", description: "Disable a plugin." },
65
+ { id: "changeset.read", owner: "core", description: "Read the change-set audit trail." },
66
+ { id: "changeset.revert", owner: "core", description: "Revert an applied change set." },
67
+ { id: "member.manage", owner: "core", description: "Manage front-end members and subscriptions." },
68
+ { id: "user.manage", owner: "core", description: "Create/disable operator users and principals." },
69
+ { id: "role.manage", owner: "core", description: "Manage roles, policies, and grants." },
70
+ {
71
+ id: "settings.write",
72
+ owner: "core",
73
+ description: "DEPRECATED — superseded by the fine-grained settings.* catalog below. Retained until the data migration that maps existing grants to settings.workspace.write + settings.definitions.manage completes and is verified; do not reuse this string for anything else afterward. See docs/decisions/permission-catalog-migration.md for the migration's completion criteria.",
74
+ },
75
+ { id: "apikey.manage", owner: "core", description: "Issue and revoke API keys." },
76
+ // settings.* catalog (core-only subset).
77
+ { id: "settings.global.write", owner: "settings", description: "Set/clear a setting's global-layer value." },
78
+ {
79
+ id: "settings.workspace.write",
80
+ owner: "settings",
81
+ description: "Set/clear a setting's workspace-layer value.",
82
+ },
83
+ {
84
+ id: "settings.user.self.write",
85
+ owner: "settings",
86
+ description: "Set/clear a setting's own user-layer value.",
87
+ },
88
+ {
89
+ id: "settings.user.write",
90
+ owner: "settings",
91
+ description: "Set/clear another principal's user-layer value.",
92
+ },
93
+ {
94
+ id: "settings.user.read",
95
+ owner: "settings",
96
+ description: "Read another principal's user-layer value. The read-side counterpart of settings.user.write — " +
97
+ "gates the ?principalId= cross-principal path on the settings read routes (get-raw/get-effective), " +
98
+ "which previously had no read permission of its own and borrowed settings.user.write.",
99
+ },
100
+ {
101
+ id: "settings.definitions.manage",
102
+ owner: "settings",
103
+ description: "Register/rename/retype/deprecate/tombstone setting definitions; also gates the purge service and authorizes the background coerce repair job.",
104
+ },
105
+ { id: "settings.reset.global", owner: "settings", description: "Reset a namespace's global-layer values to defaults." },
106
+ {
107
+ id: "settings.reset.workspace",
108
+ owner: "settings",
109
+ description: "Reset a namespace's workspace-layer values to defaults.",
110
+ },
111
+ { id: "settings.reset.user", owner: "settings", description: "Reset a namespace's user-layer values to defaults." },
112
+ { id: "settings.read", owner: "settings", description: "Read effective setting values (getEffective)." },
113
+ {
114
+ id: "settings.read.raw",
115
+ owner: "settings",
116
+ description: "Read per-layer raw setting values. Reserved for a future API surface.",
117
+ },
118
+ {
119
+ id: "settings.read.revisions",
120
+ owner: "settings",
121
+ description: "Read the setting_revisions ledger. Reserved for a future API surface.",
122
+ },
123
+ {
124
+ id: "settings.read.definitions",
125
+ owner: "settings",
126
+ description: "List setting definitions grouped by namespace.",
127
+ },
128
+ ];
129
+ /**
130
+ * Code-side registry backing REQ-03's catalog validation and REQ-12's
131
+ * enumeration. `"*"` (the owner wildcard, REQ-04) is deliberately not a
132
+ * catalog entry — it is a distinct, built-in-only grant shape checked by
133
+ * `authorize()`/seed, never a registrable permission string.
134
+ *
135
+ * @complexity O(1) amortized per lookup (Map-backed); O(n) to list all.
136
+ * @overallScore 100
137
+ */
138
+ class PermissionCatalog {
139
+ byId = new Map();
140
+ constructor(initial) {
141
+ for (const descriptor of initial)
142
+ this.byId.set(descriptor.id, descriptor);
143
+ }
144
+ /** Idempotent: re-registering the same `id` (e.g. on a warm reload) is a no-op overwrite. */
145
+ register(descriptor) {
146
+ this.byId.set(descriptor.id, descriptor);
147
+ }
148
+ has(id) {
149
+ return this.byId.has(id);
150
+ }
151
+ list() {
152
+ return [...this.byId.values()];
153
+ }
154
+ }
155
+ /** Module-singleton catalog — core's base vocabulary, extended by feature registration. */
156
+ export const permissionCatalog = new PermissionCatalog(BASE_CATALOG);
157
+ /** Register an additional permission at feature startup (REQ-03). */
158
+ export function registerPermission(descriptor) {
159
+ permissionCatalog.register(descriptor);
160
+ }
161
+ /**
162
+ * Backfills the newly-introduced `settings.user.read` (BASE_CATALOG above) onto every policy that
163
+ * already holds `settings.user.write`, closing internal-audit finding F2 without narrowing anyone.
164
+ *
165
+ * Deliberate departure from this file's other four pairs: `from` here is NOT a deprecated string.
166
+ * `settings.user.write` remains live and meaningful (set/clear another principal's value); this pair
167
+ * expresses a one-time *capability implication* — anyone already trusted to overwrite another
168
+ * principal's user-layer value is self-evidently trusted to read it. The fan-out's contract fits
169
+ * exactly (`permission-migrations.ts`: for every policy holding `from`, add each missing string in
170
+ * `to`; additive-only, never touches `from`), so no mechanism change is needed.
171
+ *
172
+ * Why a migration is required at all: `seedIdentity` early-returns once an owner user exists
173
+ * (`seed.ts`), so adding the string to `BUILTIN_ADMIN_PERMISSIONS` only reaches *fresh* workspaces.
174
+ * Without this pair, an already-seeded install's built-in admin role would silently lose the
175
+ * Settings screen's target-principal read the moment the route stopped accepting
176
+ * `settings.user.write` — the precise fail-closed lockout this mechanism exists to prevent. The
177
+ * built-in owner role is unaffected either way (it holds the `*` wildcard).
178
+ */
179
+ registerPermissionMigration({
180
+ from: "settings.user.write",
181
+ to: ["settings.user.read"],
182
+ reason: "Internal audit F2 remediation (2026-07-29): the cross-principal settings read path was gated on " +
183
+ "settings.user.write for lack of a read-side permission. settings.user.read now gates it; every " +
184
+ "existing write-holder gains the explicit read grant so no operator loses a shipped capability. " +
185
+ "Unlike this file's other pairs, `from` is not deprecated — it stays live for writes.",
186
+ });
187
+ /**
188
+ * Feature-registered permissions beyond the core BASE_CATALOG (REQ-03), added while wiring
189
+ * `authorize()` into the admin routes for the `navigation` and `integrations`
190
+ * libraries. Both libraries' own early design notes separately floated a namespaced
191
+ * `admin.<section>.manage` string in a "decisions" convention note — that convention had no
192
+ * implementation behind it anywhere in this codebase at the time. This registers the flat
193
+ * two-segment `domain.verb` shape instead ("one permission language" — the pattern every other
194
+ * catalog entry above and every currently-gated route already uses) so menus/integrations
195
+ * authorization is checked with real, tested code rather than a convention that existed only as
196
+ * design-note prose.
197
+ *
198
+ * One permission per domain (not split into `.read`/`.write`) mirrors `member.manage`/`user.manage`
199
+ * above — no finer split was directed, and neither library's routes distinguish read/write access
200
+ * today.
201
+ */
202
+ registerPermission({
203
+ id: "navigation.manage",
204
+ owner: "navigation",
205
+ description: "DEPRECATED — superseded by the admin.menus.* catalog below. " +
206
+ "Retained (not deleted) until the Point of No Return: a persistent identity store shipping " +
207
+ "plus a real deprecation window with observed zero reliance on this string, gated on " +
208
+ "authorize()-decision logging existing first to measure that. See " +
209
+ "docs/decisions/permission-catalog-migration.md. Do not register a new dependency on this string.",
210
+ });
211
+ /**
212
+ * The `admin.menus.*` 7-entry catalog that replaces
213
+ * `navigation.manage` above. Split by action (force-purge is now gated
214
+ * separately from ordinary edits) and renamed to the frozen
215
+ * `admin.<section>.<action>` convention that `navigation.manage` predates. Values must stay in
216
+ * lockstep with `navigation/contracts.ts`'s `NAVIGATION_PERMISSIONS`.
217
+ */
218
+ registerPermission({
219
+ id: "admin.menus.read",
220
+ owner: "navigation",
221
+ description: "Read menus and their location bindings.",
222
+ });
223
+ registerPermission({
224
+ id: "admin.menus.create",
225
+ owner: "navigation",
226
+ description: "Create a new menu.",
227
+ });
228
+ registerPermission({
229
+ id: "admin.menus.update",
230
+ owner: "navigation",
231
+ description: "Replace a menu's item tree.",
232
+ });
233
+ registerPermission({
234
+ id: "admin.menus.delete",
235
+ owner: "navigation",
236
+ description: "Trash a menu, and attempt an ordinary (non-forced) hard purge.",
237
+ });
238
+ registerPermission({
239
+ id: "admin.menus.delete.force",
240
+ owner: "navigation",
241
+ description: "Force-purge a menu past the dangling-location-binding guard — split from " +
242
+ "admin.menus.delete so force-purge is not reachable with only the ordinary delete grant.",
243
+ });
244
+ registerPermission({
245
+ id: "admin.menus.assign",
246
+ owner: "navigation",
247
+ description: "Assign (or reassign) a menu to a theme location.",
248
+ });
249
+ registerPermission({
250
+ id: "admin.menus.manage",
251
+ owner: "navigation",
252
+ description: "Umbrella grant covering every admin.menus.* action (mirrors owner-tier convenience grants).",
253
+ });
254
+ registerPermissionMigration({
255
+ from: "navigation.manage",
256
+ to: [
257
+ "admin.menus.read",
258
+ "admin.menus.create",
259
+ "admin.menus.update",
260
+ "admin.menus.delete",
261
+ "admin.menus.delete.force",
262
+ "admin.menus.assign",
263
+ ],
264
+ reason: "navigation.manage split into per-action admin.menus.* strings; " +
265
+ "every policy holding the old flat permission must not be silently narrowed by the split.",
266
+ });
267
+ registerPermission({
268
+ id: "integration.manage",
269
+ owner: "integrations",
270
+ description: "DEPRECATED — superseded by admin.integrations.manage below, " +
271
+ "mirroring the navigation.manage -> admin.menus.* precedent. Retained (not " +
272
+ "deleted) — see admin.integrations.manage's own comment and " +
273
+ "docs/decisions/permission-catalog-migration.md for the same migration contract " +
274
+ "this repo's other permission renames have used.",
275
+ });
276
+ /**
277
+ * The single umbrella permission superseding the flat
278
+ * `integration.manage` above, renamed to the frozen `admin.<section>.<action>` convention —
279
+ * mirrors the identical navigation.manage -> admin.menus.* rename. One permission (not split
280
+ * by action) because `integration.manage` itself was never split and no finer split was
281
+ * directed for this pass.
282
+ */
283
+ registerPermission({
284
+ id: "admin.integrations.manage",
285
+ owner: "integrations",
286
+ description: "Create, update, pause, and delete webhook subscriptions; read delivery logs.",
287
+ });
288
+ registerPermissionMigration({
289
+ from: "integration.manage",
290
+ to: ["admin.integrations.manage"],
291
+ reason: "integration.manage renamed to admin.integrations.manage; every " +
292
+ "policy holding the old flat permission must not be silently locked out by the rename.",
293
+ });
294
+ /**
295
+ * A single umbrella permission
296
+ * gating all 6 SEO admin routes (both reads and writes — no self-vs-other
297
+ * branching to get wrong, matching `theme.set`'s single-permission-per-domain
298
+ * precedent). Uses the frozen `admin.<section>.<action>`
299
+ * convention directly (unlike `navigation.manage`/`integration.manage` above,
300
+ * which predate it) as the owner-frozen shape new admin sections should register under.
301
+ */
302
+ registerPermission({
303
+ id: "admin.seo.manage",
304
+ owner: "seo",
305
+ description: "Read and write per-entry SEO overrides, site-level SEO settings, and the sitemap cache.",
306
+ });
307
+ /**
308
+ * A single umbrella permission gating both AI Assistant admin routes (read and write), registered
309
+ * under the frozen `admin.<section>.<action>` convention `admin.seo.manage`'s own comment above
310
+ * names as the shape new admin sections should use.
311
+ *
312
+ * One string, not a read/write split, matching SEO's rationale verbatim: there is no self-vs-other
313
+ * branching here to get wrong, and the read is not sensitive independently of the write — knowing
314
+ * whether the public assistant is on is exactly as privileged as being able to turn it off.
315
+ *
316
+ * This gates the PUBLIC assistant's master switch only. It has nothing to do with reaching the admin
317
+ * assistant dock, which is gated by `requireAdminSession` at the proxy
318
+ * (`server/modules/assistant.ts`) and by each individual agent tool's own permission thereafter.
319
+ */
320
+ registerPermission({
321
+ id: "admin.assistant.manage",
322
+ owner: "assistant",
323
+ description: "Read and change the visitor-facing AI assistant's settings, including its master on/off switch.",
324
+ });
325
+ /**
326
+ * Closes a standing security-by-default gap on the analytics
327
+ * `recent-hits` admin route (previously zero `authorize()` call at all). Flat
328
+ * `domain.verb` shape, matching `navigation.manage`/`integration.manage` above rather
329
+ * than the never-implemented `admin.analytics.view` string floated in early design
330
+ * prose.
331
+ */
332
+ registerPermission({
333
+ id: "analytics.read",
334
+ owner: "analytics",
335
+ description: "Read recent ingested analytics hits.",
336
+ });
337
+ /**
338
+ * Gates all 7 admin `redirects` endpoints
339
+ * (list/get/create/update/tombstone/import/hit-read). A flagged, disclosed deviation:
340
+ * this is the FIRST
341
+ * `admin.<section>.<action>`-prefixed permission in the catalog — every
342
+ * other entry above (`navigation.manage`, `integration.manage`,
343
+ * `analytics.read`, ...) uses the flat `domain.verb` shape and explicitly
344
+ * rejected the `admin.<section>.<action>` convention floated only in early design
345
+ * prose. This one is used exactly as the redirects feature's own spec directs, not
346
+ * silently normalized to match the flat-string precedent — a real,
347
+ * disclosed inconsistency in the catalog, not an oversight.
348
+ */
349
+ registerPermission({
350
+ id: "admin.redirects.manage",
351
+ owner: "redirects",
352
+ description: "Create, update, tombstone, import, and read hit stats for redirect rules.",
353
+ });
354
+ /**
355
+ * The three `admin.forms.*` capability
356
+ * strings, verbatim per this plugin's own manifest data. Unlike
357
+ * `navigation.manage`/`integration.manage` above, Forms deliberately splits into three (not one
358
+ * flat `forms.manage`) — submission data is visitor-supplied PII, so an admin who manages form
359
+ * definitions need not automatically see or delete submission content, and vice versa (mirrors the
360
+ * `webhooks.read` vs `webhooks.redeliver` granularity precedent in the integrations library).
361
+ */
362
+ registerPermission({
363
+ id: "admin.forms.manage",
364
+ owner: "forms",
365
+ description: "Create, update, and disable/enable form definitions.",
366
+ });
367
+ registerPermission({
368
+ id: "admin.forms.submissions.read",
369
+ owner: "forms",
370
+ description: "List and view form submissions.",
371
+ });
372
+ registerPermission({
373
+ id: "admin.forms.submissions.delete",
374
+ owner: "forms",
375
+ description: "Permanently delete a form submission.",
376
+ });
377
+ /**
378
+ * Namespaced `admin.newsletter.*`
379
+ * shape (unlike `navigation.manage`/`integration.manage`/`analytics.read` above) — matches
380
+ * this feature's own per-endpoint auth-profile table exactly (8 strings actually gate a route this
381
+ * pass) and `admin.redirects.manage`'s naming precedent. `admin.newsletter.settings.manage`/
382
+ * `admin.newsletter.manage` are registered but not yet gate any route — reserved for a future API
383
+ * surface, same disclosed convention as `settings.read.raw`/`settings.read.revisions` above.
384
+ */
385
+ registerPermission({
386
+ id: "admin.newsletter.read",
387
+ owner: "newsletter",
388
+ description: "List and read newsletter campaigns, lists, and the send log.",
389
+ });
390
+ registerPermission({
391
+ id: "admin.newsletter.campaign.compose",
392
+ owner: "newsletter",
393
+ description: "Create/edit/cancel a newsletter campaign in draft or scheduled state.",
394
+ });
395
+ registerPermission({
396
+ id: "admin.newsletter.campaign.schedule",
397
+ owner: "newsletter",
398
+ description: "Schedule a draft newsletter campaign to send at a future time.",
399
+ });
400
+ registerPermission({
401
+ id: "admin.newsletter.campaign.send",
402
+ owner: "newsletter",
403
+ description: "Send, pause, or resume a newsletter campaign — real outbound mail.",
404
+ });
405
+ registerPermission({
406
+ id: "admin.newsletter.campaign.send_test",
407
+ owner: "newsletter",
408
+ description: "Send a test copy of a newsletter campaign to a small address list.",
409
+ });
410
+ registerPermission({
411
+ id: "admin.newsletter.list.manage",
412
+ owner: "newsletter",
413
+ description: "Create and archive newsletter subscriber lists.",
414
+ });
415
+ registerPermission({
416
+ id: "admin.newsletter.subscriber.read",
417
+ owner: "newsletter",
418
+ description: "Read newsletter subscriptions and the per-campaign send log.",
419
+ });
420
+ registerPermission({
421
+ id: "admin.newsletter.subscriber.manage",
422
+ owner: "newsletter",
423
+ description: "Add, import, remove newsletter subscriptions, and resend confirmation emails.",
424
+ });
425
+ registerPermission({
426
+ id: "admin.newsletter.settings.manage",
427
+ owner: "newsletter",
428
+ description: "Reserved for a future API surface (no route uses this yet).",
429
+ });
430
+ registerPermission({
431
+ id: "admin.newsletter.manage",
432
+ owner: "newsletter",
433
+ description: "Umbrella newsletter permission. Reserved for a future API surface (no route uses this yet).",
434
+ });
435
+ /**
436
+ * Database Timeline permissions (renamed from "Storage" per a naming-correction note —
437
+ * "Storage" read as ambiguous next to the Media/Assets subsystem's file/blob storage), plus
438
+ * Backups/Recovery — the house-style flat `domain.verb` permissions this feature's own design
439
+ * notes name
440
+ * directly (matching `navigation.manage`/`integration.manage`/`analytics.read`'s shape, not the
441
+ * `admin.<section>.<action>` convention). Only `database.read` gates a route this pass
442
+ * (`routes/admin/database/timeline.ts`); the rest are registered now — matching this catalog's
443
+ * existing precedent of registering a domain's full permission vocabulary even before every
444
+ * verb has a route (e.g. `admin.newsletter.settings.manage` above) — so a future session wiring
445
+ * the remaining Database/Recovery routes need not touch this file again.
446
+ */
447
+ registerPermission({
448
+ id: "storage.read",
449
+ owner: "database",
450
+ description: "DEPRECATED — superseded by database.read below, " +
451
+ "mirroring this catalog's integration.manage -> admin.integrations.manage precedent. Retained " +
452
+ "(not deleted) — see database.read's own comment and " +
453
+ "docs/decisions/permission-catalog-migration.md for the same migration contract " +
454
+ "this repo's other permission renames have used.",
455
+ });
456
+ registerPermission({ id: "database.read", owner: "database", description: "Read the Database Timeline, schema drift status, and restore points." });
457
+ registerPermissionMigration({
458
+ from: "storage.read",
459
+ to: ["database.read"],
460
+ reason: "Naming-correction: storage.read renamed to database.read; every " +
461
+ "policy holding the old flat permission must not be silently locked out by the rename.",
462
+ });
463
+ /** Gates `GET /api/admin/v1/system/module-status`. */
464
+ registerPermission({ id: "system.read", owner: "server", description: "Read boot/readiness module lifecycle status." });
465
+ registerPermission({
466
+ id: "storage.migrate",
467
+ owner: "database",
468
+ description: "DEPRECATED — superseded by database.migrate below, " +
469
+ "mirroring this catalog's integration.manage -> admin.integrations.manage precedent. Retained " +
470
+ "(not deleted) — see database.migrate's own comment and " +
471
+ "docs/decisions/permission-catalog-migration.md for the same migration contract " +
472
+ "this repo's other permission renames have used.",
473
+ });
474
+ registerPermission({ id: "database.migrate", owner: "database", description: "Plan, confirm, and execute a forward schema migration." });
475
+ registerPermissionMigration({
476
+ from: "storage.migrate",
477
+ to: ["database.migrate"],
478
+ reason: "Naming-correction: storage.migrate renamed to database.migrate; every " +
479
+ "policy holding the old flat permission must not be silently locked out by the rename.",
480
+ });
481
+ registerPermission({ id: "backup.read", owner: "recovery", description: "Read restore points and this site's restore capability." });
482
+ registerPermission({ id: "backup.create", owner: "recovery", description: "Mint a restore point independent of any migration." });
483
+ registerPermission({ id: "backup.restore", owner: "recovery", description: "Confirm and execute a restore to a prior restore point." });
484
+ /** Flat `comments.*` strings, one catalog, mirroring `analytics.read`'s
485
+ * shape (not the `admin.<section>.<action>` convention). Public/anonymous submission is
486
+ * ingress-governed (`CommentIngressPolicy`), not `authorize()`-gated — `comments.submit` exists
487
+ * for a future member-only mode, not the anonymous path this feature's route uses. */
488
+ registerPermission({ id: "comments.read", owner: "comments", description: "Read comments and the moderation queue." });
489
+ registerPermission({ id: "comments.moderate", owner: "comments", description: "Approve, mark spam, or restore a comment." });
490
+ registerPermission({ id: "comments.reply", owner: "comments", description: "Post an operator reply to a comment thread." });
491
+ registerPermission({ id: "comments.delete", owner: "comments", description: "Trash a comment (soft delete, recoverable)." });
492
+ registerPermission({ id: "comments.delete.force", owner: "comments", description: "Purge a comment permanently (hard delete, not recoverable)." });
493
+ registerPermission({ id: "comments.submit", owner: "comments", description: "Reserved for a future member-only submission gate; the anonymous path is ingress-governed, not authorize()-gated." });
494
+ registerPermission({ id: "comments.configure", owner: "comments", description: "Change Comments settings (moderation defaults, spam threshold, depth cap)." });
495
+ /**
496
+ * An admin-UI backend-gap closure pass wired 18 new
497
+ * admin routes over the content-types/entries/taxonomy domains gated by these three strings, but
498
+ * registering them in this catalog was out of that pass's own scope-file list — they worked
499
+ * anyway via the seeded owner's `"*"` wildcard grant (`isKnownPermission()` is not consulted by
500
+ * `authorize()` on the runtime path). This closes that disclosed catalog-completeness gap; no
501
+ * route or authorize() behavior changes as a result (`isKnownPermission` has no caller in the
502
+ * authorize path today).
503
+ */
504
+ registerPermission({
505
+ id: "admin.collections.read",
506
+ owner: "content-types",
507
+ description: "List Collections content types and their entries.",
508
+ });
509
+ registerPermission({
510
+ id: "admin.collections.manage",
511
+ owner: "content-types",
512
+ description: "Create/edit content types and entries; deprecate/reactivate/tombstone a content type; publish/unpublish an entry.",
513
+ });
514
+ registerPermission({
515
+ id: "admin.taxonomy.manage",
516
+ owner: "taxonomy",
517
+ description: "Read and write taxonomies, terms, and term assignments (one permission for this whole domain, no .read/.write split).",
518
+ });
519
+ /**
520
+ * The flat `media.*` permission set, verbatim per this feature's own design notes,
521
+ * superseding the single, broader `media.write` above (mirrors `navigation.manage` ->
522
+ * `admin.menus.*` and `integration.manage` -> `admin.integrations.manage`: deprecate-not-delete the
523
+ * old flat string, register the new set, fan out via `registerPermissionMigration` below so no
524
+ * existing `media.write` grant is silently narrowed). Wired into the 5 admin media routes this
525
+ * pass (`routes/admin/media/{list,upload,update,trash,delete}.ts`); `media.download_original` and
526
+ * `media.upload_svg` are registered for catalog completeness per those notes but gate no route yet
527
+ * (no original-download route exists, and SVG upload is already rejected outright rather than
528
+ * gated). `media.manage` is the umbrella/admin-override grant, also
529
+ * registered but not checked as an alternate by any route — no existing umbrella-as-alternate
530
+ * precedent was found in this catalog to extend (unlike `admin.menus.manage`, which is likewise
531
+ * registered but unused by any route), so one specific permission per route was kept, not invented.
532
+ */
533
+ registerPermission({ id: "media.read", owner: "media", description: "List and read media assets." });
534
+ registerPermission({ id: "media.upload", owner: "media", description: "Upload a new media asset." });
535
+ registerPermission({ id: "media.update", owner: "media", description: "Edit a media asset's metadata (title/alt/caption/credit)." });
536
+ registerPermission({ id: "media.delete", owner: "media", description: "Trash (soft-delete) a media asset." });
537
+ registerPermission({
538
+ id: "media.delete.force",
539
+ owner: "media",
540
+ description: "Permanently purge a trashed media asset, past the still-referenced guard.",
541
+ });
542
+ registerPermission({
543
+ id: "media.download_original",
544
+ owner: "media",
545
+ description: "Mint a short-TTL signed URL to download a media asset's original bytes. Reserved for a future API surface — no route uses this yet.",
546
+ });
547
+ registerPermission({
548
+ id: "media.upload_svg",
549
+ owner: "media",
550
+ description: "Upload an SVG asset (sanitized at ingest, served origin-isolated).",
551
+ });
552
+ registerPermission({
553
+ id: "media.manage",
554
+ owner: "media",
555
+ description: "Umbrella grant covering every media.* action (mirrors owner-tier convenience grants like admin.menus.manage).",
556
+ });
557
+ registerPermissionMigration({
558
+ from: "media.write",
559
+ to: ["media.read", "media.upload", "media.update", "media.delete", "media.delete.force", "media.download_original", "media.upload_svg"],
560
+ reason: "media.write replaced by the flat media.* permission set; " +
561
+ "every policy holding the old flat permission must not be silently narrowed by the split.",
562
+ });
563
+ /**
564
+ * Flat `widgets.*` permissions,
565
+ * matching `comments.*`'s shape (flat `domain.verb`, not the `admin.<section>.<action>`
566
+ * convention). `.place` is split from `.update` (mirrors `admin.menus.assign`'s split from
567
+ * `admin.menus.update`): placing a widget onto the live site is higher-trust than editing an
568
+ * off-site instance's config. `.delete`/`.delete.force` mirrors `media.delete`/`media.delete.force`
569
+ * (the trash -> purge-blocked -> force-purge ladder).
570
+ */
571
+ registerPermission({ id: "widgets.read", owner: "widgets", description: "Read widget instances, widget_area regions, and their revision history." });
572
+ registerPermission({ id: "widgets.create", owner: "widgets", description: "Create a new widget instance." });
573
+ registerPermission({ id: "widgets.update", owner: "widgets", description: "Update an existing widget instance's config." });
574
+ registerPermission({
575
+ id: "widgets.place",
576
+ owner: "widgets",
577
+ description: "Bind/reorder/disable a widget in a region's widget_area, or insert/remove/reorder a widgetEmbed node.",
578
+ });
579
+ registerPermission({ id: "widgets.delete", owner: "widgets", description: "Trash a widget instance." });
580
+ registerPermission({
581
+ id: "widgets.delete.force",
582
+ owner: "widgets",
583
+ description: "Force-purge a widget instance past the still-referenced guard, flagging any resulting dangling references.",
584
+ });
585
+ /**
586
+ * Workspace Administration — a distinct grant, not reused from `settings.write`:
587
+ * workspace identity (rename, eventual multi-tenant delete) is a higher-blast-radius operation than
588
+ * a settings-ledger value edit, worth auditing independently.
589
+ */
590
+ registerPermission({
591
+ id: "workspace.manage",
592
+ owner: "workspace",
593
+ description: "List/view/rename/delete the workspace.",
594
+ });
595
+ /** Enumerate the full registered catalog (REQ-12 core capability; CLI wiring is N/A, see file header). */
596
+ export function listPermissions() {
597
+ return permissionCatalog.list();
598
+ }
599
+ /** Whether `id` is a recognized catalog permission. `"*"` is intentionally excluded (see class doc). */
600
+ export function isKnownPermission(id) {
601
+ return permissionCatalog.has(id);
602
+ }
603
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"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"}