@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 @@
1
+ {"version":3,"file":"settings-dialog.ur.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.ur.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,2BAA2B,EAAE,8BAA8B;IAC3D,cAAc,EAAE,QAAQ;IACxB,4DAA4D,EAAE,kDAAkD;IAChH,eAAe,EAAE,SAAS;IAC1B,yEAAyE,EAAE,wFAAwF;IACnK,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,sBAAsB;IAC3C,uEAAuE,EAAE,qEAAqE;IAC9I,8EAA8E,EAAE,wEAAwE;IACxJ,YAAY,EAAE,UAAU;IACxB,gFAAgF,EAAE,kGAAkG;IACpL,kDAAkD,EAAE,6CAA6C;IACjG,6CAA6C,EAAE,gDAAgD;IAC/F,QAAQ,EAAE,QAAQ;IAClB,2CAA2C,EAAE,yDAAyD;IACtG,cAAc,EAAE,WAAW;IAC3B,uCAAuC,EAAE,qCAAqC;IAC9E,QAAQ,EAAE,SAAS;IACnB,mDAAmD,EAAE,kEAAkE;IACvH,8BAA8B,EAAE,2BAA2B;IAC3D,SAAS,EAAE,MAAM;IACjB,gBAAgB,EAAE,0BAA0B;IAC5C,wCAAwC,EAAE,4DAA4D;IACtG,mBAAmB,EAAE,6BAA6B;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** @file zh-CN translation of the settings-dialog chrome keys (see `index.ts`). */
2
+ export declare const SETTINGS_DIALOG_ZH_CN: Record<string, string>;
3
+ //# sourceMappingURL=settings-dialog.zh-CN.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-dialog.zh-CN.d.ts","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-CN.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBxD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** @file zh-CN translation of the settings-dialog chrome keys (see `index.ts`). */
2
+ export const SETTINGS_DIALOG_ZH_CN = {
3
+ "Choose Local CLI or BYOK.": "选择本地 CLI 或 BYOK。",
4
+ "Instructions": "指令",
5
+ "Applied to every assistant conversation in this workspace.": "应用于此工作区中的每一次助手对话。",
6
+ "Notifications": "通知",
7
+ "How you're told a task finished. Saved per operator, not per workspace.": "任务完成时如何通知你。按操作者保存,而非按工作区保存。",
8
+ "Privacy": "隐私",
9
+ "Dialog appearance": "对话框外观",
10
+ "Theme and accent color for this settings surface. Saved per operator.": "此设置界面的主题和强调色,按操作者保存。",
11
+ "Admin interface language. Applies to this settings panel's tab content only.": "管理界面语言,仅适用于此设置面板的标签页内容。",
12
+ "MCP server": "MCP 服务器",
13
+ "Connect an MCP client. Showing sample output — not yet wired to a live server.": "连接一个 MCP 客户端。当前显示的是示例输出——尚未接入实际服务器。",
14
+ "API keys for image, video, and audio generation.": "用于生成图像、视频和音频的 API 密钥。",
15
+ "Third-party accounts and APIs via Composio.": "通过 Composio 接入的第三方账户和 API。",
16
+ "Memory": "记忆",
17
+ "Saved facts and context for future chats.": "为后续对话保存的事实和上下文。",
18
+ "External MCP": "外部 MCP",
19
+ "Add MCP tools from external services.": "从外部服务添加 MCP 工具。",
20
+ "Skills": "技能",
21
+ "Custom skills your assistant can invoke mid-task.": "你的助手可以在任务执行过程中调用的自定义技能。",
22
+ "Version and runtime details.": "版本和运行时详细信息。",
23
+ "Version": "版本",
24
+ "Open as dialog": "以对话框方式打开",
25
+ "No MCP config store to connect to yet.": "目前还没有可连接的 MCP 配置存储。",
26
+ "All changes saved": "所有更改均已保存",
27
+ };
28
+ //# sourceMappingURL=settings-dialog.zh-CN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-dialog.zh-CN.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-CN.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,2BAA2B,EAAE,kBAAkB;IAC/C,cAAc,EAAE,IAAI;IACpB,4DAA4D,EAAE,mBAAmB;IACjF,eAAe,EAAE,IAAI;IACrB,yEAAyE,EAAE,6BAA6B;IACxG,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,OAAO;IAC5B,uEAAuE,EAAE,sBAAsB;IAC/F,8EAA8E,EAAE,yBAAyB;IACzG,YAAY,EAAE,SAAS;IACvB,gFAAgF,EAAE,qCAAqC;IACvH,kDAAkD,EAAE,uBAAuB;IAC3E,6CAA6C,EAAE,4BAA4B;IAC3E,QAAQ,EAAE,IAAI;IACd,2CAA2C,EAAE,iBAAiB;IAC9D,cAAc,EAAE,QAAQ;IACxB,uCAAuC,EAAE,iBAAiB;IAC1D,QAAQ,EAAE,IAAI;IACd,mDAAmD,EAAE,yBAAyB;IAC9E,8BAA8B,EAAE,aAAa;IAC7C,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,UAAU;IAC5B,wCAAwC,EAAE,qBAAqB;IAC/D,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** @file zh-TW translation of the settings-dialog chrome keys (see `index.ts`). */
2
+ export declare const SETTINGS_DIALOG_ZH_TW: Record<string, string>;
3
+ //# sourceMappingURL=settings-dialog.zh-TW.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-dialog.zh-TW.d.ts","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-TW.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBxD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** @file zh-TW translation of the settings-dialog chrome keys (see `index.ts`). */
2
+ export const SETTINGS_DIALOG_ZH_TW = {
3
+ "Choose Local CLI or BYOK.": "選擇本機 CLI 或 BYOK。",
4
+ "Instructions": "指令",
5
+ "Applied to every assistant conversation in this workspace.": "套用於此工作區中的每一次助理對話。",
6
+ "Notifications": "通知",
7
+ "How you're told a task finished. Saved per operator, not per workspace.": "工作完成時如何通知你。依操作者儲存,而非依工作區儲存。",
8
+ "Privacy": "隱私",
9
+ "Dialog appearance": "對話方塊外觀",
10
+ "Theme and accent color for this settings surface. Saved per operator.": "此設定介面的主題與強調色,依操作者儲存。",
11
+ "Admin interface language. Applies to this settings panel's tab content only.": "管理介面語言,僅適用於此設定面板的分頁內容。",
12
+ "MCP server": "MCP 伺服器",
13
+ "Connect an MCP client. Showing sample output — not yet wired to a live server.": "連接一個 MCP 用戶端。目前顯示的是範例輸出——尚未接上實際伺服器。",
14
+ "API keys for image, video, and audio generation.": "用於產生圖片、影片與音訊的 API 金鑰。",
15
+ "Third-party accounts and APIs via Composio.": "透過 Composio 串接的第三方帳戶與 API。",
16
+ "Memory": "記憶",
17
+ "Saved facts and context for future chats.": "為日後對話保存的事實與脈絡資訊。",
18
+ "External MCP": "外部 MCP",
19
+ "Add MCP tools from external services.": "從外部服務新增 MCP 工具。",
20
+ "Skills": "技能",
21
+ "Custom skills your assistant can invoke mid-task.": "你的助理可以在工作進行中呼叫的自訂技能。",
22
+ "Version and runtime details.": "版本與執行環境詳細資料。",
23
+ "Version": "版本",
24
+ "Open as dialog": "以對話方塊開啟",
25
+ "No MCP config store to connect to yet.": "目前還沒有可連接的 MCP 設定儲存區。",
26
+ "All changes saved": "所有變更皆已儲存",
27
+ };
28
+ //# sourceMappingURL=settings-dialog.zh-TW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-dialog.zh-TW.js","sourceRoot":"","sources":["../../../src/settings/dictionaries/settings-dialog.zh-TW.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,2BAA2B,EAAE,kBAAkB;IAC/C,cAAc,EAAE,IAAI;IACpB,4DAA4D,EAAE,mBAAmB;IACjF,eAAe,EAAE,IAAI;IACrB,yEAAyE,EAAE,6BAA6B;IACxG,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,QAAQ;IAC7B,uEAAuE,EAAE,sBAAsB;IAC/F,8EAA8E,EAAE,wBAAwB;IACxG,YAAY,EAAE,SAAS;IACvB,gFAAgF,EAAE,qCAAqC;IACvH,kDAAkD,EAAE,uBAAuB;IAC3E,6CAA6C,EAAE,4BAA4B;IAC3E,QAAQ,EAAE,IAAI;IACd,2CAA2C,EAAE,kBAAkB;IAC/D,cAAc,EAAE,QAAQ;IACxB,uCAAuC,EAAE,iBAAiB;IAC1D,QAAQ,EAAE,IAAI;IACd,mDAAmD,EAAE,sBAAsB;IAC3E,8BAA8B,EAAE,cAAc;IAC9C,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,SAAS;IAC3B,wCAAwC,EAAE,sBAAsB;IAChE,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import type { ClockPort, IdGeneratorPort, JsonValue, UUID } from "../core/ports.js";
2
+ import type { PrincipalRepoPort } from "../identity/index.js";
3
+ import type { SettingsRepoPort } from "./ports.js";
4
+ import { type SettingValueSchema } from "./types.js";
5
+ /**
6
+ * @file The one boot-time "register these definitions if they aren't already,
7
+ * and keep their defaults honest if they are" loop, shared by every registrar
8
+ * that backs a settings-dialog tab.
9
+ *
10
+ * This exists because the loop is genuinely identical everywhere it appears —
11
+ * the first host to use this library had one hand-written copy per tab before
12
+ * this helper existed, and each additional tab would have added another. A
13
+ * host's per-tab modules keep what actually differs (the namespace, the key
14
+ * list, each key's schema and default) and hand it to
15
+ * `ensureSettingDefinitions` as data.
16
+ *
17
+ * Note what is NOT abstracted here: a host may have domain-owned settings
18
+ * modules (comments, SEO, a public-assistant surface) with their own similar
19
+ * loop, deliberately left alone. Those are typically `ownerKind: "site"` and
20
+ * pair their registration with bespoke get/set services and their own
21
+ * permissions; the generic settings-dialog tabs this helper serves are
22
+ * `ownerKind: "core"` and read/write through the generic settings ledger
23
+ * routes with no bespoke service at all. Folding both shapes into one helper
24
+ * would mean parameterising the differences that matter.
25
+ */
26
+ /** One key's registration data — everything `registerDefinitions` needs that
27
+ * varies per key. */
28
+ export interface SettingDefinitionSpec {
29
+ key: string;
30
+ schema: SettingValueSchema;
31
+ /**
32
+ * Every non-secret definition needs a NON-NULL default.
33
+ * `validateDefinitionInput` (`settings.ts`) rejects a null `default_json` for
34
+ * every non-secret definition, full stop — there is no nullable-schema
35
+ * carve-out in the actual check, regardless of what a nullable schema might
36
+ * suggest. A field that is nullable in spirit needs a sentinel instead (a
37
+ * distinguished non-null value the host's own code treats as "unset"). See
38
+ * `docs/decisions/settings-json-schema-variant.md` for why this diverges
39
+ * from this ledger's own originating design notes.
40
+ *
41
+ * Typed `Exclude<…, null>` rather than a bare primitive union: `DefinitionInput`
42
+ * already accepts any `JsonValue`, and a `{ type: "json" }` definition needs an
43
+ * array/object default. Excluding `null` at the type level keeps the non-null
44
+ * rule above a compile error rather than a boot-time throw.
45
+ */
46
+ defaultValue: Exclude<JsonValue, null>;
47
+ /**
48
+ * Bitmask over `SCOPE_BIT`. Defaults to `workspace`, which is what most
49
+ * settings-dialog tabs want: one operator's choice shouldn't silently
50
+ * become every workspace's. Pass `SCOPE_BIT.user` (or a mask including it)
51
+ * for a genuinely per-operator preference.
52
+ */
53
+ scopes?: number;
54
+ }
55
+ export interface EnsureSettingDefinitionsDeps {
56
+ settingsRepo: SettingsRepoPort;
57
+ clock: ClockPort;
58
+ ids: IdGeneratorPort;
59
+ principals: PrincipalRepoPort;
60
+ }
61
+ export interface EnsureSettingDefinitionsInput {
62
+ namespace: string;
63
+ definitions: readonly SettingDefinitionSpec[];
64
+ /** The trusted boot-time actor these writes are attributed to (mirrors a
65
+ * host's other boot-time registrars' identical convention). */
66
+ systemPrincipalId: UUID;
67
+ }
68
+ /**
69
+ * Idempotently registers every definition in `input.definitions` under
70
+ * `input.namespace`, and reconciles the stored default of any that already
71
+ * exist to the default source declares. Safe to call on every boot.
72
+ *
73
+ * The reconcile half matters as much as the register half: registration is
74
+ * once-only, so without it a `defaultValue` edited in source never reaches an
75
+ * install that has booted before. Code owns `core` defaults; the stored row
76
+ * does not get to outvote it.
77
+ *
78
+ * All definitions registered here are `ownerKind: "core"` — a settings-dialog
79
+ * tab configures a platform-level capability, not per-site content. Per the
80
+ * namespace-fence CHECK, `owner_kind='core'` requires `workspaceId: null` at
81
+ * the DEFINITION level regardless of which workspace is booting, while the
82
+ * `scopes` bitmask still lets each workspace (or user) hold its own VALUE row.
83
+ *
84
+ * @complexity O(n) in the number of definitions — each is one
85
+ * skip-if-registered lookup plus at most one `registerDefinitions` call.
86
+ */
87
+ export declare function ensureSettingDefinitions(deps: EnsureSettingDefinitionsDeps, input: EnsureSettingDefinitionsInput): Promise<void>;
88
+ //# sourceMappingURL=ensure-definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-definitions.d.ts","sourceRoot":"","sources":["../../src/settings/ensure-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;sBACsB;AACtB,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;IACH,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,eAAe,CAAC;IACrB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC9C;oEACgE;IAChE,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,4BAA4B,EAClC,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,IAAI,CAAC,CAqEf"}
@@ -0,0 +1,91 @@
1
+ import { resolveDefinitionRaw } from "./settings.js";
2
+ import { SCOPE_BIT } from "./types.js";
3
+ import { reconcileDefinitionDefault, registerDefinitions } from "./write-service.js";
4
+ /** Boot-time infra work is trusted by construction — mirrors every other
5
+ * `ensure*SettingDefinitions`'s identical shim. */
6
+ const alwaysAllowBoot = async () => ({ allowed: true, reason: "system_boot" });
7
+ /**
8
+ * Idempotently registers every definition in `input.definitions` under
9
+ * `input.namespace`, and reconciles the stored default of any that already
10
+ * exist to the default source declares. Safe to call on every boot.
11
+ *
12
+ * The reconcile half matters as much as the register half: registration is
13
+ * once-only, so without it a `defaultValue` edited in source never reaches an
14
+ * install that has booted before. Code owns `core` defaults; the stored row
15
+ * does not get to outvote it.
16
+ *
17
+ * All definitions registered here are `ownerKind: "core"` — a settings-dialog
18
+ * tab configures a platform-level capability, not per-site content. Per the
19
+ * namespace-fence CHECK, `owner_kind='core'` requires `workspaceId: null` at
20
+ * the DEFINITION level regardless of which workspace is booting, while the
21
+ * `scopes` bitmask still lets each workspace (or user) hold its own VALUE row.
22
+ *
23
+ * @complexity O(n) in the number of definitions — each is one
24
+ * skip-if-registered lookup plus at most one `registerDefinitions` call.
25
+ */
26
+ export async function ensureSettingDefinitions(deps, input) {
27
+ const writeDeps = {
28
+ repo: deps.settingsRepo,
29
+ clock: deps.clock,
30
+ ids: deps.ids,
31
+ authorize: alwaysAllowBoot,
32
+ principals: deps.principals,
33
+ };
34
+ for (const def of input.definitions) {
35
+ const existing = await resolveDefinitionRaw({ repo: deps.settingsRepo }, { namespace: input.namespace, key: def.key, workspaceId: null });
36
+ if (existing) {
37
+ // Registration is once-only, but the DEFAULT is not. Without this, a
38
+ // `defaultValue` changed in source is unreachable in any install that
39
+ // has already booted — the stored `default_json` from first boot keeps
40
+ // winning, for every settings-dialog tab. See `reconcileDefinitionDefault`
41
+ // for the bug this closes.
42
+ //
43
+ // Three slots are deliberately left alone rather than reconciled:
44
+ // a non-`active` row (deprecated/tombstoned) is not ours to rewrite; a
45
+ // non-`core` row is operator-owned; and a row whose identity differs
46
+ // from the slot we asked for means `resolveDefinitionRaw` followed an
47
+ // alias, so rewriting it would silently change a DIFFERENT definition's
48
+ // default. `reconcileDefinitionDefault` would throw on the first two —
49
+ // this skips them quietly because boot must not fail on them.
50
+ const isSameSlot = existing.namespace === input.namespace && existing.key === def.key;
51
+ if (existing.status === "active" && existing.ownerKind === "core" && isSameSlot) {
52
+ await reconcileDefinitionDefault({
53
+ deps: writeDeps,
54
+ input: {
55
+ namespace: input.namespace,
56
+ key: def.key,
57
+ workspaceId: null,
58
+ defaultValue: def.defaultValue,
59
+ callerPrincipalId: input.systemPrincipalId,
60
+ authWorkspaceId: input.systemPrincipalId,
61
+ },
62
+ });
63
+ }
64
+ continue;
65
+ }
66
+ await registerDefinitions({
67
+ deps: writeDeps,
68
+ input: {
69
+ callerPrincipalId: input.systemPrincipalId,
70
+ // Platform (core) definitions aren't scoped to any one workspace, but
71
+ // `registerDefinitions`'s authorization check still needs a workspace
72
+ // context to authorize against — the seeded workspace mirrors every
73
+ // other boot-time registrar's identical `authWorkspaceId` shape.
74
+ authWorkspaceId: input.systemPrincipalId,
75
+ definitions: [
76
+ {
77
+ namespace: input.namespace,
78
+ key: def.key,
79
+ ownerKind: "core",
80
+ workspaceId: null,
81
+ schema: def.schema,
82
+ defaultValue: def.defaultValue,
83
+ scopes: def.scopes ?? SCOPE_BIT.workspace,
84
+ secret: false,
85
+ },
86
+ ],
87
+ },
88
+ });
89
+ }
90
+ }
91
+ //# sourceMappingURL=ensure-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-definitions.js","sourceRoot":"","sources":["../../src/settings/ensure-definitions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAA2B,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAoB,MAAM,oBAAoB,CAAC;AAqEvG;oDACoD;AACpD,MAAM,eAAe,GAAgB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAkC,EAClC,KAAoC;IAEpC,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAC3B,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAChE,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,2EAA2E;YAC3E,2BAA2B;YAC3B,EAAE;YACF,kEAAkE;YAClE,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;YACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChF,MAAM,0BAA0B,CAAC;oBAC/B,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,eAAe,EAAE,KAAK,CAAC,iBAAiB;qBACzC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,mBAAmB,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,sEAAsE;gBACtE,sEAAsE;gBACtE,oEAAoE;gBACpE,iEAAiE;gBACjE,eAAe,EAAE,KAAK,CAAC,iBAAiB;gBACxC,WAAW,EAAE;oBACX;wBACE,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,SAAS,EAAE,MAAM;wBACjB,WAAW,EAAE,IAAI;wBACjB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS;wBACzC,MAAM,EAAE,KAAK;qBACd;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file Typed domain errors for `settings`.
3
+ *
4
+ * Purpose:
5
+ * One class per error this module originates, mirroring the
6
+ * `PresentationSettingsNotFoundError`/`PresentationSettingsValidationError`
7
+ * convention a host's own presentation-settings module may use. Route
8
+ * handlers map these 1:1 to HTTP codes.
9
+ */
10
+ export declare class DefinitionInvalidError extends Error {
11
+ }
12
+ export declare class ScopeNotAllowedError extends Error {
13
+ }
14
+ export declare class SecretNotSupportedError extends Error {
15
+ }
16
+ export declare class ValueValidationFailedError extends Error {
17
+ }
18
+ export declare class RenameRetypeConflictError extends Error {
19
+ }
20
+ export declare class AliasDepthExceededError extends Error {
21
+ }
22
+ export declare class DefinitionTombstonedError extends Error {
23
+ }
24
+ export declare class DefinitionNotFoundError extends Error {
25
+ }
26
+ export declare class PurgeRequiredError extends Error {
27
+ }
28
+ export declare class ForbiddenError extends Error {
29
+ }
30
+ /** REQ-13: the target `principalId` does not resolve to an active principal in the request's workspace (INV-09). */
31
+ export declare class PrincipalNotFoundError extends Error {
32
+ readonly principalId: string;
33
+ readonly workspaceId: string;
34
+ constructor(message: string, principalId: string, workspaceId: string);
35
+ }
36
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/settings/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAClD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AACxD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG;AACvD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,yBAA0B,SAAQ,KAAK;CAAG;AACvD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAChD,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C,oHAAoH;AACpH,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,WAAW,EAAE,MAAM;aACnB,WAAW,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM;CAItC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @file Typed domain errors for `settings`.
3
+ *
4
+ * Purpose:
5
+ * One class per error this module originates, mirroring the
6
+ * `PresentationSettingsNotFoundError`/`PresentationSettingsValidationError`
7
+ * convention a host's own presentation-settings module may use. Route
8
+ * handlers map these 1:1 to HTTP codes.
9
+ */
10
+ export class DefinitionInvalidError extends Error {
11
+ }
12
+ export class ScopeNotAllowedError extends Error {
13
+ }
14
+ export class SecretNotSupportedError extends Error {
15
+ }
16
+ export class ValueValidationFailedError extends Error {
17
+ }
18
+ export class RenameRetypeConflictError extends Error {
19
+ }
20
+ export class AliasDepthExceededError extends Error {
21
+ }
22
+ export class DefinitionTombstonedError extends Error {
23
+ }
24
+ export class DefinitionNotFoundError extends Error {
25
+ }
26
+ export class PurgeRequiredError extends Error {
27
+ }
28
+ export class ForbiddenError extends Error {
29
+ }
30
+ /** REQ-13: the target `principalId` does not resolve to an active principal in the request's workspace (INV-09). */
31
+ export class PrincipalNotFoundError extends Error {
32
+ principalId;
33
+ workspaceId;
34
+ constructor(message, principalId, workspaceId) {
35
+ super(message);
36
+ this.principalId = principalId;
37
+ this.workspaceId = workspaceId;
38
+ }
39
+ }
40
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/settings/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AACpD,MAAM,OAAO,oBAAqB,SAAQ,KAAK;CAAG;AAClD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,0BAA2B,SAAQ,KAAK;CAAG;AACxD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG;AACvD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG;AACvD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AACrD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAChD,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C,oHAAoH;AACpH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAG7B;IACA;IAHlB,YACE,OAAe,EACC,WAAmB,EACnB,WAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;IAGrC,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file Public surface (barrel) for the `settings` library.
3
+ *
4
+ * A module's public contract is its `index.ts` — deep imports from outside
5
+ * this directory should go through here.
6
+ *
7
+ * A host's `repo.sqlite.ts` adapter and any one-time brownfield migration of a
8
+ * host's own legacy pre-ledger settings table are NOT part of this package —
9
+ * a fresh host has no legacy data to migrate, and a SQLite adapter names a
10
+ * host's own database schema. Both stay host-side, composed against the
11
+ * `SettingsRepoPort` this barrel exports.
12
+ */
13
+ export { SCOPE_BIT, type SettingScope, type SettingOwnerKind, type DefinitionStatus, type ValueState, type RevisionEntityKind, type RevisionOp, type SettingValueSchema, type SettingDefinitionRecord, type SettingValueRecord, type SettingRevisionRecord, type SettingScopeContext, } from "./types.js";
14
+ export { DefinitionInvalidError, ScopeNotAllowedError, SecretNotSupportedError, ValueValidationFailedError, RenameRetypeConflictError, AliasDepthExceededError, DefinitionTombstonedError, DefinitionNotFoundError, PurgeRequiredError, ForbiddenError, PrincipalNotFoundError, } from "./errors.js";
15
+ export type { SettingsRepoPort } from "./ports.js";
16
+ export { InMemorySettingsRepo } from "./repo.memory.js";
17
+ export { type DefinitionInput, validateDefinitionInput, validateValueAgainstSchema, registerCoercer, invalidateDefinitionNamespaceCache, invalidateWorkspaceSettingsCache, resolveDefinitionRaw, resolveDefinition, type ResolvedSetting, getEffective, } from "./settings.js";
18
+ export { type AuthorizeFn, type SettingsWriteServiceDeps, deriveRequiredPermission, type RegisterDefinitionsRequired, registerDefinitions, type SetValueRequired, set, type ClearValueRequired, clear, type ResetNamespaceRequired, resetNamespace, type RenameDefinitionRequired, renameDefinition, type RetypeDefinitionRequired, retypeDefinition, type ReconcileDefinitionDefaultRequired, reconcileDefinitionDefault, type DeprecateDefinitionRequired, deprecateDefinition, type TombstoneDefinitionRequired, tombstoneDefinition, } from "./write-service.js";
19
+ export { type PurgeServiceDeps, type PurgeTenantSettingsRequired, purgeTenantSettings, } from "./purge-service.js";
20
+ export { type ChangeFeedViewer, isRevisionVisibleTo, type ChangeFeedBatch, collectChangedNamespaces, } from "./change-feed.js";
21
+ export { type DefinitionOpRequestItem, type DefinitionOpContext, type DefinitionOpHandler, NON_REGISTER_DEFINITION_OP_NAMES, type NonRegisterDefinitionOp, parseNonRegisterDefinitionOp, NON_REGISTER_DEFINITION_OPS, } from "./definitions-dispatch.js";
22
+ export { type SettingDefinitionSpec, type EnsureSettingDefinitionsDeps, type EnsureSettingDefinitionsInput, ensureSettingDefinitions, } from "./ensure-definitions.js";
23
+ export { INSTRUCTIONS_NAMESPACE, NOTIFICATIONS_NAMESPACE, PRIVACY_NAMESPACE, APPEARANCE_NAMESPACE, LANGUAGE_NAMESPACE, type EnsureSettingsUiTabDefinitionsInput, ensureSettingsUiTabDefinitions, } from "./ui-tab-definitions.js";
24
+ export { type AgentWritablePreference, AGENT_PREFERENCE_WRITE_SCOPE, AGENT_WRITABLE_PREFERENCES, AGENT_WRITABLE_PREFERENCE_IDS, resolveAgentWritablePreference, AGENT_PREFERENCE_REQUIRED_SCOPE_BIT, } from "./agent-writable-preferences.js";
25
+ /** The agent-tool catalog for this domain. */
26
+ export { getSettingsAgentToolCatalog, type AgentToolDefinition as SettingsAgentToolDefinition, type AgentToolSideEffect as SettingsAgentToolSideEffect, } from "./agent-tools.js";
27
+ /**
28
+ * The agent-tool wiring for this domain.
29
+ *
30
+ * `SettingsToolDeps` is declared structurally rather than derived from any host's request-scoped
31
+ * dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
32
+ * the shape is the contract, so no host type needs to be named here.
33
+ */
34
+ export { buildSettingsRegistrations, settingsDerivedRisk, type SettingsToolDeps, } from "./tool-registrations.js";
35
+ /** The settings-dialog chrome copy (24 generic tab labels/subtitles), shared across every host. */
36
+ export { SETTINGS_DIALOG_DICTIONARIES, translateSettingsDialog } from "./dictionaries/index.js";
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EACL,KAAK,eAAe,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,eAAe,EACpB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,GAAG,EACH,KAAK,kBAAkB,EACvB,KAAK,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,KAAK,kCAAkC,EACvC,0BAA0B,EAC1B,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,eAAe,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,mCAAmC,EACxC,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,KAAK,uBAAuB,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,8CAA8C;AAC9C,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,IAAI,2BAA2B,EACvD,KAAK,mBAAmB,IAAI,2BAA2B,GACxD,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,mGAAmG;AACnG,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file Public surface (barrel) for the `settings` library.
3
+ *
4
+ * A module's public contract is its `index.ts` — deep imports from outside
5
+ * this directory should go through here.
6
+ *
7
+ * A host's `repo.sqlite.ts` adapter and any one-time brownfield migration of a
8
+ * host's own legacy pre-ledger settings table are NOT part of this package —
9
+ * a fresh host has no legacy data to migrate, and a SQLite adapter names a
10
+ * host's own database schema. Both stay host-side, composed against the
11
+ * `SettingsRepoPort` this barrel exports.
12
+ */
13
+ export { SCOPE_BIT, } from "./types.js";
14
+ export { DefinitionInvalidError, ScopeNotAllowedError, SecretNotSupportedError, ValueValidationFailedError, RenameRetypeConflictError, AliasDepthExceededError, DefinitionTombstonedError, DefinitionNotFoundError, PurgeRequiredError, ForbiddenError, PrincipalNotFoundError, } from "./errors.js";
15
+ export { InMemorySettingsRepo } from "./repo.memory.js";
16
+ export { validateDefinitionInput, validateValueAgainstSchema, registerCoercer, invalidateDefinitionNamespaceCache, invalidateWorkspaceSettingsCache, resolveDefinitionRaw, resolveDefinition, getEffective, } from "./settings.js";
17
+ export { deriveRequiredPermission, registerDefinitions, set, clear, resetNamespace, renameDefinition, retypeDefinition, reconcileDefinitionDefault, deprecateDefinition, tombstoneDefinition, } from "./write-service.js";
18
+ export { purgeTenantSettings, } from "./purge-service.js";
19
+ export { isRevisionVisibleTo, collectChangedNamespaces, } from "./change-feed.js";
20
+ export { NON_REGISTER_DEFINITION_OP_NAMES, parseNonRegisterDefinitionOp, NON_REGISTER_DEFINITION_OPS, } from "./definitions-dispatch.js";
21
+ export { ensureSettingDefinitions, } from "./ensure-definitions.js";
22
+ export { INSTRUCTIONS_NAMESPACE, NOTIFICATIONS_NAMESPACE, PRIVACY_NAMESPACE, APPEARANCE_NAMESPACE, LANGUAGE_NAMESPACE, ensureSettingsUiTabDefinitions, } from "./ui-tab-definitions.js";
23
+ export { AGENT_PREFERENCE_WRITE_SCOPE, AGENT_WRITABLE_PREFERENCES, AGENT_WRITABLE_PREFERENCE_IDS, resolveAgentWritablePreference, AGENT_PREFERENCE_REQUIRED_SCOPE_BIT, } from "./agent-writable-preferences.js";
24
+ /** The agent-tool catalog for this domain. */
25
+ export { getSettingsAgentToolCatalog, } from "./agent-tools.js";
26
+ /**
27
+ * The agent-tool wiring for this domain.
28
+ *
29
+ * `SettingsToolDeps` is declared structurally rather than derived from any host's request-scoped
30
+ * dependency bag, which is what lets a host satisfy it by passing whatever object it already has —
31
+ * the shape is the contract, so no host type needs to be named here.
32
+ */
33
+ export { buildSettingsRegistrations, settingsDerivedRisk, } from "./tool-registrations.js";
34
+ /** The settings-dialog chrome copy (24 generic tab labels/subtitles), shared across every host. */
35
+ export { SETTINGS_DIALOG_DICTIONARIES, translateSettingsDialog } from "./dictionaries/index.js";
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,SAAS,GAYV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EAEjB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAGL,wBAAwB,EAExB,mBAAmB,EAEnB,GAAG,EAEH,KAAK,EAEL,cAAc,EAEd,gBAAgB,EAEhB,gBAAgB,EAEhB,0BAA0B,EAE1B,mBAAmB,EAEnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,mBAAmB,EAEnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAIL,gCAAgC,EAEhC,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAIL,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAElB,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,8CAA8C;AAC9C,OAAO,EACL,2BAA2B,GAG5B,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAEjC,mGAAmG;AACnG,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,117 @@
1
+ import type { UUID } from "../core/ports.js";
2
+ import type { SettingDefinitionRecord, SettingRevisionRecord, SettingValueRecord } from "./types.js";
3
+ /**
4
+ * @file Port contract for the `settings` library.
5
+ *
6
+ * Purpose:
7
+ * Dependency-inversion seam (port/adapter rule-of-two) for the 5 settings tables.
8
+ * Deliberately does NOT declare a principal-lookup method — REQ-13's
9
+ * target-principal check reuses `identity.PrincipalRepoPort.findById`
10
+ * directly (reuse, not a new port).
11
+ *
12
+ * `transaction` gives `write-service.ts`/`purge-service.ts` the same-tx
13
+ * guarantee INV-01/INV-06 depend on (value/definition row + its revision row
14
+ * must commit together, or not at all).
15
+ *
16
+ * Interfaces and types only — no feature logic.
17
+ */
18
+ export interface SettingsRepoPort {
19
+ findActiveDefinition(required: {
20
+ namespace: string;
21
+ key: string;
22
+ workspaceId: UUID | null;
23
+ }): Promise<SettingDefinitionRecord | null>;
24
+ findDefinitionBySettingId(required: {
25
+ settingId: UUID;
26
+ version?: number;
27
+ }): Promise<SettingDefinitionRecord | null>;
28
+ listActiveDefinitions(required: {
29
+ workspaceId: UUID | null;
30
+ }): Promise<SettingDefinitionRecord[]>;
31
+ saveDefinition(record: SettingDefinitionRecord): Promise<void>;
32
+ getGlobalValue(settingId: UUID): Promise<SettingValueRecord | null>;
33
+ getWorkspaceValue(required: {
34
+ workspaceId: UUID;
35
+ settingId: UUID;
36
+ }): Promise<SettingValueRecord | null>;
37
+ getUserValue(required: {
38
+ workspaceId: UUID;
39
+ principalId: UUID;
40
+ settingId: UUID;
41
+ }): Promise<SettingValueRecord | null>;
42
+ saveGlobalValue(record: SettingValueRecord): Promise<void>;
43
+ saveWorkspaceValue(record: SettingValueRecord): Promise<void>;
44
+ saveUserValue(record: SettingValueRecord): Promise<void>;
45
+ listWorkspaceValues(required: {
46
+ workspaceId: UUID;
47
+ }): Promise<SettingValueRecord[]>;
48
+ listUserValues(required: {
49
+ workspaceId: UUID;
50
+ principalId: UUID;
51
+ }): Promise<SettingValueRecord[]>;
52
+ /**
53
+ * Every `setting_values_user` row for a workspace, across ALL principals
54
+ * (not just one) — needed by `purge-service.ts`'s full-tenant teardown path,
55
+ * which must clear the FK-blocking `setting_values_user` rows
56
+ * for every principal in the workspace, not just one caller-known id.
57
+ */
58
+ listUserValuesByWorkspace(required: {
59
+ workspaceId: UUID;
60
+ }): Promise<SettingValueRecord[]>;
61
+ deleteWorkspaceValue(required: {
62
+ workspaceId: UUID;
63
+ settingId: UUID;
64
+ }): Promise<void>;
65
+ deleteUserValue(required: {
66
+ workspaceId: UUID;
67
+ principalId: UUID;
68
+ settingId: UUID;
69
+ }): Promise<void>;
70
+ /** Appends a revision and returns its assigned `seq` (used to stamp the paired value row). */
71
+ appendRevision(record: Omit<SettingRevisionRecord, "seq">): Promise<number>;
72
+ listRevisions(required: {
73
+ settingId: UUID;
74
+ }): Promise<SettingRevisionRecord[]>;
75
+ /**
76
+ * Revisions with `seq` strictly greater than `sinceSeq`, oldest first, capped at `limit`, and
77
+ * restricted to those `workspaceId` could possibly care about.
78
+ *
79
+ * Exists for change detection across PROCESSES. `seq` is a monotonic autoincrement in the shared
80
+ * database, so a poller in one process observes writes made by another process (e.g. an agent
81
+ * daemon) — a separate OS process with its own connection — without any IPC between them.
82
+ *
83
+ * `limit` bounds a client that reconnects after a long absence: it drains in pages rather than
84
+ * loading an unbounded backlog into memory.
85
+ *
86
+ * **`workspaceId` is a page-sizing predicate, not the disclosure boundary.** The ledger is global
87
+ * — one store holds every workspace's revisions — so without it a `limit`-sized page is filled by
88
+ * whichever tenant writes fastest, and a quiet workspace's own change waits behind a busy
89
+ * neighbour's backlog. That is an observable cross-tenant timing channel and, at sustained write
90
+ * rates above `limit` per poll interval, a feed that never catches up at all. Implementations must
91
+ * match rows whose `workspaceId` is either `null` (platform definitions and `global`-scope values,
92
+ * which every workspace resolves through) or equal to the argument — deliberately a SUPERSET of
93
+ * what `change-feed.ts#isRevisionVisibleTo` permits, which stays the sole authority on disclosure.
94
+ */
95
+ listRevisionsSince(required: {
96
+ sinceSeq: number;
97
+ limit: number;
98
+ workspaceId: UUID;
99
+ }): Promise<SettingRevisionRecord[]>;
100
+ /** The newest assigned `seq`, or 0 when the ledger is empty — a subscriber's starting cursor. */
101
+ maxRevisionSeq(): Promise<number>;
102
+ /**
103
+ * Runs `fn` with the guarantee that all repo calls inside it commit or roll
104
+ * back together. Every adapter must honour this — it is what makes a
105
+ * composite write like `resetNamespace` all-or-nothing, and the contract
106
+ * suite asserts it against all of them rather than only the durable one.
107
+ *
108
+ * **Not reentrant.** Calling this while another `transaction` on the same
109
+ * repo is open must fail loudly, never silently join. An adapter cannot tell
110
+ * a genuine nested call from an unrelated concurrent one, and joining a
111
+ * stranger's transaction makes it inherit that transaction's rollback. A
112
+ * caller that needs several writes to commit together opens ONE transaction
113
+ * and passes `skipTransaction` to the inner writes.
114
+ */
115
+ transaction<T>(fn: () => Promise<T>): Promise<T>;
116
+ }
117
+ //# sourceMappingURL=ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/settings/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErG;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;KAC1B,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC5C,yBAAyB,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC5C,qBAAqB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAClG,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACpE,iBAAiB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACxG,YAAY,CAAC,QAAQ,EAAE;QACrB,WAAW,EAAE,IAAI,CAAC;QAClB,WAAW,EAAE,IAAI,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,mBAAmB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpF,cAAc,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClG;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1F,oBAAoB,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,eAAe,CAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpG,8FAA8F;IAC9F,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,aAAa,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC/E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,IAAI,CAAC;KACnB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrC,iGAAiG;IACjG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/settings/ports.ts"],"names":[],"mappings":""}