unspaghettit 0.3.0 → 0.4.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 +56 -18
- package/build/client/_app/immutable/assets/0.DCOD5ne_.css +1 -0
- package/build/client/_app/immutable/assets/0.DCOD5ne_.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DCOD5ne_.css.gz +0 -0
- package/build/client/_app/immutable/assets/12.nv0I59TU.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.B3akUL9A.css.gz +0 -0
- package/build/client/_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B3vnQs252.js +1 -0
- package/build/client/_app/immutable/chunks/B3vnQs252.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3vnQs252.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CxyLMlpt2.js → BANF9BhQ2.js} +1 -1
- package/build/client/_app/immutable/chunks/BANF9BhQ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BANF9BhQ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJdTO_n6.js +1 -0
- package/build/client/_app/immutable/chunks/BJdTO_n6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJdTO_n6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPl9BITm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ9GodWX2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bcyn5YUg.js +4 -0
- package/build/client/_app/immutable/chunks/Bcyn5YUg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bcyn5YUg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bfc9rQXP.js +1 -0
- package/build/client/_app/immutable/chunks/Bfc9rQXP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bfc9rQXP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BfMYiIUi.js → BjxqhpPG.js} +1 -1
- package/build/client/_app/immutable/chunks/BjxqhpPG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjxqhpPG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByaoVvNB.js +1 -0
- package/build/client/_app/immutable/chunks/ByaoVvNB.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByaoVvNB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzLd0mTH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8b3IMj8.js +1 -0
- package/build/client/_app/immutable/chunks/C8b3IMj8.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8b3IMj8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXvvf4uQ.js +1 -0
- package/build/client/_app/immutable/chunks/CXvvf4uQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXvvf4uQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cl7Z3e6-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ClC4qR7W2.js +2 -0
- package/build/client/_app/immutable/chunks/ClC4qR7W2.js.br +0 -0
- package/build/client/_app/immutable/chunks/ClC4qR7W2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CuGlh1c2.js +1 -0
- package/build/client/_app/immutable/chunks/CuGlh1c2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CuGlh1c2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwzIdrQR.js +1 -0
- package/build/client/_app/immutable/chunks/CwzIdrQR.js.br +0 -0
- package/build/client/_app/immutable/chunks/CwzIdrQR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5speDV82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D64sGJRN.js +1 -0
- package/build/client/_app/immutable/chunks/D64sGJRN.js.br +0 -0
- package/build/client/_app/immutable/chunks/D64sGJRN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNaA4QRO2.js +1 -0
- package/build/client/_app/immutable/chunks/DNaA4QRO2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNaA4QRO2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Da59TXPe.js +1 -0
- package/build/client/_app/immutable/chunks/Da59TXPe.js.br +2 -0
- package/build/client/_app/immutable/chunks/Da59TXPe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DhTiE3j02.js +2 -0
- package/build/client/_app/immutable/chunks/DhTiE3j02.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhTiE3j02.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dhqg7r_2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DmyaDy4d2.js +1 -0
- package/build/client/_app/immutable/chunks/DmyaDy4d2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DmyaDy4d2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DkxwAIfJ2.js → DryaQyjN2.js} +1 -1
- package/build/client/_app/immutable/chunks/DryaQyjN2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DryaQyjN2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtK8qK5Q2.js +1 -0
- package/build/client/_app/immutable/chunks/DtK8qK5Q2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DtK8qK5Q2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DtblIi6X2.js +1 -0
- package/build/client/_app/immutable/chunks/DtblIi6X2.js.br +1 -0
- package/build/client/_app/immutable/chunks/DtblIi6X2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UkzDDeO42.js +1 -0
- package/build/client/_app/immutable/chunks/UkzDDeO42.js.br +0 -0
- package/build/client/_app/immutable/chunks/UkzDDeO42.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B_9TWPrx2.js → Vu8LzrwP2.js} +1 -1
- package/build/client/_app/immutable/chunks/Vu8LzrwP2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Vu8LzrwP2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_b612aVb.js +1 -0
- package/build/client/_app/immutable/chunks/_b612aVb.js.br +0 -0
- package/build/client/_app/immutable/chunks/_b612aVb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aNMRV4sP2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/cMamJTsF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ib21i2T_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/oVMDLirx.js +1 -0
- package/build/client/_app/immutable/chunks/oVMDLirx.js.br +0 -0
- package/build/client/_app/immutable/chunks/oVMDLirx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/olAc024e.js +1 -0
- package/build/client/_app/immutable/chunks/olAc024e.js.br +0 -0
- package/build/client/_app/immutable/chunks/olAc024e.js.gz +0 -0
- package/build/client/_app/immutable/chunks/suTxxv1t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wXIHzLMQ2.js +1 -0
- package/build/client/_app/immutable/chunks/wXIHzLMQ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/wXIHzLMQ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B439_FLv.js → wrqalH0a.js} +1 -1
- package/build/client/_app/immutable/chunks/wrqalH0a.js.br +0 -0
- package/build/client/_app/immutable/chunks/wrqalH0a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/x60Tn5kT.js +1 -0
- package/build/client/_app/immutable/chunks/x60Tn5kT.js.br +0 -0
- package/build/client/_app/immutable/chunks/x60Tn5kT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BOrLmFwJ.js → yShDxCNj.js} +1 -1
- package/build/client/_app/immutable/chunks/yShDxCNj.js.br +2 -0
- package/build/client/_app/immutable/chunks/yShDxCNj.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Etd-exTb.js +2 -0
- package/build/client/_app/immutable/entry/app.Etd-exTb.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Etd-exTb.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DY2B3u4g.js +1 -0
- package/build/client/_app/immutable/entry/start.DY2B3u4g.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DY2B3u4g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.tKfYV3__.js +8 -0
- package/build/client/_app/immutable/nodes/0.tKfYV3__.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.tKfYV3__.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Dyte3Ggf.js → 1.CER5ICKt.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CER5ICKt.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.CER5ICKt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.rT7cD8kX.js +1 -0
- package/build/client/_app/immutable/nodes/10.rT7cD8kX.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.rT7cD8kX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BAnV_Y5Y.js +2 -0
- package/build/client/_app/immutable/nodes/11.BAnV_Y5Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BAnV_Y5Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.wvMfJKC2.js → 12.DCTRFMqo.js} +4 -3
- package/build/client/_app/immutable/nodes/12.DCTRFMqo.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DCTRFMqo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.CmPPom9Z.js → 2.CF488WWF.js} +1 -1
- package/build/client/_app/immutable/nodes/2.CF488WWF.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CF488WWF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CP7CPPVH.js +1 -0
- package/build/client/_app/immutable/nodes/3.CP7CPPVH.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CP7CPPVH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D1bxCSiM.js +3 -0
- package/build/client/_app/immutable/nodes/4.D1bxCSiM.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D1bxCSiM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.D6jZgh9y.js +48 -0
- package/build/client/_app/immutable/nodes/5.D6jZgh9y.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.D6jZgh9y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BrBFUA0s.js +1 -0
- package/build/client/_app/immutable/nodes/6.BrBFUA0s.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BrBFUA0s.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.pajo8MfM.js +3 -0
- package/build/client/_app/immutable/nodes/7.pajo8MfM.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.pajo8MfM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Cc80_Igi.js +5 -0
- package/build/client/_app/immutable/nodes/8.Cc80_Igi.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Cc80_Igi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.B-HweAc8.js → 9.D72NaL3l.js} +1 -1
- package/build/client/_app/immutable/nodes/9.D72NaL3l.js.br +1 -0
- package/build/client/_app/immutable/nodes/9.D72NaL3l.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/lyriks_logo.svg.gz +0 -0
- package/build/server/chunks/0-8YZc572z.js +15 -0
- package/build/server/chunks/0-8YZc572z.js.map +1 -0
- package/build/server/chunks/1-DxkfSJLu.js +9 -0
- package/build/server/chunks/{1-BSUItTig.js.map → 1-DxkfSJLu.js.map} +1 -1
- package/build/server/chunks/10-DkObdGtU.js +9 -0
- package/build/server/chunks/10-DkObdGtU.js.map +1 -0
- package/build/server/chunks/11-DL94HxpZ.js +9 -0
- package/build/server/chunks/11-DL94HxpZ.js.map +1 -0
- package/build/server/chunks/12-CI74sCkt.js +9 -0
- package/build/server/chunks/12-CI74sCkt.js.map +1 -0
- package/build/server/chunks/2-qhWwQ4eL.js +9 -0
- package/build/server/chunks/2-qhWwQ4eL.js.map +1 -0
- package/build/server/chunks/3-CzoZtSTp.js +16 -0
- package/build/server/chunks/3-CzoZtSTp.js.map +1 -0
- package/build/server/chunks/4-CDa9DBsh.js +16 -0
- package/build/server/chunks/4-CDa9DBsh.js.map +1 -0
- package/build/server/chunks/5-qD2xxOrq.js +9 -0
- package/build/server/chunks/5-qD2xxOrq.js.map +1 -0
- package/build/server/chunks/6-B4mWzvDn.js +9 -0
- package/build/server/chunks/6-B4mWzvDn.js.map +1 -0
- package/build/server/chunks/7-zExv-fTN.js +9 -0
- package/build/server/chunks/7-zExv-fTN.js.map +1 -0
- package/build/server/chunks/8-BVrGdQg4.js +9 -0
- package/build/server/chunks/{7-C4hmS0dG.js.map → 8-BVrGdQg4.js.map} +1 -1
- package/build/server/chunks/9-BnZLRMYA.js +9 -0
- package/build/server/chunks/9-BnZLRMYA.js.map +1 -0
- package/build/server/chunks/{BehaviorGraph-m5kYj5HH.js → BehaviorGraph-C-9z37Sm.js} +43 -12
- package/build/server/chunks/BehaviorGraph-C-9z37Sm.js.map +1 -0
- package/build/server/chunks/Clock-BfMWQpmJ.js +5 -0
- package/build/server/chunks/Clock-BfMWQpmJ.js.map +1 -0
- package/build/server/chunks/DeleteDomain-BvHEgAyp.js +24 -0
- package/build/server/chunks/DeleteDomain-BvHEgAyp.js.map +1 -0
- package/build/server/chunks/{FeatureValidator-B8qEjAUW.js → DeleteFeature-DnK8sBJI.js} +142 -77
- package/build/server/chunks/DeleteFeature-DnK8sBJI.js.map +1 -0
- package/build/server/chunks/DeleteProject-BXZcehHZ.js +41 -0
- package/build/server/chunks/DeleteProject-BXZcehHZ.js.map +1 -0
- package/build/server/chunks/Effect-BJtLR-6l.js +46 -0
- package/build/server/chunks/Effect-BJtLR-6l.js.map +1 -0
- package/build/server/chunks/{FeatureCard-CfbXNYe8.js → FeatureCard-Bb50FEfp.js} +4 -4
- package/build/server/chunks/{FeatureCard-CfbXNYe8.js.map → FeatureCard-Bb50FEfp.js.map} +1 -1
- package/build/server/chunks/{FeatureJson-Bv-qiOSf.js → FeatureJson-DYvMEAub.js} +2 -2
- package/build/server/chunks/{FeatureJson-Bv-qiOSf.js.map → FeatureJson-DYvMEAub.js.map} +1 -1
- package/build/server/chunks/{FeatureTransforms-UWDHmWEg.js → FeatureTransforms-B0aI_CJD.js} +10 -3
- package/build/server/chunks/FeatureTransforms-B0aI_CJD.js.map +1 -0
- package/build/server/chunks/{ManageTagsDialog-DBxA3tM2.js → ManageTagsDialog-D5xbAVNB.js} +5 -5
- package/build/server/chunks/ManageTagsDialog-D5xbAVNB.js.map +1 -0
- package/build/server/chunks/{ProgressBar-DDoQJ_C9.js → ProgressBar-CUC2EZqG.js} +2 -2
- package/build/server/chunks/{ProgressBar-DDoQJ_C9.js.map → ProgressBar-CUC2EZqG.js.map} +1 -1
- package/build/server/chunks/{ProjectsIndex-DUVJ3hyL.js → ProjectsIndex-FgIu9dBp.js} +135 -14
- package/build/server/chunks/ProjectsIndex-FgIu9dBp.js.map +1 -0
- package/build/server/chunks/{RenameTag-BuWLMl1m.js → RenameTag-DWIIR4Bx.js} +3 -6
- package/build/server/chunks/RenameTag-DWIIR4Bx.js.map +1 -0
- package/build/server/chunks/ScenarioApplier-YPKECfZe.js +55 -0
- package/build/server/chunks/ScenarioApplier-YPKECfZe.js.map +1 -0
- package/build/server/chunks/SimulatorEngine-DM1F9nCO.js +1391 -0
- package/build/server/chunks/SimulatorEngine-DM1F9nCO.js.map +1 -0
- package/build/server/chunks/StateValue-BBjWox8f.js +105 -0
- package/build/server/chunks/StateValue-BBjWox8f.js.map +1 -0
- package/build/server/chunks/{TagDotStrip-B1XQ0m0Y.js → TagDotStrip-0rn-IJVE.js} +4 -4
- package/build/server/chunks/TagDotStrip-0rn-IJVE.js.map +1 -0
- package/build/server/chunks/{TagFilterSelect-DbO0Qduh.js → TagFilterSelect-Dbu-7Dg4.js} +5 -5
- package/build/server/chunks/{TagFilterSelect-DbO0Qduh.js.map → TagFilterSelect-Dbu-7Dg4.js.map} +1 -1
- package/build/server/chunks/{TagPalette-CtMNYCmu.js → TagPalette-CpdTiC_7.js} +101 -9
- package/build/server/chunks/TagPalette-CpdTiC_7.js.map +1 -0
- package/build/server/chunks/{TransitionCatalog-B8zHs-2E.js → TransitionCatalog-CYXUANy6.js} +2 -2
- package/build/server/chunks/TransitionCatalog-CYXUANy6.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CLTmk0xU.js → _layout.svelte-pSSG85WT.js} +689 -14
- package/build/server/chunks/_layout.svelte-pSSG85WT.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Oj-W7G5s.js → _page.svelte-BNH3szkk.js} +22 -17
- package/build/server/chunks/{_page.svelte-Oj-W7G5s.js.map → _page.svelte-BNH3szkk.js.map} +1 -1
- package/build/server/chunks/_page.svelte-BcuGvUt1.js +37 -0
- package/build/server/chunks/{_page.svelte-Cham-dsM.js.map → _page.svelte-BcuGvUt1.js.map} +1 -1
- package/build/server/chunks/_page.svelte-BoOMG5Y0.js +37 -0
- package/build/server/chunks/{_page.svelte-B1nG3PKn.js.map → _page.svelte-BoOMG5Y0.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Caq7J0jU.js → _page.svelte-C4PRh_wP.js} +18 -12
- package/build/server/chunks/_page.svelte-C4PRh_wP.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Z_kK2lHY.js → _page.svelte-Cqn34NXy.js} +19 -13
- package/build/server/chunks/_page.svelte-Cqn34NXy.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B1s7jxaQ.js → _page.svelte-DSCeOGv7.js} +15 -10
- package/build/server/chunks/_page.svelte-DSCeOGv7.js.map +1 -0
- package/build/server/chunks/_page.svelte-DqWdGt48.js +182 -0
- package/build/server/chunks/_page.svelte-DqWdGt48.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Dhwjwph_.js → _page.svelte-DsQHSEl4.js} +20 -12
- package/build/server/chunks/_page.svelte-DsQHSEl4.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DlFVT40-.js → _page.svelte-Uioz8hsG.js} +18 -11
- package/build/server/chunks/{_page.svelte-DlFVT40-.js.map → _page.svelte-Uioz8hsG.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BW_nbAAH.js → _page.svelte-p38jot9e.js} +80 -173
- package/build/server/chunks/_page.svelte-p38jot9e.js.map +1 -0
- package/build/server/chunks/{_page.svelte-NVT2dzpG.js → _page.svelte-yN5kzgJ9.js} +218 -263
- package/build/server/chunks/_page.svelte-yN5kzgJ9.js.map +1 -0
- package/build/server/chunks/{_server.ts-DsbbVoOn.js → _server.ts-1CtrHhte.js} +4 -4
- package/build/server/chunks/{_server.ts-DsbbVoOn.js.map → _server.ts-1CtrHhte.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWvU15tL.js → _server.ts-71Qx1lQb.js} +4 -4
- package/build/server/chunks/{_server.ts-CWvU15tL.js.map → _server.ts-71Qx1lQb.js.map} +1 -1
- package/build/server/chunks/_server.ts-BAyekGHB.js +961 -0
- package/build/server/chunks/_server.ts-BAyekGHB.js.map +1 -0
- package/build/server/chunks/{_server.ts-BihpbxOW.js → _server.ts-BLWhU22T.js} +4 -4
- package/build/server/chunks/{_server.ts-BihpbxOW.js.map → _server.ts-BLWhU22T.js.map} +1 -1
- package/build/server/chunks/{_server.ts-YnfXkeMJ.js → _server.ts-C7EVZVxv.js} +22 -13
- package/build/server/chunks/_server.ts-C7EVZVxv.js.map +1 -0
- package/build/server/chunks/{_server.ts-vcaqdwxS.js → _server.ts-CGjYuLmo.js} +12 -7
- package/build/server/chunks/_server.ts-CGjYuLmo.js.map +1 -0
- package/build/server/chunks/{_server.ts-Dy5zQHe2.js → _server.ts-CX6H8fSE.js} +8 -31
- package/build/server/chunks/_server.ts-CX6H8fSE.js.map +1 -0
- package/build/server/chunks/{_server.ts-BuoQ02BW.js → _server.ts-CyEdTCLr.js} +4 -4
- package/build/server/chunks/{_server.ts-BuoQ02BW.js.map → _server.ts-CyEdTCLr.js.map} +1 -1
- package/build/server/chunks/_server.ts-DKVTM9Pj.js +77 -0
- package/build/server/chunks/_server.ts-DKVTM9Pj.js.map +1 -0
- package/build/server/chunks/{_server.ts-0uNTZKwF.js → _server.ts-Dip65hLJ.js} +15 -9
- package/build/server/chunks/_server.ts-Dip65hLJ.js.map +1 -0
- package/build/server/chunks/{_server.ts-D4EO0VHu.js → _server.ts-Dm0tCs2i.js} +5 -5
- package/build/server/chunks/{_server.ts-D4EO0VHu.js.map → _server.ts-Dm0tCs2i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BIBWjQI-.js → _server.ts-DsYwK_uW.js} +4 -4
- package/build/server/chunks/{_server.ts-BIBWjQI-.js.map → _server.ts-DsYwK_uW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DDa0Nk_S.js → _server.ts-RCEgegYU.js} +4 -4
- package/build/server/chunks/{_server.ts-DDa0Nk_S.js.map → _server.ts-RCEgegYU.js.map} +1 -1
- package/build/server/chunks/_server.ts-XOLAT4dd.js +146 -0
- package/build/server/chunks/_server.ts-XOLAT4dd.js.map +1 -0
- package/build/server/chunks/_server.ts-afh_zLVi.js +69 -0
- package/build/server/chunks/_server.ts-afh_zLVi.js.map +1 -0
- package/build/server/chunks/{browserContainer-CNX7ANld.js → browserContainer-BdldtueJ.js} +71 -1378
- package/build/server/chunks/browserContainer-BdldtueJ.js.map +1 -0
- package/build/server/chunks/buildSearchDocs-Cyfrnw9G.js +337 -0
- package/build/server/chunks/buildSearchDocs-Cyfrnw9G.js.map +1 -0
- package/build/server/chunks/{builderModeStore.svelte-BpRIU_zP.js → builderModeStore.svelte-BEZMQEqn.js} +7 -6
- package/build/server/chunks/builderModeStore.svelte-BEZMQEqn.js.map +1 -0
- package/build/server/chunks/{client-DeX3TC3s.js → client-C9Cat4DK.js} +3 -3
- package/build/server/chunks/{client-DeX3TC3s.js.map → client-C9Cat4DK.js.map} +1 -1
- package/build/server/chunks/{error.svelte-Cdjeq3L2.js → error.svelte-CzVR_A6P.js} +5 -5
- package/build/server/chunks/{error.svelte-Cdjeq3L2.js.map → error.svelte-CzVR_A6P.js.map} +1 -1
- package/build/server/chunks/featureQueueContext-DuXpyTdC.js +32 -0
- package/build/server/chunks/featureQueueContext-DuXpyTdC.js.map +1 -0
- package/build/server/chunks/{featureStore.svelte-DIYgPBVm.js → featureStore.svelte-DHZf88gu.js} +5 -4
- package/build/server/chunks/featureStore.svelte-DHZf88gu.js.map +1 -0
- package/build/server/chunks/{projectsStore.svelte-QDz5PchX.js → featuresStore.svelte-bUyQBg1-.js} +95 -3
- package/build/server/chunks/featuresStore.svelte-bUyQBg1-.js.map +1 -0
- package/build/server/chunks/humanize-CkCPfeWi.js +53 -0
- package/build/server/chunks/humanize-CkCPfeWi.js.map +1 -0
- package/build/server/chunks/{index-server-7H0jzj0M.js → index-server-DvBux_Gf.js} +47 -2
- package/build/server/chunks/{index-server-7H0jzj0M.js.map → index-server-DvBux_Gf.js.map} +1 -1
- package/build/server/chunks/{internal-KYK0WpL7.js → internal-BFt8yDlf.js} +3 -3
- package/build/server/chunks/{internal-KYK0WpL7.js.map → internal-BFt8yDlf.js.map} +1 -1
- package/build/server/chunks/projectBundleClient-BtvWPh87.js +168 -0
- package/build/server/chunks/projectBundleClient-BtvWPh87.js.map +1 -0
- package/build/server/chunks/projectContextStore.svelte-jRJGJZ42.js +141 -0
- package/build/server/chunks/projectContextStore.svelte-jRJGJZ42.js.map +1 -0
- package/build/server/chunks/projectFeaturesStore.svelte-BwNEtDIL.js +87 -0
- package/build/server/chunks/projectFeaturesStore.svelte-BwNEtDIL.js.map +1 -0
- package/build/server/chunks/{projectFeaturesStore.svelte-2o-72_vr.js → projectStore.svelte-BNuLNxk_.js} +5 -88
- package/build/server/chunks/projectStore.svelte-BNuLNxk_.js.map +1 -0
- package/build/server/chunks/{reconcile-B5xqb6-s.js → reconcile-CVG2LSlW.js} +60 -4
- package/build/server/chunks/reconcile-CVG2LSlW.js.map +1 -0
- package/build/server/chunks/{snapshotRepository-BPXCjX92.js → snapshotRepository-8f-2wTrb.js} +30 -5
- package/build/server/chunks/snapshotRepository-8f-2wTrb.js.map +1 -0
- package/build/server/chunks/{state-DBjl9lhV.js → state-CZZtjXLE.js} +3 -3
- package/build/server/chunks/{state-DBjl9lhV.js.map → state-CZZtjXLE.js.map} +1 -1
- package/build/server/chunks/{sync-DZ3dn761.js → sync-Bn6eSUhC.js} +3 -3
- package/build/server/chunks/{sync-DZ3dn761.js.map → sync-Bn6eSUhC.js.map} +1 -1
- package/build/server/chunks/{syncBridge-BwXzPdjJ.js → syncAwareRepositories-DvUjq5Q6.js} +27 -3
- package/build/server/chunks/syncAwareRepositories-DvUjq5Q6.js.map +1 -0
- package/build/server/chunks/{tagPaletteStore.svelte-DfZOBvgY.js → tagPaletteStore.svelte-C71bdzDl.js} +4 -4
- package/build/server/chunks/{tagPaletteStore.svelte-DfZOBvgY.js.map → tagPaletteStore.svelte-C71bdzDl.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +59 -30
- package/build/server/manifest.js.map +1 -1
- package/cli/README.md +70 -2
- package/cli/commands/check.ts +190 -0
- package/cli/commands/ci.ts +71 -0
- package/cli/commands/coverage-ingest.ts +112 -0
- package/cli/commands/scenarios-adapter.ts +96 -0
- package/cli/scenarios/adapter-scaffold.ts +99 -0
- package/cli/scenarios/codegen.ts +7 -1
- package/cli/scenarios/results.ts +85 -0
- package/cli/skills/unspa-audit/SKILL.md +19 -0
- package/cli/skills/unspa-edit/SKILL.md +20 -3
- package/cli/skills/unspa-implement/SKILL.md +28 -0
- package/cli/unspa.ts +98 -0
- package/cli/util/context-files.ts +13 -2
- package/mcp-server/bin.ts +104 -104
- package/mcp-server/migrate-defaults.ts +164 -164
- package/mcp-server/repo-link.ts +142 -134
- package/mcp-server/resources/guide.ts +24 -4
- package/mcp-server/resources/operations.ts +3 -0
- package/mcp-server/seed-snapshots.ts +22 -22
- package/mcp-server/server.ts +8 -4
- package/mcp-server/sync-aware-repos.ts +79 -79
- package/mcp-server/sync-notifier.ts +180 -180
- package/mcp-server/tools/_codegen.ts +115 -115
- package/mcp-server/tools/_entity_builders.ts +30 -0
- package/mcp-server/tools/_shared.ts +210 -210
- package/mcp-server/tools/action.ts +210 -210
- package/mcp-server/tools/batch.ts +29 -5
- package/mcp-server/tools/effect.ts +139 -135
- package/mcp-server/tools/entity.ts +132 -132
- package/mcp-server/tools/entityField.ts +132 -132
- package/mcp-server/tools/event.ts +116 -116
- package/mcp-server/tools/feature.ts +264 -264
- package/mcp-server/tools/invariant.ts +275 -275
- package/mcp-server/tools/persona.ts +141 -141
- package/mcp-server/tools/project.ts +500 -391
- package/mcp-server/tools/reachabilityGoal.ts +97 -0
- package/mcp-server/tools/read.ts +526 -483
- package/mcp-server/tools/reorder.ts +114 -114
- package/mcp-server/tools/resource.ts +194 -194
- package/mcp-server/tools/rule.ts +302 -302
- package/mcp-server/tools/scenario.ts +4 -1
- package/mcp-server/tools/specGaps.ts +221 -221
- package/mcp-server/tools/state.ts +10 -2
- package/mcp-server/tools/surface.ts +102 -102
- package/mcp-server/tools/transition.ts +96 -96
- package/mcp-server/tools/verification.ts +131 -0
- package/package.json +14 -2
- package/src/app.css +26 -14
- package/src/features/behavior-model/application/ports/FeatureRepository.ts +16 -16
- package/src/features/behavior-model/application/use-cases/CreateFeature.ts +24 -24
- package/src/features/behavior-model/application/use-cases/DeleteFeature.ts +8 -8
- package/src/features/behavior-model/application/use-cases/GetFeature.ts +9 -9
- package/src/features/behavior-model/application/use-cases/ListFeatures.ts +10 -10
- package/src/features/behavior-model/application/use-cases/MutateFeature.ts +90 -90
- package/src/features/behavior-model/application/use-cases/SaveFeature.ts +31 -31
- package/src/features/behavior-model/domain/entities/Entity.ts +45 -45
- package/src/features/behavior-model/domain/entities/EventDefinition.ts +35 -35
- package/src/features/behavior-model/domain/entities/Feature.ts +10 -0
- package/src/features/behavior-model/domain/entities/Persona.ts +33 -33
- package/src/features/behavior-model/domain/entities/ReachabilityGoal.ts +39 -0
- package/src/features/behavior-model/domain/entities/Resource.ts +54 -54
- package/src/features/behavior-model/domain/entities/Scenario.ts +15 -0
- package/src/features/behavior-model/domain/entities/StateDefinition.ts +13 -0
- package/src/features/behavior-model/domain/entities/Surface.ts +75 -75
- package/src/features/behavior-model/domain/entities/index.ts +9 -9
- package/src/features/behavior-model/domain/services/BehaviorGraphModel.ts +25 -0
- package/src/features/behavior-model/domain/services/DerivedState.ts +67 -0
- package/src/features/behavior-model/domain/services/EffectApplier.ts +112 -3
- package/src/features/behavior-model/domain/services/EffectiveEntities.ts +166 -166
- package/src/features/behavior-model/domain/services/EntityDeducer.ts +83 -83
- package/src/features/behavior-model/domain/services/EventCatalog.ts +141 -141
- package/src/features/behavior-model/domain/services/FeatureExpressionNormalizer.ts +43 -5
- package/src/features/behavior-model/domain/services/FeatureSharedStateNormalizer.ts +24 -3
- package/src/features/behavior-model/domain/services/FeatureTransforms.ts +33 -0
- package/src/features/behavior-model/domain/services/FeatureValidator.ts +124 -16
- package/src/features/behavior-model/domain/services/PersonaApplier.ts +39 -39
- package/src/features/behavior-model/domain/services/ResourceDeducer.ts +64 -64
- package/src/features/behavior-model/domain/services/ResourceUsage.ts +79 -79
- package/src/features/behavior-model/domain/services/ScenarioApplier.ts +40 -40
- package/src/features/behavior-model/domain/services/SharedStateDefinitions.ts +32 -32
- package/src/features/behavior-model/domain/services/StatePathReferences.ts +249 -217
- package/src/features/behavior-model/domain/services/TransitionCatalog.ts +173 -173
- package/src/features/behavior-model/domain/value-objects/Effect.ts +100 -3
- package/src/features/behavior-model/domain/value-objects/EntityFieldType.ts +57 -57
- package/src/features/behavior-model/domain/value-objects/Expression.ts +22 -2
- package/src/features/behavior-model/domain/value-objects/ParameterType.ts +57 -57
- package/src/features/behavior-model/domain/value-objects/Resource.ts +210 -210
- package/src/features/behavior-model/domain/value-objects/RuleCategory.ts +57 -57
- package/src/features/behavior-model/domain/value-objects/RuleCondition.ts +52 -1
- package/src/features/behavior-model/domain/value-objects/SimulationClock.ts +35 -0
- package/src/features/behavior-model/domain/value-objects/ids.ts +2 -0
- package/src/features/behavior-model/infrastructure/io/FeatureJson.ts +89 -89
- package/src/features/behavior-model/infrastructure/persistence/HttpFeatureRepository.ts +43 -43
- package/src/features/behavior-model/infrastructure/persistence/JsonFolderFeatureRepository.ts +10 -0
- package/src/features/behavior-model/infrastructure/persistence/snapshot-discovery.ts +76 -76
- package/src/features/behavior-model/infrastructure/seed/seedStorefront.ts +967 -967
- package/src/features/behavior-model/presentation/adapters/VisBehaviorGraphRenderer.ts +10 -1
- package/src/features/behavior-model/presentation/components/ActionEditor.svelte +683 -682
- package/src/features/behavior-model/presentation/components/ActionsEditor.svelte +232 -232
- package/src/features/behavior-model/presentation/components/BehaviorGraph.svelte +275 -77
- package/src/features/behavior-model/presentation/components/EffectEditor.svelte +168 -168
- package/src/features/behavior-model/presentation/components/EntityEditor.svelte +241 -248
- package/src/features/behavior-model/presentation/components/EntityFieldRow.svelte +180 -181
- package/src/features/behavior-model/presentation/components/EntityManager.svelte +252 -251
- package/src/features/behavior-model/presentation/components/EventsManager.svelte +373 -372
- package/src/features/behavior-model/presentation/components/FeatureEditor.svelte +396 -348
- package/src/features/behavior-model/presentation/components/FeatureHeader.svelte +152 -143
- package/src/features/behavior-model/presentation/components/FeatureHealthStrip.svelte +110 -110
- package/src/features/behavior-model/presentation/components/HistoryPanel.svelte +154 -154
- package/src/features/behavior-model/presentation/components/NewFeatureForm.svelte +66 -66
- package/src/features/behavior-model/presentation/components/ParameterNameSelect.svelte +84 -84
- package/src/features/behavior-model/presentation/components/ParametersEditor.svelte +411 -411
- package/src/features/behavior-model/presentation/components/PersonaEditor.svelte +244 -244
- package/src/features/behavior-model/presentation/components/PersonasManager.svelte +130 -130
- package/src/features/behavior-model/presentation/components/ReachabilityGoalEditor.svelte +230 -0
- package/src/features/behavior-model/presentation/components/ReachabilityGoalsEditor.svelte +86 -0
- package/src/features/behavior-model/presentation/components/ResourcesManager.svelte +291 -290
- package/src/features/behavior-model/presentation/components/ScenariosEditor.svelte +496 -496
- package/src/features/behavior-model/presentation/components/StateDefinitionsEditor.svelte +356 -356
- package/src/features/behavior-model/presentation/components/SurfaceEntitiesView.svelte +88 -88
- package/src/features/behavior-model/presentation/components/SurfaceInvariantsEditor.svelte +76 -76
- package/src/features/behavior-model/presentation/components/SurfaceList.svelte +300 -300
- package/src/features/behavior-model/presentation/components/SurfaceMetaEditor.svelte +158 -156
- package/src/features/behavior-model/presentation/components/SurfacePanel.svelte +198 -198
- package/src/features/behavior-model/presentation/components/SurfacePersonasView.svelte +122 -122
- package/src/features/behavior-model/presentation/components/SurfaceResourcesView.svelte +113 -113
- package/src/features/behavior-model/presentation/components/SurfaceRulesEditor.svelte +69 -69
- package/src/features/behavior-model/presentation/components/TransitionsManager.svelte +322 -321
- package/src/features/behavior-model/presentation/context/featureQueueContext.ts +78 -0
- package/src/features/behavior-model/presentation/stores/editorStore.svelte.ts +132 -131
- package/src/features/behavior-model/presentation/stores/featureStore.svelte.ts +177 -177
- package/src/features/behavior-model/presentation/stores/featuresStore.svelte.ts +98 -98
- package/src/features/behavior-model/presentation/view-models/BehaviorGraphTheme.ts +1 -0
- package/src/features/behavior-model/presentation/view-models/factories.ts +181 -132
- package/src/features/domains/infrastructure/persistence/JsonFolderDomainRepository.ts +9 -0
- package/src/features/global-search/application/use-cases/LoadSearchIndex.ts +70 -0
- package/src/features/global-search/domain/SearchDoc.ts +111 -0
- package/src/features/global-search/domain/buildSearchDocs.ts +483 -0
- package/src/features/global-search/domain/searchNav.ts +58 -0
- package/src/features/global-search/domain/searchScoring.ts +81 -0
- package/src/features/global-search/infrastructure/adapters/defaultSearchHost.ts +28 -0
- package/src/features/global-search/presentation/components/GlobalSearch.svelte +262 -0
- package/src/features/global-search/presentation/ports/SearchHostPorts.ts +41 -0
- package/src/features/global-search/presentation/searchKindMeta.ts +108 -0
- package/src/features/global-search/presentation/stores/globalSearchStore.svelte.ts +171 -0
- package/src/features/implementation-queue/presentation/components/FloatingQueueWidget.svelte +264 -0
- package/src/features/implementation-queue/presentation/stores/globalQueueStore.svelte.ts +172 -0
- package/src/features/implementation-status/application/ports/ImplementationStatusRepository.ts +8 -8
- package/src/features/implementation-status/application/use-cases/GetImplementationStatus.ts +8 -8
- package/src/features/implementation-status/domain/ApplyCapturedToSpec.ts +323 -322
- package/src/features/implementation-status/domain/FieldDiff.ts +238 -236
- package/src/features/implementation-status/infrastructure/persistence/InMemoryImplementationStatusRepository.ts +21 -21
- package/src/features/implementation-status/presentation/components/ImplementationStatusPanel.svelte +831 -831
- package/src/features/implementation-status/presentation/stores/implementationStatusStore.svelte.ts +97 -97
- package/src/features/library/application/use-cases/ApplyBlueprintsToFeature.ts +33 -33
- package/src/features/library/domain/services/BlueprintApplier.ts +94 -94
- package/src/features/library/infrastructure/blueprints/auth/ResetPasswordBlueprint.ts +332 -332
- package/src/features/library/infrastructure/blueprints/auth/SignInBlueprint.ts +281 -281
- package/src/features/library/infrastructure/blueprints/auth/SignUpBlueprint.ts +299 -299
- package/src/features/library/infrastructure/blueprints/auth/VerifyEmailBlueprint.ts +288 -288
- package/src/features/library/infrastructure/blueprints/auth/shared.ts +146 -146
- package/src/features/library/infrastructure/blueprints/commerce/CartBlueprint.ts +222 -222
- package/src/features/library/infrastructure/blueprints/commerce/CatalogBlueprint.ts +190 -190
- package/src/features/library/infrastructure/blueprints/commerce/CheckoutBlueprint.ts +322 -322
- package/src/features/library/infrastructure/blueprints/commerce/OrderConfirmationBlueprint.ts +172 -172
- package/src/features/library/infrastructure/blueprints/commerce/ProductDetailsBlueprint.ts +290 -290
- package/src/features/library/infrastructure/blueprints/content/ReviewsBlueprint.ts +392 -392
- package/src/features/library/infrastructure/blueprints/onboarding/OnboardingWizardBlueprint.ts +344 -344
- package/src/features/library/infrastructure/blueprints/utility/CanvasBlueprint.ts +419 -419
- package/src/features/library/infrastructure/blueprints/utility/CookieConsentBlueprint.ts +195 -195
- package/src/features/library/infrastructure/blueprints/utility/NotFoundBlueprint.ts +86 -86
- package/src/features/library/infrastructure/blueprints/utility/SearchPaletteBlueprint.ts +192 -192
- package/src/features/library/infrastructure/blueprints/utility/StoreLocatorBlueprint.ts +221 -221
- package/src/features/library/infrastructure/blueprints/utility/TaskBoardBlueprint.ts +196 -196
- package/src/features/maturity/application/use-cases/ScoreFeature.ts +7 -7
- package/src/features/maturity/domain/MaturityReport.ts +70 -70
- package/src/features/maturity/domain/MaturityScorer.ts +1001 -985
- package/src/features/maturity/presentation/components/MaturityPanel.svelte +376 -372
- package/src/features/mcp-tools/application/tools/dryRunSimulate.ts +24 -24
- package/src/features/mcp-tools/application/tools/findStateReferences.ts +19 -19
- package/src/features/mcp-tools/application/tools/generateTypes.ts +0 -1
- package/src/features/mcp-tools/application/tools/getAction.ts +165 -165
- package/src/features/mcp-tools/application/tools/getFeature.ts +5 -5
- package/src/features/mcp-tools/application/tools/getFeatureIndex.ts +79 -79
- package/src/features/mcp-tools/application/tools/getNeighborhood.ts +319 -319
- package/src/features/mcp-tools/application/tools/getSurface.ts +86 -86
- package/src/features/mcp-tools/application/tools/index.ts +56 -56
- package/src/features/mcp-tools/application/tools/listActions.ts +49 -49
- package/src/features/mcp-tools/application/tools/listFeatures.ts +7 -7
- package/src/features/mcp-tools/application/tools/scoreFeature.ts +153 -153
- package/src/features/projects/application/ports/ProjectRepository.ts +14 -14
- package/src/features/projects/application/use-cases/AddFeatureToProject.ts +23 -23
- package/src/features/projects/application/use-cases/CreateProject.ts +16 -16
- package/src/features/projects/application/use-cases/FindProjectContainingFeature.ts +23 -23
- package/src/features/projects/application/use-cases/GetProjectAggregate.ts +131 -131
- package/src/features/projects/application/use-cases/ImportProjectBundle.ts +45 -0
- package/src/features/projects/application/use-cases/MoveFeatureInProject.ts +36 -36
- package/src/features/projects/application/use-cases/RemoveFeatureFromProject.ts +23 -23
- package/src/features/projects/domain/entities/Project.ts +12 -0
- package/src/features/projects/domain/services/InheritedFromProject.ts +130 -130
- package/src/features/projects/infrastructure/persistence/JsonFolderProjectRepository.ts +9 -0
- package/src/features/projects/presentation/components/ProjectCard.svelte +27 -8
- package/src/features/projects/presentation/components/ProjectEditor.svelte +17 -20
- package/src/features/projects/presentation/components/ProjectFeaturesPanel.svelte +433 -433
- package/src/features/projects/presentation/components/ProjectsIndex.svelte +54 -10
- package/src/features/projects/presentation/stores/projectContextStore.svelte.ts +170 -170
- package/src/features/projects/presentation/stores/projectFeaturesStore.svelte.ts +114 -114
- package/src/features/projects/presentation/stores/projectStore.svelte.ts +265 -266
- package/src/features/projects/presentation/stores/projectsStore.svelte.ts +134 -134
- package/src/features/simulator/application/use-cases/RunScenarios.ts +12 -0
- package/src/features/simulator/application/use-cases/SimulateAction.ts +47 -47
- package/src/features/simulator/domain/SimulationResult.ts +79 -79
- package/src/features/simulator/domain/SimulatorEngine.ts +43 -9
- package/src/features/simulator/domain/StateExplorer.ts +369 -0
- package/src/features/simulator/domain/SurfaceReachability.ts +130 -0
- package/src/features/simulator/presentation/components/ParameterInputs.svelte +277 -277
- package/src/features/simulator/presentation/components/PersonaPicker.svelte +52 -52
- package/src/features/simulator/presentation/components/ScenarioPicker.svelte +42 -45
- package/src/features/simulator/presentation/components/SidePanel.svelte +170 -170
- package/src/features/simulator/presentation/components/SimulationResultView.svelte +394 -394
- package/src/features/simulator/presentation/components/SimulatorPanel.svelte +293 -293
- package/src/features/simulator/presentation/components/StateInspector.svelte +101 -101
- package/src/features/simulator/presentation/stores/simulatorStore.svelte.ts +268 -268
- package/src/features/tutorial/presentation/components/CodeBlock.svelte +5 -1
- package/src/features/verification/application/ports/BehavioralIndexReader.ts +12 -0
- package/src/features/verification/application/use-cases/VerifyFeatures.ts +151 -0
- package/src/features/verification/domain/DriftReport.ts +37 -0
- package/src/features/verification/domain/EventCoherenceReport.ts +27 -0
- package/src/features/verification/domain/IndexedImplementation.ts +27 -0
- package/src/features/verification/domain/VerificationReport.ts +59 -0
- package/src/features/verification/domain/VerificationThresholds.ts +52 -0
- package/src/features/verification/domain/VerificationVerdict.ts +43 -0
- package/src/features/verification/domain/aggregateVerdict.ts +244 -0
- package/src/features/verification/domain/analyzeEventCoherence.ts +43 -0
- package/src/features/verification/domain/detectDrift.ts +166 -0
- package/src/features/verification/domain/verifiedCoverage.ts +37 -0
- package/src/features/verification/infrastructure/persistence/FileBehavioralIndexReader.ts +81 -0
- package/src/features/verification/infrastructure/persistence/StaticBehavioralIndexReader.ts +15 -0
- package/src/features/verification/presentation/components/VerifyPanel.svelte +74 -0
- package/src/features/verification/presentation/stores/verificationStore.svelte.ts +64 -0
- package/src/lib/server/openLocalDirectory.ts +40 -0
- package/src/lib/server/searchIndex.ts +161 -0
- package/src/lib/server/snapshotRepository.ts +37 -37
- package/src/lib/server/sync/YDocManager.ts +391 -391
- package/src/lib/server/sync/historyStore.ts +276 -276
- package/src/lib/server/sync/wsServer.ts +1 -1
- package/src/lib/sync/protocol.ts +147 -147
- package/src/lib/sync/roomId.ts +33 -33
- package/src/routes/+layout.svelte +104 -0
- package/src/routes/api/domains/[id]/+server.ts +7 -3
- package/src/routes/api/projects/[id]/+server.ts +14 -4
- package/src/routes/api/projects/import/+server.ts +16 -38
- package/src/routes/api/search-index/+server.ts +16 -0
- package/src/routes/api/snapshots/[id]/+server.ts +56 -44
- package/src/routes/api/snapshots/[id]/implementation-status/+server.ts +13 -13
- package/src/routes/api/snapshots/[id]/verify/+server.ts +37 -0
- package/src/routes/api/sync/reload/+server.ts +157 -157
- package/src/routes/api/system/hub-directory/+server.ts +24 -0
- package/src/routes/features/+page.svelte +484 -484
- package/src/routes/features/[id]/+page.svelte +55 -49
- package/src/routes/features/[id]/graph/+page.svelte +5 -0
- package/src/routes/features/[id]/verify/+page.svelte +89 -0
- package/src/routes/mcp/+page.svelte +16 -1
- package/src/routes/projects/[id]/+page.svelte +70 -70
- package/src/routes/tutorial/+page.svelte +3 -2
- package/src/shared/infrastructure/browserContainer.ts +61 -61
- package/src/shared/presentation/components/KebabMenu.svelte +95 -0
- package/src/shared/presentation/components/MenuItem.svelte +29 -0
- package/vite.config.ts +47 -47
- package/build/client/_app/immutable/assets/0.DSctqr5I.css +0 -1
- package/build/client/_app/immutable/assets/0.DSctqr5I.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DSctqr5I.css.gz +0 -0
- package/build/client/_app/immutable/assets/11.nv0I59TU.css.gz +0 -0
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js +0 -1
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js.br +0 -0
- package/build/client/_app/immutable/chunks/9nXQ5qrY2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B439_FLv.js.br +0 -0
- package/build/client/_app/immutable/chunks/B439_FLv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCEY79Dw.js +0 -1
- package/build/client/_app/immutable/chunks/BCEY79Dw.js.br +0 -2
- package/build/client/_app/immutable/chunks/BCEY79Dw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOrLmFwJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOrLmFwJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BYIrIC5L.js +0 -1
- package/build/client/_app/immutable/chunks/BYIrIC5L.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYIrIC5L.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_9TWPrx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_9TWPrx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfMYiIUi.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfMYiIUi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bp2_Vghh.js +0 -1
- package/build/client/_app/immutable/chunks/Bp2_Vghh.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bp2_Vghh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bp8HpEPe2.js +0 -4
- package/build/client/_app/immutable/chunks/Bp8HpEPe2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bp8HpEPe2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvOhVtZg.js +0 -1
- package/build/client/_app/immutable/chunks/BvOhVtZg.js.br +0 -1
- package/build/client/_app/immutable/chunks/BvOhVtZg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8rRKIXT.js +0 -1
- package/build/client/_app/immutable/chunks/C8rRKIXT.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8rRKIXT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJjJLwzv2.js +0 -1
- package/build/client/_app/immutable/chunks/CJjJLwzv2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJjJLwzv2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CY3em1ma2.js +0 -1
- package/build/client/_app/immutable/chunks/CY3em1ma2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CY3em1ma2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CgdRZPgI.js +0 -1
- package/build/client/_app/immutable/chunks/CgdRZPgI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CgdRZPgI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxyLMlpt2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxyLMlpt2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D6jhrpTg.js +0 -1
- package/build/client/_app/immutable/chunks/D6jhrpTg.js.br +0 -0
- package/build/client/_app/immutable/chunks/D6jhrpTg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8YEa1po.js +0 -1
- package/build/client/_app/immutable/chunks/D8YEa1po.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8YEa1po.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D9dKmajw.js +0 -1
- package/build/client/_app/immutable/chunks/D9dKmajw.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9dKmajw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKgYpi6_.js +0 -1
- package/build/client/_app/immutable/chunks/DKgYpi6_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKgYpi6_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dg0acPpT.js +0 -1
- package/build/client/_app/immutable/chunks/Dg0acPpT.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dg0acPpT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkxwAIfJ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkxwAIfJ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HKLi1Yz3.js +0 -1
- package/build/client/_app/immutable/chunks/HKLi1Yz3.js.br +0 -0
- package/build/client/_app/immutable/chunks/HKLi1Yz3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/N7PXjlRH.js +0 -1
- package/build/client/_app/immutable/chunks/N7PXjlRH.js.br +0 -0
- package/build/client/_app/immutable/chunks/N7PXjlRH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OJscNS3T.js +0 -1
- package/build/client/_app/immutable/chunks/OJscNS3T.js.br +0 -0
- package/build/client/_app/immutable/chunks/OJscNS3T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js +0 -2
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js.br +0 -0
- package/build/client/_app/immutable/chunks/U9p9CtKG2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hpWJNn0t2.js +0 -2
- package/build/client/_app/immutable/chunks/hpWJNn0t2.js.br +0 -0
- package/build/client/_app/immutable/chunks/hpWJNn0t2.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js +0 -2
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cd4S3giu.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js +0 -1
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js.br +0 -0
- package/build/client/_app/immutable/entry/start.C3xXQVkq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js +0 -4
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.dIOlQ-0y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Dyte3Ggf.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.Dyte3Ggf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js +0 -2
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.ivxAosDg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.wvMfJKC2.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.wvMfJKC2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CmPPom9Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CmPPom9Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js +0 -1
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.D-iCGCEx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DbfAvO8Z.js +0 -3
- package/build/client/_app/immutable/nodes/4.DbfAvO8Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DbfAvO8Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js +0 -42
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CC5Q7lVw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js +0 -1
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CHIjlzpO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Ejs18ZUc.js +0 -5
- package/build/client/_app/immutable/nodes/7.Ejs18ZUc.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Ejs18ZUc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.B-HweAc8.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B-HweAc8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.js +0 -5
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CKPeM6tx.js.gz +0 -0
- package/build/server/chunks/0-Co8kcANG.js +0 -15
- package/build/server/chunks/0-Co8kcANG.js.map +0 -1
- package/build/server/chunks/1-BSUItTig.js +0 -9
- package/build/server/chunks/10-BygvxrZp.js +0 -9
- package/build/server/chunks/10-BygvxrZp.js.map +0 -1
- package/build/server/chunks/11-DRx0tRx2.js +0 -9
- package/build/server/chunks/11-DRx0tRx2.js.map +0 -1
- package/build/server/chunks/2-BQT3m1vc.js +0 -9
- package/build/server/chunks/2-BQT3m1vc.js.map +0 -1
- package/build/server/chunks/3-DPZ9BquJ.js +0 -16
- package/build/server/chunks/3-DPZ9BquJ.js.map +0 -1
- package/build/server/chunks/4-DHo47YX6.js +0 -16
- package/build/server/chunks/4-DHo47YX6.js.map +0 -1
- package/build/server/chunks/5-Cp9evBAG.js +0 -9
- package/build/server/chunks/5-Cp9evBAG.js.map +0 -1
- package/build/server/chunks/6-DiBq3bOV.js +0 -9
- package/build/server/chunks/6-DiBq3bOV.js.map +0 -1
- package/build/server/chunks/7-C4hmS0dG.js +0 -9
- package/build/server/chunks/8-CFFuDzBC.js +0 -9
- package/build/server/chunks/8-CFFuDzBC.js.map +0 -1
- package/build/server/chunks/9-nhhKZJrs.js +0 -9
- package/build/server/chunks/9-nhhKZJrs.js.map +0 -1
- package/build/server/chunks/BehaviorGraph-m5kYj5HH.js.map +0 -1
- package/build/server/chunks/FeatureTransforms-UWDHmWEg.js.map +0 -1
- package/build/server/chunks/FeatureValidator-B8qEjAUW.js.map +0 -1
- package/build/server/chunks/ManageTagsDialog-DBxA3tM2.js.map +0 -1
- package/build/server/chunks/ProjectsIndex-DUVJ3hyL.js.map +0 -1
- package/build/server/chunks/RenameTag-BuWLMl1m.js.map +0 -1
- package/build/server/chunks/TagDotStrip-B1XQ0m0Y.js.map +0 -1
- package/build/server/chunks/TagPalette-CtMNYCmu.js.map +0 -1
- package/build/server/chunks/TransitionCatalog-B8zHs-2E.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CLTmk0xU.js.map +0 -1
- package/build/server/chunks/_page.svelte-B1nG3PKn.js +0 -29
- package/build/server/chunks/_page.svelte-B1s7jxaQ.js.map +0 -1
- package/build/server/chunks/_page.svelte-BW_nbAAH.js.map +0 -1
- package/build/server/chunks/_page.svelte-Caq7J0jU.js.map +0 -1
- package/build/server/chunks/_page.svelte-Cham-dsM.js +0 -29
- package/build/server/chunks/_page.svelte-Dhwjwph_.js.map +0 -1
- package/build/server/chunks/_page.svelte-NVT2dzpG.js.map +0 -1
- package/build/server/chunks/_page.svelte-Z_kK2lHY.js.map +0 -1
- package/build/server/chunks/_server.ts-0uNTZKwF.js.map +0 -1
- package/build/server/chunks/_server.ts-DcZPhyhK.js +0 -59
- package/build/server/chunks/_server.ts-DcZPhyhK.js.map +0 -1
- package/build/server/chunks/_server.ts-Dy5zQHe2.js.map +0 -1
- package/build/server/chunks/_server.ts-YnfXkeMJ.js.map +0 -1
- package/build/server/chunks/_server.ts-vcaqdwxS.js.map +0 -1
- package/build/server/chunks/browserContainer-CNX7ANld.js.map +0 -1
- package/build/server/chunks/builderModeStore.svelte-BpRIU_zP.js.map +0 -1
- package/build/server/chunks/featureStore.svelte-DIYgPBVm.js.map +0 -1
- package/build/server/chunks/featuresStore.svelte-DR1gYZyu.js +0 -98
- package/build/server/chunks/featuresStore.svelte-DR1gYZyu.js.map +0 -1
- package/build/server/chunks/identityStore.svelte-IIvW2_3b.js +0 -59
- package/build/server/chunks/identityStore.svelte-IIvW2_3b.js.map +0 -1
- package/build/server/chunks/projectFeaturesStore.svelte-2o-72_vr.js.map +0 -1
- package/build/server/chunks/projectsStore.svelte-QDz5PchX.js.map +0 -1
- package/build/server/chunks/reconcile-B5xqb6-s.js.map +0 -1
- package/build/server/chunks/snapshotRepository-BPXCjX92.js.map +0 -1
- package/build/server/chunks/syncBridge-BwXzPdjJ.js.map +0 -1
- package/src/features/implementation-queue/presentation/components/QueuePanel.svelte +0 -204
- package/src/features/implementation-queue/presentation/stores/queueStore.svelte.ts +0 -143
- /package/build/client/_app/immutable/assets/{11.nv0I59TU.css → 12.nv0I59TU.css} +0 -0
- /package/build/client/_app/immutable/assets/{11.nv0I59TU.css.br → 12.nv0I59TU.css.br} +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,M as t,N as n,W as r,X as i,Z as a,at as o,ct as s,it as c,j as l,k as u,lt as d,mt as f,o as p,r as m}from"../chunks/BPl9BITm.js";import"../chunks/xihTtKlq.js";import{it as h}from"../chunks/D64sGJRN.js";import"../chunks/suTxxv1t.js";import{t as g}from"../chunks/C8b3IMj8.js";import{t as _}from"../chunks/DryaQyjN2.js";import{t as v}from"../chunks/DhTiE3j02.js";import{t as y}from"../chunks/DtK8qK5Q2.js";import{t as b}from"../chunks/UkzDDeO42.js";import{t as x}from"../chunks/ClC4qR7W2.js";var S=n(`<div class="mx-auto max-w-7xl px-4 py-10 text-sm text-neutral-500">Loading...</div>`),C=n(`<div class="mx-auto max-w-7xl px-4 py-10 text-sm text-red-600"> </div>`),w=n(`<div class="mx-auto max-w-7xl px-4 py-10 text-sm text-neutral-500">Feature not found. <a href="/features" class="text-brand-700 underline">Back to list</a>.</div>`),T=n(`<main class="mx-auto max-w-[1600px] px-4 py-6"><!></main>`);function E(n,E){d(E,!1);let D=()=>o(_,`$page`,O),[O,k]=c();b(g),m(()=>{let e=h(D().params.id??``);return v.load(e),g.load(e),()=>{v.reset(),y.reset(),g.reset()}}),p();var A=t(),j=a(A),M=e=>{l(e,S())},N=t=>{var n=C(),a=i(n,!0);f(n),r(()=>e(a,v.error)),l(t,n)},P=e=>{l(e,w())},F=e=>{var t=T();x(i(t),{get feature(){return v.feature}}),f(t),l(e,t)};u(j,e=>{v.loading?e(M):v.error?e(N,1):v.feature?e(F,-1):e(P,2)}),l(n,A),s(),k()}export{E as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,I as r,L as i,N as a,Q as o,W as s,X as c,Z as l,at as u,ct as d,d as f,et as p,it as m,j as h,k as g,l as _,lt as v,mt as y,pt as b,r as x,rt as S,tt as C,u as w,v as T,z as E}from"../chunks/BPl9BITm.js";import"../chunks/xihTtKlq.js";import{B as D,it as O}from"../chunks/D64sGJRN.js";import{t as k}from"../chunks/C8b3IMj8.js";import{t as A}from"../chunks/DryaQyjN2.js";import{t as j}from"../chunks/DhTiE3j02.js";import{t as M}from"../chunks/UkzDDeO42.js";var N=new class{#e=C(!1);get loading(){return E(this.#e)}set loading(e){p(this.#e,e,!0)}#t=C(null);get report(){return E(this.#t)}set report(e){p(this.#t,e,!0)}#n=C(null);get error(){return E(this.#n)}set error(e){p(this.#n,e,!0)}#r=C(!0);get modelCheck(){return E(this.#r)}set modelCheck(e){p(this.#r,e,!0)}currentId=null;async load(e){this.currentId=e,await this.run()}async refresh(){this.currentId&&await this.run()}setModelCheck(e){this.modelCheck=e,this.refresh()}reset(){this.currentId=null,this.report=null,this.error=null,this.loading=!1}async run(){if(!this.currentId)return;let e=this.currentId;this.loading=!0,this.error=null;try{let t=await D(`/api/snapshots/${e}/verify?modelCheck=${this.modelCheck?`1`:`0`}`);if(!t.ok){this.error=`Verification failed (${t.status})`,this.report=null;return}if(this.currentId!==e)return;this.report=await t.json()}catch(e){this.error=e.message}finally{this.currentId===e&&(this.loading=!1)}}},P=a(`<span class="text-slate-300">→</span>`),F=a(`<!> <span class="rounded bg-slate-100 px-1.5 py-0.5 font-mono text-[10px] text-slate-700"> </span>`,1),I=a(`<a class="ml-1 whitespace-nowrap text-brand-700 hover:underline" title="Jump to the violating action">open ↗</a>`),L=a(`<li class="text-[11px] leading-relaxed text-slate-600"><span class="font-medium text-slate-700"> </span> <span class="ml-1 inline-flex flex-wrap items-center gap-1 align-middle"></span> <!></li>`),R=a(`<ul class="mt-1.5 space-y-1.5 pl-[2.6rem]"></ul>`),z=a(`<li class="font-mono text-[11px] leading-relaxed text-slate-600"><span class="text-slate-300">—</span> </li>`),B=a(`<ul class="mt-1.5 space-y-1 pl-[2.6rem]"></ul>`),V=a(`<li class="px-4 py-2.5"><div class="flex items-center gap-2.5"><span aria-hidden="true"></span> <span> </span> <span class="text-xs text-slate-500"> </span></div> <!></li>`),H=a(`<section class="rounded-xl border border-slate-200 bg-white shadow-sm shadow-slate-950/5"><header class="flex items-center justify-between gap-3 border-b border-slate-100 px-4 py-3"><h2 class="text-sm font-semibold text-slate-800"> </h2> <span> </span></header> <ul class="divide-y divide-slate-50"></ul></section>`);function U(r,i){v(i,!0);let a={pass:`bg-emerald-500`,warn:`bg-amber-500`,fail:`bg-red-500`},u={pass:`text-emerald-700`,warn:`text-amber-700`,fail:`text-red-700`};var f=H(),p=c(f),m=c(p),_=c(m,!0);y(m);var b=o(m,2),x=c(b,!0);y(b),y(p);var S=o(p,2);n(S,21,()=>i.verdict.checks,e=>e.id,(r,d)=>{var f=V(),p=c(f),m=c(p),_=o(m,2),v=c(_,!0);y(_);var b=o(_,2),x=c(b,!0);y(b),y(p);var S=o(p,2),C=r=>{var a=R();n(a,23,()=>E(d).traces,(e,t)=>e.label+t,(r,a)=>{var u=L(),d=c(u),f=c(d,!0);y(d);var p=o(d,2);n(p,21,()=>E(a).path,t,(t,n,r)=>{var i=F(),a=l(i),u=e=>{h(e,P())};g(a,e=>{r>0&&e(u)});var d=o(a,2),f=c(d,!0);y(d),s(()=>e(f,E(n))),h(t,i)}),y(p);var m=o(p,2),_=e=>{var t=I();s(()=>w(t,`href`,`/features/${i.verdict.featureId}?surface=${E(a).surfaceId}&panel=actions&focus=${E(a).actionId}`)),h(e,t)};g(m,e=>{E(a).actionId&&E(a).surfaceId&&e(_)}),y(u),s(()=>e(f,E(a).label)),h(r,u)}),y(a),h(r,a)},D=t=>{var r=B();n(r,20,()=>E(d).items,e=>e,(t,n)=>{var r=z(),i=o(c(r));y(r),s(()=>e(i,` ${n??``}`)),h(t,r)}),y(r),h(t,r)};g(S,e=>{E(d).traces&&E(d).traces.length>0?e(C):E(d).items&&E(d).items.length>0&&e(D,1)}),y(f),s(()=>{T(m,1,`h-2 w-2 shrink-0 rounded-full ${a[E(d).status]??``}`),T(_,1,`w-28 shrink-0 text-xs font-medium ${u[E(d).status]??``}`),e(v,E(d).label),e(x,E(d).detail)}),h(r,f)}),y(S),y(f),s(()=>{e(_,i.verdict.featureName),T(b,1,`rounded-full px-2.5 py-0.5 text-xs font-semibold ${i.verdict.passed?`bg-emerald-100 text-emerald-700`:`bg-red-100 text-red-700`}`),e(x,i.verdict.passed?`PASS`:`FAIL`)}),h(r,f),d()}var W=a(`<div class="py-10 text-sm text-slate-500">Running verification…</div>`),G=a(`<div class="py-10 text-sm text-red-600"> </div>`),K=a(`<div class="py-10 text-sm text-slate-500">Nothing to verify. <a href="/features" class="text-brand-700 underline">Back to list</a>.</div>`),q=a(`<details class="rounded-xl border border-slate-200 bg-white shadow-sm shadow-slate-950/5"><summary class="cursor-pointer px-4 py-3 text-xs font-medium text-slate-600"> </summary> <div class="space-y-3 px-4 pb-4"></div></details>`),J=a(`<div class="space-y-4"><!> <!></div>`),Y=a(`<main class="mx-auto max-w-5xl px-4 py-6"><div class="mb-4 flex flex-wrap items-center justify-between gap-3"><div><h1 class="text-lg font-semibold text-slate-800">Verify</h1> <p class="text-xs text-slate-500">Scenarios, maturity, navigation reachability, bounded model checking, drift, and
|
|
2
|
+
cross-feature event wiring — the spec broken loudly.</p></div> <div class="flex items-center gap-3 text-xs"><label class="flex items-center gap-1.5 text-slate-600"><input type="checkbox"/> Model check</label> <button class="rounded-md border border-slate-200 px-2.5 py-1 font-medium text-slate-700 hover:bg-slate-50 disabled:opacity-40"> </button></div></div> <!></main>`);function X(t,r){v(r,!0);let a=()=>u(A,`$page`,l),[l,p]=m();M(k);let C=S(()=>O(a().params.id??``)),w=S(()=>N.report?.features.find(e=>e.featureId===String(E(C)))??null),T=S(()=>(N.report?.features??[]).filter(e=>e.featureId!==String(E(C))));x(()=>{let e=O(a().params.id??``);return j.load(e),k.load(e),N.load(e),()=>{j.reset(),k.reset(),N.reset()}});var D=Y(),P=c(D),F=o(c(P),2),I=c(F),L=c(I);_(L),b(),y(I);var R=o(I,2),z=c(R,!0);y(R),y(F),y(P);var B=o(P,2),V=e=>{h(e,W())},H=t=>{var n=G(),r=c(n,!0);y(n),s(()=>e(r,N.error)),h(t,n)},X=e=>{h(e,K())},Z=t=>{var r=J(),i=c(r);U(i,{get verdict(){return E(w)}});var a=o(i,2),l=t=>{var r=q(),i=c(r),a=c(i);y(i);var l=o(i,2);n(l,21,()=>E(T),e=>e.featureId,(e,t)=>{U(e,{get verdict(){return E(t)}})}),y(l),y(r),s(()=>e(a,`Project context — ${E(T).length??``} sibling feature${E(T).length===1?``:`s`}
|
|
3
|
+
verified alongside (cross-feature checks span all of them)`)),h(t,r)};g(a,e=>{E(T).length>0&&e(l)}),y(r),h(t,r)};g(B,e=>{N.loading&&!N.report?e(V):N.error?e(H,1):E(w)?e(Z,-1):e(X,2)}),y(D),s(()=>{f(L,N.modelCheck),R.disabled=N.loading,e(z,N.loading?`Running…`:`Re-run`)}),i(`change`,L,e=>N.setModelCheck(e.currentTarget.checked)),i(`click`,R,()=>N.refresh()),h(t,D),d(),p()}r([`change`,`click`]);export{X as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,E as r,G as i,N as a,Q as o,W as s,X as c,ct as l,et as u,j as d,k as f,lt as p,m,mt as h,pt as g,r as _,rt as v,tt as y,u as b,z as x}from"../chunks/BPl9BITm.js";import"../chunks/xihTtKlq.js";import{$ as S,J as C,M as w,Q as T,T as E,a as D,g as O,it as k,k as A,l as j,o as M,pt as ee,s as N,t as P,u as F}from"../chunks/D64sGJRN.js";import{t as I}from"../chunks/BjxqhpPG.js";import{n as te,t as L}from"../chunks/CuGlh1c2.js";import{a as R,i as z,o as ne,r as B,s as V,t as re}from"../chunks/DmyaDy4d2.js";var ie=e=>e,ae=e=>({id:e.id,name:e.name,description:e.description,devContext:e.devContext,surfaces:e.surfaces.map(e=>({id:e.id,name:e.name,type:e.type,stateCount:e.stateDefinitions.length,ruleCount:e.rules.length,invariantCount:e.invariants.length,transitionCount:e.transitions.length,actions:e.actions.map(e=>({id:e.id,name:e.name})),stateDefinitions:e.stateDefinitions.map(e=>({id:e.id,path:String(e.path)}))})),personas:e.personas.map(e=>({id:e.id,name:e.name})),resources:e.resources.map(e=>({id:e.id,name:e.name})),entities:e.entities.map(e=>({id:e.id,name:C(e.namespace)})),createdAt:e.createdAt,updatedAt:e.updatedAt}),oe=(e,t)=>{let n=t?e.surfaces.filter(e=>e.id===t):e.surfaces,r=[];for(let e of n)for(let t of e.actions)r.push({actionId:t.id,actionName:t.name,intent:t.intent,surfaceId:e.id,surfaceName:e.name,parameterCount:t.parameters.length,ruleCount:t.rules.length,...t.evolution?{evolution:t.evolution}:{}});return r},H={conventions:[`DDD (domain-driven design)`,`hexagonal architecture (ports & adapters)`,`dependency inversion at every boundary`,`clean code: small functions, intention-revealing names, no premature abstraction`],notes:`Even for prototypes: keep the domain pure, push IO to adapters, and let the use-case layer orchestrate. The product will evolve. Modular shapes pay off later.`},se=e=>e?e.mode===`custom`?e:{mode:`auto`,stack:e.stack,conventions:e.conventions??H.conventions,notes:e.notes??H.notes}:null,U=e=>{let t=new Set;for(let n of e.requiredStates)t.add(n);for(let n of e.parameters)n.bindToStatePath&&t.add(n.bindToStatePath);for(let n of e.rules){for(let e of E(n.condition))typeof e.left==`string`&&t.add(e.left);n.effect.type===`set_state`&&t.add(n.effect.path)}for(let n of e.effects)n.type===`set_state`&&t.add(n.path);for(let n of e.invariants)for(let e of E(n.condition))typeof e.left==`string`&&t.add(e.left);return t},ce=(e,t)=>{for(let n of e.surfaces){let r=n.actions.find(e=>e.id===t);if(!r)continue;let i=U(r),a=n.stateDefinitions.filter(e=>i.has(e.path)),o=n.invariants.filter(e=>E(e.condition).some(e=>typeof e.left==`string`&&i.has(e.left))),s=se(e.devContext);return{featureId:e.id,featureName:e.name,surfaceId:n.id,surfaceName:n.name,action:r,linkedStateDefinitions:a,enclosingInvariants:o,...s?{devContext:s}:{}}}return null},le=(e,t)=>{let n=re(e,t);return{...n,total:B(n)}},ue=M(),de=e=>ue(e),W=5,fe=5,G=D(),K=(e,t)=>{let n=e;return t.surfaceId&&(n=n.filter(e=>e.surfaceId===t.surfaceId)),t.area&&(n=n.filter(e=>e.area===t.area)),t.severity&&(n=n.filter(e=>e.severity===t.severity)),n},q=(e,t,n)=>{let r=K([...t.criticalIssues,...t.recommendedIssues],n),i=n.surfaceId!==void 0||n.area!==void 0||n.severity!==void 0,a=new Map;for(let e of r){let t=`${e.area}::${e.severity}`,n=a.get(t);n?n.count+=1:a.set(t,{area:e.area,severity:e.severity,count:1})}let o=[...a.values()].sort((e,t)=>t.count-e.count).slice(0,W),s=new Map(e.surfaces.map(e=>[String(e.id),e.name])),c=new Map;for(let e of r){let t=e.surfaceId;t&&c.set(t,(c.get(t)??0)+1)}let l=[...c.entries()].map(([e,t])=>({surfaceId:e,surfaceName:s.get(e)??`(unknown surface)`,issueCount:t})).sort((e,t)=>t.issueCount-e.issueCount).slice(0,fe),u=r.filter(e=>e.severity===`critical`).length,d=r.filter(e=>e.severity===`recommended`).length,f={score:t.score,maxScore:t.maxScore,percentage:t.percentage,criticalIssueCount:i?u:t.criticalIssues.length,recommendedIssueCount:i?d:t.recommendedIssues.length,passedCheckCount:t.passedChecks.length,issuesByArea:o,worstSurfaces:l,hint:`Compact summary. Add includeIssues:true to append the issue array, or pass surfaceId / area / severity to scope counts and the issue array.`};return n.includeIssues?{...f,issues:r}:f},pe=(e,t={})=>q(e,G(e),t),me=e=>{let t=typeof e==`string`?e:JSON.stringify(e);return t?Math.ceil(t.length/4):0},J=(e,t,n,r)=>e.map(e=>{if(t===`blocked`)return{path:String(e.path),operator:e.operator,held:null,skipped:!0,...e.description?{description:e.description}:{}};let i=e.path;if(typeof i!=`string`||i.length===0)return{path:String(e.path),operator:e.operator,held:!1,...e.description?{description:e.description}:{}};let a=F({left:e.path,operator:e.operator,right:e.value},n,r);return{path:i,operator:e.operator,held:a,...e.description?{description:e.description}:{}}}),Y=(e,t,n,r,i)=>{let a=n.personaId===void 0?null:r.personas.find(e=>e.id===n.personaId)??null;if(n.personaId!==void 0&&a===null)throw Error(`Scenario ${n.id} references unknown personaId "${String(n.personaId)}"`);let o=a?V(a,{}):{},s=a?ne(a,t,{}):{},c=R(n,o),l=[],u=c;for(let[t,o]of(n.steps??[]).entries()){let s=o.surfaceId===void 0?e:r.surfaces.find(e=>e.id===o.surfaceId),c=s?.actions.find(e=>e.id===o.actionId);if(!s||!c)throw Error(`Scenario ${n.id} step ${t} references unknown ${s?`actionId "${String(o.actionId)}"`:`surfaceId "${String(o.surfaceId)}"`}`);let d=a?ne(a,c,{}):{},f=new Set(c.parameters.map(e=>e.name)),p={};for(let e of o.parameterOverrides)f.has(e.parameterName)&&(p[e.parameterName]=e.value);let m={...d,...p};o.timeAdvance!==void 0&&o.timeAdvance!==0&&(u=O(u,o.timeAdvance));let h=N({surface:s,action:c,snapshot:u,parameters:m,featureInvariants:r.featureInvariants,feature:r,...i?{projectFeatures:i}:{}});u=h.nextState;let g=h.status===`blocked`?`blocked`:`success`,_=o.expectedStatus??`success`,v=g===_,y=j(c.parameters,m),b=J(o.expectedAssertions??[],g,h.nextState,y),x=b.every(e=>e.skipped||e.held),S=v&&x,C=b.filter(e=>!e.skipped&&!e.held).length;l.push({index:t,surfaceId:s.id,actionId:c.id,actionName:c.name,description:o.description??null,actualStatus:g,expectedStatus:_,statusMatches:v,assertions:b,parameterErrors:h.parameterErrors,invariantViolations:h.invariantViolations,pass:S,summary:S?`pass. ${g}`:v?`${C} assertion${C===1?``:`s`} did not hold`:`status was ${g} but expected ${_}`})}let d=z(n,t,{}),f={...s,...d};n.timeAdvance!==void 0&&n.timeAdvance!==0&&(u=O(u,n.timeAdvance));let p=N({surface:e,action:t,snapshot:u,parameters:f,featureInvariants:r.featureInvariants,feature:r,...i?{projectFeatures:i}:{}}),m=j(t.parameters,f),h=p.nextState,g=p.status===`blocked`?`blocked`:`success`,_=J(n.expectedAssertions??[],g,h,m),v=n.expectedStatus??null,y=v===null||v===g,b=_.every(e=>e.skipped||e.held),x=_.length>0&&_.every(e=>e.skipped)&&v!==`blocked`,S=n.expectedTransition===void 0?null:g===`blocked`?{expected:n.expectedTransition,actual:p.transition,matches:!0}:{expected:n.expectedTransition,actual:p.transition,matches:n.expectedTransition===p.transition},C=S===null||S.matches,w=l.every(e=>e.pass),T=l.find(e=>!e.pass),E=w&&y&&b&&C&&!x,D=_.filter(e=>!e.skipped&&!e.held).length,k=p.parameterErrors.length>0?` (parameter validation rejected: ${p.parameterErrors.map(e=>`${e.parameterName}. ${e.reason}`).join(`; `)})`:``,A=p.invariantViolations.length>0?` (invariant violations: ${p.invariantViolations.map(e=>e.invariantName).join(`, `)})`:``,M=_.filter(e=>!e.skipped).length,ee=_.length-M,P=ee>0?`, ${ee} skipped (action was blocked)`:``,F=S&&!S.matches?` (transition went to ${String(S.actual)} but expected ${String(S.expected)})`:``,I=l.length>0?`${l.length} step${l.length===1?``:`s`} ok, `:``,te=E?`pass. ${I}${g}${M>0?`, ${M} assertion${M===1?``:`s`} held`:``}${P}`:`fail. ${!w&&T?`step ${T.index} (${T.actionName}): ${T.summary}`:y?C?x?`action was blocked so all ${_.length} assertion${_.length===1?``:`s`} skipped. Set expectedStatus:"blocked" if the block is intentional; otherwise fix the scenario so the action runs.${k}${A}`:`${D}/${M} assertion${M===1?``:`s`} did not hold${A}`:`transition mismatch${F}`:`status was ${g} but expected ${v}${k}${A}`}`;return{surfaceId:e.id,actionId:t.id,actionName:t.name,scenarioId:n.id,scenarioName:n.name,personaId:a?String(a.id):null,personaName:a?.name??null,pass:E,actualStatus:g,expectedStatus:v,statusMatches:y,assertions:_,steps:l,transitionCheck:S,parameterErrors:p.parameterErrors,invariantViolations:p.invariantViolations,summary:te}},he=()=>e=>{let t=[];for(let n of e.feature.surfaces)if(!(e.surfaceId&&n.id!==e.surfaceId))for(let r of n.actions){if(e.actionId&&r.id!==e.actionId)continue;let i=r.scenarios??[];for(let a of i)t.push(Y(n,r,a,e.feature,e.projectFeatures))}let n=t.filter(e=>e.pass).length;return{featureId:String(e.feature.id),featureName:e.feature.name,total:t.length,passed:n,failed:t.length-n,results:t}},ge=a(`<option> </option>`),_e=a(`<option> </option>`),ve=a(`<span class="text-xs text-slate-500">Loading...</span>`),ye=a(`<div class="rounded-lg border border-dashed border-hairline bg-white p-6 text-sm text-slate-500">No features yet. <a href="/features" class="text-brand-700 underline">Create one</a> first.</div>`),be=a(`<div class="rounded-lg border border-dashed border-hairline bg-white p-6 text-sm text-slate-500">No features in this project. Pick another project or <a class="text-brand-700 underline">add one</a>.</div>`),xe=a(`<p class="text-sm text-red-600"> </p>`),Se=a(`<li class="rounded-lg border border-hairline bg-white p-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><div class="font-mono text-sm font-semibold text-slate-950"> </div> <div class="mt-0.5 truncate font-mono text-[11px] text-slate-400"> </div> <p class="mt-1.5 text-xs leading-5 text-slate-600"> </p></div> <div class="shrink-0 text-right"><div class="font-mono text-lg font-semibold text-slate-950"> </div> <div class="text-[10px] uppercase tracking-wide text-slate-400">tokens</div> <div class="mt-0.5 text-[11px] text-slate-500"> </div></div></div> <details class="mt-3"><summary class="cursor-pointer text-xs text-slate-500 hover:text-slate-800">Show output</summary> <pre class="mt-2 max-h-72 overflow-auto rounded-md bg-slate-950 p-3 text-[11px] leading-relaxed text-slate-100"> </pre></details></li>`),Ce=a(`<span class="rounded bg-slate-100 px-1.5 py-0.5 font-mono text-[10px] text-slate-600"> </span>`),we=a(`<div class="rounded-lg border border-hairline bg-white p-3"><div class="mb-1 text-xs font-semibold text-slate-800"> </div> <p class="mb-2 text-[11px] leading-5 text-slate-500"> </p> <div class="flex flex-wrap gap-1"></div></div>`),Te=a(`<div class="flex flex-col gap-8 lg:flex-row lg:items-start"><div class="min-w-0 flex-1"><h2 class="mb-4 text-base font-semibold text-slate-950">Read tools</h2> <ul class="space-y-3"></ul></div> <div class="w-full shrink-0 space-y-6 lg:w-80"><div class="rounded-lg border border-brand-200 bg-brand-50/60 p-4"><div class="flex items-baseline justify-between gap-2"><div><div class="font-mono text-sm font-semibold text-brand-900">Full feature JSON</div> <p class="mt-0.5 text-xs text-slate-500">Naive blob-in-prompt baseline</p></div> <div class="text-right"><div class="font-mono text-2xl font-semibold text-brand-900"> </div> <div class="text-[10px] uppercase tracking-wide text-slate-500">tokens</div></div></div> <details class="mt-3"><summary class="cursor-pointer text-xs text-slate-600 hover:text-slate-950"> </summary> <pre class="mt-2 max-h-64 overflow-auto rounded-md bg-white p-2 text-[11px] leading-relaxed text-slate-700 ring-1 ring-hairline"> </pre></details></div> <div><h2 class="mb-3 text-base font-semibold text-slate-950">Write & mutation tools</h2> <div class="space-y-4"></div></div></div></div>`),Ee=a(`<div class="mx-auto max-w-7xl px-4 py-8 sm:px-6"><header class="mb-6 border-b border-slate-200 pb-6"><div class="grid gap-6 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end"><div class="max-w-3xl"><p class="text-xs font-semibold uppercase tracking-wide text-brand-700">Agent integration</p> <h1 class="mt-2 text-4xl font-semibold tracking-tight text-slate-950">MCP server</h1> <p class="mt-2 max-w-3xl text-sm leading-6 text-slate-600">The MCP server lets AI coding agents read and edit Unspaghettit Features and Projects without
|
|
2
|
+
pasting the full JSON blob into a prompt. A Feature is one LLM-sized slice of behavior
|
|
3
|
+
(a flow, a screen, a capability); a Project groups many Features under one product or codebase.
|
|
4
|
+
The read tools below run live against the selected Feature (plus the first Project). Compare
|
|
5
|
+
their token cost to the raw JSON baseline on the right.</p></div> <div class="grid grid-cols-1 gap-3 sm:grid-cols-3 lg:w-[34rem]"><div class="rounded-xl border border-slate-200 bg-white p-4 shadow-sm shadow-slate-950/5"><p class="text-xs font-medium uppercase tracking-wide text-brand-700">Read tools</p> <p class="mt-2 text-2xl font-semibold text-slate-950"> </p> <p class="mt-1 text-xs text-slate-500">Live examples</p></div> <div class="rounded-xl border border-slate-200 bg-white p-4 shadow-sm shadow-slate-950/5"><p class="text-xs font-medium uppercase tracking-wide text-violet-700">Groups</p> <p class="mt-2 text-2xl font-semibold text-slate-950"> </p> <p class="mt-1 text-xs text-slate-500">Mutation areas</p></div> <div class="rounded-xl border border-slate-200 bg-white p-4 shadow-sm shadow-slate-950/5"><p class="text-xs font-medium uppercase tracking-wide text-emerald-700">Baseline</p> <p class="mt-2 text-2xl font-semibold text-slate-950"> </p> <p class="mt-1 text-xs text-slate-500">JSON tokens</p></div></div></div></header> <div class="mb-6 flex flex-wrap items-center gap-3 rounded-xl border border-slate-200 bg-white p-3 shadow-sm shadow-slate-950/5"><label for="project-select" class="text-sm font-medium text-slate-700">Project:</label> <select id="project-select" class="h-10 rounded-md border border-slate-300 bg-white px-3 text-sm outline-none focus:border-slate-900 disabled:cursor-not-allowed disabled:opacity-50"></select> <span class="text-slate-300" aria-hidden="true">/</span> <label for="feature-select" class="text-sm font-medium text-slate-700">Feature:</label> <select id="feature-select" class="h-10 rounded-md border border-slate-300 bg-white px-3 text-sm outline-none focus:border-slate-900 disabled:cursor-not-allowed disabled:opacity-50"></select> <span class="text-xs text-slate-500"> </span> <!></div> <!></div>`);function X(a,C){p(C,!0);let E=`__unassigned`,D=y(``),O=y(``),j=y(null),M=y(!1),N=y(null),F=y(e(new Map)),R=y(null),z=y(null);y(`get_feature`);async function ne(){let e=await P(),t=new Map;await Promise.all(I.summaries.map(async n=>{let r=await e.useCases.getProject(T(String(n.id)));for(let e of r?.featureIds??[])t.set(String(e),String(n.id))})),u(F,t,!0)}_(()=>{(async()=>{await Promise.all([L.refresh(),I.refresh()]),await ne()})()}),i(()=>{if(!x(O)||x(O)===E){u(R,null),u(z,null);return}let e=T(x(O));(async()=>{let t=await P(),[n,r]=await Promise.all([t.useCases.getProject(e),t.useCases.getProjectAggregate(e)]);u(R,n,!0),u(z,r,!0)})()});let B=v(()=>{let e=new Set(x(F).values()),t=I.summaries.filter(t=>e.has(String(t.id))).map(e=>({id:String(e.id),name:e.name}));return L.summaries.some(e=>!x(F).has(String(e.id)))&&t.push({id:E,name:`Unassigned`}),t}),V=v(()=>x(O)?L.summaries.filter(e=>{let t=x(F).get(String(e.id));return x(O)===E?t===void 0:t===x(O)}):L.summaries);i(()=>{if(x(O)||x(B).length===0)return;let e=x(D)?x(F).get(x(D)):void 0;u(O,(e?x(B).find(t=>t.id===e):void 0)?.id??x(B)[0]?.id??``,!0)}),i(()=>{if(x(V).length===0){u(D,``);return}x(V).some(e=>e.id===x(D))||u(D,String(x(V)[0].id),!0)}),i(()=>{if(!x(D)){u(j,null);return}u(M,!0),u(N,null),(async()=>{try{u(j,await(await P()).useCases.getFeature(k(x(D))),!0)}catch(e){u(N,e.message,!0),u(j,null)}finally{u(M,!1)}})()});let re=e=>{for(let t of e.surfaces){let e=t.actions[0];if(e)return{surface:t,action:e}}return null},H=e=>{let t={};for(let n of e.stateDefinitions)t=w(t,n.path,n.defaultValue);return t},se=e=>{let t={};for(let n of e.parameters)if(n.defaultValue!==void 0)t[n.name]=n.defaultValue;else switch(n.type){case`string`:t[n.name]=``;break;case`number`:t[n.name]=0;break;case`boolean`:t[n.name]=!1;break;case`enum`:t[n.name]=n.enumValues?.[0]??``;break;default:t[n.name]=null}return t},U=v(()=>{if(!x(j))return null;let e=te(x(j));return{json:e,tokens:me(e)}}),ue=he(),W=v(()=>{if(!x(j))return[];let e=x(j),t=[];t.push({name:`list_features`,callSignature:`list_features()`,output:ie(L.summaries),description:`Compact index of all features. Discovery entry point.`}),t.push({name:`get_feature`,callSignature:`get_feature(featureId: "${x(j).id}")`,output:ae(e),description:`Structured index. Surfaces, actions, state counts, devContext. Pass verbose:true only when you need the full blob.`}),t.push({name:`list_actions`,callSignature:`list_actions(featureId: "${x(j).id}")`,output:oe(e),description:`Flat list of all actions across surfaces with id, name, intent, rule/effect counts.`});let n=re(e);n&&t.push({name:`get_action`,callSignature:`get_action(featureId: "${x(j).id}", actionId: "${n.action.id}")`,output:ce(e,S(n.action.id)),description:`Single action with its rules, parameters, linked state defs, and implementation guidance. The primary focused query.`});let r=x(j).surfaces.find(e=>e.stateDefinitions.length>0)?.stateDefinitions[0];if(r&&t.push({name:`find_state_references`,callSignature:`find_state_references(featureId: "${x(j).id}", statePath: "${r.path}")`,output:le(e,A(String(r.path))),description:`Count refs to a state path across rules, effects, invariants, requiredStates, and parameter bindings. Run before editing or removing state.`}),n){let r=H(n.surface),i=se(n.action);try{t.push({name:`dry_run_simulate`,callSignature:`dry_run_simulate(${n.surface.name} ▸ ${n.action.name}, default snapshot)`,output:de({feature:e,surfaceId:ee(n.surface.id),actionId:S(n.action.id),snapshot:r,parameters:i}),description:`Pure simulation. Runs the deterministic engine on proposed state without writing to disk. Validate changes before committing.`})}catch(e){t.push({name:`dry_run_simulate`,callSignature:`dry_run_simulate(${n.surface.name} ▸ ${n.action.name})`,output:{error:e.message},description:`Simulation failed with default snapshot.`})}}t.push({name:`score_feature`,callSignature:`score_feature(featureId: "${x(j).id}")`,output:pe(e),description:`Compact summary. Score, percentage, issue counts, top failing areas, worst surfaces. Pass includeIssues:true (next card) when you need the actual issues.`});let i=x(j).surfaces.reduce((e,t)=>t.actions.length+t.stateDefinitions.length>(e===null?-1:e.actions.length+e.stateDefinitions.length)?t:e,null);i&&t.push({name:`score_feature (issues)`,callSignature:`score_feature(featureId: "${x(j).id}", surfaceId: "${i.id}", includeIssues: true)`,output:pe(e,{surfaceId:String(i.id),includeIssues:!0}),description:`Same tool, asked to return the actual issue list (includeIssues:true) for ${i.name}. The surfaceId / area / severity filters exist to keep the issue array bounded. Typical payload stays under 10 KB instead of dumping every issue across the whole feature.`});try{t.push({name:`run_all_scenarios`,callSignature:`run_all_scenarios(featureId: "${x(j).id}")`,output:ue({feature:e}),description:`Run every Scenario through the simulator and assert against expectedStatus + expectedAssertions. Per-result parameterErrors[] and invariantViolations[] surface the cause when a scenario unexpectedly blocks.`})}catch(e){t.push({name:`run_all_scenarios`,callSignature:`run_all_scenarios(featureId: "${x(j).id}")`,output:{error:e.message},description:`Run all scenarios.`})}return t.push({name:`list_projects`,callSignature:`list_projects()`,output:{summaries:I.summaries},description:`Compact project summaries (id, name, featureCount, timestamps). Cheapest discovery call for projects. Mirrors list_features.`}),x(R)&&t.push({name:`get_project`,callSignature:`get_project(projectId: "${x(R).id}")`,output:x(R),description:`Full Project document (id, name, description, featureIds[], timestamps). Use list_projects for discovery first.`}),x(z)&&t.push({name:`get_project_aggregate`,callSignature:`get_project_aggregate(projectId: "${x(z).projectId}")`,output:x(z),description:`Cross-feature view of a project: flat list of resources, data namespaces, registered events, and transitions, each tagged with the source feature. Use this to reason about a project as one logical surface.`}),t}),fe=(e,t)=>t===0?`-`:`${(e/t*100).toFixed(1)}% of baseline`,G=[{label:`Feature lifecycle`,description:`Create, update, delete and save features to disk.`,tools:[`create_feature`,`update_feature`,`delete_feature`,`save_feature`]},{label:`Surface & state`,description:`Manage surfaces, state definitions, surface-level rules, invariants, and transitions.`,tools:[`add_surface`,`remove_surface`,`update_surface`,`move_surface`,`add_state_definition`,`remove_state_definition`,`update_state_definition`,`move_state_definition`,`add_surface_rule`,`remove_surface_rule`,`update_surface_rule`,`add_surface_invariant`,`remove_surface_invariant`,`update_surface_invariant`,`add_transition`,`remove_transition`,`update_transition`]},{label:`Actions`,description:`Add, remove, reorder, and edit actions and their rules, effects, parameters, invariants, and scenarios.`,tools:[`add_action`,`remove_action`,`update_action`,`move_action`,`add_action_rule`,`remove_action_rule`,`update_action_rule`,`add_effect`,`remove_effect`,`update_effect`,`add_parameter`,`remove_parameter`,`update_parameter`,`move_parameter`,`add_action_invariant`,`remove_action_invariant`,`update_action_invariant`,`add_scenario`,`remove_scenario`,`update_scenario`]},{label:`Feature-level: invariants & liveness`,description:`Cross-surface invariants (safety — "nothing bad happens") and reachability goals (liveness — "good stays reachable": reachable / always_reachable). Checked over the whole feature by model_check and verify.`,tools:[`add_feature_invariant`,`remove_feature_invariant`,`update_feature_invariant`,`add_reachability_goal`,`remove_reachability_goal`,`update_reachability_goal`]},{label:`Events, personas, resources & entities`,description:`Manage first-class events, personas, external resources, and entity schemas.`,tools:[`add_event`,`remove_event`,`update_event`,`add_persona`,`remove_persona`,`update_persona`,`add_resource`,`remove_resource`,`update_resource`,`add_entity`,`remove_entity`,`update_entity`,`add_entity_field`,`remove_entity_field`,`update_entity_field`]},{label:`Batch`,description:`Apply multi-step mutations atomically.`,tools:[`apply_batch`]},{label:`Projects`,description:`Manage projects. A Project is the umbrella for one product or codebase; it groups many Features, where each Feature is one LLM-sized slice of behavior. Read with list_projects / get_project / get_project_aggregate (cross-feature view of resources, entities, events, transitions).`,tools:[`list_projects`,`get_project`,`get_project_aggregate`,`create_project`,`update_project`,`replace_project`,`delete_project`,`add_feature_to_project`,`remove_feature_from_project`,`move_feature_in_project`,`add_project_invariant`,`update_project_invariant`,`remove_project_invariant`]},{label:`Behavioral index & status`,description:`Read the behavioral index (.unspa.json) and sync implementation status into the dashboard.`,tools:[`get_behavioral_index`,`get_implementation_gaps`,`report_implementation_status`,`report_implementation_status_batch`,`get_implementation_status`]},{label:`Repo context`,description:`Read the .unspa.json file linking the current repo to a feature.`,tools:[`get_repo_context`]}];var K=Ee(),q=c(K),J=c(q),Y=o(c(J),2),X=c(Y),De=o(c(X),2),Oe=c(De,!0);h(De),g(2),h(X);var Z=o(X,2),ke=o(c(Z),2),Ae=c(ke,!0);h(ke),g(2),h(Z);var je=o(Z,2),Me=o(c(je),2),Ne=c(Me,!0);h(Me),g(2),h(je),h(Y),h(J),h(q);var Pe=o(q,2),Q=o(c(Pe),2);r(Q,21,()=>x(B),e=>e.id,(e,n)=>{var r=ge(),i=c(r,!0);h(r);var a={};s(()=>{t(i,x(n).name),a!==(a=x(n).id)&&(r.value=(r.__value=x(n).id)??``)}),d(e,r)}),h(Q);var $=o(Q,6);r($,21,()=>x(V),e=>e.id,(e,n)=>{var r=_e(),i=c(r,!0);h(r);var a={};s(()=>{t(i,x(n).name),a!==(a=x(n).id)&&(r.value=(r.__value=x(n).id)??``)}),d(e,r)}),h($);var Fe=o($,2),Ie=c(Fe);h(Fe);var Le=o(Fe,2),Re=e=>{d(e,ve())};f(Le,e=>{x(M)&&e(Re)}),h(Pe);var ze=o(Pe,2),Be=e=>{d(e,ye())},Ve=e=>{var t=be(),n=o(c(t));g(),h(t),s(()=>b(n,`href`,`/projects/${x(O)??``}`)),d(e,t)},He=e=>{var n=xe(),r=c(n,!0);h(n),s(()=>t(r,x(N))),d(e,n)},Ue=e=>{var i=Te(),a=c(i),l=o(c(a),2);r(l,21,()=>x(W),e=>e.name,(e,n)=>{let r=v(()=>me(x(n).output)),i=v(()=>JSON.stringify(x(n).output,null,2));var a=Se(),l=c(a),u=c(l),f=c(u),p=c(f,!0);h(f);var m=o(f,2),g=c(m,!0);h(m);var _=o(m,2),y=c(_,!0);h(_),h(u);var S=o(u,2),C=c(S),w=c(C,!0);h(C);var T=o(C,4),E=c(T,!0);h(T),h(S),h(l);var D=o(l,2),O=o(c(D),2),k=c(O,!0);h(O),h(D),h(a),s((e,r)=>{t(p,x(n).name),b(m,`title`,x(n).callSignature),t(g,x(n).callSignature),t(y,x(n).description),t(w,e),t(E,r),t(k,x(i))},[()=>x(r).toLocaleString(),()=>fe(x(r),x(U).tokens)]),d(e,a)}),h(l),h(a);var u=o(a,2),f=c(u),p=c(f),m=o(c(p),2),_=c(m),y=c(_,!0);h(_),g(2),h(m),h(p);var S=o(p,2),C=c(S),w=c(C);h(C);var T=o(C,2),E=c(T,!0);h(T),h(S),h(f);var D=o(f,2),O=o(c(D),2);r(O,21,()=>G,n,(e,i)=>{var a=we(),l=c(a),u=c(l,!0);h(l);var f=o(l,2),p=c(f,!0);h(f);var m=o(f,2);r(m,21,()=>x(i).tools,n,(e,n)=>{var r=Ce(),i=c(r,!0);h(r),s(()=>t(i,x(n))),d(e,r)}),h(m),h(a),s(()=>{t(u,x(i).label),t(p,x(i).description)}),d(e,a)}),h(O),h(D),h(u),h(i),s((e,n)=>{t(y,e),t(w,`Show JSON (${n??``} chars)`),t(E,x(U).json)},[()=>x(U).tokens.toLocaleString(),()=>x(U).json.length.toLocaleString()]),d(e,i)};f(ze,e=>{L.summaries.length===0&&!L.loading?e(Be):x(V).length===0?e(Ve,1):x(N)?e(He,2):x(j)&&x(U)&&e(Ue,3)}),h(K),s(e=>{t(Oe,x(W).length),t(Ae,G.length),t(Ne,e),Q.disabled=x(B).length===0,$.disabled=x(V).length===0,t(Ie,`${x(V).length??``} feature${x(V).length===1?``:`s`} in this project`)},[()=>x(U)?x(U).tokens.toLocaleString():`-`]),m(Q,()=>x(O),e=>u(O,e)),m($,()=>x(D),e=>u(D,e)),d(a,K),l()}export{X as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as e,U as t,x as n}from"../chunks/BPl9BITm.js";import"../chunks/xihTtKlq.js";import"../chunks/suTxxv1t.js";import{t as r}from"../chunks/
|
|
1
|
+
import{J as e,U as t,x as n}from"../chunks/BPl9BITm.js";import"../chunks/xihTtKlq.js";import"../chunks/suTxxv1t.js";import{t as r}from"../chunks/x60Tn5kT.js";function i(i){n(`rqn88j`,n=>{t(()=>{e.title=`Projects / Unspaghettit`})}),r(i,{})}export{i as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�rNesU8FG�K�����FkX�k� �sk�`���Fw��32r���"p[�-u�=;�p,z�g�8��i7�*ua��KȾE��a+�b���I���ϡ*5�
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1782174397145"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const index = 0;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_layout.svelte-pSSG85WT.js')).default;
|
|
4
|
+
const universal = {
|
|
5
|
+
"ssr": false,
|
|
6
|
+
"prerender": false,
|
|
7
|
+
"trailingSlash": "never"
|
|
8
|
+
};
|
|
9
|
+
const universal_id = "src/routes/+layout.ts";
|
|
10
|
+
const imports = ["_app/immutable/nodes/0.tKfYV3__.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/_b612aVb.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/BJdTO_n6.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/yShDxCNj.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/wrqalH0a.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/ib21i2T_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/CXvvf4uQ.js","_app/immutable/chunks/C8b3IMj8.js","_app/immutable/chunks/Bfc9rQXP.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/cMamJTsF.js"];
|
|
11
|
+
const stylesheets = ["_app/immutable/assets/0.DCOD5ne_.css"];
|
|
12
|
+
const fonts = [];
|
|
13
|
+
|
|
14
|
+
export { component, fonts, imports, index, stylesheets, universal, universal_id };
|
|
15
|
+
//# sourceMappingURL=0-8YZc572z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"0-8YZc572z.js","sources":["../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const universal = {\n \"ssr\": false,\n \"prerender\": false,\n \"trailingSlash\": \"never\"\n};\nexport const universal_id = \"src/routes/+layout.ts\";\nexport const imports = [\"_app/immutable/nodes/0.tKfYV3__.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/_b612aVb.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/BJdTO_n6.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/yShDxCNj.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/wrqalH0a.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/ib21i2T_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/CXvvf4uQ.js\",\"_app/immutable/chunks/C8b3IMj8.js\",\"_app/immutable/chunks/Bfc9rQXP.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/cMamJTsF.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.DCOD5ne_.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAClG,MAAC,SAAS,GAAG;AACzB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,WAAW,EAAE,KAAK;AACpB,EAAE,eAAe,EAAE;AACnB;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5tB,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./error.svelte-CzVR_A6P.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.CER5ICKt.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/wrqalH0a.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=1-DxkfSJLu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1-
|
|
1
|
+
{"version":3,"file":"1-DxkfSJLu.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.CER5ICKt.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/wrqalH0a.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 10;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-p38jot9e.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/10.rT7cD8kX.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/DryaQyjN2.js","_app/immutable/chunks/ib21i2T_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/Vu8LzrwP2.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/BANF9BhQ2.js","_app/immutable/chunks/oVMDLirx.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/aNMRV4sP2.js","_app/immutable/chunks/olAc024e.js","_app/immutable/chunks/B3vnQs252.js","_app/immutable/chunks/Bfc9rQXP.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/wXIHzLMQ2.js","_app/immutable/chunks/Dhqg7r_2.js","_app/immutable/chunks/BzLd0mTH.js","_app/immutable/chunks/cMamJTsF.js","_app/immutable/chunks/yShDxCNj.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=10-DkObdGtU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10-DkObdGtU.js","sources":["../../../.svelte-kit/adapter-node/nodes/10.js"],"sourcesContent":["\n\nexport const index = 10;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/projects/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/10.rT7cD8kX.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/DryaQyjN2.js\",\"_app/immutable/chunks/ib21i2T_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/Vu8LzrwP2.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/BANF9BhQ2.js\",\"_app/immutable/chunks/oVMDLirx.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/aNMRV4sP2.js\",\"_app/immutable/chunks/olAc024e.js\",\"_app/immutable/chunks/B3vnQs252.js\",\"_app/immutable/chunks/Bfc9rQXP.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/wXIHzLMQ2.js\",\"_app/immutable/chunks/Dhqg7r_2.js\",\"_app/immutable/chunks/BzLd0mTH.js\",\"_app/immutable/chunks/cMamJTsF.js\",\"_app/immutable/chunks/yShDxCNj.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAgD,CAAC,EAAE;AAC9G,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC37B,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 11;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Cqn34NXy.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/11.BAnV_Y5Y.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/DryaQyjN2.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/ClC4qR7W2.js","_app/immutable/chunks/kNaey6uv.js","_app/immutable/chunks/B3vnQs252.js","_app/immutable/chunks/Bfc9rQXP.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/yShDxCNj.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=11-DL94HxpZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"11-DL94HxpZ.js","sources":["../../../.svelte-kit/adapter-node/nodes/11.js"],"sourcesContent":["\n\nexport const index = 11;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/projects/_id_/graph/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/11.BAnV_Y5Y.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/DryaQyjN2.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/ClC4qR7W2.js\",\"_app/immutable/chunks/kNaey6uv.js\",\"_app/immutable/chunks/B3vnQs252.js\",\"_app/immutable/chunks/Bfc9rQXP.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/yShDxCNj.js\"];\nexport const stylesheets = [\"_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsD,CAAC,EAAE;AACpH,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpe,MAAC,WAAW,GAAG,CAAC,kDAAkD;AAClE,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 12;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Uioz8hsG.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/12.DCTRFMqo.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/BQ9GodWX2.js","_app/immutable/chunks/DhTiE3j02.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/BzLd0mTH.js","_app/immutable/chunks/cMamJTsF.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/12.nv0I59TU.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=12-CI74sCkt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"12-CI74sCkt.js","sources":["../../../.svelte-kit/adapter-node/nodes/12.js"],"sourcesContent":["\n\nexport const index = 12;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tutorial/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/12.DCTRFMqo.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/BQ9GodWX2.js\",\"_app/immutable/chunks/DhTiE3j02.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/BzLd0mTH.js\",\"_app/immutable/chunks/cMamJTsF.js\"];\nexport const stylesheets = [\"_app/immutable/assets/12.nv0I59TU.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AACzG,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACvgB,MAAC,WAAW,GAAG,CAAC,uCAAuC;AACvD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 2;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-BoOMG5Y0.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/2.CF488WWF.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/x60Tn5kT.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/olAc024e.js","_app/immutable/chunks/DNaA4QRO2.js","_app/immutable/chunks/oVMDLirx.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/wXIHzLMQ2.js","_app/immutable/chunks/Dhqg7r_2.js","_app/immutable/chunks/BzLd0mTH.js","_app/immutable/chunks/cMamJTsF.js","_app/immutable/chunks/yShDxCNj.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=2-qhWwQ4eL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2-qhWwQ4eL.js","sources":["../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/2.CF488WWF.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/x60Tn5kT.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/olAc024e.js\",\"_app/immutable/chunks/DNaA4QRO2.js\",\"_app/immutable/chunks/oVMDLirx.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/wXIHzLMQ2.js\",\"_app/immutable/chunks/Dhqg7r_2.js\",\"_app/immutable/chunks/BzLd0mTH.js\",\"_app/immutable/chunks/cMamJTsF.js\",\"_app/immutable/chunks/yShDxCNj.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAChG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC9tB,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const index = 3;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-C4PRh_wP.js')).default;
|
|
4
|
+
const universal = {
|
|
5
|
+
"ssr": false,
|
|
6
|
+
"prerender": false,
|
|
7
|
+
"trailingSlash": "never",
|
|
8
|
+
"load": null
|
|
9
|
+
};
|
|
10
|
+
const universal_id = "src/routes/builder-mode/+page.ts";
|
|
11
|
+
const imports = ["_app/immutable/nodes/3.CP7CPPVH.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/_b612aVb.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/BJdTO_n6.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/yShDxCNj.js","_app/immutable/chunks/DtblIi6X2.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/wrqalH0a.js","_app/immutable/chunks/ib21i2T_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js"];
|
|
12
|
+
const stylesheets = ["_app/immutable/assets/3.B3akUL9A.css"];
|
|
13
|
+
const fonts = [];
|
|
14
|
+
|
|
15
|
+
export { component, fonts, imports, index, stylesheets, universal, universal_id };
|
|
16
|
+
//# sourceMappingURL=3-CzoZtSTp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3-CzoZtSTp.js","sources":["../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/builder-mode/_page.svelte.js')).default;\nexport const universal = {\n \"ssr\": false,\n \"prerender\": false,\n \"trailingSlash\": \"never\",\n \"load\": null\n};\nexport const universal_id = \"src/routes/builder-mode/+page.ts\";\nexport const imports = [\"_app/immutable/nodes/3.CP7CPPVH.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/_b612aVb.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/BJdTO_n6.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/yShDxCNj.js\",\"_app/immutable/chunks/DtblIi6X2.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/wrqalH0a.js\",\"_app/immutable/chunks/ib21i2T_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\"];\nexport const stylesheets = [\"_app/immutable/assets/3.B3akUL9A.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAC7G,MAAC,SAAS,GAAG;AACzB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,WAAW,EAAE,KAAK;AACpB,EAAE,eAAe,EAAE,OAAO;AAC1B,EAAE,MAAM,EAAE;AACV;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACrgB,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const index = 4;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-BNH3szkk.js')).default;
|
|
4
|
+
const universal = {
|
|
5
|
+
"ssr": false,
|
|
6
|
+
"prerender": false,
|
|
7
|
+
"trailingSlash": "never",
|
|
8
|
+
"load": null
|
|
9
|
+
};
|
|
10
|
+
const universal_id = "src/routes/features/+page.ts";
|
|
11
|
+
const imports = ["_app/immutable/nodes/4.D1bxCSiM.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/DtblIi6X2.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/BANF9BhQ2.js","_app/immutable/chunks/oVMDLirx.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/aNMRV4sP2.js","_app/immutable/chunks/BQ9GodWX2.js","_app/immutable/chunks/DNaA4QRO2.js","_app/immutable/chunks/wXIHzLMQ2.js"];
|
|
12
|
+
const stylesheets = [];
|
|
13
|
+
const fonts = [];
|
|
14
|
+
|
|
15
|
+
export { component, fonts, imports, index, stylesheets, universal, universal_id };
|
|
16
|
+
//# sourceMappingURL=4-CDa9DBsh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"4-CDa9DBsh.js","sources":["../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/features/_page.svelte.js')).default;\nexport const universal = {\n \"ssr\": false,\n \"prerender\": false,\n \"trailingSlash\": \"never\",\n \"load\": null\n};\nexport const universal_id = \"src/routes/features/+page.ts\";\nexport const imports = [\"_app/immutable/nodes/4.D1bxCSiM.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/DtblIi6X2.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/BANF9BhQ2.js\",\"_app/immutable/chunks/oVMDLirx.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/aNMRV4sP2.js\",\"_app/immutable/chunks/BQ9GodWX2.js\",\"_app/immutable/chunks/DNaA4QRO2.js\",\"_app/immutable/chunks/wXIHzLMQ2.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AACzG,MAAC,SAAS,GAAG;AACzB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,WAAW,EAAE,KAAK;AACpB,EAAE,eAAe,EAAE,OAAO;AAC1B,EAAE,MAAM,EAAE;AACV;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,oCAAoC;AACtnB,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 5;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-yN5kzgJ9.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/5.D6jZgh9y.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/wrqalH0a.js","_app/immutable/chunks/DryaQyjN2.js","_app/immutable/chunks/ib21i2T_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/CXvvf4uQ.js","_app/immutable/chunks/Vu8LzrwP2.js","_app/immutable/chunks/BJdTO_n6.js","_app/immutable/chunks/DmyaDy4d2.js","_app/immutable/chunks/UkzDDeO42.js","_app/immutable/chunks/DhTiE3j02.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/DtK8qK5Q2.js","_app/immutable/chunks/C8b3IMj8.js","_app/immutable/chunks/oVMDLirx.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/Dhqg7r_2.js","_app/immutable/chunks/BzLd0mTH.js","_app/immutable/chunks/cMamJTsF.js","_app/immutable/chunks/aNMRV4sP2.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=5-qD2xxOrq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"5-qD2xxOrq.js","sources":["../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/features/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/5.D6jZgh9y.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/wrqalH0a.js\",\"_app/immutable/chunks/DryaQyjN2.js\",\"_app/immutable/chunks/ib21i2T_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/CXvvf4uQ.js\",\"_app/immutable/chunks/Vu8LzrwP2.js\",\"_app/immutable/chunks/BJdTO_n6.js\",\"_app/immutable/chunks/DmyaDy4d2.js\",\"_app/immutable/chunks/UkzDDeO42.js\",\"_app/immutable/chunks/DhTiE3j02.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/DtK8qK5Q2.js\",\"_app/immutable/chunks/C8b3IMj8.js\",\"_app/immutable/chunks/oVMDLirx.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/Dhqg7r_2.js\",\"_app/immutable/chunks/BzLd0mTH.js\",\"_app/immutable/chunks/cMamJTsF.js\",\"_app/immutable/chunks/aNMRV4sP2.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAgD,CAAC,EAAE;AAC9G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC;AAC37B,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 6;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-DsQHSEl4.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/6.BrBFUA0s.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/DryaQyjN2.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/ClC4qR7W2.js","_app/immutable/chunks/kNaey6uv.js","_app/immutable/chunks/UkzDDeO42.js","_app/immutable/chunks/DhTiE3j02.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/DtK8qK5Q2.js","_app/immutable/chunks/C8b3IMj8.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=6-B4mWzvDn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"6-B4mWzvDn.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/features/_id_/graph/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.BrBFUA0s.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/DryaQyjN2.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/ClC4qR7W2.js\",\"_app/immutable/chunks/kNaey6uv.js\",\"_app/immutable/chunks/UkzDDeO42.js\",\"_app/immutable/chunks/DhTiE3j02.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/DtK8qK5Q2.js\",\"_app/immutable/chunks/C8b3IMj8.js\"];\nexport const stylesheets = [\"_app/immutable/assets/BehaviorGraph.Bk0xQRZk.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsD,CAAC,EAAE;AACpH,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC;AAC7iB,MAAC,WAAW,GAAG,CAAC,kDAAkD;AAClE,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 7;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-DqWdGt48.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/7.pajo8MfM.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/DryaQyjN2.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/UkzDDeO42.js","_app/immutable/chunks/DhTiE3j02.js","_app/immutable/chunks/Bcyn5YUg.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/C8b3IMj8.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=7-zExv-fTN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"7-zExv-fTN.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/features/_id_/verify/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.pajo8MfM.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/DryaQyjN2.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/UkzDDeO42.js\",\"_app/immutable/chunks/DhTiE3j02.js\",\"_app/immutable/chunks/Bcyn5YUg.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/C8b3IMj8.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuD,CAAC,EAAE;AACrH,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC3Z,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 8;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-DSCeOGv7.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/8.Cc80_Igi.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/DmyaDy4d2.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=8-BVrGdQg4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"8-BVrGdQg4.js","sources":["../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/mcp/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/8.Cc80_Igi.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/DmyaDy4d2.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC7S,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 9;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-BcuGvUt1.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/9.D72NaL3l.js","_app/immutable/chunks/BPl9BITm.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/suTxxv1t.js","_app/immutable/chunks/x60Tn5kT.js","_app/immutable/chunks/ByaoVvNB.js","_app/immutable/chunks/Da59TXPe.js","_app/immutable/chunks/D64sGJRN.js","_app/immutable/chunks/CuGlh1c2.js","_app/immutable/chunks/BjxqhpPG.js","_app/immutable/chunks/Cl7Z3e6-.js","_app/immutable/chunks/olAc024e.js","_app/immutable/chunks/DNaA4QRO2.js","_app/immutable/chunks/oVMDLirx.js","_app/immutable/chunks/CwzIdrQR.js","_app/immutable/chunks/wXIHzLMQ2.js","_app/immutable/chunks/Dhqg7r_2.js","_app/immutable/chunks/BzLd0mTH.js","_app/immutable/chunks/cMamJTsF.js","_app/immutable/chunks/yShDxCNj.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=9-BnZLRMYA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"9-BnZLRMYA.js","sources":["../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/projects/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/9.D72NaL3l.js\",\"_app/immutable/chunks/BPl9BITm.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/suTxxv1t.js\",\"_app/immutable/chunks/x60Tn5kT.js\",\"_app/immutable/chunks/ByaoVvNB.js\",\"_app/immutable/chunks/Da59TXPe.js\",\"_app/immutable/chunks/D64sGJRN.js\",\"_app/immutable/chunks/CuGlh1c2.js\",\"_app/immutable/chunks/BjxqhpPG.js\",\"_app/immutable/chunks/Cl7Z3e6-.js\",\"_app/immutable/chunks/olAc024e.js\",\"_app/immutable/chunks/DNaA4QRO2.js\",\"_app/immutable/chunks/oVMDLirx.js\",\"_app/immutable/chunks/CwzIdrQR.js\",\"_app/immutable/chunks/wXIHzLMQ2.js\",\"_app/immutable/chunks/Dhqg7r_2.js\",\"_app/immutable/chunks/BzLd0mTH.js\",\"_app/immutable/chunks/cMamJTsF.js\",\"_app/immutable/chunks/yShDxCNj.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AACzG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC9tB,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { W as onDestroy,
|
|
2
|
-
import {
|
|
1
|
+
import { W as onDestroy, g as attr, t as escape_html, h as attr_class, i as attr_style, r as ensure_array_like, q as derived } from './index-server-DvBux_Gf.js';
|
|
2
|
+
import { y as flattenLeafConditions, G as isParamLeft } from './TagPalette-CpdTiC_7.js';
|
|
3
3
|
|
|
4
4
|
//#region src/features/behavior-model/domain/services/BehaviorGraphModel.ts
|
|
5
5
|
var ALL_BEHAVIOR_GRAPH_EDGE_KINDS = [
|
|
@@ -36,6 +36,10 @@ var effectLabel = (effect) => {
|
|
|
36
36
|
case "block_action": return "block";
|
|
37
37
|
case "allow_action": return "allow";
|
|
38
38
|
case "transition_surface": return "transition";
|
|
39
|
+
case "append_to_list": return `append ${effect.path}`;
|
|
40
|
+
case "remove_from_list": return `remove ${effect.path}`;
|
|
41
|
+
case "update_list_item": return `update ${effect.path}`;
|
|
42
|
+
case "advance_time": return "advance time";
|
|
39
43
|
}
|
|
40
44
|
};
|
|
41
45
|
var leafStatePaths = (condition) => {
|
|
@@ -236,6 +240,29 @@ var buildBehaviorGraph = (sourceFeatures, sourceProject) => {
|
|
|
236
240
|
});
|
|
237
241
|
}
|
|
238
242
|
}
|
|
243
|
+
for (const goal of feature.reachabilityGoals ?? []) {
|
|
244
|
+
const id = `feature:${feature.id}:goal:${goal.id}`;
|
|
245
|
+
addNode({
|
|
246
|
+
id,
|
|
247
|
+
type: "goal",
|
|
248
|
+
label: goal.name,
|
|
249
|
+
detail: goal.description ?? goal.message ?? goal.kind,
|
|
250
|
+
layer: 6
|
|
251
|
+
});
|
|
252
|
+
addEdge({
|
|
253
|
+
from: featureId,
|
|
254
|
+
to: id,
|
|
255
|
+
kind: "contains"
|
|
256
|
+
});
|
|
257
|
+
for (const path of leafStatePaths(goal.condition)) {
|
|
258
|
+
ensureState(feature, path);
|
|
259
|
+
addEdge({
|
|
260
|
+
from: id,
|
|
261
|
+
to: stateIdFor(feature, path),
|
|
262
|
+
kind: "reads"
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
239
266
|
for (const surface of feature.surfaces) {
|
|
240
267
|
const surfaceId = surfaceIdFor(feature, surface.id);
|
|
241
268
|
addNode({
|
|
@@ -603,6 +630,11 @@ var behaviorGraphNodeTheme = {
|
|
|
603
630
|
fill: "#ca8a04",
|
|
604
631
|
stroke: "#a16207"
|
|
605
632
|
},
|
|
633
|
+
goal: {
|
|
634
|
+
label: "Liveness goal",
|
|
635
|
+
fill: "#65a30d",
|
|
636
|
+
stroke: "#4d7c0f"
|
|
637
|
+
},
|
|
606
638
|
scenario: {
|
|
607
639
|
label: "Scenario",
|
|
608
640
|
fill: "#475569",
|
|
@@ -672,7 +704,7 @@ function BehaviorGraph($$renderer, $$props) {
|
|
|
672
704
|
let stabilizationProgress = 0;
|
|
673
705
|
let renderer = null;
|
|
674
706
|
let enabledKinds = {
|
|
675
|
-
contains:
|
|
707
|
+
contains: false,
|
|
676
708
|
reads: true,
|
|
677
709
|
writes: true,
|
|
678
710
|
emits: true,
|
|
@@ -681,6 +713,9 @@ function BehaviorGraph($$renderer, $$props) {
|
|
|
681
713
|
uses: true,
|
|
682
714
|
handles: true
|
|
683
715
|
};
|
|
716
|
+
let filtersOpen = false;
|
|
717
|
+
const totalKindCount = ALL_BEHAVIOR_GRAPH_EDGE_KINDS.length;
|
|
718
|
+
const activeKindCount = derived(() => ALL_BEHAVIOR_GRAPH_EDGE_KINDS.filter((kind) => enabledKinds[kind]).length);
|
|
684
719
|
const sourceFeatures = derived(() => features ?? (feature ? [feature] : []));
|
|
685
720
|
const graphTitle = derived(() => project?.name ?? feature?.name ?? "Behavior graph");
|
|
686
721
|
const graphSubtitle = derived(() => project ? `The whole project behavior map across ${sourceFeatures().length} feature${sourceFeatures().length === 1 ? "" : "s"} from the shared Unspa hub.` : "A connected map of the executable behavior model from the shared Unspa hub.");
|
|
@@ -702,15 +737,11 @@ function BehaviorGraph($$renderer, $$props) {
|
|
|
702
737
|
renderer?.destroy();
|
|
703
738
|
renderer = null;
|
|
704
739
|
});
|
|
705
|
-
$$renderer.push(`<section class="space-y-4"><div class="overflow-hidden rounded-lg border border-slate-200 bg-white shadow-sm shadow-slate-950/5"><div class="border-b border-slate-200 bg-slate-950 px-4 py-4 text-white"><
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
let kind = each_array[$$index];
|
|
709
|
-
$$renderer.push(`<button type="button"${attr_class(`rounded-full border px-2.5 py-1 text-xs font-medium ${enabledKinds[kind] ? "border-slate-300 bg-white text-slate-800" : "border-slate-200 bg-slate-100 text-slate-400"}`)}>${escape_html(behaviorGraphEdgeTheme[kind].label)}</button>`);
|
|
710
|
-
}
|
|
711
|
-
$$renderer.push(`<!--]--></div></div> <div class="graph-canvas relative svelte-1wx4hks"><div class="h-[76vh] min-h-[720px] w-full"${attr("aria-label", `Interactive behavior graph for ${graphTitle()}`)}></div> <div class="pointer-events-none absolute bottom-3 left-3 rounded-md border border-slate-200 bg-white/88 px-3 py-2 text-xs text-slate-600 shadow-sm backdrop-blur">ForceAtlas2 settles the graph, then physics stops for smooth panning. Wheel, pinch, or +/- to zoom.</div> `);
|
|
740
|
+
$$renderer.push(`<section class="space-y-4"><div class="overflow-hidden rounded-lg border border-slate-200 bg-white shadow-sm shadow-slate-950/5"><div class="border-b border-slate-200 bg-slate-950 px-4 py-4 text-white"><a${attr("href", backHref())} class="inline-flex items-center gap-1.5 text-sm font-medium text-slate-400 transition hover:text-white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M15 18l-6-6 6-6"></path></svg> ${escape_html(backLabel())}</a> <div class="mt-3 min-w-0"><p class="text-xs font-semibold uppercase tracking-wide text-cyan-200">Behavior Graph</p> <h2 class="mt-1 truncate text-2xl font-semibold">${escape_html(graphTitle())}</h2> <p class="mt-1 max-w-3xl text-sm leading-6 text-slate-300">${escape_html(graphSubtitle())}</p></div></div> <div class="grid gap-0 lg:grid-cols-[minmax(0,1fr)_320px]"><div class="min-w-0 border-b border-slate-200 lg:border-b-0 lg:border-r"><div class="graph-canvas relative svelte-1wx4hks"><div class="h-[76vh] min-h-[720px] w-full"${attr("aria-label", `Interactive behavior graph for ${graphTitle()}`)}></div> <div class="absolute right-3 top-3 z-10 flex items-start gap-2"><div class="relative"><label for="graph-search" class="sr-only">Search nodes</label> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" class="pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m20 20-3.5-3.5"></path></svg> <input id="graph-search" type="search"${attr("value", search)} placeholder="Search nodes" class="h-9 w-44 rounded-lg border border-slate-200 bg-white/95 pl-8 pr-3 text-sm shadow-sm outline-none backdrop-blur transition focus:border-brand-400 focus:ring-2 focus:ring-brand-500/15 sm:w-60"/></div> <div class="relative"><button type="button" aria-haspopup="menu"${attr("aria-expanded", filtersOpen)}${attr_class(`flex h-9 items-center gap-1.5 rounded-lg border bg-white/95 px-2.5 text-sm font-medium shadow-sm backdrop-blur transition border-slate-200 text-slate-700 hover:bg-white`)}><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M3 5h18l-7 8v6l-4-2v-4z"></path></svg> <span class="hidden sm:inline">Filters</span> <span class="rounded-full bg-slate-100 px-1.5 text-[11px] font-semibold text-slate-600">${escape_html(activeKindCount())}/${escape_html(totalKindCount)}</span></button> `);
|
|
741
|
+
$$renderer.push("<!--[-1-->");
|
|
742
|
+
$$renderer.push(`<!--]--></div></div> <div class="absolute bottom-3 right-3 z-10 flex flex-col overflow-hidden rounded-lg border border-slate-200 bg-white/95 shadow-sm backdrop-blur"><button type="button" aria-label="Zoom in" class="grid h-9 w-9 place-items-center text-lg font-semibold leading-none text-slate-700 transition hover:bg-slate-100">+</button> <div class="h-px bg-slate-200"></div> <button type="button" aria-label="Zoom out" class="grid h-9 w-9 place-items-center text-lg font-semibold leading-none text-slate-700 transition hover:bg-slate-100">−</button> <div class="h-px bg-slate-200"></div> <button type="button" aria-label="Fit graph to view" class="grid h-9 w-9 place-items-center text-slate-700 transition hover:bg-slate-100"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M4 9V5a1 1 0 0 1 1-1h4"></path><path d="M20 9V5a1 1 0 0 0-1-1h-4"></path><path d="M4 15v4a1 1 0 0 0 1 1h4"></path><path d="M20 15v4a1 1 0 0 1-1 1h-4"></path></svg></button></div> `);
|
|
712
743
|
$$renderer.push("<!--[0-->");
|
|
713
|
-
$$renderer.push(`<div class="pointer-events-none absolute left-
|
|
744
|
+
$$renderer.push(`<div class="pointer-events-none absolute left-3 top-3 z-10 w-56 rounded-md border border-slate-200 bg-white/90 p-3 text-xs text-slate-600 shadow-sm backdrop-blur"><div class="flex justify-between font-medium text-slate-800"><span>Stabilizing layout</span> <span>${escape_html(stabilizationProgress)}%</span></div> <div class="mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200"><div class="h-full rounded-full bg-brand-500 transition-all"${attr_style(`width:${stabilizationProgress}%`)}></div></div></div>`);
|
|
714
745
|
$$renderer.push(`<!--]--></div></div> <aside class="space-y-4 p-4"><div><h3 class="text-sm font-semibold text-slate-950">Graph Summary</h3> <div class="mt-3 grid grid-cols-2 gap-2 text-sm"><div class="rounded-md bg-slate-100 p-3"><div class="text-2xl font-semibold text-slate-950">${escape_html(graph().nodes.length)}</div> <div class="text-xs text-slate-500">nodes</div></div> <div class="rounded-md bg-slate-100 p-3"><div class="text-2xl font-semibold text-slate-950">${escape_html(graph().edges.length)}</div> <div class="text-xs text-slate-500">edges</div></div></div></div> <div><h3 class="text-sm font-semibold text-slate-950">Node Types</h3> <div class="mt-2 flex flex-wrap gap-1.5"><!--[-->`);
|
|
715
746
|
const each_array_1 = ensure_array_like(ALL_BEHAVIOR_GRAPH_NODE_TYPES);
|
|
716
747
|
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
@@ -754,4 +785,4 @@ function BehaviorGraph($$renderer, $$props) {
|
|
|
754
785
|
}
|
|
755
786
|
|
|
756
787
|
export { BehaviorGraph as B };
|
|
757
|
-
//# sourceMappingURL=BehaviorGraph-
|
|
788
|
+
//# sourceMappingURL=BehaviorGraph-C-9z37Sm.js.map
|