@cyberismo/backend 1.1.2 → 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.
- package/README.md +21 -0
- package/dist/app.d.ts +5 -15
- package/dist/app.js +46 -44
- package/dist/app.js.map +1 -1
- package/dist/auth/index.d.ts +1 -13
- package/dist/auth/index.js +3 -13
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/keycloak.d.ts +2 -15
- package/dist/auth/keycloak.js +8 -12
- package/dist/auth/keycloak.js.map +1 -1
- package/dist/auth/mock.d.ts +12 -20
- package/dist/auth/mock.js +121 -43
- package/dist/auth/mock.js.map +1 -1
- package/dist/auth/types.d.ts +7 -13
- package/dist/auth/types.js +2 -12
- package/dist/auth/types.js.map +1 -1
- package/dist/common/errors.d.ts +12 -0
- package/dist/common/errors.js +31 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/common/validationSchemas.d.ts +0 -12
- package/dist/common/validationSchemas.js +2 -12
- package/dist/common/validationSchemas.js.map +1 -1
- package/dist/domain/auth/index.d.ts +0 -12
- package/dist/domain/auth/index.js +2 -12
- package/dist/domain/auth/index.js.map +1 -1
- package/dist/domain/calculations/index.d.ts +0 -12
- package/dist/domain/calculations/index.js +4 -14
- package/dist/domain/calculations/index.js.map +1 -1
- package/dist/domain/calculations/schema.d.ts +0 -12
- package/dist/domain/calculations/schema.js +2 -12
- package/dist/domain/calculations/schema.js.map +1 -1
- package/dist/domain/calculations/service.d.ts +2 -14
- package/dist/domain/calculations/service.js +7 -17
- package/dist/domain/calculations/service.js.map +1 -1
- package/dist/domain/cardTypes/index.d.ts +0 -12
- package/dist/domain/cardTypes/index.js +10 -20
- package/dist/domain/cardTypes/index.js.map +1 -1
- package/dist/domain/cardTypes/schema.d.ts +0 -12
- package/dist/domain/cardTypes/schema.js +2 -12
- package/dist/domain/cardTypes/schema.js.map +1 -1
- package/dist/domain/cardTypes/service.d.ts +4 -16
- package/dist/domain/cardTypes/service.js +17 -25
- package/dist/domain/cardTypes/service.js.map +1 -1
- package/dist/domain/cards/index.d.ts +0 -12
- package/dist/domain/cards/index.js +120 -175
- package/dist/domain/cards/index.js.map +1 -1
- package/dist/domain/cards/lib.d.ts +6 -23
- package/dist/domain/cards/lib.js +7 -135
- package/dist/domain/cards/lib.js.map +1 -1
- package/dist/domain/cards/mermaid.d.ts +8 -0
- package/dist/domain/cards/mermaid.js +23 -0
- package/dist/domain/cards/mermaid.js.map +1 -0
- package/dist/domain/cards/schema.d.ts +6 -12
- package/dist/domain/cards/schema.js +15 -15
- package/dist/domain/cards/schema.js.map +1 -1
- package/dist/domain/cards/service.d.ts +29 -36
- package/dist/domain/cards/service.js +119 -90
- package/dist/domain/cards/service.js.map +1 -1
- package/dist/domain/connectors/index.d.ts +0 -12
- package/dist/domain/connectors/index.js +4 -14
- package/dist/domain/connectors/index.js.map +1 -1
- package/dist/domain/connectors/service.d.ts +2 -14
- package/dist/domain/connectors/service.js +4 -14
- package/dist/domain/connectors/service.js.map +1 -1
- package/dist/domain/events/events-by-project.d.ts +19 -0
- package/dist/domain/events/events-by-project.js +57 -0
- package/dist/domain/events/events-by-project.js.map +1 -0
- package/dist/domain/events/index.d.ts +3 -0
- package/dist/domain/events/index.js +84 -0
- package/dist/domain/events/index.js.map +1 -0
- package/dist/domain/events/lifetime.d.ts +2 -0
- package/dist/domain/events/lifetime.js +15 -0
- package/dist/domain/events/lifetime.js.map +1 -0
- package/dist/domain/events/project-events.d.ts +63 -0
- package/dist/domain/events/project-events.js +204 -0
- package/dist/domain/events/project-events.js.map +1 -0
- package/dist/domain/events/schema.d.ts +10 -0
- package/dist/domain/events/schema.js +10 -0
- package/dist/domain/events/schema.js.map +1 -0
- package/dist/domain/fieldTypes/index.d.ts +0 -12
- package/dist/domain/fieldTypes/index.js +6 -16
- package/dist/domain/fieldTypes/index.js.map +1 -1
- package/dist/domain/fieldTypes/schema.d.ts +0 -12
- package/dist/domain/fieldTypes/schema.js +2 -12
- package/dist/domain/fieldTypes/schema.js.map +1 -1
- package/dist/domain/fieldTypes/service.d.ts +4 -16
- package/dist/domain/fieldTypes/service.js +7 -17
- package/dist/domain/fieldTypes/service.js.map +1 -1
- package/dist/domain/graphModels/index.d.ts +0 -12
- package/dist/domain/graphModels/index.js +4 -14
- package/dist/domain/graphModels/index.js.map +1 -1
- package/dist/domain/graphModels/schema.d.ts +0 -12
- package/dist/domain/graphModels/schema.js +2 -12
- package/dist/domain/graphModels/schema.js.map +1 -1
- package/dist/domain/graphModels/service.d.ts +2 -14
- package/dist/domain/graphModels/service.js +4 -14
- package/dist/domain/graphModels/service.js.map +1 -1
- package/dist/domain/graphViews/index.d.ts +0 -12
- package/dist/domain/graphViews/index.js +4 -14
- package/dist/domain/graphViews/index.js.map +1 -1
- package/dist/domain/graphViews/schema.js +2 -0
- package/dist/domain/graphViews/schema.js.map +1 -1
- package/dist/domain/graphViews/service.d.ts +2 -14
- package/dist/domain/graphViews/service.js +4 -14
- package/dist/domain/graphViews/service.js.map +1 -1
- package/dist/domain/labels/index.d.ts +0 -12
- package/dist/domain/labels/index.js +4 -14
- package/dist/domain/labels/index.js.map +1 -1
- package/dist/domain/labels/service.d.ts +3 -15
- package/dist/domain/labels/service.js +5 -15
- package/dist/domain/labels/service.js.map +1 -1
- package/dist/domain/linkTypes/index.d.ts +0 -12
- package/dist/domain/linkTypes/index.js +6 -16
- package/dist/domain/linkTypes/index.js.map +1 -1
- package/dist/domain/linkTypes/schema.d.ts +0 -12
- package/dist/domain/linkTypes/schema.js +2 -12
- package/dist/domain/linkTypes/schema.js.map +1 -1
- package/dist/domain/linkTypes/service.d.ts +3 -15
- package/dist/domain/linkTypes/service.js +7 -17
- package/dist/domain/linkTypes/service.js.map +1 -1
- package/dist/domain/logicPrograms/index.d.ts +0 -12
- package/dist/domain/logicPrograms/index.js +4 -14
- package/dist/domain/logicPrograms/index.js.map +1 -1
- package/dist/domain/logicPrograms/service.d.ts +2 -14
- package/dist/domain/logicPrograms/service.js +5 -3
- package/dist/domain/logicPrograms/service.js.map +1 -1
- package/dist/domain/mcp/index.d.ts +3 -15
- package/dist/domain/mcp/index.js +27 -21
- package/dist/domain/mcp/index.js.map +1 -1
- package/dist/domain/project/index.d.ts +0 -12
- package/dist/domain/project/index.js +41 -39
- package/dist/domain/project/index.js.map +1 -1
- package/dist/domain/project/schema.d.ts +8 -12
- package/dist/domain/project/schema.js +36 -18
- package/dist/domain/project/schema.js.map +1 -1
- package/dist/domain/project/service.d.ts +20 -28
- package/dist/domain/project/service.js +56 -60
- package/dist/domain/project/service.js.map +1 -1
- package/dist/domain/projects/index.d.ts +2 -14
- package/dist/domain/projects/index.js +23 -36
- package/dist/domain/projects/index.js.map +1 -1
- package/dist/domain/projects/schema.d.ts +1 -12
- package/dist/domain/projects/schema.js +3 -12
- package/dist/domain/projects/schema.js.map +1 -1
- package/dist/domain/projects/service.d.ts +9 -35
- package/dist/domain/projects/service.js +12 -48
- package/dist/domain/projects/service.js.map +1 -1
- package/dist/domain/reports/index.d.ts +0 -12
- package/dist/domain/reports/index.js +4 -14
- package/dist/domain/reports/index.js.map +1 -1
- package/dist/domain/reports/schema.d.ts +0 -12
- package/dist/domain/reports/schema.js +2 -12
- package/dist/domain/reports/schema.js.map +1 -1
- package/dist/domain/reports/service.d.ts +2 -14
- package/dist/domain/reports/service.js +4 -14
- package/dist/domain/reports/service.js.map +1 -1
- package/dist/domain/resources/index.d.ts +0 -12
- package/dist/domain/resources/index.js +91 -26
- package/dist/domain/resources/index.js.map +1 -1
- package/dist/domain/resources/schema.d.ts +8 -2
- package/dist/domain/resources/schema.js +8 -1
- package/dist/domain/resources/schema.js.map +1 -1
- package/dist/domain/resources/service.d.ts +23 -23
- package/dist/domain/resources/service.js +83 -51
- package/dist/domain/resources/service.js.map +1 -1
- package/dist/domain/skills/index.d.ts +3 -0
- package/dist/domain/skills/index.js +42 -0
- package/dist/domain/skills/index.js.map +1 -0
- package/dist/domain/skills/schema.d.ts +4 -0
- package/dist/domain/skills/schema.js +8 -0
- package/dist/domain/skills/schema.js.map +1 -0
- package/dist/domain/skills/service.d.ts +2 -0
- package/dist/domain/skills/service.js +6 -0
- package/dist/domain/skills/service.js.map +1 -0
- package/dist/domain/templates/index.d.ts +0 -12
- package/dist/domain/templates/index.js +8 -18
- package/dist/domain/templates/index.js.map +1 -1
- package/dist/domain/templates/schema.d.ts +0 -12
- package/dist/domain/templates/schema.js +2 -12
- package/dist/domain/templates/schema.js.map +1 -1
- package/dist/domain/templates/service.d.ts +4 -16
- package/dist/domain/templates/service.js +8 -18
- package/dist/domain/templates/service.js.map +1 -1
- package/dist/domain/tree/index.d.ts +0 -12
- package/dist/domain/tree/index.js +4 -14
- package/dist/domain/tree/index.js.map +1 -1
- package/dist/domain/tree/service.d.ts +3 -15
- package/dist/domain/tree/service.js +8 -15
- package/dist/domain/tree/service.js.map +1 -1
- package/dist/domain/workflows/index.d.ts +0 -12
- package/dist/domain/workflows/index.js +4 -14
- package/dist/domain/workflows/index.js.map +1 -1
- package/dist/domain/workflows/schema.d.ts +0 -12
- package/dist/domain/workflows/schema.js +2 -12
- package/dist/domain/workflows/schema.js.map +1 -1
- package/dist/domain/workflows/service.d.ts +2 -14
- package/dist/domain/workflows/service.js +4 -14
- package/dist/domain/workflows/service.js.map +1 -1
- package/dist/export.d.ts +8 -21
- package/dist/export.js +71 -66
- package/dist/export.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +20 -41
- package/dist/index.js.map +1 -1
- package/dist/main.js +36 -32
- package/dist/main.js.map +1 -1
- package/dist/middleware/auth.d.ts +5 -12
- package/dist/middleware/auth.js +22 -16
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/commandManager.d.ts +17 -20
- package/dist/middleware/commandManager.js +27 -35
- package/dist/middleware/commandManager.js.map +1 -1
- package/dist/middleware/tree.js +2 -0
- package/dist/middleware/tree.js.map +1 -1
- package/dist/middleware/zvalidator.js +2 -0
- package/dist/middleware/zvalidator.js.map +1 -1
- package/dist/overlay.d.ts +33 -0
- package/dist/overlay.js +162 -0
- package/dist/overlay.js.map +1 -0
- package/dist/public/THIRD-PARTY.txt +1892 -688
- package/dist/public/assets/__vite-browser-external-DGgK3jMU.js +1 -0
- package/dist/public/assets/abnfDiagram-WEYOIA3C-B3qq7PKv.js +1 -0
- package/dist/public/assets/architecture-WOLXFQ4H-Bzau2LI0.js +1 -0
- package/dist/public/assets/architectureDiagram-ZHVYKT53-Bg0cUwdb.js +36 -0
- package/dist/public/assets/blockDiagram-RJAE7QA3-0RJB-ra-.js +140 -0
- package/dist/public/assets/c4Diagram-XDPPPE54-BzoQcLvf.js +38 -0
- package/dist/public/assets/channel-6BNdw4Ax.js +1 -0
- package/dist/public/assets/{chunk-MOJQB5TN-D1shKbMs.js → chunk-2E7WHVMD-6aqPk-Hk.js} +4 -4
- package/dist/public/assets/chunk-4EMNKR2T-vovNSAaE.js +1 -0
- package/dist/public/assets/chunk-55XCU76K-DXkKnt2y.js +1 -0
- package/dist/public/assets/chunk-7S6XSTFO-B9bfO0l3.js +2 -0
- package/dist/public/assets/chunk-AQDTSKZB-ilLy_cYP.js +72 -0
- package/dist/public/assets/chunk-DSNLSHJZ-DAudglXu.js +129 -0
- package/dist/public/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/public/assets/chunk-HAGFOTED-CSKFgs6b.js +62 -0
- package/dist/public/assets/chunk-HNE4Q36P-Cu5gPBVk.js +1 -0
- package/dist/public/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/public/assets/chunk-NGNAAXSQ-DI_UYJZ4.js +136 -0
- package/dist/public/assets/chunk-NQOKRVIF-Bpcvhq1n.js +213 -0
- package/dist/public/assets/chunk-UHW7PFBP-BDjvOaTH.js +1 -0
- package/dist/public/assets/chunk-VQ5W62QI-DHTcO93W.js +1 -0
- package/dist/public/assets/chunk-WQQL4CDK-H6nAhuck.js +10 -0
- package/dist/public/assets/chunk-XXDRQBXY-BUghdEVl.js +1 -0
- package/dist/public/assets/chunk-YZO67HFG-D13E0_Yh.js +1 -0
- package/dist/public/assets/chunk-ZAUX2LTX-Dp5y-2wt.js +1 -0
- package/dist/public/assets/chunk-ZCHMQSOR-RJjlln1D.js +2 -0
- package/dist/public/assets/classDiagram-v2-4MYWR3UA-CAqiFCSv.js +217 -0
- package/dist/public/assets/cose-bilkent-JH36ORCC-C_VOHzoP.js +1 -0
- package/dist/public/assets/cynefin-EF2NZ3EQ-Dyk4ZPjK.js +1 -0
- package/dist/public/assets/cynefinDiagram-WF24UDRP-b_Ia8gQX.js +62 -0
- package/dist/public/assets/cytoscape.esm-GRKmfDkD.js +321 -0
- package/dist/public/assets/dagre-NK4GIZVX-CH1K1yF8.js +4 -0
- package/dist/public/assets/diagram-CBK3MWTC-OaKd5avy.js +24 -0
- package/dist/public/assets/diagram-I5XIIV2D-Cmu5z1ad.js +24 -0
- package/dist/public/assets/diagram-ODIL2UCW-Cz1kkDDX.js +30 -0
- package/dist/public/assets/diagram-PFBEJUXE-faMkmqUW.js +3 -0
- package/dist/public/assets/diagram-RJA3I4VV-nycvfte-.js +41 -0
- package/dist/public/assets/diagram-TYUNFSNR-CjEv5QCm.js +200 -0
- package/dist/public/assets/dist-DGs_yUrP.js +1 -0
- package/dist/public/assets/ebnfDiagram-V4P3TTPT-DN-IIxCy.js +1 -0
- package/dist/public/assets/elk-QONTBCTQ-Bsam88GP.js +27 -0
- package/dist/public/assets/erDiagram-KYQIGQAA-DEU_qqNK.js +99 -0
- package/dist/public/assets/eventmodeling-K75KTNOO-Bl6NCM9E.js +1 -0
- package/dist/public/assets/flowDiagram-IUGLLWBU-Cl4qZ-36.js +1 -0
- package/dist/public/assets/ganttDiagram-R7GPNTJY-BmMd4aGi.js +292 -0
- package/dist/public/assets/gitGraph-VSP46ZUC-Q0H2PWek.js +1 -0
- package/dist/public/assets/gitGraphDiagram-PDYL7XHY-BlCTBYTj.js +106 -0
- package/dist/public/assets/index-CuBJ0hof.css +1 -0
- package/dist/public/assets/index-D6WqGtsG.js +27876 -0
- package/dist/public/assets/index-D701BZPh.js +2219 -0
- package/dist/public/assets/info-OHQRW6UA-D0TMPJxW.js +1 -0
- package/dist/public/assets/infoDiagram-MVDRKAX5-CljbtJXu.js +2 -0
- package/dist/public/assets/{ishikawaDiagram-FXEZZL3T-CiLpASIW.js → ishikawaDiagram-HPEHV2GE-_Y3Fr0hu.js} +6 -6
- package/dist/public/assets/journeyDiagram-BOSHW7O7-Bo55jJ4m.js +139 -0
- package/dist/public/assets/kanban-definition-FNSA4HC5-Cd-10MtF.js +89 -0
- package/dist/public/assets/katex-MEuSR36T.js +257 -0
- package/dist/public/assets/line-BDmh4sWC.js +1 -0
- package/dist/public/assets/linear-Dt7xjMrI.js +1 -0
- package/dist/public/assets/mermaid-parser.core-BJ1yyzvV.js +7 -0
- package/dist/public/assets/mindmap-definition-6OY57UG3-CRgumPuN.js +98 -0
- package/dist/public/assets/packet-JDAUHWVQ-DsTMT3Kw.js +1 -0
- package/dist/public/assets/path-B_0haWDX.js +1 -0
- package/dist/public/assets/pegDiagram-ECIUJNBX-BEGI5k3m.js +1 -0
- package/dist/public/assets/pie-XZMESJXO-COyqzA3N.js +1 -0
- package/dist/public/assets/pieDiagram-GNMPY74T-CrLJhZJJ.js +39 -0
- package/dist/public/assets/{quadrantDiagram-ABIIQ3AL-B3czMbdS.js → quadrantDiagram-D57K4MC3-Fl7HMHxK.js} +6 -6
- package/dist/public/assets/radar-ABXABTNO-DeXHKowk.js +1 -0
- package/dist/public/assets/railroad-I3PHUGI6-CUjKUdPz.js +1 -0
- package/dist/public/assets/railroad-abnf-LNEFI6M7-B1aEgHE6.js +1 -0
- package/dist/public/assets/railroad-ebnf-DWYD2UWJ-DmmI3Voz.js +1 -0
- package/dist/public/assets/railroad-peg-JR7BVNR7-BHzi9m7r.js +1 -0
- package/dist/public/assets/railroadDiagram-Y72NRBL7-D1oeE5fy.js +1 -0
- package/dist/public/assets/requirementDiagram-EQYSW5RA-BJDKK1aS.js +84 -0
- package/dist/public/assets/rolldown-runtime-BCiCTKAo.js +1 -0
- package/dist/public/assets/{rough.esm-By172zw-.js → rough.esm-Dy-Kn_BL.js} +1 -1
- package/dist/public/assets/sankeyDiagram-SY24JHO5-C4g0OwZ9.js +40 -0
- package/dist/public/assets/sequenceDiagram-BLEHNHQU-CEvy4P-b.js +169 -0
- package/dist/public/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/public/assets/src-MPsEqXxq.js +1 -0
- package/dist/public/assets/stateDiagram-v2-A6IESKWZ-BFhvw4Gl.js +291 -0
- package/dist/public/assets/swimlanes-B3ENRKFQ-BIl_Q-FM.js +1 -0
- package/dist/public/assets/swimlanesDiagram-AYQRV4AK-rvDbKEHQ.js +8 -0
- package/dist/public/assets/timeline-definition-JXYKGLGB-qAoWTH4N.js +120 -0
- package/dist/public/assets/treeView-D4JQ5SDB-vq16JKkJ.js +1 -0
- package/dist/public/assets/treemap-SAJKECNS-C0IZTaDk.js +1 -0
- package/dist/public/assets/usecaseDiagram-WPOLBNNX-Dq8iz49r.js +328 -0
- package/dist/public/assets/vennDiagram-Q3Y3IDCW-Br4JmRjM.js +34 -0
- package/dist/public/assets/wardley-7MLQ67FV-CEPlAQ79.js +1 -0
- package/dist/public/assets/wardleyDiagram-IVAIDKWA-DURB7Ue6.js +78 -0
- package/dist/public/assets/xychartDiagram-4URNHDU4-BiZywfhy.js +7 -0
- package/dist/public/index.html +27 -28
- package/dist/public/sbom.cdx.json +1 -0
- package/dist/types.d.ts +0 -12
- package/dist/types.js +2 -12
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +12 -5
- package/dist/utils.js +18 -43
- package/dist/utils.js.map +1 -1
- package/package.json +14 -14
- package/src/app.ts +51 -49
- package/src/auth/index.ts +3 -13
- package/src/auth/keycloak.ts +10 -15
- package/src/auth/mock.ts +144 -48
- package/src/auth/types.ts +10 -13
- package/src/common/errors.ts +45 -0
- package/src/common/validationSchemas.ts +3 -12
- package/src/domain/auth/index.ts +2 -12
- package/src/domain/calculations/index.ts +4 -14
- package/src/domain/calculations/schema.ts +2 -12
- package/src/domain/calculations/service.ts +8 -21
- package/src/domain/cardTypes/index.ts +10 -20
- package/src/domain/cardTypes/schema.ts +3 -12
- package/src/domain/cardTypes/service.ts +22 -29
- package/src/domain/cards/index.ts +158 -218
- package/src/domain/cards/lib.ts +9 -173
- package/src/domain/cards/mermaid.ts +25 -0
- package/src/domain/cards/schema.ts +19 -15
- package/src/domain/cards/service.ts +166 -134
- package/src/domain/connectors/index.ts +5 -14
- package/src/domain/connectors/service.ts +5 -20
- package/src/domain/events/events-by-project.ts +59 -0
- package/src/domain/events/index.ts +102 -0
- package/src/domain/events/lifetime.ts +17 -0
- package/src/domain/events/project-events.ts +266 -0
- package/src/domain/events/schema.ts +11 -0
- package/src/domain/fieldTypes/index.ts +6 -16
- package/src/domain/fieldTypes/schema.ts +3 -12
- package/src/domain/fieldTypes/service.ts +9 -21
- package/src/domain/graphModels/index.ts +4 -14
- package/src/domain/graphModels/schema.ts +3 -12
- package/src/domain/graphModels/service.ts +5 -18
- package/src/domain/graphViews/index.ts +4 -14
- package/src/domain/graphViews/schema.ts +3 -0
- package/src/domain/graphViews/service.ts +5 -18
- package/src/domain/labels/index.ts +4 -14
- package/src/domain/labels/service.ts +6 -16
- package/src/domain/linkTypes/index.ts +6 -16
- package/src/domain/linkTypes/schema.ts +2 -12
- package/src/domain/linkTypes/service.ts +8 -21
- package/src/domain/logicPrograms/index.ts +5 -17
- package/src/domain/logicPrograms/service.ts +7 -16
- package/src/domain/mcp/index.ts +33 -24
- package/src/domain/project/index.ts +59 -37
- package/src/domain/project/schema.ts +41 -18
- package/src/domain/project/service.ts +81 -71
- package/src/domain/projects/index.ts +38 -50
- package/src/domain/projects/schema.ts +3 -12
- package/src/domain/projects/service.ts +18 -88
- package/src/domain/reports/index.ts +4 -14
- package/src/domain/reports/schema.ts +2 -12
- package/src/domain/reports/service.ts +5 -18
- package/src/domain/resources/index.ts +102 -30
- package/src/domain/resources/schema.ts +15 -2
- package/src/domain/resources/service.ts +98 -81
- package/src/domain/skills/index.ts +51 -0
- package/src/domain/skills/schema.ts +9 -0
- package/src/domain/skills/service.ts +8 -0
- package/src/domain/templates/index.ts +8 -18
- package/src/domain/templates/schema.ts +2 -12
- package/src/domain/templates/service.ts +9 -22
- package/src/domain/tree/index.ts +4 -14
- package/src/domain/tree/service.ts +10 -21
- package/src/domain/workflows/index.ts +4 -14
- package/src/domain/workflows/schema.ts +2 -12
- package/src/domain/workflows/service.ts +5 -18
- package/src/export.ts +82 -73
- package/src/index.ts +30 -46
- package/src/main.ts +45 -37
- package/src/middleware/auth.ts +25 -16
- package/src/middleware/commandManager.ts +37 -49
- package/src/middleware/tree.ts +3 -0
- package/src/middleware/zvalidator.ts +3 -0
- package/src/overlay.ts +185 -0
- package/src/types.ts +2 -12
- package/src/utils.ts +26 -46
- package/dist/domain/cards/presence.d.ts +0 -50
- package/dist/domain/cards/presence.js +0 -93
- package/dist/domain/cards/presence.js.map +0 -1
- package/dist/project-registry.d.ts +0 -57
- package/dist/project-registry.js +0 -93
- package/dist/project-registry.js.map +0 -1
- package/dist/public/assets/abnfDiagram-VRR7QNED-Djr4KJ5E.js +0 -1
- package/dist/public/assets/arc-DrR4k_H-.js +0 -1
- package/dist/public/assets/architecture-TIHT7OUA-XL6N-4o9.js +0 -1
- package/dist/public/assets/architectureDiagram-ZJ3FMSHR-DsMU2Uwa.js +0 -36
- package/dist/public/assets/blockDiagram-677ZJIJ3-DRBmQUQJ.js +0 -132
- package/dist/public/assets/c4Diagram-LMCZKHZV-E0rM02LD.js +0 -10
- package/dist/public/assets/channel-D5fnImJy.js +0 -1
- package/dist/public/assets/chunk-32BRIVSS-BnDY0aSV.js +0 -1
- package/dist/public/assets/chunk-52WLFC77-N5YugKaZ.js +0 -10
- package/dist/public/assets/chunk-5FCAYU7R-I3_t_Ic_.js +0 -1
- package/dist/public/assets/chunk-5HE753X5-Dxz40rzH.js +0 -1
- package/dist/public/assets/chunk-5JV3BV7I-CNwCKRLH.js +0 -1
- package/dist/public/assets/chunk-5TONJI2A-ezWQ_Z2j.js +0 -2
- package/dist/public/assets/chunk-7BUUIJ7U-Bb538aSH.js +0 -1
- package/dist/public/assets/chunk-BIQX33UG-DS132-R_.js +0 -1
- package/dist/public/assets/chunk-C7G6YPKG-BN-cNjoj.js +0 -1
- package/dist/public/assets/chunk-CQNSW5MT-D8Mn1I73.js +0 -1
- package/dist/public/assets/chunk-CYSBUYHQ-Dc64Dwdo.js +0 -1
- package/dist/public/assets/chunk-EMLP6XTP-aIK0V8GX.js +0 -1
- package/dist/public/assets/chunk-EX3LRPZG-Db0XYyxy.js +0 -231
- package/dist/public/assets/chunk-FWX5IMBZ-BF_P2-Do.js +0 -2
- package/dist/public/assets/chunk-HOUHSVGY-L35GPy9G.js +0 -1
- package/dist/public/assets/chunk-ICXQ74PX-Bb8zaHde.js +0 -2
- package/dist/public/assets/chunk-JG7HCLWE-BtAXK3iQ.js +0 -2
- package/dist/public/assets/chunk-KEIR6QF5-DEvma7oi.js +0 -161
- package/dist/public/assets/chunk-MOZMSUNE-5FIqIBsY.js +0 -1
- package/dist/public/assets/chunk-OGEWGWER-BVIFy9xz.js +0 -1
- package/dist/public/assets/chunk-OSBZ3O6U-Cfd7kf1R.js +0 -1
- package/dist/public/assets/chunk-PUDLZKDR-Db3FSNR9.js +0 -156
- package/dist/public/assets/chunk-Q4XR5HBZ-BuKFRUzR.js +0 -70
- package/dist/public/assets/chunk-QBLGF6JB-DUGZXFh-.js +0 -1
- package/dist/public/assets/chunk-R7FJI6CG-D7mUd-qN.js +0 -1
- package/dist/public/assets/chunk-RYQCIY6F-C_3rESBd.js +0 -1
- package/dist/public/assets/chunk-U6XO7XAA-C3UhlwA1.js +0 -2
- package/dist/public/assets/chunk-V7JOEXUC-71b0ABpv.js +0 -206
- package/dist/public/assets/chunk-VAUOI2AC-C-GBw18h.js +0 -1
- package/dist/public/assets/chunk-VR4S4FIN-tUhbELKr.js +0 -1
- package/dist/public/assets/chunk-WYO6CB5R-BQoO62-B.js +0 -127
- package/dist/public/assets/chunk-XXDRQBXY-Co8n4ZHT.js +0 -1
- package/dist/public/assets/chunk-YOTPTUD7-DhCRKU1A.js +0 -1
- package/dist/public/assets/chunk-ZGVPDNZ5-hpz2Ryq5.js +0 -62
- package/dist/public/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +0 -32
- package/dist/public/assets/classDiagram-OUVF2IWQ-CXdVorPK.js +0 -1
- package/dist/public/assets/classDiagram-v2-EOCWNBFH-CXdVorPK.js +0 -1
- package/dist/public/assets/colors-Cg5Vh3br.js +0 -1
- package/dist/public/assets/cose-bilkent-JH36ORCC-4GoRbloS.js +0 -1
- package/dist/public/assets/cynefin-VYW2F7L2-BPH-25fI.js +0 -1
- package/dist/public/assets/cynefinDiagram-TSTJHNR4-PEf16euv.js +0 -62
- package/dist/public/assets/cytoscape.esm-C3UvhD5t.js +0 -321
- package/dist/public/assets/dagre-Buvkdvvj.js +0 -1
- package/dist/public/assets/dagre-VKFMJZFB-DPsCMBF1.js +0 -4
- package/dist/public/assets/diagram-FQU43EPY-DS-ryuRg.js +0 -3
- package/dist/public/assets/diagram-G47NLZAW-CzUoYkFf.js +0 -24
- package/dist/public/assets/diagram-NH7WQ7WH-MhGnE2fh.js +0 -24
- package/dist/public/assets/diagram-OA4YK3LP-CsQ9aFR_.js +0 -30
- package/dist/public/assets/diagram-WEI45ONY-Er3q49ew.js +0 -41
- package/dist/public/assets/dist-BzwexiH1.js +0 -1
- package/dist/public/assets/ebnfDiagram-CCIWWBDH-AnJAsk14.js +0 -1
- package/dist/public/assets/erDiagram-Q63AITRT-DulA16my.js +0 -85
- package/dist/public/assets/eventmodeling-45OFAUF4-CoIhTpHU.js +0 -1
- package/dist/public/assets/flowDiagram-23GEKE2U-BGMXUq18.js +0 -1
- package/dist/public/assets/ganttDiagram-NO4QXBWP-DAvCPT7_.js +0 -292
- package/dist/public/assets/gitGraph-TEB2WS4Q-BcPsZts5.js +0 -1
- package/dist/public/assets/gitGraphDiagram-IHSO6WYX-CksvJvsQ.js +0 -106
- package/dist/public/assets/index-COSSLZqt.css +0 -1
- package/dist/public/assets/index-Y8Ckwau7.js +0 -447
- package/dist/public/assets/info-DKCQHKI2-7VGzrAVB.js +0 -1
- package/dist/public/assets/infoDiagram-FWYZ7A6U-D_by7lSL.js +0 -2
- package/dist/public/assets/journeyDiagram-5HDEW3XC-DpvFmk7c.js +0 -139
- package/dist/public/assets/kanban-definition-HUTT4EX6-DYP_x6zD.js +0 -89
- package/dist/public/assets/katex-DolUETbr.js +0 -257
- package/dist/public/assets/line-C8Sfsgt8.js +0 -1
- package/dist/public/assets/linear-BWTvbP1l.js +0 -1
- package/dist/public/assets/map-BaFkSB1l.js +0 -1
- package/dist/public/assets/mermaid-parser.core--8614tkK.js +0 -4
- package/dist/public/assets/mindmap-definition-LN4V7U3C-3IAd4gp3.js +0 -96
- package/dist/public/assets/ordinal-BdBDtYTt.js +0 -1
- package/dist/public/assets/packet-7NZHBO7P-KYt33H0C.js +0 -1
- package/dist/public/assets/path-HTXttWil.js +0 -1
- package/dist/public/assets/pegDiagram-2B236MQR-BQNFxYz2.js +0 -1
- package/dist/public/assets/pie-RZYD4A2V-xKz9s9I4.js +0 -1
- package/dist/public/assets/pieDiagram-ENE6RG2P-Cy13tg8_.js +0 -39
- package/dist/public/assets/radar-I7S5WNFK-B4QTX-fX.js +0 -1
- package/dist/public/assets/railroad-3IZDKUUU-Co_9rPVC.js +0 -1
- package/dist/public/assets/railroad-abnf-AHOZXSZD-Bhy_c3ol.js +0 -1
- package/dist/public/assets/railroad-ebnf-EBAXGLYW-B9ENjG34.js +0 -1
- package/dist/public/assets/railroad-peg-LSFZ7HO6-CyJxDBsB.js +0 -1
- package/dist/public/assets/railroadDiagram-RFXS5EU6-M2j5SJF2.js +0 -1
- package/dist/public/assets/range-EplFIxc7.js +0 -1
- package/dist/public/assets/requirementDiagram-TGXJPOKE-CmvJWy_S.js +0 -84
- package/dist/public/assets/sankeyDiagram-HTMAVEWB-tAeOzMTn.js +0 -40
- package/dist/public/assets/sequenceDiagram-DBY2YBRQ-r0pwijM4.js +0 -162
- package/dist/public/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +0 -1
- package/dist/public/assets/src-DOh7_en_.js +0 -1
- package/dist/public/assets/stateDiagram-2N3HPSRC-a9IdkSQG.js +0 -1
- package/dist/public/assets/stateDiagram-v2-6OUMAXLB-s2blPtZ-.js +0 -1
- package/dist/public/assets/swimlanes-5IMT3BWC-5w0Cdxk6.js +0 -2
- package/dist/public/assets/swimlanesDiagram-G3AALYLV-BWa-KRed.js +0 -8
- package/dist/public/assets/time-BM2d9MsQ.js +0 -1
- package/dist/public/assets/timeline-definition-FHXFAJF6-CvXlv_4Y.js +0 -120
- package/dist/public/assets/treeView-QDETBFTQ-B9cxjfpB.js +0 -1
- package/dist/public/assets/treemap-6X3UGDF4-BplEq4hB.js +0 -1
- package/dist/public/assets/treemap-BfjIY-m6.js +0 -1
- package/dist/public/assets/vennDiagram-L72KCM5P-ti2qNcvo.js +0 -34
- package/dist/public/assets/wardley-OPB4EBWU-BX2ghg5e.js +0 -1
- package/dist/public/assets/wardleyDiagram-EHGQE667-C8lblm8x.js +0 -78
- package/dist/public/assets/xychartDiagram-FW5EYKEG-US-_k5eu.js +0 -7
- package/src/domain/cards/presence.ts +0 -124
- package/src/project-registry.ts +0 -130
|
@@ -1,22 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
*/
|
|
1
|
+
// SPDX-FileCopyrightText: Cyberismo Ltd and contributors
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
13
3
|
import { Hono } from 'hono';
|
|
14
4
|
import { ssgParams } from 'hono/ssg';
|
|
15
5
|
import * as resourceService from './service.js';
|
|
16
6
|
import { UserRole } from '../../types.js';
|
|
17
7
|
import { resourceParamsSchema } from '../../common/validationSchemas.js';
|
|
18
8
|
import { zValidator } from '../../middleware/zvalidator.js';
|
|
19
|
-
import { validateResourceParamsSchema,
|
|
9
|
+
import { validateResourceParamsSchema, prefixIdentifierParamsSchema, skillPreviewBodySchema, updateOperationBodySchema, workflowGraphQuerySchema, } from './schema.js';
|
|
20
10
|
import { requireRole } from '../../middleware/auth.js';
|
|
21
11
|
const router = new Hono();
|
|
22
12
|
/**
|
|
@@ -32,9 +22,9 @@ const router = new Hono();
|
|
|
32
22
|
* description: project_path not set or other internal error
|
|
33
23
|
*/
|
|
34
24
|
router.get('/tree', requireRole(UserRole.Reader), async (c) => {
|
|
35
|
-
const
|
|
25
|
+
const ws = c.get('ws');
|
|
36
26
|
try {
|
|
37
|
-
const tree = await resourceService.buildResourceTree(
|
|
27
|
+
const tree = await resourceService.buildResourceTree(ws);
|
|
38
28
|
return c.json(tree);
|
|
39
29
|
}
|
|
40
30
|
catch (error) {
|
|
@@ -88,10 +78,10 @@ router.get('/tree', requireRole(UserRole.Reader), async (c) => {
|
|
|
88
78
|
* description: Internal server error
|
|
89
79
|
*/
|
|
90
80
|
router.get('/:prefix/:type/:identifier/validate', requireRole(UserRole.Reader), zValidator('param', validateResourceParamsSchema), async (c) => {
|
|
91
|
-
const
|
|
81
|
+
const ws = c.get('ws');
|
|
92
82
|
const resourceParams = c.req.valid('param');
|
|
93
83
|
try {
|
|
94
|
-
const response = await resourceService.validateResource(
|
|
84
|
+
const response = await resourceService.validateResource(ws, resourceParams);
|
|
95
85
|
return c.json(response);
|
|
96
86
|
}
|
|
97
87
|
catch (error) {
|
|
@@ -102,9 +92,9 @@ router.get('/:prefix/:type/:identifier/validate', requireRole(UserRole.Reader),
|
|
|
102
92
|
}
|
|
103
93
|
});
|
|
104
94
|
router.delete('/:prefix/:type/:identifier', requireRole(UserRole.Admin), zValidator('param', resourceParamsSchema), async (c) => {
|
|
105
|
-
const
|
|
95
|
+
const ws = c.get('ws');
|
|
106
96
|
const resourceParams = c.req.valid('param');
|
|
107
|
-
await resourceService.deleteResource(
|
|
97
|
+
await resourceService.deleteResource(ws, resourceParams);
|
|
108
98
|
return c.json({
|
|
109
99
|
message: 'Resource deleted',
|
|
110
100
|
});
|
|
@@ -156,15 +146,15 @@ router.delete('/:prefix/:type/:identifier', requireRole(UserRole.Admin), zValida
|
|
|
156
146
|
* description: Server error
|
|
157
147
|
*/
|
|
158
148
|
router.get('/:prefix/workflows/:identifier/graph', requireRole(UserRole.Reader), ssgParams(async (c) => {
|
|
159
|
-
const
|
|
160
|
-
return resourceService.listWorkflowGraphParams(
|
|
161
|
-
}), zValidator('param',
|
|
162
|
-
const
|
|
149
|
+
const ws = c.get('ws');
|
|
150
|
+
return resourceService.listWorkflowGraphParams(ws);
|
|
151
|
+
}), zValidator('param', prefixIdentifierParamsSchema), zValidator('query', workflowGraphQuerySchema), async (c) => {
|
|
152
|
+
const ws = c.get('ws');
|
|
163
153
|
const { prefix, identifier } = c.req.valid('param');
|
|
164
154
|
const { card } = c.req.valid('query');
|
|
165
155
|
const workflowName = `${prefix}/workflows/${identifier}`;
|
|
166
156
|
try {
|
|
167
|
-
const svg = await resourceService.getWorkflowGraph(
|
|
157
|
+
const svg = await resourceService.getWorkflowGraph(ws, workflowName, card);
|
|
168
158
|
return c.json({ svg });
|
|
169
159
|
}
|
|
170
160
|
catch (error) {
|
|
@@ -174,11 +164,86 @@ router.get('/:prefix/workflows/:identifier/graph', requireRole(UserRole.Reader),
|
|
|
174
164
|
throw error;
|
|
175
165
|
}
|
|
176
166
|
});
|
|
167
|
+
/**
|
|
168
|
+
* @swagger
|
|
169
|
+
* /api/resources/{prefix}/skills/{identifier}/preview:
|
|
170
|
+
* post:
|
|
171
|
+
* summary: Render a skill's instructions for the configuration editor
|
|
172
|
+
* description: Applies Handlebars templating to the skill content and
|
|
173
|
+
* returns the rendered markdown. For template skills the
|
|
174
|
+
* logic program in query.lp is executed first and its result
|
|
175
|
+
* is used as the template context. Unlike the MCP get_skill
|
|
176
|
+
* tool, the skill does not need to be enabled by the logic
|
|
177
|
+
* programs. Pass skillContent and/or skillQuery to render
|
|
178
|
+
* unsaved editor content instead of what is stored on disk.
|
|
179
|
+
* parameters:
|
|
180
|
+
* - in: path
|
|
181
|
+
* name: prefix
|
|
182
|
+
* required: true
|
|
183
|
+
* schema:
|
|
184
|
+
* type: string
|
|
185
|
+
* - in: path
|
|
186
|
+
* name: identifier
|
|
187
|
+
* required: true
|
|
188
|
+
* schema:
|
|
189
|
+
* type: string
|
|
190
|
+
* requestBody:
|
|
191
|
+
* required: false
|
|
192
|
+
* content:
|
|
193
|
+
* application/json:
|
|
194
|
+
* schema:
|
|
195
|
+
* type: object
|
|
196
|
+
* properties:
|
|
197
|
+
* skillContent:
|
|
198
|
+
* type: string
|
|
199
|
+
* description: Unsaved skill.md content to render.
|
|
200
|
+
* skillQuery:
|
|
201
|
+
* type: string
|
|
202
|
+
* description: Unsaved query.lp content to run.
|
|
203
|
+
* cardKey:
|
|
204
|
+
* type: string
|
|
205
|
+
* description: Card context for a card-specific skill.
|
|
206
|
+
* responses:
|
|
207
|
+
* 200:
|
|
208
|
+
* description: Rendered instructions
|
|
209
|
+
* content:
|
|
210
|
+
* application/json:
|
|
211
|
+
* schema:
|
|
212
|
+
* type: object
|
|
213
|
+
* properties:
|
|
214
|
+
* instructions:
|
|
215
|
+
* type: string
|
|
216
|
+
* description: The rendered skill content as markdown.
|
|
217
|
+
* 400:
|
|
218
|
+
* description: Invalid path parameters, or the query or template failed
|
|
219
|
+
* 404:
|
|
220
|
+
* description: Skill or card not found
|
|
221
|
+
*/
|
|
222
|
+
router.post('/:prefix/skills/:identifier/preview', requireRole(UserRole.Admin), zValidator('param', prefixIdentifierParamsSchema), zValidator('json', skillPreviewBodySchema), async (c) => {
|
|
223
|
+
const ws = c.get('ws');
|
|
224
|
+
const { prefix, identifier } = c.req.valid('param');
|
|
225
|
+
const body = c.req.valid('json');
|
|
226
|
+
const skillName = `${prefix}/skills/${identifier}`;
|
|
227
|
+
try {
|
|
228
|
+
const instructions = await resourceService.previewSkill(ws, skillName, body);
|
|
229
|
+
return c.json({ instructions });
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
233
|
+
if (message.includes('not found')) {
|
|
234
|
+
return c.json({ error: message }, 404);
|
|
235
|
+
}
|
|
236
|
+
return c.json({ error: message }, 400);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
177
239
|
router.post('/:prefix/:type/:identifier/operation', requireRole(UserRole.Admin, [UserRole.Connector]), zValidator('param', resourceParamsSchema), zValidator('json', updateOperationBodySchema), async (c) => {
|
|
178
|
-
const
|
|
240
|
+
const ws = c.get('ws');
|
|
179
241
|
const resourceParams = c.req.valid('param');
|
|
180
242
|
const { updateKey, operation } = c.req.valid('json');
|
|
181
|
-
await resourceService.updateResourceWithOperation(
|
|
243
|
+
await resourceService.updateResourceWithOperation(ws, resourceParams, {
|
|
244
|
+
updateKey,
|
|
245
|
+
operation,
|
|
246
|
+
});
|
|
182
247
|
return c.json({ message: 'Updated' });
|
|
183
248
|
});
|
|
184
249
|
export default router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/resources/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/resources/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const prefixIdentifierParamsSchema: z.ZodObject<{
|
|
3
3
|
prefix: z.ZodString;
|
|
4
4
|
identifier: z.ZodString;
|
|
5
5
|
}, z.core.$strip>;
|
|
6
|
-
export type
|
|
6
|
+
export type PrefixIdentifierParams = z.infer<typeof prefixIdentifierParamsSchema>;
|
|
7
7
|
export declare const workflowGraphQuerySchema: z.ZodObject<{
|
|
8
8
|
card: z.ZodOptional<z.ZodString>;
|
|
9
9
|
}, z.core.$strip>;
|
|
10
10
|
export type WorkflowGraphQuery = z.infer<typeof workflowGraphQuerySchema>;
|
|
11
|
+
export declare const skillPreviewBodySchema: z.ZodObject<{
|
|
12
|
+
skillContent: z.ZodOptional<z.ZodString>;
|
|
13
|
+
skillQuery: z.ZodOptional<z.ZodString>;
|
|
14
|
+
cardKey: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type SkillPreviewBody = z.infer<typeof skillPreviewBodySchema>;
|
|
11
17
|
export declare const resourceFileParamsSchema: z.ZodObject<{
|
|
12
18
|
prefix: z.ZodString;
|
|
13
19
|
type: z.ZodEnum<{
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: Cyberismo Ltd and contributors
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
1
3
|
import { z } from 'zod';
|
|
2
4
|
import { identifierSchema, resourceParamsSchema, resourceTypes, } from '../../common/validationSchemas.js';
|
|
3
|
-
export const
|
|
5
|
+
export const prefixIdentifierParamsSchema = z.object({
|
|
4
6
|
prefix: z.string(),
|
|
5
7
|
identifier: identifierSchema,
|
|
6
8
|
});
|
|
7
9
|
export const workflowGraphQuerySchema = z.object({
|
|
8
10
|
card: z.string().optional(),
|
|
9
11
|
});
|
|
12
|
+
export const skillPreviewBodySchema = z.object({
|
|
13
|
+
skillContent: z.string().optional(),
|
|
14
|
+
skillQuery: z.string().optional(),
|
|
15
|
+
cardKey: z.string().optional(),
|
|
16
|
+
});
|
|
10
17
|
export const resourceFileParamsSchema = resourceParamsSchema.extend({
|
|
11
18
|
file: z.string(),
|
|
12
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/resources/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/resources/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,28 @@
|
|
|
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 { type CommandManager } from '@cyberismo/data-handler';
|
|
1
|
+
import { type Workspace } from '@cyberismo/data-handler';
|
|
14
2
|
import type { ResourceParams } from '../../common/validationSchemas.js';
|
|
15
|
-
import type {
|
|
16
|
-
export declare function buildResourceTree(
|
|
3
|
+
import type { SkillPreviewBody, UpdateOperationBody, ValidateResourceParams } from './schema.js';
|
|
4
|
+
export declare function buildResourceTree(ws: Workspace): Promise<unknown[]>;
|
|
17
5
|
/**
|
|
18
6
|
* Delete a resource.
|
|
19
|
-
* @param
|
|
7
|
+
* @param ws Command manager.
|
|
20
8
|
* @param resource Resource to delete.
|
|
21
9
|
*/
|
|
22
|
-
export declare function deleteResource(
|
|
10
|
+
export declare function deleteResource(ws: Workspace, resource: ResourceParams): Promise<void>;
|
|
23
11
|
/**
|
|
24
12
|
* Validate a single resource.
|
|
25
|
-
* @param
|
|
13
|
+
* @param ws Command manager.
|
|
26
14
|
* @param resource Resource to validate.
|
|
27
15
|
* @returns Validation result with errors and validity status.
|
|
28
16
|
*/
|
|
29
|
-
export declare function validateResource(
|
|
17
|
+
export declare function validateResource(ws: Workspace, resource: ValidateResourceParams): Promise<{
|
|
30
18
|
errors: string[];
|
|
31
19
|
}>;
|
|
32
20
|
/**
|
|
33
21
|
* Lists the path params for every workflow resource in the project.
|
|
34
|
-
* @param
|
|
22
|
+
* @param ws Command manager.
|
|
35
23
|
* @returns One `{ prefix, identifier }` entry per workflow resource.
|
|
36
24
|
*/
|
|
37
|
-
export declare function listWorkflowGraphParams(
|
|
25
|
+
export declare function listWorkflowGraphParams(ws: Workspace): Promise<{
|
|
38
26
|
prefix: string;
|
|
39
27
|
identifier: string;
|
|
40
28
|
}[]>;
|
|
@@ -49,9 +37,21 @@ export declare function listWorkflowGraphParams(commands: CommandManager): Promi
|
|
|
49
37
|
* @throws Error with 'not found' in the message when the workflow or
|
|
50
38
|
* card cannot be resolved.
|
|
51
39
|
*/
|
|
52
|
-
export declare function getWorkflowGraph(
|
|
40
|
+
export declare function getWorkflowGraph(ws: Workspace, workflowName: string, cardKey?: string): Promise<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Renders a skill's instructions for the configuration editor preview.
|
|
43
|
+
* Unlike the MCP `get_skill` tool, this does not require the skill to be
|
|
44
|
+
* enabled by the logic programs — the author is still working on it. When
|
|
45
|
+
* `skillContent` or `skillQuery` is given, that unsaved editor content is
|
|
46
|
+
* rendered instead of what is stored on disk. The lookups and the rendering
|
|
47
|
+
* share one consistency window so the preview matches a single project state.
|
|
48
|
+
* @returns the rendered instructions as markdown.
|
|
49
|
+
* @throws Error with 'not found' in the message when the skill or card cannot
|
|
50
|
+
* be resolved; any other error means the template or query failed to render.
|
|
51
|
+
*/
|
|
52
|
+
export declare function previewSkill(ws: Workspace, skillName: string, body: SkillPreviewBody): Promise<string>;
|
|
53
53
|
/**
|
|
54
54
|
* Perform an updateOperation on a resource key.
|
|
55
55
|
* This delegates to the data-handler mutation engine.
|
|
56
56
|
*/
|
|
57
|
-
export declare function updateResourceWithOperation(
|
|
57
|
+
export declare function updateResourceWithOperation(ws: Workspace, resource: ResourceParams, body: UpdateOperationBody): Promise<void>;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 { isResourceFolderType, moduleNameFromCardKey, resourceName, resourceNameToString, } from '@cyberismo/data-handler';
|
|
1
|
+
// SPDX-FileCopyrightText: Cyberismo Ltd and contributors
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
import { CardNotFoundError, isResourceFolderType, moduleNameFromCardKey, resourceName, resourceNameToString, ResourceNotFoundError, } from '@cyberismo/data-handler';
|
|
14
4
|
const resourceTypes = [
|
|
15
5
|
'calculations',
|
|
16
6
|
'cardTypes',
|
|
@@ -19,15 +9,16 @@ const resourceTypes = [
|
|
|
19
9
|
'graphViews',
|
|
20
10
|
'linkTypes',
|
|
21
11
|
'reports',
|
|
12
|
+
'skills',
|
|
22
13
|
'templates',
|
|
23
14
|
'workflows',
|
|
24
15
|
];
|
|
25
|
-
async function getModules(
|
|
16
|
+
async function getModules(ws) {
|
|
26
17
|
try {
|
|
27
|
-
const modules = await
|
|
18
|
+
const modules = await ws.modules.list();
|
|
28
19
|
return Promise.all(modules.map(async (mod) => {
|
|
29
20
|
try {
|
|
30
|
-
const module = await
|
|
21
|
+
const module = await ws.modules.show(mod.name);
|
|
31
22
|
return { name: module.name, cardKeyPrefix: module.cardKeyPrefix };
|
|
32
23
|
}
|
|
33
24
|
catch {
|
|
@@ -54,12 +45,12 @@ function sortTemplateCardsByRank(cards) {
|
|
|
54
45
|
childrenCards: sortTemplateCardsByRank(card.childrenCards ?? []),
|
|
55
46
|
}));
|
|
56
47
|
}
|
|
57
|
-
export async function buildResourceTree(
|
|
58
|
-
return
|
|
59
|
-
const project = await
|
|
48
|
+
export async function buildResourceTree(ws) {
|
|
49
|
+
return ws.consistent(async () => {
|
|
50
|
+
const project = await ws.settings.info();
|
|
60
51
|
const tree = [];
|
|
61
52
|
const sortByDisplayName = (nodes) => nodes.sort((a, b) => (a.data.displayName || a.data.name.split('/')[2] || '').localeCompare(b.data.displayName || b.data.name.split('/')[2] || ''));
|
|
62
|
-
const modules = await getModules(
|
|
53
|
+
const modules = await getModules(ws);
|
|
63
54
|
// General section first (single node with project + modules metadata)
|
|
64
55
|
tree.push({
|
|
65
56
|
id: 'general-project',
|
|
@@ -77,10 +68,10 @@ export async function buildResourceTree(commands) {
|
|
|
77
68
|
let rootResources;
|
|
78
69
|
let moduleResources;
|
|
79
70
|
if (resourceType === 'templates') {
|
|
80
|
-
({ rootResources, moduleResources } = await processTemplates(
|
|
71
|
+
({ rootResources, moduleResources } = await processTemplates(ws, project.prefix));
|
|
81
72
|
}
|
|
82
73
|
else {
|
|
83
|
-
({ rootResources, moduleResources } = await groupResourcesByPrefix(
|
|
74
|
+
({ rootResources, moduleResources } = await groupResourcesByPrefix(ws, resourceType, project.prefix));
|
|
84
75
|
}
|
|
85
76
|
// Sort resources by display name if present
|
|
86
77
|
sortByDisplayName(rootResources);
|
|
@@ -134,8 +125,8 @@ function parseResourcePrefix(resource) {
|
|
|
134
125
|
}
|
|
135
126
|
// Helper function to create resource node with all data from showResource
|
|
136
127
|
// TODO: The types should be shared between backend and frontend
|
|
137
|
-
async function createResourceNode(
|
|
138
|
-
const resourceData = await
|
|
128
|
+
async function createResourceNode(ws, resourceType, name, projectPrefix, children) {
|
|
129
|
+
const resourceData = await ws.resources.show(name);
|
|
139
130
|
const node = {
|
|
140
131
|
id: `${resourceType}-${name}`,
|
|
141
132
|
type: resourceType,
|
|
@@ -193,9 +184,9 @@ function createCardNode(card, module, projectPrefix) {
|
|
|
193
184
|
return cardNode;
|
|
194
185
|
}
|
|
195
186
|
// Helper function to process templates using templateTree query
|
|
196
|
-
async function processTemplates(
|
|
197
|
-
const templates = await
|
|
198
|
-
const templateTree = await
|
|
187
|
+
async function processTemplates(ws, projectPrefix) {
|
|
188
|
+
const templates = await ws.resources.list('templates');
|
|
189
|
+
const templateTree = await ws.cards.templateCards();
|
|
199
190
|
const rootTemplates = {};
|
|
200
191
|
const moduleTemplates = {};
|
|
201
192
|
for (const { name, cards } of templateTree) {
|
|
@@ -222,17 +213,17 @@ async function processTemplates(commands, projectPrefix) {
|
|
|
222
213
|
}
|
|
223
214
|
}
|
|
224
215
|
}
|
|
225
|
-
const rootResources = await Promise.all(Object.entries(rootTemplates).map(([templateName, cards]) => createResourceNode(
|
|
216
|
+
const rootResources = await Promise.all(Object.entries(rootTemplates).map(([templateName, cards]) => createResourceNode(ws, 'templates', templateName, projectPrefix, cards)));
|
|
226
217
|
const moduleResources = {};
|
|
227
218
|
for (const [prefix, templates] of Object.entries(moduleTemplates)) {
|
|
228
|
-
moduleResources[prefix] = await Promise.all(Object.entries(templates).map(([templateName, cards]) => createResourceNode(
|
|
219
|
+
moduleResources[prefix] = await Promise.all(Object.entries(templates).map(([templateName, cards]) => createResourceNode(ws, 'templates', templateName, projectPrefix, cards)));
|
|
229
220
|
}
|
|
230
221
|
// Add also templates that do not have any cards
|
|
231
222
|
for (const template of templates) {
|
|
232
223
|
const { prefix } = parseResourcePrefix(template);
|
|
233
224
|
if (prefix === projectPrefix) {
|
|
234
225
|
if (!rootResources.find((resource) => resource.name === template)) {
|
|
235
|
-
rootResources.push(await createResourceNode(
|
|
226
|
+
rootResources.push(await createResourceNode(ws, 'templates', template, projectPrefix, []));
|
|
236
227
|
}
|
|
237
228
|
}
|
|
238
229
|
else {
|
|
@@ -240,16 +231,16 @@ async function processTemplates(commands, projectPrefix) {
|
|
|
240
231
|
moduleResources[prefix] = [];
|
|
241
232
|
}
|
|
242
233
|
if (!moduleResources[prefix].find((resource) => resource.name === template)) {
|
|
243
|
-
moduleResources[prefix].push(await createResourceNode(
|
|
234
|
+
moduleResources[prefix].push(await createResourceNode(ws, 'templates', template, projectPrefix, []));
|
|
244
235
|
}
|
|
245
236
|
}
|
|
246
237
|
}
|
|
247
238
|
return { rootResources, moduleResources };
|
|
248
239
|
}
|
|
249
240
|
// Helper function to group regular resources by prefix
|
|
250
|
-
async function groupResourcesByPrefix(
|
|
251
|
-
const resourceNames = await
|
|
252
|
-
const resources = await Promise.all(resourceNames.map((name) => createResourceNode(
|
|
241
|
+
async function groupResourcesByPrefix(ws, resourceType, projectPrefix) {
|
|
242
|
+
const resourceNames = await ws.resources.list(resourceType);
|
|
243
|
+
const resources = await Promise.all(resourceNames.map((name) => createResourceNode(ws, resourceType, name, projectPrefix)));
|
|
253
244
|
const rootResources = [];
|
|
254
245
|
const moduleResources = {};
|
|
255
246
|
resources.forEach((resource) => {
|
|
@@ -268,31 +259,31 @@ async function groupResourcesByPrefix(commands, resourceType, projectPrefix) {
|
|
|
268
259
|
}
|
|
269
260
|
/**
|
|
270
261
|
* Delete a resource.
|
|
271
|
-
* @param
|
|
262
|
+
* @param ws Command manager.
|
|
272
263
|
* @param resource Resource to delete.
|
|
273
264
|
*/
|
|
274
|
-
export async function deleteResource(
|
|
275
|
-
return
|
|
265
|
+
export async function deleteResource(ws, resource) {
|
|
266
|
+
return ws.resources.remove(resourceNameToString(resource), resource.type.substring(0, resource.type.length - 1));
|
|
276
267
|
}
|
|
277
268
|
/**
|
|
278
269
|
* Validate a single resource.
|
|
279
|
-
* @param
|
|
270
|
+
* @param ws Command manager.
|
|
280
271
|
* @param resource Resource to validate.
|
|
281
272
|
* @returns Validation result with errors and validity status.
|
|
282
273
|
*/
|
|
283
|
-
export async function validateResource(
|
|
284
|
-
const errors = await
|
|
274
|
+
export async function validateResource(ws, resource) {
|
|
275
|
+
const errors = await ws.resources.validate(resource);
|
|
285
276
|
return {
|
|
286
277
|
errors: errors.split('\n\n').filter((error) => error !== ''),
|
|
287
278
|
};
|
|
288
279
|
}
|
|
289
280
|
/**
|
|
290
281
|
* Lists the path params for every workflow resource in the project.
|
|
291
|
-
* @param
|
|
282
|
+
* @param ws Command manager.
|
|
292
283
|
* @returns One `{ prefix, identifier }` entry per workflow resource.
|
|
293
284
|
*/
|
|
294
|
-
export async function listWorkflowGraphParams(
|
|
295
|
-
const workflows = await
|
|
285
|
+
export async function listWorkflowGraphParams(ws) {
|
|
286
|
+
const workflows = await ws.resources.list('workflows');
|
|
296
287
|
return workflows.map((name) => {
|
|
297
288
|
const { prefix, identifier } = resourceName(name);
|
|
298
289
|
return { prefix, identifier };
|
|
@@ -309,13 +300,13 @@ export async function listWorkflowGraphParams(commands) {
|
|
|
309
300
|
* @throws Error with 'not found' in the message when the workflow or
|
|
310
301
|
* card cannot be resolved.
|
|
311
302
|
*/
|
|
312
|
-
export async function getWorkflowGraph(
|
|
313
|
-
return
|
|
303
|
+
export async function getWorkflowGraph(ws, workflowName, cardKey) {
|
|
304
|
+
return ws.consistent(async () => {
|
|
314
305
|
try {
|
|
315
|
-
await
|
|
306
|
+
await ws.resources.show(workflowName, 'workflows');
|
|
316
307
|
}
|
|
317
308
|
catch (error) {
|
|
318
|
-
if (error instanceof
|
|
309
|
+
if (error instanceof ResourceNotFoundError) {
|
|
319
310
|
throw new Error(`Workflow '${workflowName}' not found`, {
|
|
320
311
|
cause: error,
|
|
321
312
|
});
|
|
@@ -326,7 +317,7 @@ export async function getWorkflowGraph(commands, workflowName, cardKey) {
|
|
|
326
317
|
if (cardKey) {
|
|
327
318
|
let card;
|
|
328
319
|
try {
|
|
329
|
-
card = await
|
|
320
|
+
card = await ws.cards.details(cardKey);
|
|
330
321
|
}
|
|
331
322
|
catch (error) {
|
|
332
323
|
throw new Error(`Card '${cardKey}' not found`, { cause: error });
|
|
@@ -336,18 +327,59 @@ export async function getWorkflowGraph(commands, workflowName, cardKey) {
|
|
|
336
327
|
}
|
|
337
328
|
currentState = card.metadata.workflowState;
|
|
338
329
|
}
|
|
339
|
-
return
|
|
330
|
+
return ws.queries.runWorkflowGraph(workflowName, {
|
|
340
331
|
currentState,
|
|
341
332
|
});
|
|
342
333
|
});
|
|
343
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Renders a skill's instructions for the configuration editor preview.
|
|
337
|
+
* Unlike the MCP `get_skill` tool, this does not require the skill to be
|
|
338
|
+
* enabled by the logic programs — the author is still working on it. When
|
|
339
|
+
* `skillContent` or `skillQuery` is given, that unsaved editor content is
|
|
340
|
+
* rendered instead of what is stored on disk. The lookups and the rendering
|
|
341
|
+
* share one consistency window so the preview matches a single project state.
|
|
342
|
+
* @returns the rendered instructions as markdown.
|
|
343
|
+
* @throws Error with 'not found' in the message when the skill or card cannot
|
|
344
|
+
* be resolved; any other error means the template or query failed to render.
|
|
345
|
+
*/
|
|
346
|
+
export async function previewSkill(ws, skillName, body) {
|
|
347
|
+
const { cardKey, skillContent, skillQuery } = body;
|
|
348
|
+
return ws.consistent(async () => {
|
|
349
|
+
try {
|
|
350
|
+
await ws.resources.show(skillName, 'skills');
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
if (error instanceof ResourceNotFoundError) {
|
|
354
|
+
throw new Error(`Skill '${skillName}' not found`, { cause: error });
|
|
355
|
+
}
|
|
356
|
+
throw error;
|
|
357
|
+
}
|
|
358
|
+
if (cardKey) {
|
|
359
|
+
try {
|
|
360
|
+
await ws.cards.details(cardKey);
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
if (error instanceof CardNotFoundError) {
|
|
364
|
+
throw new Error(`Card '${cardKey}' not found`, { cause: error });
|
|
365
|
+
}
|
|
366
|
+
throw error;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return ws.resources.skillPreview(skillName, {
|
|
370
|
+
cardKey,
|
|
371
|
+
skillContent,
|
|
372
|
+
skillQuery,
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
}
|
|
344
376
|
/**
|
|
345
377
|
* Perform an updateOperation on a resource key.
|
|
346
378
|
* This delegates to the data-handler mutation engine.
|
|
347
379
|
*/
|
|
348
|
-
export async function updateResourceWithOperation(
|
|
380
|
+
export async function updateResourceWithOperation(ws, resource, body) {
|
|
349
381
|
const { updateKey, operation } = body;
|
|
350
|
-
await
|
|
382
|
+
await ws.atomic(() => ws.changes.apply({
|
|
351
383
|
kind: 'edit',
|
|
352
384
|
target: resource,
|
|
353
385
|
updateKey,
|