@cyberismo/backend 1.2.0 → 1.3.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 (468) hide show
  1. package/dist/app.d.ts +5 -15
  2. package/dist/app.js +28 -38
  3. package/dist/app.js.map +1 -1
  4. package/dist/auth/index.d.ts +0 -12
  5. package/dist/auth/index.js +2 -12
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/keycloak.d.ts +0 -12
  8. package/dist/auth/keycloak.js +2 -12
  9. package/dist/auth/keycloak.js.map +1 -1
  10. package/dist/auth/mock.d.ts +0 -12
  11. package/dist/auth/mock.js +2 -12
  12. package/dist/auth/mock.js.map +1 -1
  13. package/dist/auth/types.d.ts +0 -12
  14. package/dist/auth/types.js +2 -12
  15. package/dist/auth/types.js.map +1 -1
  16. package/dist/common/errors.d.ts +12 -0
  17. package/dist/common/errors.js +31 -0
  18. package/dist/common/errors.js.map +1 -0
  19. package/dist/common/validationSchemas.d.ts +0 -12
  20. package/dist/common/validationSchemas.js +2 -12
  21. package/dist/common/validationSchemas.js.map +1 -1
  22. package/dist/domain/auth/index.d.ts +0 -12
  23. package/dist/domain/auth/index.js +2 -12
  24. package/dist/domain/auth/index.js.map +1 -1
  25. package/dist/domain/calculations/index.d.ts +0 -12
  26. package/dist/domain/calculations/index.js +4 -14
  27. package/dist/domain/calculations/index.js.map +1 -1
  28. package/dist/domain/calculations/schema.d.ts +0 -12
  29. package/dist/domain/calculations/schema.js +2 -12
  30. package/dist/domain/calculations/schema.js.map +1 -1
  31. package/dist/domain/calculations/service.d.ts +2 -14
  32. package/dist/domain/calculations/service.js +7 -17
  33. package/dist/domain/calculations/service.js.map +1 -1
  34. package/dist/domain/cardTypes/index.d.ts +0 -12
  35. package/dist/domain/cardTypes/index.js +10 -20
  36. package/dist/domain/cardTypes/index.js.map +1 -1
  37. package/dist/domain/cardTypes/schema.d.ts +0 -12
  38. package/dist/domain/cardTypes/schema.js +2 -12
  39. package/dist/domain/cardTypes/schema.js.map +1 -1
  40. package/dist/domain/cardTypes/service.d.ts +4 -16
  41. package/dist/domain/cardTypes/service.js +17 -25
  42. package/dist/domain/cardTypes/service.js.map +1 -1
  43. package/dist/domain/cards/index.d.ts +0 -12
  44. package/dist/domain/cards/index.js +120 -102
  45. package/dist/domain/cards/index.js.map +1 -1
  46. package/dist/domain/cards/lib.d.ts +6 -23
  47. package/dist/domain/cards/lib.js +7 -126
  48. package/dist/domain/cards/lib.js.map +1 -1
  49. package/dist/domain/cards/mermaid.d.ts +8 -0
  50. package/dist/domain/cards/mermaid.js +23 -0
  51. package/dist/domain/cards/mermaid.js.map +1 -0
  52. package/dist/domain/cards/schema.d.ts +6 -12
  53. package/dist/domain/cards/schema.js +6 -12
  54. package/dist/domain/cards/schema.js.map +1 -1
  55. package/dist/domain/cards/service.d.ts +28 -32
  56. package/dist/domain/cards/service.js +119 -83
  57. package/dist/domain/cards/service.js.map +1 -1
  58. package/dist/domain/connectors/index.d.ts +0 -12
  59. package/dist/domain/connectors/index.js +4 -14
  60. package/dist/domain/connectors/index.js.map +1 -1
  61. package/dist/domain/connectors/service.d.ts +2 -14
  62. package/dist/domain/connectors/service.js +4 -14
  63. package/dist/domain/connectors/service.js.map +1 -1
  64. package/dist/domain/events/events-by-project.d.ts +19 -0
  65. package/dist/domain/events/events-by-project.js +57 -0
  66. package/dist/domain/events/events-by-project.js.map +1 -0
  67. package/dist/domain/events/index.d.ts +0 -12
  68. package/dist/domain/events/index.js +3 -13
  69. package/dist/domain/events/index.js.map +1 -1
  70. package/dist/domain/events/lifetime.d.ts +0 -12
  71. package/dist/domain/events/lifetime.js +2 -12
  72. package/dist/domain/events/lifetime.js.map +1 -1
  73. package/dist/domain/events/project-events.d.ts +10 -14
  74. package/dist/domain/events/project-events.js +22 -18
  75. package/dist/domain/events/project-events.js.map +1 -1
  76. package/dist/domain/events/schema.d.ts +0 -12
  77. package/dist/domain/events/schema.js +2 -12
  78. package/dist/domain/events/schema.js.map +1 -1
  79. package/dist/domain/fieldTypes/index.d.ts +0 -12
  80. package/dist/domain/fieldTypes/index.js +6 -16
  81. package/dist/domain/fieldTypes/index.js.map +1 -1
  82. package/dist/domain/fieldTypes/schema.d.ts +0 -12
  83. package/dist/domain/fieldTypes/schema.js +2 -12
  84. package/dist/domain/fieldTypes/schema.js.map +1 -1
  85. package/dist/domain/fieldTypes/service.d.ts +4 -16
  86. package/dist/domain/fieldTypes/service.js +7 -17
  87. package/dist/domain/fieldTypes/service.js.map +1 -1
  88. package/dist/domain/graphModels/index.d.ts +0 -12
  89. package/dist/domain/graphModels/index.js +4 -14
  90. package/dist/domain/graphModels/index.js.map +1 -1
  91. package/dist/domain/graphModels/schema.d.ts +0 -12
  92. package/dist/domain/graphModels/schema.js +2 -12
  93. package/dist/domain/graphModels/schema.js.map +1 -1
  94. package/dist/domain/graphModels/service.d.ts +2 -14
  95. package/dist/domain/graphModels/service.js +4 -14
  96. package/dist/domain/graphModels/service.js.map +1 -1
  97. package/dist/domain/graphViews/index.d.ts +0 -12
  98. package/dist/domain/graphViews/index.js +4 -14
  99. package/dist/domain/graphViews/index.js.map +1 -1
  100. package/dist/domain/graphViews/schema.js +2 -0
  101. package/dist/domain/graphViews/schema.js.map +1 -1
  102. package/dist/domain/graphViews/service.d.ts +2 -14
  103. package/dist/domain/graphViews/service.js +4 -14
  104. package/dist/domain/graphViews/service.js.map +1 -1
  105. package/dist/domain/labels/index.d.ts +0 -12
  106. package/dist/domain/labels/index.js +4 -14
  107. package/dist/domain/labels/index.js.map +1 -1
  108. package/dist/domain/labels/service.d.ts +3 -15
  109. package/dist/domain/labels/service.js +5 -15
  110. package/dist/domain/labels/service.js.map +1 -1
  111. package/dist/domain/linkTypes/index.d.ts +0 -12
  112. package/dist/domain/linkTypes/index.js +6 -16
  113. package/dist/domain/linkTypes/index.js.map +1 -1
  114. package/dist/domain/linkTypes/schema.d.ts +0 -12
  115. package/dist/domain/linkTypes/schema.js +2 -12
  116. package/dist/domain/linkTypes/schema.js.map +1 -1
  117. package/dist/domain/linkTypes/service.d.ts +3 -15
  118. package/dist/domain/linkTypes/service.js +7 -17
  119. package/dist/domain/linkTypes/service.js.map +1 -1
  120. package/dist/domain/logicPrograms/index.d.ts +0 -12
  121. package/dist/domain/logicPrograms/index.js +4 -14
  122. package/dist/domain/logicPrograms/index.js.map +1 -1
  123. package/dist/domain/logicPrograms/service.d.ts +2 -14
  124. package/dist/domain/logicPrograms/service.js +5 -3
  125. package/dist/domain/logicPrograms/service.js.map +1 -1
  126. package/dist/domain/mcp/index.d.ts +3 -15
  127. package/dist/domain/mcp/index.js +27 -21
  128. package/dist/domain/mcp/index.js.map +1 -1
  129. package/dist/domain/project/index.d.ts +0 -12
  130. package/dist/domain/project/index.js +30 -40
  131. package/dist/domain/project/index.js.map +1 -1
  132. package/dist/domain/project/schema.d.ts +0 -12
  133. package/dist/domain/project/schema.js +2 -12
  134. package/dist/domain/project/schema.js.map +1 -1
  135. package/dist/domain/project/service.d.ts +16 -28
  136. package/dist/domain/project/service.js +48 -58
  137. package/dist/domain/project/service.js.map +1 -1
  138. package/dist/domain/projects/index.d.ts +2 -14
  139. package/dist/domain/projects/index.js +19 -36
  140. package/dist/domain/projects/index.js.map +1 -1
  141. package/dist/domain/projects/schema.d.ts +1 -12
  142. package/dist/domain/projects/schema.js +3 -12
  143. package/dist/domain/projects/schema.js.map +1 -1
  144. package/dist/domain/projects/service.d.ts +9 -35
  145. package/dist/domain/projects/service.js +12 -48
  146. package/dist/domain/projects/service.js.map +1 -1
  147. package/dist/domain/reports/index.d.ts +0 -12
  148. package/dist/domain/reports/index.js +4 -14
  149. package/dist/domain/reports/index.js.map +1 -1
  150. package/dist/domain/reports/schema.d.ts +0 -12
  151. package/dist/domain/reports/schema.js +2 -12
  152. package/dist/domain/reports/schema.js.map +1 -1
  153. package/dist/domain/reports/service.d.ts +2 -14
  154. package/dist/domain/reports/service.js +4 -14
  155. package/dist/domain/reports/service.js.map +1 -1
  156. package/dist/domain/resources/index.d.ts +0 -12
  157. package/dist/domain/resources/index.js +19 -26
  158. package/dist/domain/resources/index.js.map +1 -1
  159. package/dist/domain/resources/schema.js +2 -0
  160. package/dist/domain/resources/schema.js.map +1 -1
  161. package/dist/domain/resources/service.d.ts +11 -23
  162. package/dist/domain/resources/service.js +48 -59
  163. package/dist/domain/resources/service.js.map +1 -1
  164. package/dist/domain/skills/index.d.ts +0 -12
  165. package/dist/domain/skills/index.js +4 -14
  166. package/dist/domain/skills/index.js.map +1 -1
  167. package/dist/domain/skills/schema.d.ts +0 -12
  168. package/dist/domain/skills/schema.js +2 -12
  169. package/dist/domain/skills/schema.js.map +1 -1
  170. package/dist/domain/skills/service.d.ts +2 -14
  171. package/dist/domain/skills/service.js +4 -14
  172. package/dist/domain/skills/service.js.map +1 -1
  173. package/dist/domain/templates/index.d.ts +0 -12
  174. package/dist/domain/templates/index.js +8 -18
  175. package/dist/domain/templates/index.js.map +1 -1
  176. package/dist/domain/templates/schema.d.ts +0 -12
  177. package/dist/domain/templates/schema.js +2 -12
  178. package/dist/domain/templates/schema.js.map +1 -1
  179. package/dist/domain/templates/service.d.ts +4 -16
  180. package/dist/domain/templates/service.js +8 -18
  181. package/dist/domain/templates/service.js.map +1 -1
  182. package/dist/domain/tree/index.d.ts +0 -12
  183. package/dist/domain/tree/index.js +4 -14
  184. package/dist/domain/tree/index.js.map +1 -1
  185. package/dist/domain/tree/service.d.ts +3 -15
  186. package/dist/domain/tree/service.js +8 -15
  187. package/dist/domain/tree/service.js.map +1 -1
  188. package/dist/domain/workflows/index.d.ts +0 -12
  189. package/dist/domain/workflows/index.js +4 -14
  190. package/dist/domain/workflows/index.js.map +1 -1
  191. package/dist/domain/workflows/schema.d.ts +0 -12
  192. package/dist/domain/workflows/schema.js +2 -12
  193. package/dist/domain/workflows/schema.js.map +1 -1
  194. package/dist/domain/workflows/service.d.ts +2 -14
  195. package/dist/domain/workflows/service.js +4 -14
  196. package/dist/domain/workflows/service.js.map +1 -1
  197. package/dist/export.d.ts +6 -20
  198. package/dist/export.js +19 -29
  199. package/dist/export.js.map +1 -1
  200. package/dist/index.d.ts +3 -5
  201. package/dist/index.js +19 -43
  202. package/dist/index.js.map +1 -1
  203. package/dist/main.js +19 -30
  204. package/dist/main.js.map +1 -1
  205. package/dist/middleware/auth.d.ts +0 -12
  206. package/dist/middleware/auth.js +2 -12
  207. package/dist/middleware/auth.js.map +1 -1
  208. package/dist/middleware/commandManager.d.ts +15 -20
  209. package/dist/middleware/commandManager.js +27 -36
  210. package/dist/middleware/commandManager.js.map +1 -1
  211. package/dist/middleware/tree.js +2 -0
  212. package/dist/middleware/tree.js.map +1 -1
  213. package/dist/middleware/zvalidator.js +2 -0
  214. package/dist/middleware/zvalidator.js.map +1 -1
  215. package/dist/overlay.d.ts +4 -16
  216. package/dist/overlay.js +22 -17
  217. package/dist/overlay.js.map +1 -1
  218. package/dist/public/THIRD-PARTY.txt +1397 -286
  219. package/dist/public/assets/__vite-browser-external-DGgK3jMU.js +1 -0
  220. package/dist/public/assets/abnfDiagram-WEYOIA3C-B3qq7PKv.js +1 -0
  221. package/dist/public/assets/architecture-WOLXFQ4H-Bzau2LI0.js +1 -0
  222. package/dist/public/assets/architectureDiagram-ZHVYKT53-Bg0cUwdb.js +36 -0
  223. package/dist/public/assets/blockDiagram-RJAE7QA3-0RJB-ra-.js +140 -0
  224. package/dist/public/assets/c4Diagram-XDPPPE54-BzoQcLvf.js +38 -0
  225. package/dist/public/assets/channel-6BNdw4Ax.js +1 -0
  226. package/dist/public/assets/{chunk-SVP7TREG-CIQMl7hl.js → chunk-2E7WHVMD-6aqPk-Hk.js} +4 -4
  227. package/dist/public/assets/chunk-4EMNKR2T-vovNSAaE.js +1 -0
  228. package/dist/public/assets/{chunk-F27PBJKO-tDfs6zeO.js → chunk-55XCU76K-DXkKnt2y.js} +1 -1
  229. package/dist/public/assets/chunk-7S6XSTFO-B9bfO0l3.js +2 -0
  230. package/dist/public/assets/chunk-AQDTSKZB-ilLy_cYP.js +72 -0
  231. package/dist/public/assets/chunk-DSNLSHJZ-DAudglXu.js +129 -0
  232. package/dist/public/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  233. package/dist/public/assets/chunk-HAGFOTED-CSKFgs6b.js +62 -0
  234. package/dist/public/assets/chunk-HNE4Q36P-Cu5gPBVk.js +1 -0
  235. package/dist/public/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  236. package/dist/public/assets/chunk-NGNAAXSQ-DI_UYJZ4.js +136 -0
  237. package/dist/public/assets/chunk-NQOKRVIF-Bpcvhq1n.js +213 -0
  238. package/dist/public/assets/chunk-UHW7PFBP-BDjvOaTH.js +1 -0
  239. package/dist/public/assets/chunk-VQ5W62QI-DHTcO93W.js +1 -0
  240. package/dist/public/assets/chunk-WQQL4CDK-H6nAhuck.js +10 -0
  241. package/dist/public/assets/{chunk-XXDRQBXY-B7bWyHjt.js → chunk-XXDRQBXY-BUghdEVl.js} +1 -1
  242. package/dist/public/assets/chunk-YZO67HFG-D13E0_Yh.js +1 -0
  243. package/dist/public/assets/chunk-ZAUX2LTX-Dp5y-2wt.js +1 -0
  244. package/dist/public/assets/chunk-ZCHMQSOR-RJjlln1D.js +2 -0
  245. package/dist/public/assets/classDiagram-v2-4MYWR3UA-CAqiFCSv.js +217 -0
  246. package/dist/public/assets/cose-bilkent-JH36ORCC-C_VOHzoP.js +1 -0
  247. package/dist/public/assets/cynefin-EF2NZ3EQ-Dyk4ZPjK.js +1 -0
  248. package/dist/public/assets/{cynefinDiagram-5FMLGOSQ-_V_nrIhD.js → cynefinDiagram-WF24UDRP-b_Ia8gQX.js} +1 -1
  249. package/dist/public/assets/cytoscape.esm-GRKmfDkD.js +321 -0
  250. package/dist/public/assets/dagre-NK4GIZVX-CH1K1yF8.js +4 -0
  251. package/dist/public/assets/{diagram-VX7I27RA-De_UQv8C.js → diagram-CBK3MWTC-OaKd5avy.js} +13 -13
  252. package/dist/public/assets/diagram-I5XIIV2D-Cmu5z1ad.js +24 -0
  253. package/dist/public/assets/{diagram-S7CK7UJ4-25IjIKyo.js → diagram-ODIL2UCW-Cz1kkDDX.js} +7 -7
  254. package/dist/public/assets/diagram-PFBEJUXE-faMkmqUW.js +3 -0
  255. package/dist/public/assets/{diagram-UQ7AKVKN-C5VvsV7x.js → diagram-RJA3I4VV-nycvfte-.js} +2 -2
  256. package/dist/public/assets/diagram-TYUNFSNR-CjEv5QCm.js +200 -0
  257. package/dist/public/assets/{dist-BDCdLWk4.js → dist-DGs_yUrP.js} +1 -1
  258. package/dist/public/assets/ebnfDiagram-V4P3TTPT-DN-IIxCy.js +1 -0
  259. package/dist/public/assets/elk-QONTBCTQ-Bsam88GP.js +27 -0
  260. package/dist/public/assets/erDiagram-KYQIGQAA-DEU_qqNK.js +99 -0
  261. package/dist/public/assets/eventmodeling-K75KTNOO-Bl6NCM9E.js +1 -0
  262. package/dist/public/assets/flowDiagram-IUGLLWBU-Cl4qZ-36.js +1 -0
  263. package/dist/public/assets/ganttDiagram-R7GPNTJY-BmMd4aGi.js +292 -0
  264. package/dist/public/assets/gitGraph-VSP46ZUC-Q0H2PWek.js +1 -0
  265. package/dist/public/assets/gitGraphDiagram-PDYL7XHY-BlCTBYTj.js +106 -0
  266. package/dist/public/assets/index-CuBJ0hof.css +1 -0
  267. package/dist/public/assets/index-D701BZPh.js +2219 -0
  268. package/dist/public/assets/info-OHQRW6UA-D0TMPJxW.js +1 -0
  269. package/dist/public/assets/infoDiagram-MVDRKAX5-CljbtJXu.js +2 -0
  270. package/dist/public/assets/{ishikawaDiagram-5VMMS53U-KvT4DU1u.js → ishikawaDiagram-HPEHV2GE-_Y3Fr0hu.js} +6 -6
  271. package/dist/public/assets/{journeyDiagram-3NMN7TZE-PhGRkXkq.js → journeyDiagram-BOSHW7O7-Bo55jJ4m.js} +39 -39
  272. package/dist/public/assets/kanban-definition-FNSA4HC5-Cd-10MtF.js +89 -0
  273. package/dist/public/assets/katex-MEuSR36T.js +257 -0
  274. package/dist/public/assets/line-BDmh4sWC.js +1 -0
  275. package/dist/public/assets/linear-Dt7xjMrI.js +1 -0
  276. package/dist/public/assets/mermaid-parser.core-BJ1yyzvV.js +7 -0
  277. package/dist/public/assets/mindmap-definition-6OY57UG3-CRgumPuN.js +98 -0
  278. package/dist/public/assets/packet-JDAUHWVQ-DsTMT3Kw.js +1 -0
  279. package/dist/public/assets/pegDiagram-ECIUJNBX-BEGI5k3m.js +1 -0
  280. package/dist/public/assets/pie-XZMESJXO-COyqzA3N.js +1 -0
  281. package/dist/public/assets/pieDiagram-GNMPY74T-CrLJhZJJ.js +39 -0
  282. package/dist/public/assets/{quadrantDiagram-AXDQQJYC-B9dlNtZl.js → quadrantDiagram-D57K4MC3-Fl7HMHxK.js} +6 -6
  283. package/dist/public/assets/radar-ABXABTNO-DeXHKowk.js +1 -0
  284. package/dist/public/assets/railroad-I3PHUGI6-CUjKUdPz.js +1 -0
  285. package/dist/public/assets/railroad-abnf-LNEFI6M7-B1aEgHE6.js +1 -0
  286. package/dist/public/assets/railroad-ebnf-DWYD2UWJ-DmmI3Voz.js +1 -0
  287. package/dist/public/assets/railroad-peg-JR7BVNR7-BHzi9m7r.js +1 -0
  288. package/dist/public/assets/railroadDiagram-Y72NRBL7-D1oeE5fy.js +1 -0
  289. package/dist/public/assets/requirementDiagram-EQYSW5RA-BJDKK1aS.js +84 -0
  290. package/dist/public/assets/rolldown-runtime-BCiCTKAo.js +1 -0
  291. package/dist/public/assets/{sankeyDiagram-P5KCCOFB-C4rb2pZ9.js → sankeyDiagram-SY24JHO5-C4g0OwZ9.js} +7 -7
  292. package/dist/public/assets/sequenceDiagram-BLEHNHQU-CEvy4P-b.js +169 -0
  293. package/dist/public/assets/src-MPsEqXxq.js +1 -0
  294. package/dist/public/assets/stateDiagram-v2-A6IESKWZ-BFhvw4Gl.js +291 -0
  295. package/dist/public/assets/swimlanes-B3ENRKFQ-BIl_Q-FM.js +1 -0
  296. package/dist/public/assets/swimlanesDiagram-AYQRV4AK-rvDbKEHQ.js +8 -0
  297. package/dist/public/assets/timeline-definition-JXYKGLGB-qAoWTH4N.js +120 -0
  298. package/dist/public/assets/treeView-D4JQ5SDB-vq16JKkJ.js +1 -0
  299. package/dist/public/assets/treemap-SAJKECNS-C0IZTaDk.js +1 -0
  300. package/dist/public/assets/usecaseDiagram-WPOLBNNX-Dq8iz49r.js +328 -0
  301. package/dist/public/assets/vennDiagram-Q3Y3IDCW-Br4JmRjM.js +34 -0
  302. package/dist/public/assets/wardley-7MLQ67FV-CEPlAQ79.js +1 -0
  303. package/dist/public/assets/{wardleyDiagram-VM6X3IG4-BOXpwLCv.js → wardleyDiagram-IVAIDKWA-DURB7Ue6.js} +4 -4
  304. package/dist/public/assets/xychartDiagram-4URNHDU4-BiZywfhy.js +7 -0
  305. package/dist/public/index.html +27 -21
  306. package/dist/public/sbom.cdx.json +1 -1
  307. package/dist/types.d.ts +0 -12
  308. package/dist/types.js +2 -12
  309. package/dist/types.js.map +1 -1
  310. package/dist/utils.d.ts +12 -5
  311. package/dist/utils.js +18 -43
  312. package/dist/utils.js.map +1 -1
  313. package/package.json +13 -12
  314. package/src/app.ts +33 -43
  315. package/src/auth/index.ts +2 -12
  316. package/src/auth/keycloak.ts +2 -12
  317. package/src/auth/mock.ts +2 -12
  318. package/src/auth/types.ts +2 -12
  319. package/src/common/errors.ts +45 -0
  320. package/src/common/validationSchemas.ts +3 -12
  321. package/src/domain/auth/index.ts +2 -12
  322. package/src/domain/calculations/index.ts +4 -14
  323. package/src/domain/calculations/schema.ts +2 -12
  324. package/src/domain/calculations/service.ts +8 -21
  325. package/src/domain/cardTypes/index.ts +10 -20
  326. package/src/domain/cardTypes/schema.ts +3 -12
  327. package/src/domain/cardTypes/service.ts +22 -29
  328. package/src/domain/cards/index.ts +158 -128
  329. package/src/domain/cards/lib.ts +9 -161
  330. package/src/domain/cards/mermaid.ts +25 -0
  331. package/src/domain/cards/schema.ts +8 -12
  332. package/src/domain/cards/service.ts +165 -118
  333. package/src/domain/connectors/index.ts +5 -14
  334. package/src/domain/connectors/service.ts +5 -20
  335. package/src/domain/events/events-by-project.ts +59 -0
  336. package/src/domain/events/index.ts +3 -13
  337. package/src/domain/events/lifetime.ts +2 -12
  338. package/src/domain/events/project-events.ts +30 -18
  339. package/src/domain/events/schema.ts +2 -12
  340. package/src/domain/fieldTypes/index.ts +6 -16
  341. package/src/domain/fieldTypes/schema.ts +3 -12
  342. package/src/domain/fieldTypes/service.ts +9 -21
  343. package/src/domain/graphModels/index.ts +4 -14
  344. package/src/domain/graphModels/schema.ts +3 -12
  345. package/src/domain/graphModels/service.ts +5 -18
  346. package/src/domain/graphViews/index.ts +4 -14
  347. package/src/domain/graphViews/schema.ts +3 -0
  348. package/src/domain/graphViews/service.ts +5 -18
  349. package/src/domain/labels/index.ts +4 -14
  350. package/src/domain/labels/service.ts +6 -16
  351. package/src/domain/linkTypes/index.ts +6 -16
  352. package/src/domain/linkTypes/schema.ts +2 -12
  353. package/src/domain/linkTypes/service.ts +8 -21
  354. package/src/domain/logicPrograms/index.ts +5 -17
  355. package/src/domain/logicPrograms/service.ts +7 -16
  356. package/src/domain/mcp/index.ts +33 -24
  357. package/src/domain/project/index.ts +34 -40
  358. package/src/domain/project/schema.ts +2 -12
  359. package/src/domain/project/service.ts +56 -71
  360. package/src/domain/projects/index.ts +34 -50
  361. package/src/domain/projects/schema.ts +3 -12
  362. package/src/domain/projects/service.ts +18 -88
  363. package/src/domain/reports/index.ts +4 -14
  364. package/src/domain/reports/schema.ts +2 -12
  365. package/src/domain/reports/service.ts +5 -18
  366. package/src/domain/resources/index.ts +19 -30
  367. package/src/domain/resources/schema.ts +3 -0
  368. package/src/domain/resources/service.ts +55 -90
  369. package/src/domain/skills/index.ts +4 -14
  370. package/src/domain/skills/schema.ts +2 -12
  371. package/src/domain/skills/service.ts +5 -15
  372. package/src/domain/templates/index.ts +8 -18
  373. package/src/domain/templates/schema.ts +2 -12
  374. package/src/domain/templates/service.ts +9 -22
  375. package/src/domain/tree/index.ts +4 -14
  376. package/src/domain/tree/service.ts +10 -21
  377. package/src/domain/workflows/index.ts +4 -14
  378. package/src/domain/workflows/schema.ts +2 -12
  379. package/src/domain/workflows/service.ts +5 -18
  380. package/src/export.ts +24 -33
  381. package/src/index.ts +29 -48
  382. package/src/main.ts +25 -35
  383. package/src/middleware/auth.ts +2 -12
  384. package/src/middleware/commandManager.ts +35 -50
  385. package/src/middleware/tree.ts +3 -0
  386. package/src/middleware/zvalidator.ts +3 -0
  387. package/src/overlay.ts +29 -19
  388. package/src/types.ts +2 -12
  389. package/src/utils.ts +26 -46
  390. package/dist/project-errors.d.ts +0 -18
  391. package/dist/project-errors.js +0 -25
  392. package/dist/project-errors.js.map +0 -1
  393. package/dist/project-registry.d.ts +0 -65
  394. package/dist/project-registry.js +0 -121
  395. package/dist/project-registry.js.map +0 -1
  396. package/dist/public/assets/__vite-browser-external-PaJ7c2l8.js +0 -1
  397. package/dist/public/assets/abnfDiagram-VCTEODGH-DB2dfOGe.js +0 -1
  398. package/dist/public/assets/architecture-7GRP2DOG-2V0X8hxt.js +0 -1
  399. package/dist/public/assets/architectureDiagram-5GKGNRK7-CRhUR2Ul.js +0 -36
  400. package/dist/public/assets/blockDiagram-I7D4REHJ-DJKsYF1v.js +0 -129
  401. package/dist/public/assets/c4Diagram-7LVT6UL2-BTwMzoAF.js +0 -38
  402. package/dist/public/assets/channel-C0JtPpMA.js +0 -1
  403. package/dist/public/assets/chunk-4HAMMTFA-DjjgrBsB.js +0 -62
  404. package/dist/public/assets/chunk-75Z2AOVW-CKqXRGJV.js +0 -2
  405. package/dist/public/assets/chunk-DU6HZSFF-iJGdiRt7.js +0 -127
  406. package/dist/public/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
  407. package/dist/public/assets/chunk-GMAD6QVW-DxHVEaGj.js +0 -72
  408. package/dist/public/assets/chunk-GVQU2GXP-AMxD4_Ta.js +0 -1
  409. package/dist/public/assets/chunk-IMKFNOWR-0rz8QrYC.js +0 -231
  410. package/dist/public/assets/chunk-L3NEJ4N5-BK3KAKMe.js +0 -1
  411. package/dist/public/assets/chunk-OSK3NFVY-B8MdrI_M.js +0 -10
  412. package/dist/public/assets/chunk-P2QGCYS3-D3J5AcHg.js +0 -1
  413. package/dist/public/assets/chunk-POPQ4Y6H-CsYg_XkK.js +0 -1
  414. package/dist/public/assets/chunk-PWAF6VOD-D9cdEIZp.js +0 -1
  415. package/dist/public/assets/chunk-SHT3W25Y-1jjokCf3.js +0 -168
  416. package/dist/public/assets/chunk-TICWLB2K-Ccsy2PYz.js +0 -206
  417. package/dist/public/assets/classDiagram-ZZMXUADV-mWyXNAXi.js +0 -1
  418. package/dist/public/assets/classDiagram-v2-VYDZK3BY-mWyXNAXi.js +0 -1
  419. package/dist/public/assets/cose-bilkent-JH36ORCC-DPzc3Pv4.js +0 -1
  420. package/dist/public/assets/cynefin-OW5HDTMX-BIVDCYOU.js +0 -1
  421. package/dist/public/assets/cytoscape.esm-NgwPT4ez.js +0 -321
  422. package/dist/public/assets/dagre-C-rnJpZF.js +0 -1
  423. package/dist/public/assets/dagre-GXQ25YYZ-CJc0wc6f.js +0 -4
  424. package/dist/public/assets/diagram-VSXAHHWV-Dw3rKVL_.js +0 -3
  425. package/dist/public/assets/diagram-Z3DM3KII-Bd-65QQW.js +0 -24
  426. package/dist/public/assets/ebnfDiagram-PWID7BFC-CrxdET5U.js +0 -1
  427. package/dist/public/assets/erDiagram-RLTQ6QDP-BKo0Uyna.js +0 -99
  428. package/dist/public/assets/eventmodeling-NTZA5JFV-DKkAdJZd.js +0 -1
  429. package/dist/public/assets/flowDiagram-HODETNUW-CEE2wjdt.js +0 -1
  430. package/dist/public/assets/ganttDiagram-EL5Y4UJY-BHFn8vk0.js +0 -292
  431. package/dist/public/assets/gitGraph-4MIJSDKK-Bpvnb45u.js +0 -1
  432. package/dist/public/assets/gitGraphDiagram-WWUBYQGX-Bw0EoxBY.js +0 -106
  433. package/dist/public/assets/index-D3HS7YxF.js +0 -2228
  434. package/dist/public/assets/index-Sv3WxZ_8.css +0 -1
  435. package/dist/public/assets/info-A6RAGUB7-BvvG_zrk.js +0 -1
  436. package/dist/public/assets/infoDiagram-27XIBGKW-CtpdJmtL.js +0 -2
  437. package/dist/public/assets/kanban-definition-UXKFOSKX-Oyx5QgRq.js +0 -89
  438. package/dist/public/assets/katex-ZlcWpGUi.js +0 -257
  439. package/dist/public/assets/line-Dr41HTk1.js +0 -1
  440. package/dist/public/assets/linear-DDBi9FwZ.js +0 -1
  441. package/dist/public/assets/mermaid-parser.core-DsIAxDBa.js +0 -7
  442. package/dist/public/assets/mindmap-definition-YA3MSWOX-r8hvd6gP.js +0 -96
  443. package/dist/public/assets/packet-AYTQ26CC-B0EpJ2Sc.js +0 -1
  444. package/dist/public/assets/pegDiagram-XKGWAZYB-DaNkQTQF.js +0 -1
  445. package/dist/public/assets/pie-WAS4IAKB-Dt2zttL9.js +0 -1
  446. package/dist/public/assets/pieDiagram-E7YTZNPT-x0XWEGbd.js +0 -39
  447. package/dist/public/assets/radar-RG4KPBEZ-DjbR4-5l.js +0 -1
  448. package/dist/public/assets/railroad-74A4TZTK-Bk3B5r_R.js +0 -1
  449. package/dist/public/assets/railroad-abnf-HS5TGJTU-DxaWfACD.js +0 -1
  450. package/dist/public/assets/railroad-ebnf-LZEXJU2U-DscxXZO0.js +0 -1
  451. package/dist/public/assets/railroad-peg-WCYAUIDC-BCWzRFzw.js +0 -1
  452. package/dist/public/assets/railroadDiagram-O6MQD6OU-DhwsoX6A.js +0 -1
  453. package/dist/public/assets/requirementDiagram-BXWQKSXE-BiqZ6axf.js +0 -84
  454. package/dist/public/assets/rolldown-runtime-B0Z9INg1.js +0 -1
  455. package/dist/public/assets/sequenceDiagram-WJ2MYXX4-DRKTnGD7.js +0 -162
  456. package/dist/public/assets/src-an_qrnIj.js +0 -1
  457. package/dist/public/assets/stateDiagram-D77RDMKH-xxdybg5Z.js +0 -1
  458. package/dist/public/assets/stateDiagram-v2-MP3YSRHH-CXzmJy_a.js +0 -1
  459. package/dist/public/assets/swimlanes-42K2YHIH-DyGI1gI6.js +0 -1
  460. package/dist/public/assets/swimlanesDiagram-VR7AAH4N-7hqb6VoW.js +0 -8
  461. package/dist/public/assets/timeline-definition-24CTP7MA-C2pIp77Q.js +0 -120
  462. package/dist/public/assets/treeView-Q6P3EWNA-CxRtaaB8.js +0 -1
  463. package/dist/public/assets/treemap-WGGIJYW6-G1IHiwTa.js +0 -1
  464. package/dist/public/assets/vennDiagram-4TSXK5OY-CwimQRR9.js +0 -34
  465. package/dist/public/assets/wardley-WFR3VGLG-DkQ3TjZX.js +0 -1
  466. package/dist/public/assets/xychartDiagram-S5SC5T6Z-ChOPYsHc.js +0 -7
  467. package/src/project-errors.ts +0 -33
  468. package/src/project-registry.ts +0 -161
package/dist/index.js CHANGED
@@ -1,29 +1,16 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation.
7
- This program is distributed in the hope that it will be useful, but WITHOUT
8
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
- details. You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
13
- import { serve } from '@hono/node-server';
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
14
3
  import { Hono } from 'hono';
15
4
  import { serveStatic } from '@hono/node-server/serve-static';
16
5
  import path from 'node:path';
17
6
  import { readFile } from 'node:fs/promises';
18
- import { findFreePort } from './utils.js';
7
+ import { listen } from './utils.js';
19
8
  import { startPolicyPolling } from './overlay.js';
20
9
  import { createApp } from './app.js';
21
10
  export { MockAuthProvider } from './auth/mock.js';
22
11
  export { exportSite } from './export.js';
23
- export { ProjectRegistry } from './project-registry.js';
24
- export { formatProjectErrors } from './project-errors.js';
25
12
  const DEFAULT_PORT = 3000;
26
- const DEFAULT_MAX_PORT = DEFAULT_PORT + 100;
13
+ const MAX_PORT_ATTEMPTS = 100;
27
14
  /**
28
15
  * Preview the exported site
29
16
  * @param dir - Directory to preview
@@ -39,41 +26,30 @@ export async function previewSite(dir, findPort = true) {
39
26
  const file = await readFile(path.join(dir, 'index.html'));
40
27
  return c.html(file.toString());
41
28
  });
42
- let port = parseInt(process.env.PORT || DEFAULT_PORT.toString(), 10);
43
- if (findPort) {
44
- port = await findFreePort(port, DEFAULT_MAX_PORT);
45
- }
46
- startApp(app, port);
29
+ const port = parseInt(process.env.PORT || DEFAULT_PORT.toString(), 10);
30
+ await startApp(app, port, findPort);
47
31
  }
48
32
  /**
49
33
  * Start the server
50
34
  * @param authProvider - Authentication provider
51
- * @param registry - ProjectRegistry holding all project CommandManagers
35
+ * @param directory - Directory the projects are opened from
52
36
  * @param findPort - If true, find a free port
53
37
  */
54
- export async function startServer(authProvider, registry, findPort = true, multiProjectRoot) {
38
+ export async function startServer(authProvider, directory, findPort = true, multiProjectRoot) {
55
39
  const useOsAssigned = process.env.CYBERISMO_E2E_OSPORT === 'true';
56
- let port = useOsAssigned
40
+ const port = useOsAssigned
57
41
  ? 0
58
42
  : parseInt(process.env.PORT || DEFAULT_PORT.toString(), 10);
59
- if (findPort && !useOsAssigned) {
60
- port = await findFreePort(port, DEFAULT_MAX_PORT);
61
- }
62
- startPolicyPolling(() => registry.list().map((p) => ({ prefix: p.prefix })));
63
- const app = createApp(authProvider, registry, undefined, false, multiProjectRoot);
64
- startApp(app, port);
43
+ startPolicyPolling(async () => (await directory.list()).map((p) => ({ prefix: p.prefix })));
44
+ const app = createApp(authProvider, directory, undefined, undefined, multiProjectRoot);
45
+ await startApp(app, port, findPort && !useOsAssigned);
65
46
  }
66
- function startApp(app, port) {
67
- serve({
68
- fetch: app.fetch,
69
- port: port,
70
- hostname: process.env.HOST || '127.0.0.1',
71
- }, (info) => {
72
- console.log(`Running Cyberismo app on http://localhost:${info.port}`);
73
- console.log('Press Control+C to stop.');
74
- // When spawned with stdio: [..., 'ipc'], publish the bound port to the parent.
75
- // No-op in normal startup (process.send is undefined without an IPC channel).
76
- process.send?.({ type: 'listening', port: info.port });
77
- });
47
+ async function startApp(app, port, findPort) {
48
+ const bound = await listen(app.fetch, port, process.env.HOST || '127.0.0.1', findPort ? port + MAX_PORT_ATTEMPTS : port);
49
+ console.log(`Running Cyberismo app on http://localhost:${bound.port}`);
50
+ console.log('Press Control+C to stop.');
51
+ // When spawned with stdio: [..., 'ipc'], publish the bound port to the parent.
52
+ // No-op in normal startup (process.send is undefined without an IPC channel).
53
+ process.send?.({ type: 'listening', port: bound.port });
78
54
  }
79
55
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -1,22 +1,11 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation.
7
- This program is distributed in the hope that it will be useful, but WITHOUT
8
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
- details. You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
13
- import { scanForProjects } from '@cyberismo/data-handler';
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ import { localFolder } from '@cyberismo/data-handler';
14
4
  import { startServer } from './index.js';
15
5
  import { exportSite } from './export.js';
16
6
  import { MockAuthProvider } from './auth/mock.js';
17
7
  import { KeycloakAuthProvider } from './auth/keycloak.js';
18
- import { ProjectRegistry } from './project-registry.js';
19
- import { formatProjectErrors } from './project-errors.js';
8
+ import { formatProjectErrors } from '@cyberismo/model';
20
9
  import { gitOptionsFromEnv } from './utils.js';
21
10
  import { parseArgs } from 'node:util';
22
11
  import dotenv from 'dotenv';
@@ -44,9 +33,16 @@ function createAuthProvider() {
44
33
  process.exit(1);
45
34
  }
46
35
  const projectPath = process.env.npm_config_project_path || process.cwd();
47
- let projects;
36
+ const { values: args } = parseArgs({
37
+ options: {
38
+ export: { type: 'boolean', default: false },
39
+ 'default-project': { type: 'string' },
40
+ },
41
+ strict: false,
42
+ });
43
+ let opened;
48
44
  try {
49
- projects = await scanForProjects(projectPath);
45
+ opened = await localFolder(projectPath, args.export ? undefined : gitOptionsFromEnv());
50
46
  }
51
47
  catch (error) {
52
48
  console.error(error instanceof Error
@@ -54,28 +50,22 @@ catch (error) {
54
50
  : `Failed to scan for projects in '${projectPath}'`);
55
51
  process.exit(1);
56
52
  }
57
- const { values: args } = parseArgs({
58
- options: {
59
- export: { type: 'boolean', default: false },
60
- 'default-project': { type: 'string' },
61
- },
62
- strict: false,
63
- });
53
+ const { directory, failed } = opened;
64
54
  if (args.export) {
65
- if (projects.length === 0) {
55
+ const projects = await directory.list();
56
+ if (projects.length === 0 && failed.length === 0) {
66
57
  console.error('No projects found to export.');
67
58
  process.exit(1);
68
59
  }
69
60
  const defaultProject = typeof args['default-project'] === 'string'
70
61
  ? args['default-project']
71
62
  : undefined;
72
- const { registry, failed } = await ProjectRegistry.fromScannedProjects(projects);
73
- if (registry.list().length === 0 ||
63
+ if (projects.length === 0 ||
74
64
  failed.some((f) => f.prefix === defaultProject)) {
75
65
  console.error(formatProjectErrors(failed));
76
66
  process.exit(1);
77
67
  }
78
- const { errors: exportErrors } = await exportSite(registry, undefined, {
68
+ const { errors: exportErrors } = await exportSite(directory, undefined, {
79
69
  defaultProject,
80
70
  });
81
71
  const errors = [...failed, ...exportErrors];
@@ -85,11 +75,10 @@ if (args.export) {
85
75
  }
86
76
  }
87
77
  else {
88
- const { registry, failed } = await ProjectRegistry.fromScannedProjects(projects, gitOptionsFromEnv());
89
78
  if (failed.length > 0) {
90
79
  console.error(formatProjectErrors(failed));
91
80
  }
92
81
  const authProvider = createAuthProvider();
93
- await startServer(authProvider, registry, true, projectPath);
82
+ await startServer(authProvider, directory, true, projectPath);
94
83
  }
95
84
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,3 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2026
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation. This program is distributed in the hope that it
7
- will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
- See the GNU Affero General Public License for more details.
10
- You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
13
1
  import type { Context, MiddlewareHandler } from 'hono';
14
2
  import type { UserInfo } from '../types.js';
15
3
  import { UserRole } from '../types.js';
@@ -1,15 +1,5 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2026
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation. This program is distributed in the hope that it
7
- will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
- See the GNU Affero General Public License for more details.
10
- You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  import { UserRole } from '../types.js';
14
4
  import { isReadOnly } from '../overlay.js';
15
5
  const roleLevel = {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,29 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
4
-
5
- This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
6
-
7
- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
8
-
9
- You should have received a copy of the GNU Affero General Public
10
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
11
- */
12
1
  import type { MiddlewareHandler } from 'hono';
13
- import type { CommandManager } from '@cyberismo/data-handler';
14
- import type { ProjectRegistry } from '../project-registry.js';
2
+ import type { ActorRef } from '@cyberismo/model';
3
+ import type { ProjectDirectory, Workspace } from '@cyberismo/data-handler';
4
+ import { type UserInfo } from '../types.js';
15
5
  import type { ProjectEvents } from '../domain/events/project-events.js';
6
+ import type { EventsByProject } from '../domain/events/events-by-project.js';
16
7
  declare module 'hono' {
17
8
  interface ContextVariableMap {
18
- commands: CommandManager;
9
+ ws: Workspace;
19
10
  events: ProjectEvents;
20
11
  projectPath: string;
21
- registry: ProjectRegistry;
12
+ directory: ProjectDirectory;
13
+ eventsByProject: EventsByProject;
22
14
  }
23
15
  }
24
- export declare const attachCommandManager: (commands: CommandManager) => MiddlewareHandler;
16
+ /** The actor a user acts as. */
17
+ export declare function actorOf(user: UserInfo): ActorRef;
25
18
  /**
26
- * Middleware that resolves the project from the registry and sets the
27
- * CommandManager on context.
19
+ * Middleware that opens the authenticated user's handle over the project
20
+ * and puts it, with the project's events and the directory, on the context.
21
+ * An unknown project is refused with ProjectNotFoundError (404).
28
22
  *
29
- * @param registry - Project registry to look up projects.
23
+ * @param directory - Directory the project is opened from.
24
+ * @param events - Events of the directory's projects.
30
25
  * @param fixedPrefix - When provided, used instead of the `:prefix` route
31
26
  * param. This is needed in export/SSG mode where routes are mounted at
32
27
  * concrete paths (e.g. `/api/projects/decision/...`) with no dynamic param.
33
28
  */
34
- export declare const attachProjectRegistry: (registry: ProjectRegistry, fixedPrefix?: string) => MiddlewareHandler;
29
+ export declare const attachProjectDirectory: (directory: ProjectDirectory, events: EventsByProject, fixedPrefix?: string) => MiddlewareHandler;
@@ -1,53 +1,44 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2025
4
-
5
- This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
6
-
7
- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
8
-
9
- You should have received a copy of the GNU Affero General Public
10
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
11
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
12
3
  import { getCurrentUser } from './auth.js';
13
- /**
14
- * Set CommandManager on context and run the next handler as the authenticated user.
15
- */
16
- async function runWithCommands(c, commands, next) {
17
- const user = getCurrentUser(c);
18
- if (!user) {
19
- throw new Error('CommandManager expects a user');
20
- }
21
- c.set('commands', commands);
22
- c.set('projectPath', commands.project.basePath);
23
- await commands.runAsAuthor({ name: user.name, email: user.email }, () => next());
4
+ import { UserRole } from '../types.js';
5
+ /** The actor a user acts as. */
6
+ export function actorOf(user) {
7
+ return {
8
+ kind: user.role === UserRole.Connector ? 'connector' : 'user',
9
+ id: user.id,
10
+ name: user.name,
11
+ };
24
12
  }
25
- // TODO: Remove once MCP is made project-scoped via attachProjectRegistry
26
- export const attachCommandManager = (commands) => {
27
- return (c, next) => runWithCommands(c, commands, next);
28
- };
29
13
  /**
30
- * Middleware that resolves the project from the registry and sets the
31
- * CommandManager on context.
14
+ * Middleware that opens the authenticated user's handle over the project
15
+ * and puts it, with the project's events and the directory, on the context.
16
+ * An unknown project is refused with ProjectNotFoundError (404).
32
17
  *
33
- * @param registry - Project registry to look up projects.
18
+ * @param directory - Directory the project is opened from.
19
+ * @param events - Events of the directory's projects.
34
20
  * @param fixedPrefix - When provided, used instead of the `:prefix` route
35
21
  * param. This is needed in export/SSG mode where routes are mounted at
36
22
  * concrete paths (e.g. `/api/projects/decision/...`) with no dynamic param.
37
23
  */
38
- export const attachProjectRegistry = (registry, fixedPrefix) => {
24
+ export const attachProjectDirectory = (directory, events, fixedPrefix) => {
39
25
  return async (c, next) => {
40
- c.set('registry', registry);
41
26
  const prefix = c.req.param('prefix') ?? fixedPrefix;
42
27
  if (!prefix) {
43
28
  return c.json({ error: 'Project prefix is required' }, 400);
44
29
  }
45
- const commands = registry.get(prefix);
46
- if (!commands) {
47
- return c.json({ error: `Project '${prefix}' not found` }, 404);
30
+ const user = getCurrentUser(c);
31
+ if (!user) {
32
+ throw new Error('A project handle expects a user');
48
33
  }
49
- c.set('events', registry.eventsFor(commands));
50
- return runWithCommands(c, commands, next);
34
+ const identity = { name: user.name, email: user.email };
35
+ const ws = await directory.open(prefix, actorOf(user), identity);
36
+ c.set('directory', directory);
37
+ c.set('eventsByProject', events);
38
+ c.set('events', await events.for(prefix));
39
+ c.set('ws', ws);
40
+ c.set('projectPath', ws.path);
41
+ await next();
51
42
  };
52
43
  };
53
44
  //# sourceMappingURL=commandManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../../src/middleware/commandManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAIF,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAc3C;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,CAAU,EACV,QAAwB,EACxB,IAAyB;IAEzB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CACtE,IAAI,EAAE,CACP,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAwB,EACL,EAAE;IACrB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAyB,EACzB,WAAoB,EACD,EAAE;IACrB,OAAO,KAAK,EAAE,CAAU,EAAE,IAAI,EAAE,EAAE;QAChC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,MAAM,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,OAAO,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../../src/middleware/commandManager.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAKzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAetD,gCAAgC;AAChC,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;QAC7D,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,SAA2B,EAC3B,MAAuB,EACvB,WAAoB,EACD,EAAE;IACrB,OAAO,KAAK,EAAE,CAAU,EAAE,IAAI,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChB,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,5 @@
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
1
3
  /**
2
4
  * Injects tree options into the context for each request
3
5
  * @param opts Options to inject
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/middleware/tree.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,cAAc,GAClB,CAAC,IAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAa,EAAE,IAAU,EAAE,EAAE;IAC1D,IAAI,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AAEJ,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/middleware/tree.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAKzC;;;;GAIG;AACH,MAAM,cAAc,GAClB,CAAC,IAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAa,EAAE,IAAU,EAAE,EAAE;IAC1D,IAAI,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AAEJ,eAAe,cAAc,CAAC"}
@@ -1,3 +1,5 @@
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
1
3
  import { zValidator as zv } from '@hono/zod-validator';
2
4
  import { z } from 'zod';
3
5
  export const zValidator = (target, schema) => zv(target, schema, (result, c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"zvalidator.js","sourceRoot":"","sources":["../../src/middleware/zvalidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAIxB,MAAc,EACd,MAAS,EACT,EAAE,CACF,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"zvalidator.js","sourceRoot":"","sources":["../../src/middleware/zvalidator.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,yCAAyC;AAEzC,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAIxB,MAAc,EACd,MAAS,EACT,EAAE,CACF,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC"}
package/dist/overlay.d.ts CHANGED
@@ -1,15 +1,3 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2026
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation. This program is distributed in the hope that it
7
- will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
- See the GNU Affero General Public License for more details.
10
- You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
13
1
  /**
14
2
  * Which projects, or the whole instance, are read-only.
15
3
  *
@@ -18,7 +6,7 @@
18
6
  * CYBERISMO_OVERLAY_URL means no policy, which is the standalone default.
19
7
  */
20
8
  import { z } from 'zod';
21
- import type { ProjectProvider } from '@cyberismo/data-handler';
9
+ import { type ProjectDirectory } from '@cyberismo/data-handler';
22
10
  declare const policySchema: z.ZodCatch<z.ZodObject<{
23
11
  readOnly: z.ZodCatch<z.ZodBoolean>;
24
12
  projects: z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -31,9 +19,9 @@ export declare function setPolicy(policy: Policy): void;
31
19
  export declare function isProjectReadOnly(prefix: string): boolean;
32
20
  /** `/api/projects/<prefix>/…` is the only request shape naming a project. */
33
21
  export declare function isReadOnly(path: string): boolean;
34
- export declare function startPolicyPolling(projects?: () => {
22
+ export declare function startPolicyPolling(projects?: () => Promise<{
35
23
  prefix: string;
36
- }[]): void;
24
+ }[]>): void;
37
25
  /**
38
26
  * Hide read-only projects from MCP.
39
27
  *
@@ -41,5 +29,5 @@ export declare function startPolicyPolling(projects?: () => {
41
29
  * cannot see which one a call touches. Making a frozen project unresolvable
42
30
  * fails closed, at the cost of hiding it from reads and from administrators too.
43
31
  */
44
- export declare function writableProjects(provider: ProjectProvider): ProjectProvider;
32
+ export declare function writableProjects(directory: ProjectDirectory): ProjectDirectory;
45
33
  export {};
package/dist/overlay.js CHANGED
@@ -1,15 +1,5 @@
1
- /**
2
- Cyberismo
3
- Copyright © Cyberismo Ltd and contributors 2026
4
- This program is free software: you can redistribute it and/or modify it under
5
- the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation. This program is distributed in the hope that it
7
- will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
- See the GNU Affero General Public License for more details.
10
- You should have received a copy of the GNU Affero General Public
11
- License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
- */
1
+ // SPDX-FileCopyrightText: Cyberismo Ltd and contributors
2
+ // SPDX-License-Identifier: AGPL-3.0-only
13
3
  /**
14
4
  * Which projects, or the whole instance, are read-only.
15
5
  *
@@ -18,6 +8,7 @@
18
8
  * CYBERISMO_OVERLAY_URL means no policy, which is the standalone default.
19
9
  */
20
10
  import { z } from 'zod';
11
+ import { ProjectNotFoundError, } from '@cyberismo/data-handler';
21
12
  const POLL_INTERVAL_MS = 10_000;
22
13
  const FETCH_TIMEOUT_MS = 2_000;
23
14
  const policySchema = z
@@ -74,7 +65,7 @@ async function reportProjects(base, token, projects) {
74
65
  throw new Error(`responded ${response.status}`);
75
66
  }
76
67
  }
77
- export function startPolicyPolling(projects = () => []) {
68
+ export function startPolicyPolling(projects = async () => []) {
78
69
  const base = process.env.CYBERISMO_OVERLAY_URL;
79
70
  if (!base)
80
71
  return;
@@ -108,7 +99,7 @@ export function startPolicyPolling(projects = () => []) {
108
99
  // is registered within one interval.
109
100
  let lastReportFailure;
110
101
  const report = async () => {
111
- const current = projects();
102
+ const current = await projects();
112
103
  if (current.length === 0)
113
104
  return;
114
105
  try {
@@ -148,10 +139,24 @@ export function startPolicyPolling(projects = () => []) {
148
139
  * cannot see which one a call touches. Making a frozen project unresolvable
149
140
  * fails closed, at the cost of hiding it from reads and from administrators too.
150
141
  */
151
- export function writableProjects(provider) {
142
+ export function writableProjects(directory) {
152
143
  return {
153
- get: (prefix) => isProjectReadOnly(prefix) ? undefined : provider.get(prefix),
154
- list: () => provider.list().filter((p) => !isProjectReadOnly(p.prefix)),
144
+ open: async (prefix, actor, identity) => {
145
+ if (isProjectReadOnly(prefix)) {
146
+ throw new ProjectNotFoundError(prefix);
147
+ }
148
+ return directory.open(prefix, actor, identity);
149
+ },
150
+ list: async () => (await directory.list()).filter((p) => !isProjectReadOnly(p.prefix)),
151
+ create: (params, actor, identity) => directory.create(params, actor, identity),
152
+ clone: (url) => directory.clone(url),
153
+ rename: async (prefix, newPrefix, actor, identity, options) => {
154
+ if (isProjectReadOnly(prefix)) {
155
+ throw new ProjectNotFoundError(prefix);
156
+ }
157
+ return directory.rename(prefix, newPrefix, actor, identity, options);
158
+ },
159
+ replace: (prefix) => directory.replace(prefix),
155
160
  };
156
161
  }
157
162
  //# sourceMappingURL=overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}