@a-company/paradigm 5.10.0 → 5.21.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/dist/accept-orchestration-IUAWQZUN.js +18 -0
- package/dist/add-P76GEMGF.js +8 -0
- package/dist/agent-UUTYOFTH.js +33 -0
- package/dist/agent-loader-EPXURMO7.js +2 -0
- package/dist/agent-loader-PYGPX6D2.js +2 -0
- package/dist/agent-state-KSQ3S7OB.js +2 -0
- package/dist/agents-suggest-HYTFMQD3.js +10 -0
- package/dist/aggregate-W66DM3GA.js +10 -0
- package/dist/ambient-HYZR42NX.js +35 -0
- package/dist/assess-UFPYEJKP.js +9 -0
- package/dist/auto-RHJXOZFL.js +14 -0
- package/dist/beacon-5QVYV5DF.js +13 -0
- package/dist/calibration-OLJYB5HN.js +7 -0
- package/dist/check-THVGY4R5.js +14 -0
- package/dist/chunk-22ISTMKI.js +31 -0
- package/dist/chunk-2QO33NYK.js +3 -0
- package/dist/chunk-33LKBMVK.js +134 -0
- package/dist/chunk-4QADCWPU.js +7 -0
- package/dist/chunk-4TXOVRWD.js +3 -0
- package/dist/chunk-4UJ4NIEQ.js +4 -0
- package/dist/chunk-4ZGGWZ32.js +3 -0
- package/dist/chunk-5TAVYPOV.js +2 -0
- package/dist/chunk-6EX37L4Q.js +8 -0
- package/dist/chunk-AD5TAD2A.js +5 -0
- package/dist/chunk-AGVAHVUA.js +2 -0
- package/dist/chunk-AO7ZSRME.js +13 -0
- package/dist/chunk-BFD3GFRK.js +2 -0
- package/dist/chunk-D34YFK4M.js +6 -0
- package/dist/chunk-DVZWCXB6.js +2 -0
- package/dist/chunk-EKZDFEJW.js +2 -0
- package/dist/chunk-ET5XJTSX.js +2 -0
- package/dist/chunk-FYDRENK7.js +3 -0
- package/dist/chunk-HMQ5BHP2.js +743 -0
- package/dist/chunk-HXKWL3VK.js +29 -0
- package/dist/chunk-IZSBGW6E.js +2 -0
- package/dist/chunk-J32OPJEX.js +2 -0
- package/dist/chunk-JBDMCRPP.js +7 -0
- package/dist/chunk-JIXHEBGK.js +7 -0
- package/dist/chunk-JNSJVCTU.js +2 -0
- package/dist/chunk-JQKKVAAN.js +2 -0
- package/dist/chunk-KLBH26PA.js +429 -0
- package/dist/chunk-L6K5HNDL.js +24 -0
- package/dist/chunk-LKAT7IAK.js +2 -0
- package/dist/chunk-M4UMM6DC.js +5 -0
- package/dist/chunk-NKYNHSA5.js +424 -0
- package/dist/chunk-NW6OKHE6.js +5 -0
- package/dist/chunk-NXRVR37G.js +60 -0
- package/dist/chunk-ODVKPZZ4.js +2 -0
- package/dist/chunk-PUBB7LIT.js +5 -0
- package/dist/chunk-Q2J542ST.js +2 -0
- package/dist/chunk-QGZRM6ZB.js +2 -0
- package/dist/chunk-QNZEG7IT.js +13 -0
- package/dist/chunk-QT2LKB3P.js +7 -0
- package/dist/chunk-RVRARWSY.js +9 -0
- package/dist/chunk-T6IDXUUA.js +2 -0
- package/dist/chunk-TYWB5IQJ.js +3 -0
- package/dist/chunk-UIKLE3WD.js +2 -0
- package/dist/chunk-V7K6CQVX.js +111 -0
- package/dist/chunk-VCKKJDLP.js +8 -0
- package/dist/chunk-VG7FN2TU.js +4 -0
- package/dist/chunk-W5IWDW4Y.js +16 -0
- package/dist/chunk-W7C6FFMO.js +8 -0
- package/dist/chunk-WESTEMIM.js +10 -0
- package/dist/chunk-WR6D3SC6.js +5 -0
- package/dist/chunk-WS2N27RX.js +3 -0
- package/dist/chunk-XMAV5AG6.js +2 -0
- package/dist/chunk-XROULIQN.js +2 -0
- package/dist/chunk-XUFYOXOU.js +3 -0
- package/dist/chunk-Y4XFVDZC.js +3 -0
- package/dist/chunk-Y6KXTQBG.js +2 -0
- package/dist/{chunk-GTR2TBIJ.js → chunk-Z2UZUCY6.js} +237 -1047
- package/dist/chunk-Z34K6GY2.js +8 -0
- package/dist/claude-4LR3LJQZ.js +13 -0
- package/dist/claude-cli-UP6HGH7C.js +6 -0
- package/dist/claude-code-RLJ4GX77.js +11 -0
- package/dist/claude-code-teams-R37HJY3Y.js +29 -0
- package/dist/commands-LMUD5L6R.js +455 -0
- package/dist/compliance-GZ7UAOG3.js +6 -0
- package/dist/conductor-Y5IXELTL.js +4 -0
- package/dist/config-schema-HR7LDEQ6.js +2 -0
- package/dist/constellation-CG7C4WFE.js +13 -0
- package/dist/context-audit-RSSRX6XC.js +6 -0
- package/dist/cost-IDNVMAEV.js +10 -0
- package/dist/cost-PK4KIF7R.js +2 -0
- package/dist/cursor-cli-QKF7Z6M2.js +4 -0
- package/dist/cursorrules-U5O4G5T4.js +14 -0
- package/dist/decision-loader-2XPZE4EZ.js +2 -0
- package/dist/delete-P5VULXR4.js +14 -0
- package/dist/diff-RTFUKJHF.js +9 -0
- package/dist/discipline-H7LDI6NT.js +2 -0
- package/dist/dist-3ZCH25SG.js +2 -0
- package/dist/dist-KGRCLBJP-2QAPFYNF.js +39 -0
- package/dist/dist-R3RWD35F.js +2 -0
- package/dist/dist-VGFSP3XM.js +2 -0
- package/dist/dist-VXCZWVVJ.js +2 -0
- package/dist/dist-W3XCATBJ.js +2 -0
- package/dist/docs-EDQ2STFK.js +2 -0
- package/dist/docs-RXPN6CK7.js +12 -0
- package/dist/doctor-2T2QL6VM.js +2 -0
- package/dist/drift-ILZE5BFJ.js +13 -0
- package/dist/echo-UPTQUEDU.js +46 -0
- package/dist/edit-GUU3HBVW.js +9 -0
- package/dist/event-Y3VXC2RV.js +3 -0
- package/dist/explain-files-3GPZUETV.js +4 -0
- package/dist/export-CV5KCTPS.js +2 -0
- package/dist/flow-S3RQ4YPY.js +11 -0
- package/dist/global-C44FW4G2.js +13 -0
- package/dist/graduate-3BBSC27A.js +5 -0
- package/dist/graph-CNDE5TAT.js +2 -0
- package/dist/graph-server-COZR5C3Z.js +14 -0
- package/dist/habits-4J2KRYUL.js +42 -0
- package/dist/history-UW454SDP.js +12 -0
- package/dist/hooks-XH52VGOU.js +2 -0
- package/dist/index.js +15 -1039
- package/dist/init-24MAQJFM.js +2 -0
- package/dist/integrity-UYDOOJDP.js +7 -0
- package/dist/integrity-checker-DHGMZQDG.js +2 -0
- package/dist/journal-loader-GLH7XFTK.js +2 -0
- package/dist/lint-IGKE6UPS.js +26 -0
- package/dist/list-5IUGP3ZB.js +7 -0
- package/dist/list-YKIQNKGB.js +6 -0
- package/dist/lore-loader-RVQI5GXL.js +2 -0
- package/dist/lore-loader-XY5MZRR2.js +2 -0
- package/dist/lore-server-FC2GMDLT.js +14 -0
- package/dist/manual-RXSPSFLL.js +20 -0
- package/dist/mcp.js +93 -20484
- package/dist/migrate-X5OMAFAQ.js +59 -0
- package/dist/migrate-assessments-GEI5WMI2.js +4 -0
- package/dist/model-discovery-HMB3YI4L.js +2 -0
- package/dist/nomination-engine-XF7TWPAP.js +2 -0
- package/dist/notebook-PE3JSYZI.js +11 -0
- package/dist/notebook-loader-CENTDDUJ.js +2 -0
- package/dist/orchestrate-35HBQ3O3.js +8 -0
- package/dist/peers-P2KXU7ZK.js +5 -0
- package/dist/persona-STQWZH5P.js +29 -0
- package/dist/pipeline-MZUITRVN.js +4 -0
- package/dist/platform-server-2KXHGHFV.js +25 -0
- package/dist/plugin-update-checker-M7PW434O.js +2 -0
- package/dist/portal-check-3JVNLOEP.js +8 -0
- package/dist/portal-compliance-2UG4VKWH.js +2 -0
- package/dist/probe-5L5BQDGE.js +6 -0
- package/dist/project-type-SURTOIG7.js +2 -0
- package/dist/promote-NJQDZBZA.js +8 -0
- package/dist/providers-4PXMWA7V.js +8 -0
- package/dist/quiz-FE5UGAY2.js +10 -0
- package/dist/record-YXPB34MY.js +6 -0
- package/dist/reindex-PGDQSM42.js +2 -0
- package/dist/remember-MJRNTXYS.js +14 -0
- package/dist/retag-N5XF3KXP.js +6 -0
- package/dist/review-6UAH6V3R.js +11 -0
- package/dist/review-77QI6VOC.js +6 -0
- package/dist/ripple-ZGDITCGB.js +10 -0
- package/dist/roster-FLRZ5J42.js +2 -0
- package/dist/sentinel-HYAZ3CO5.js +19 -0
- package/dist/sentinel-bridge-VR357PKL.js +2 -0
- package/dist/sentinel-mcp.js +38 -3808
- package/dist/sentinel.js +1 -34
- package/dist/serve-JE6UF5P2.js +8 -0
- package/dist/serve-L52ZUTU6.js +10 -0
- package/dist/serve-OY6XYL7F.js +12 -0
- package/dist/server-2MNROHF6.js +7 -0
- package/dist/server-4YNUIK4W.js +8 -0
- package/dist/session-tracker-SKOMBDOW.js +2 -0
- package/dist/session-work-log-3MNUDEZ6.js +2 -0
- package/dist/session-work-log-J2H5OZBR.js +2 -0
- package/dist/setup-3F5IK7MO.js +31 -0
- package/dist/setup-KPIMRZ4Q.js +2 -0
- package/dist/shift-6GCNH666.js +11 -0
- package/dist/show-BOAVWZPZ.js +7 -0
- package/dist/show-PJ5LFLIL.js +5 -0
- package/dist/snapshot-L2G56RPL.js +8 -0
- package/dist/spawn-UH5RENSE.js +12 -0
- package/dist/status-77M3SDIF.js +8 -0
- package/dist/status-A37ECYNJ.js +6 -0
- package/dist/summary-ZJLQ6KHB.js +7 -0
- package/dist/sweep-HU74OPVW.js +17 -0
- package/dist/switch-CTW4PDGI.js +17 -0
- package/dist/symphony-3QMBGCZY.js +2 -0
- package/dist/symphony-QI63XL62.js +53 -0
- package/dist/symphony-loader-XACVV2E3.js +2 -0
- package/dist/symphony-peers-U4KHMKGI.js +2 -0
- package/dist/symphony-peers-X5NGWXFP.js +2 -0
- package/dist/symphony-relay-5GY5JIPT.js +3 -0
- package/dist/sync-QRDSFETO.js +2 -0
- package/dist/sync-llms-HL5PPW3M.js +15 -0
- package/dist/task-loader-NZFDTUQ5.js +2 -0
- package/dist/team-WGERKGNP.js +2 -0
- package/dist/test-BQJMS4Y2.js +111 -0
- package/dist/thread-HFXK65D4.js +41 -0
- package/dist/timeline-K3ZFKJ3R.js +6 -0
- package/dist/triage-FCWOZASE.js +18 -0
- package/dist/tutorial-UC6YQMNN.js +305 -0
- package/dist/university-content/courses/.purpose +74 -5
- package/dist/university-content/courses/para-701.json +807 -0
- package/dist/university-content/plsat/.purpose +3 -2
- package/dist/university-ui/assets/{index-BjewBB6s.js → index-CGFJczb1.js} +2 -2
- package/dist/university-ui/assets/{index-BjewBB6s.js.map → index-CGFJczb1.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/upgrade-B4IOLZYK.js +53 -0
- package/dist/validate-C6SMKGYD.js +9 -0
- package/dist/validate-LSCDOLBO.js +13 -0
- package/dist/validate-VZXTJHGO.js +6 -0
- package/dist/watch-LRM5XD46.js +8 -0
- package/dist/watch-PZCCUP6K.js +9 -0
- package/dist/wisdom-XZ3QKPNP.js +7 -0
- package/dist/work-log-loader-DL5GZ2BQ.js +2 -0
- package/dist/workspace-2ODL5WLY.js +2 -0
- package/package.json +1 -1
- package/platform-ui/dist/assets/AmbientSection-DqQ2mfCO.js +1 -0
- package/platform-ui/dist/assets/{CanvasSection-DwPTRdIN.js → CanvasSection-DLW0s-Bu.js} +1 -1
- package/platform-ui/dist/assets/{DocsSection-BJc_ws4I.js → DocsSection-BQ9Hi51g.js} +1 -1
- package/platform-ui/dist/assets/{GitSection-DhqBo1xc.js → GitSection-QQeUX6o3.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-D9fhVnZ0.js → GraphSection-0c9C-w7K.js} +2 -2
- package/platform-ui/dist/assets/{GraphSection-BlgXTl53.css → GraphSection-Bbs2a8sC.css} +1 -1
- package/platform-ui/dist/assets/LoreSection--t56kCj2.js +1 -0
- package/platform-ui/dist/assets/LoreSection-qnmm3o4y.css +1 -0
- package/platform-ui/dist/assets/SentinelSection-C4OoME9U.js +1 -0
- package/platform-ui/dist/assets/{SymphonySection-BRoBaUSS.js → SymphonySection-B-rvsLxq.js} +1 -1
- package/platform-ui/dist/assets/TeamSection-CBFmNEEo.js +1 -0
- package/platform-ui/dist/assets/index-Bxp0TVaf.css +1 -0
- package/platform-ui/dist/assets/index-DPpOdAtC.js +57 -0
- package/platform-ui/dist/index.html +2 -2
- package/dist/accept-orchestration-UQLM7PTQ.js +0 -189
- package/dist/add-FZRKEGH4.js +0 -81
- package/dist/agent-WERIO2XV.js +0 -523
- package/dist/agent-loader-TFIANSF4.js +0 -44
- package/dist/agent-state-S5DAWPTF.js +0 -24
- package/dist/agents-suggest-DNSYJ6IA.js +0 -83
- package/dist/aggregate-H57K7PNV.js +0 -88
- package/dist/assess-4WVXZLZQ.js +0 -68
- package/dist/auto-QFS5NHQU.js +0 -504
- package/dist/beacon-KXZXYQHX.js +0 -251
- package/dist/calibration-V46G7JTY.js +0 -135
- package/dist/check-OWAIWV23.js +0 -175
- package/dist/chunk-2IO7JAG2.js +0 -148
- package/dist/chunk-2T6BTYBN.js +0 -712
- package/dist/chunk-36TKPM5Z.js +0 -400
- package/dist/chunk-45MUDW6E.js +0 -804
- package/dist/chunk-4BLYIB7J.js +0 -5701
- package/dist/chunk-4L3UTYQX.js +0 -677
- package/dist/chunk-4NCFWYGG.js +0 -110
- package/dist/chunk-54LTTQBH.js +0 -138
- package/dist/chunk-5EWAQHFY.js +0 -269
- package/dist/chunk-5JGJACDU.js +0 -37
- package/dist/chunk-5OUOLN6M.js +0 -659
- package/dist/chunk-5VKJBNJL.js +0 -444
- package/dist/chunk-6N3JTACN.js +0 -2260
- package/dist/chunk-6QC3YGB6.js +0 -114
- package/dist/chunk-7N7GSU6K.js +0 -34
- package/dist/chunk-ABVQGRF7.js +0 -268
- package/dist/chunk-CL7JSK52.js +0 -129
- package/dist/chunk-CSD7IHSN.js +0 -152
- package/dist/chunk-EDOAWN7J.js +0 -717
- package/dist/chunk-EKGMAM62.js +0 -525
- package/dist/chunk-EZ3GOCYC.js +0 -132
- package/dist/chunk-F3BCHPYT.js +0 -143
- package/dist/chunk-FKJUBQU3.js +0 -3081
- package/dist/chunk-GT5QGC2H.js +0 -253
- package/dist/chunk-GZDFVP2N.js +0 -540
- package/dist/chunk-IRKUEJVW.js +0 -405
- package/dist/chunk-J2JEQRT3.js +0 -164
- package/dist/chunk-JASGXLK3.js +0 -679
- package/dist/chunk-KVDYJLTC.js +0 -121
- package/dist/chunk-L27I3CPZ.js +0 -357
- package/dist/chunk-LHLIAYQ3.js +0 -185
- package/dist/chunk-MCMOGQMU.js +0 -145
- package/dist/chunk-NQKQG45G.js +0 -688
- package/dist/chunk-PBHIFAL4.js +0 -259
- package/dist/chunk-PDX44BCA.js +0 -11
- package/dist/chunk-PMXRGPRQ.js +0 -305
- package/dist/chunk-RAB5IKPR.js +0 -487
- package/dist/chunk-RJE5G7WO.js +0 -590
- package/dist/chunk-RTHA3XRE.js +0 -880
- package/dist/chunk-S2HO5MLR.js +0 -621
- package/dist/chunk-S3ORKP3V.js +0 -716
- package/dist/chunk-TAIJOFOE.js +0 -124
- package/dist/chunk-TXESEO7Y.js +0 -245
- package/dist/chunk-UPLDI7CN.js +0 -1334
- package/dist/chunk-VL67H5IC.js +0 -506
- package/dist/chunk-VPPK3SY4.js +0 -1136
- package/dist/chunk-YMDLDELF.js +0 -314
- package/dist/chunk-YO6DVTL7.js +0 -99
- package/dist/chunk-YRZ5RPEB.js +0 -1561
- package/dist/chunk-ZDHLG5VP.js +0 -5676
- package/dist/chunk-ZGUAAVMA.js +0 -756
- package/dist/chunk-ZSYVKSY6.js +0 -2602
- package/dist/claude-FRRWJSTJ.js +0 -362
- package/dist/claude-cli-XJLK2X4L.js +0 -276
- package/dist/claude-code-HTBA4XRB.js +0 -126
- package/dist/claude-code-teams-T4SP24MD.js +0 -199
- package/dist/commands-5N4ILTPH.js +0 -5859
- package/dist/conductor-CQVGTEQN.js +0 -161
- package/dist/config-schema-EA4XALGG.js +0 -154
- package/dist/constellation-A26CCGQS.js +0 -225
- package/dist/context-audit-RLO3ETRP.js +0 -682
- package/dist/cost-BGM32XJU.js +0 -93
- package/dist/cost-VI46A4XL.js +0 -174
- package/dist/cursor-cli-JVEZGHWQ.js +0 -269
- package/dist/cursorrules-HLIKJJZT.js +0 -84
- package/dist/decision-loader-WWCLIQPJ.js +0 -20
- package/dist/delete-KBRPQLPC.js +0 -56
- package/dist/diff-D4X53HAC.js +0 -126
- package/dist/discipline-FA4OZXIS.js +0 -24
- package/dist/dist-34NA5RS5.js +0 -74
- package/dist/dist-5QE2BB2B-5S3T6Y3T.js +0 -6919
- package/dist/dist-77JDTVAY.js +0 -62
- package/dist/dist-OGTSAZ55.js +0 -1358
- package/dist/dist-QK4SQAK7.js +0 -64
- package/dist/dist-TA6LSC2Q.js +0 -20
- package/dist/docs-PBZB7LYP.js +0 -89
- package/dist/docs-QIYKO3BR.js +0 -155
- package/dist/doctor-ULBOHEIC.js +0 -11
- package/dist/drift-R5NRKFHI.js +0 -251
- package/dist/echo-O2LY7CC2.js +0 -248
- package/dist/edit-R2HNLMOG.js +0 -63
- package/dist/event-25OJKDCE.js +0 -31
- package/dist/export-IWVL7XLF.js +0 -38
- package/dist/flow-CRRVV3O3.js +0 -185
- package/dist/global-3NG5JXUB.js +0 -136
- package/dist/graduate-USAWGBJM.js +0 -160
- package/dist/graph-VHUMAAS6.js +0 -12
- package/dist/graph-server-YL22VBBN.js +0 -116
- package/dist/habits-OL5NGPXO.js +0 -1405
- package/dist/history-WOWC573W.js +0 -277
- package/dist/hooks-HFWSCGPV.js +0 -12
- package/dist/integrity-IHO4FZTS.js +0 -194
- package/dist/integrity-checker-PSKJA5SB.js +0 -12
- package/dist/journal-loader-5EYSBFFY.js +0 -18
- package/dist/lint-K6CJGGPH.js +0 -456
- package/dist/list-4YK7QKFF.js +0 -57
- package/dist/list-ENR7Q4CR.js +0 -56
- package/dist/lore-loader-7NO6N6FT.js +0 -26
- package/dist/lore-server-UNJY5KC3.js +0 -118
- package/dist/manual-G6FISID5.js +0 -204
- package/dist/migrate-LS45DNEV.js +0 -889
- package/dist/migrate-assessments-RGH4O6IX.js +0 -97
- package/dist/model-discovery-D2H3VBGC.js +0 -8
- package/dist/nomination-engine-RV5CNO5B.js +0 -42
- package/dist/notebook-YWIYGEHV.js +0 -155
- package/dist/orchestrate-JLILBBJE.js +0 -324
- package/dist/peers-DEOUIZM6.js +0 -82
- package/dist/persona-UHAHIVST.js +0 -390
- package/dist/pipeline-L4HCSBGN.js +0 -263
- package/dist/platform-server-H5YO3DQD.js +0 -1475
- package/dist/plugin-update-checker-KRRSGXMV.js +0 -12
- package/dist/portal-check-NPYGII2D.js +0 -42
- package/dist/portal-compliance-J7DGAPFX.js +0 -18
- package/dist/probe-MHL5HQZ2.js +0 -167
- package/dist/promote-F6ZYZZAL.js +0 -182
- package/dist/providers-GK7PB2OL.js +0 -104
- package/dist/quiz-M66SC7F7.js +0 -99
- package/dist/record-RA4WR2BO.js +0 -49
- package/dist/reindex-5LTD53ZC.js +0 -16
- package/dist/remember-HBWJ655S.js +0 -77
- package/dist/retag-3OLCVDEQ.js +0 -62
- package/dist/review-27ATYTD2.js +0 -33
- package/dist/review-57QMURZV.js +0 -334
- package/dist/ripple-JPBXP5I3.js +0 -215
- package/dist/sentinel-4XIG4STA.js +0 -63
- package/dist/sentinel-bridge-MDUXTQRL.js +0 -109
- package/dist/serve-CAH3PHE7.js +0 -33
- package/dist/serve-INL7SNBK.js +0 -36
- package/dist/serve-KBSE36PL.js +0 -49
- package/dist/server-54SKYFFY.js +0 -1647
- package/dist/server-XUOIO7E6.js +0 -338
- package/dist/session-tracker-C4BMD5WG.js +0 -13
- package/dist/session-work-log-MZ47OAPB.js +0 -20
- package/dist/setup-EDS27WUR.js +0 -25
- package/dist/setup-KO5AFC4K.js +0 -296
- package/dist/shift-D2JOHHBF.js +0 -668
- package/dist/show-5PV5KFJE.js +0 -176
- package/dist/show-NQKYX6WQ.js +0 -82
- package/dist/snapshot-BK4RBPCG.js +0 -62
- package/dist/spawn-RCHNXDHE.js +0 -196
- package/dist/status-WGIAQODY.js +0 -71
- package/dist/summary-NIRABMF5.js +0 -140
- package/dist/sweep-QMHNSIY5.js +0 -934
- package/dist/switch-6EJPZDIA.js +0 -232
- package/dist/symphony-4OCY36AI.js +0 -791
- package/dist/symphony-B75X2MME.js +0 -326
- package/dist/symphony-loader-UZGON56V.js +0 -90
- package/dist/symphony-peers-2ZQYLRNI.js +0 -34
- package/dist/symphony-peers-OL7F6M5S.js +0 -121
- package/dist/symphony-relay-UJYUXN65.js +0 -710
- package/dist/sync-VEHUH4OA.js +0 -11
- package/dist/sync-llms-YHCFIE6X.js +0 -166
- package/dist/task-loader-LDYWQSLM.js +0 -20
- package/dist/team-O5MIIFMA.js +0 -34
- package/dist/test-566CP5KC.js +0 -1017
- package/dist/thread-N754I4D5.js +0 -274
- package/dist/timeline-M3CICQFE.js +0 -112
- package/dist/triage-HHYGT3HY.js +0 -671
- package/dist/tutorial-KD22SUNO.js +0 -666
- package/dist/upgrade-H5PF32BW.js +0 -551
- package/dist/validate-CNKEKO6A.js +0 -134
- package/dist/validate-MB5ULIHS.js +0 -39
- package/dist/validate-QH3LADM6.js +0 -64
- package/dist/watch-2TKP5PVL.js +0 -199
- package/dist/watch-ZF4ML6CD.js +0 -111
- package/dist/wisdom-AATMGNFA.js +0 -319
- package/dist/work-log-loader-5L45XNYZ.js +0 -14
- package/dist/workspace-6E6OSRNU.js +0 -21
- package/platform-ui/dist/assets/AmbientSection-WtHfNedO.js +0 -1
- package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +0 -1
- package/platform-ui/dist/assets/LoreSection-CwDDHrz9.js +0 -1
- package/platform-ui/dist/assets/SentinelSection-Cl7e5oZ6.js +0 -1
- package/platform-ui/dist/assets/TeamSection-CqSIMrKz.js +0 -1
- package/platform-ui/dist/assets/index-CfpZFjea.css +0 -1
- package/platform-ui/dist/assets/index-F0KL9xrN.js +0 -57
package/dist/server-XUOIO7E6.js
DELETED
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-PDX44BCA.js";
|
|
3
|
-
|
|
4
|
-
// ../university/dist/chunk-CXHK3FVZ.js
|
|
5
|
-
import express from "express";
|
|
6
|
-
import * as path3 from "path";
|
|
7
|
-
import * as fs3 from "fs";
|
|
8
|
-
import { fileURLToPath } from "url";
|
|
9
|
-
import chalk from "chalk";
|
|
10
|
-
import { Router } from "express";
|
|
11
|
-
import * as fs from "fs";
|
|
12
|
-
import * as path from "path";
|
|
13
|
-
import { Router as Router2 } from "express";
|
|
14
|
-
import * as fs2 from "fs";
|
|
15
|
-
import * as path2 from "path";
|
|
16
|
-
function createCoursesRouter(contentDir) {
|
|
17
|
-
const router = Router();
|
|
18
|
-
router.get("/", (_req, res) => {
|
|
19
|
-
const coursesDir = path.join(contentDir, "courses");
|
|
20
|
-
if (!fs.existsSync(coursesDir)) {
|
|
21
|
-
return res.json({ courses: [] });
|
|
22
|
-
}
|
|
23
|
-
const files = fs.readdirSync(coursesDir).filter((f) => f.endsWith(".json"));
|
|
24
|
-
const courses = files.map((f) => {
|
|
25
|
-
const data = JSON.parse(fs.readFileSync(path.join(coursesDir, f), "utf-8"));
|
|
26
|
-
return {
|
|
27
|
-
id: data.id,
|
|
28
|
-
title: data.title,
|
|
29
|
-
description: data.description,
|
|
30
|
-
lessonCount: data.lessons?.length || 0,
|
|
31
|
-
lessons: (data.lessons || []).map((l) => ({
|
|
32
|
-
id: l.id,
|
|
33
|
-
title: l.title
|
|
34
|
-
}))
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
|
-
courses.sort((a, b) => a.id.localeCompare(b.id));
|
|
38
|
-
return res.json({ courses });
|
|
39
|
-
});
|
|
40
|
-
router.get("/:id", (req, res) => {
|
|
41
|
-
const courseFile = path.join(contentDir, "courses", `${req.params.id}.json`);
|
|
42
|
-
if (!fs.existsSync(courseFile)) {
|
|
43
|
-
return res.status(404).json({ error: `Course '${req.params.id}' not found` });
|
|
44
|
-
}
|
|
45
|
-
const data = JSON.parse(fs.readFileSync(courseFile, "utf-8"));
|
|
46
|
-
return res.json(data);
|
|
47
|
-
});
|
|
48
|
-
router.get("/:id/lessons/:lessonId", (req, res) => {
|
|
49
|
-
const courseFile = path.join(contentDir, "courses", `${req.params.id}.json`);
|
|
50
|
-
if (!fs.existsSync(courseFile)) {
|
|
51
|
-
return res.status(404).json({ error: `Course '${req.params.id}' not found` });
|
|
52
|
-
}
|
|
53
|
-
const data = JSON.parse(fs.readFileSync(courseFile, "utf-8"));
|
|
54
|
-
const lesson = (data.lessons || []).find((l) => l.id === req.params.lessonId);
|
|
55
|
-
if (!lesson) {
|
|
56
|
-
return res.status(404).json({ error: `Lesson '${req.params.lessonId}' not found` });
|
|
57
|
-
}
|
|
58
|
-
return res.json(lesson);
|
|
59
|
-
});
|
|
60
|
-
return router;
|
|
61
|
-
}
|
|
62
|
-
function pickVariant(variants) {
|
|
63
|
-
return variants[Math.floor(Math.random() * variants.length)];
|
|
64
|
-
}
|
|
65
|
-
function fisherYatesShuffle(arr) {
|
|
66
|
-
for (let i = arr.length - 1; i > 0; i--) {
|
|
67
|
-
const j = Math.floor(Math.random() * (i + 1));
|
|
68
|
-
[arr[i], arr[j]] = [arr[j], arr[i]];
|
|
69
|
-
}
|
|
70
|
-
return arr;
|
|
71
|
-
}
|
|
72
|
-
function resolveV3(data) {
|
|
73
|
-
const passages = {};
|
|
74
|
-
const blocks = [];
|
|
75
|
-
for (const item of data.items) {
|
|
76
|
-
if (item.type === "standalone" || item.type === "variant-group") {
|
|
77
|
-
const v = pickVariant(item.variants);
|
|
78
|
-
blocks.push([{
|
|
79
|
-
id: v.id,
|
|
80
|
-
course: item.course,
|
|
81
|
-
scenario: v.scenario,
|
|
82
|
-
question: v.question,
|
|
83
|
-
choices: v.choices,
|
|
84
|
-
correct: v.correct,
|
|
85
|
-
explanation: v.explanation
|
|
86
|
-
}]);
|
|
87
|
-
} else {
|
|
88
|
-
passages[item.slot] = item.passage;
|
|
89
|
-
const group = item.questions.map((pq) => {
|
|
90
|
-
const v = pickVariant(pq.variants);
|
|
91
|
-
return {
|
|
92
|
-
id: v.id,
|
|
93
|
-
course: item.course,
|
|
94
|
-
scenario: v.scenario,
|
|
95
|
-
question: v.question,
|
|
96
|
-
choices: v.choices,
|
|
97
|
-
correct: v.correct,
|
|
98
|
-
explanation: v.explanation,
|
|
99
|
-
passageId: item.slot
|
|
100
|
-
};
|
|
101
|
-
});
|
|
102
|
-
blocks.push(group);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
fisherYatesShuffle(blocks);
|
|
106
|
-
return { questions: blocks.flat(), passages };
|
|
107
|
-
}
|
|
108
|
-
function countV3Questions(data) {
|
|
109
|
-
let count = 0;
|
|
110
|
-
for (const item of data.items) {
|
|
111
|
-
if (item.type === "standalone" || item.type === "variant-group") {
|
|
112
|
-
count += 1;
|
|
113
|
-
} else {
|
|
114
|
-
count += item.questions.length;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return count;
|
|
118
|
-
}
|
|
119
|
-
function createPlsatRouter(contentDir, projectDir) {
|
|
120
|
-
const router = Router2();
|
|
121
|
-
router.get("/", (_req, res) => {
|
|
122
|
-
const plsatDir = path2.join(contentDir, "plsat");
|
|
123
|
-
if (!fs2.existsSync(plsatDir)) {
|
|
124
|
-
return res.json({ versions: [] });
|
|
125
|
-
}
|
|
126
|
-
const files = fs2.readdirSync(plsatDir).filter((f) => f.endsWith(".json"));
|
|
127
|
-
const versions = files.map((f) => {
|
|
128
|
-
const data = JSON.parse(fs2.readFileSync(path2.join(plsatDir, f), "utf-8"));
|
|
129
|
-
const questionCount = data.items ? countV3Questions(data) : data.questions?.length || 0;
|
|
130
|
-
return {
|
|
131
|
-
version: data.version,
|
|
132
|
-
frameworkVersion: data.frameworkVersion,
|
|
133
|
-
questionCount,
|
|
134
|
-
timeLimit: data.timeLimit,
|
|
135
|
-
passThreshold: data.passThreshold
|
|
136
|
-
};
|
|
137
|
-
});
|
|
138
|
-
versions.sort((a, b) => b.version.localeCompare(a.version));
|
|
139
|
-
return res.json({ versions });
|
|
140
|
-
});
|
|
141
|
-
router.get("/:version", (req, res) => {
|
|
142
|
-
try {
|
|
143
|
-
const examFile = path2.join(contentDir, "plsat", `v${req.params.version}.json`);
|
|
144
|
-
if (!fs2.existsSync(examFile)) {
|
|
145
|
-
return res.status(404).json({ error: `PLSAT version '${req.params.version}' not found` });
|
|
146
|
-
}
|
|
147
|
-
const data = JSON.parse(fs2.readFileSync(examFile, "utf-8"));
|
|
148
|
-
if (data.items) {
|
|
149
|
-
const { questions, passages } = resolveV3(data);
|
|
150
|
-
return res.json({
|
|
151
|
-
version: data.version,
|
|
152
|
-
frameworkVersion: data.frameworkVersion,
|
|
153
|
-
timeLimit: data.timeLimit,
|
|
154
|
-
passThreshold: data.passThreshold,
|
|
155
|
-
title: data.title,
|
|
156
|
-
description: data.description,
|
|
157
|
-
questions,
|
|
158
|
-
...Object.keys(passages).length > 0 ? { passages } : {}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
const shuffled = [...data.questions].sort(() => Math.random() - 0.5);
|
|
162
|
-
return res.json({
|
|
163
|
-
...data,
|
|
164
|
-
questions: shuffled
|
|
165
|
-
});
|
|
166
|
-
} catch (err) {
|
|
167
|
-
const msg = err instanceof Error ? err.message : "Internal error";
|
|
168
|
-
return res.status(500).json({ error: `Failed to load PLSAT exam: ${msg}` });
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
router.post("/diploma", (req, res) => {
|
|
172
|
-
if (!projectDir) {
|
|
173
|
-
return res.status(400).json({ error: "No project directory configured" });
|
|
174
|
-
}
|
|
175
|
-
const diplomaDir = path2.join(projectDir, ".paradigm", "university", "diplomas");
|
|
176
|
-
if (!fs2.existsSync(diplomaDir)) {
|
|
177
|
-
return res.json({ saved: false, reason: "university directory not found" });
|
|
178
|
-
}
|
|
179
|
-
try {
|
|
180
|
-
const { student, version, score, total, percentage, passed } = req.body;
|
|
181
|
-
if (!student || !version || score == null || total == null) {
|
|
182
|
-
return res.status(400).json({ error: "Missing required fields: student, version, score, total" });
|
|
183
|
-
}
|
|
184
|
-
const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
185
|
-
const sanitizedStudent = String(student).toLowerCase().replace(/[^a-z0-9-]/g, "-").slice(0, 20);
|
|
186
|
-
const id = `D-${today}-${sanitizedStudent}-plsat-v${version}`;
|
|
187
|
-
const diploma = {
|
|
188
|
-
id,
|
|
189
|
-
type: "plsat",
|
|
190
|
-
student: sanitizedStudent,
|
|
191
|
-
earnedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
192
|
-
source: `plsat:v${version}`,
|
|
193
|
-
score,
|
|
194
|
-
total,
|
|
195
|
-
percentage: percentage ?? (total > 0 ? Math.round(score / total * 1e4) / 100 : 0),
|
|
196
|
-
passed: passed ?? false,
|
|
197
|
-
details: { plsatVersion: version }
|
|
198
|
-
};
|
|
199
|
-
const filePath = path2.join(diplomaDir, `${id}.yaml`);
|
|
200
|
-
const yamlLines = Object.entries(diploma).map(([k, v]) => {
|
|
201
|
-
if (typeof v === "object" && v !== null) {
|
|
202
|
-
const nested = Object.entries(v).map(([nk, nv]) => ` ${nk}: ${JSON.stringify(nv)}`).join("\n");
|
|
203
|
-
return `${k}:
|
|
204
|
-
${nested}`;
|
|
205
|
-
}
|
|
206
|
-
return `${k}: ${JSON.stringify(v)}`;
|
|
207
|
-
});
|
|
208
|
-
fs2.writeFileSync(filePath, yamlLines.join("\n") + "\n", "utf8");
|
|
209
|
-
return res.json({ saved: true, diplomaId: id });
|
|
210
|
-
} catch (err) {
|
|
211
|
-
const msg = err instanceof Error ? err.message : "Internal error";
|
|
212
|
-
return res.status(500).json({ error: `Failed to save diploma: ${msg}` });
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
return router;
|
|
216
|
-
}
|
|
217
|
-
var __filename = fileURLToPath(import.meta.url);
|
|
218
|
-
var __dirname = path3.dirname(__filename);
|
|
219
|
-
function findPackageRoot(startDir) {
|
|
220
|
-
let dir = startDir;
|
|
221
|
-
while (dir !== path3.dirname(dir)) {
|
|
222
|
-
if (fs3.existsSync(path3.join(dir, "package.json"))) {
|
|
223
|
-
const pkg = JSON.parse(fs3.readFileSync(path3.join(dir, "package.json"), "utf-8"));
|
|
224
|
-
if (pkg.name === "@a-company/university") return dir;
|
|
225
|
-
}
|
|
226
|
-
dir = path3.dirname(dir);
|
|
227
|
-
}
|
|
228
|
-
return startDir;
|
|
229
|
-
}
|
|
230
|
-
var log = {
|
|
231
|
-
component(name) {
|
|
232
|
-
const symbol = chalk.magenta(`#${name}`);
|
|
233
|
-
return {
|
|
234
|
-
info: (msg, data) => {
|
|
235
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
236
|
-
console.log(`${chalk.blue("\u2139")} ${symbol} ${msg}${dataStr}`);
|
|
237
|
-
},
|
|
238
|
-
success: (msg, data) => {
|
|
239
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
240
|
-
console.log(`${chalk.green("\u2714")} ${symbol} ${msg}${dataStr}`);
|
|
241
|
-
},
|
|
242
|
-
warn: (msg, data) => {
|
|
243
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
244
|
-
console.log(`${chalk.yellow("\u26A0")} ${symbol} ${msg}${dataStr}`);
|
|
245
|
-
},
|
|
246
|
-
error: (msg, data) => {
|
|
247
|
-
const dataStr = data ? chalk.gray(` ${Object.entries(data).map(([k, v]) => `${k}=${v}`).join(" ")}`) : "";
|
|
248
|
-
console.error(`${chalk.red("\u2716")} ${symbol} ${msg}${dataStr}`);
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
function resolveAssetPaths(options) {
|
|
254
|
-
if (options?.contentDir && options?.uiDistPath) {
|
|
255
|
-
return { contentDir: options.contentDir, uiDistPath: options.uiDistPath };
|
|
256
|
-
}
|
|
257
|
-
const bundledContent = path3.join(__dirname, "university-content");
|
|
258
|
-
const bundledUi = path3.join(__dirname, "university-ui");
|
|
259
|
-
if (fs3.existsSync(bundledContent) && fs3.existsSync(bundledUi)) {
|
|
260
|
-
return {
|
|
261
|
-
contentDir: options?.contentDir || bundledContent,
|
|
262
|
-
uiDistPath: options?.uiDistPath || bundledUi
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
const packageRoot = findPackageRoot(__dirname);
|
|
266
|
-
return {
|
|
267
|
-
contentDir: options?.contentDir || path3.join(packageRoot, "src", "content"),
|
|
268
|
-
uiDistPath: options?.uiDistPath || path3.join(packageRoot, "ui", "dist")
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
function createApp(options) {
|
|
272
|
-
const app = express();
|
|
273
|
-
app.use(express.json());
|
|
274
|
-
app.use((_req, res, next) => {
|
|
275
|
-
res.header("Access-Control-Allow-Origin", "*");
|
|
276
|
-
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
|
|
277
|
-
res.header("Access-Control-Allow-Headers", "Content-Type");
|
|
278
|
-
next();
|
|
279
|
-
});
|
|
280
|
-
const { contentDir, uiDistPath } = resolveAssetPaths(options);
|
|
281
|
-
app.use("/api/courses", createCoursesRouter(contentDir));
|
|
282
|
-
app.use("/api/plsat", createPlsatRouter(contentDir, options?.projectDir));
|
|
283
|
-
app.get("/api/reference", (_req, res) => {
|
|
284
|
-
const refPath = path3.join(contentDir, "reference.json");
|
|
285
|
-
if (fs3.existsSync(refPath)) {
|
|
286
|
-
const data = JSON.parse(fs3.readFileSync(refPath, "utf-8"));
|
|
287
|
-
res.json(data);
|
|
288
|
-
} else {
|
|
289
|
-
res.status(404).json({ error: "Reference data not found" });
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
app.get("/api/health", (_req, res) => {
|
|
293
|
-
res.json({ status: "ok", timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
294
|
-
});
|
|
295
|
-
if (fs3.existsSync(uiDistPath)) {
|
|
296
|
-
app.use(express.static(uiDistPath));
|
|
297
|
-
app.get("{*path}", (req, res) => {
|
|
298
|
-
if (!req.path.startsWith("/api")) {
|
|
299
|
-
res.sendFile(path3.join(uiDistPath, "index.html"));
|
|
300
|
-
}
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
return app;
|
|
304
|
-
}
|
|
305
|
-
async function startServer(options) {
|
|
306
|
-
const app = createApp({
|
|
307
|
-
contentDir: options.contentDir,
|
|
308
|
-
uiDistPath: options.uiDistPath,
|
|
309
|
-
projectDir: options.projectDir
|
|
310
|
-
});
|
|
311
|
-
log.component("university-server").info("Starting server", { port: options.port });
|
|
312
|
-
return new Promise((resolve, reject) => {
|
|
313
|
-
const server = app.listen(options.port, () => {
|
|
314
|
-
log.component("university-server").success("Server running", { url: `http://localhost:${options.port}` });
|
|
315
|
-
if (options.open) {
|
|
316
|
-
import("open").then((openModule) => {
|
|
317
|
-
openModule.default(`http://localhost:${options.port}`);
|
|
318
|
-
log.component("university-server").info("Opened browser");
|
|
319
|
-
}).catch(() => {
|
|
320
|
-
log.component("university-server").warn("Could not open browser automatically");
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
resolve();
|
|
324
|
-
});
|
|
325
|
-
server.on("error", (err) => {
|
|
326
|
-
if (err.code === "EADDRINUSE") {
|
|
327
|
-
log.component("university-server").error("Port already in use", { port: options.port });
|
|
328
|
-
} else {
|
|
329
|
-
log.component("university-server").error("Server error", { error: err.message });
|
|
330
|
-
}
|
|
331
|
-
reject(err);
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
export {
|
|
336
|
-
createApp,
|
|
337
|
-
startServer
|
|
338
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
MODEL_PRICING,
|
|
4
|
-
getSessionTracker,
|
|
5
|
-
resetSessionTracker
|
|
6
|
-
} from "./chunk-4L3UTYQX.js";
|
|
7
|
-
import "./chunk-CL7JSK52.js";
|
|
8
|
-
import "./chunk-7N7GSU6K.js";
|
|
9
|
-
export {
|
|
10
|
-
MODEL_PRICING,
|
|
11
|
-
getSessionTracker,
|
|
12
|
-
resetSessionTracker
|
|
13
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
appendSessionWorkEntry,
|
|
4
|
-
clearSessionWorkLog,
|
|
5
|
-
getAgentEntries,
|
|
6
|
-
getAgentVerdicts,
|
|
7
|
-
getContributingAgents,
|
|
8
|
-
init_session_work_log,
|
|
9
|
-
readSessionWorkLog
|
|
10
|
-
} from "./chunk-CL7JSK52.js";
|
|
11
|
-
import "./chunk-7N7GSU6K.js";
|
|
12
|
-
init_session_work_log();
|
|
13
|
-
export {
|
|
14
|
-
appendSessionWorkEntry,
|
|
15
|
-
clearSessionWorkLog,
|
|
16
|
-
getAgentEntries,
|
|
17
|
-
getAgentVerdicts,
|
|
18
|
-
getContributingAgents,
|
|
19
|
-
readSessionWorkLog
|
|
20
|
-
};
|
package/dist/setup-EDS27WUR.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
detectAllClients,
|
|
4
|
-
generateMCPConfig,
|
|
5
|
-
getProjectName,
|
|
6
|
-
getServersFromConfig,
|
|
7
|
-
mcpListCommand,
|
|
8
|
-
mcpRemoveCommand,
|
|
9
|
-
mcpSetupCommand,
|
|
10
|
-
mcpStatusCommand,
|
|
11
|
-
writeConfig
|
|
12
|
-
} from "./chunk-GZDFVP2N.js";
|
|
13
|
-
import "./chunk-4NCFWYGG.js";
|
|
14
|
-
import "./chunk-PDX44BCA.js";
|
|
15
|
-
export {
|
|
16
|
-
detectAllClients,
|
|
17
|
-
generateMCPConfig,
|
|
18
|
-
getProjectName,
|
|
19
|
-
getServersFromConfig,
|
|
20
|
-
mcpListCommand,
|
|
21
|
-
mcpRemoveCommand,
|
|
22
|
-
mcpSetupCommand,
|
|
23
|
-
mcpStatusCommand,
|
|
24
|
-
writeConfig
|
|
25
|
-
};
|
package/dist/setup-KO5AFC4K.js
DELETED
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
cursorrrulesExists,
|
|
4
|
-
writeCursorrules
|
|
5
|
-
} from "./chunk-LHLIAYQ3.js";
|
|
6
|
-
import "./chunk-36TKPM5Z.js";
|
|
7
|
-
import {
|
|
8
|
-
getDefaultPremiseContent
|
|
9
|
-
} from "./chunk-ZGUAAVMA.js";
|
|
10
|
-
import {
|
|
11
|
-
getDefaultPurposeContent
|
|
12
|
-
} from "./chunk-EDOAWN7J.js";
|
|
13
|
-
import "./chunk-IRKUEJVW.js";
|
|
14
|
-
import {
|
|
15
|
-
DEFAULT_CONVENTIONS,
|
|
16
|
-
DEFAULT_SYMBOL_SYSTEM,
|
|
17
|
-
serializeParadigmConfig
|
|
18
|
-
} from "./chunk-YO6DVTL7.js";
|
|
19
|
-
import "./chunk-PDX44BCA.js";
|
|
20
|
-
|
|
21
|
-
// src/commands/setup.ts
|
|
22
|
-
import * as fs from "fs";
|
|
23
|
-
import * as path from "path";
|
|
24
|
-
import * as readline from "readline";
|
|
25
|
-
import chalk from "chalk";
|
|
26
|
-
function createPrompt() {
|
|
27
|
-
return readline.createInterface({
|
|
28
|
-
input: process.stdin,
|
|
29
|
-
output: process.stdout
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
async function ask(rl, question) {
|
|
33
|
-
return new Promise((resolve2) => {
|
|
34
|
-
rl.question(question, (answer) => {
|
|
35
|
-
resolve2(answer.trim());
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
async function askSelect(rl, message, choices) {
|
|
40
|
-
console.log(`
|
|
41
|
-
${chalk.cyan(message)}`);
|
|
42
|
-
choices.forEach((choice, i) => {
|
|
43
|
-
console.log(chalk.gray(` ${i + 1}) `) + choice.name);
|
|
44
|
-
});
|
|
45
|
-
const answer = await ask(rl, chalk.white(`Enter number (1-${choices.length}): `));
|
|
46
|
-
const index = parseInt(answer, 10) - 1;
|
|
47
|
-
if (index >= 0 && index < choices.length) {
|
|
48
|
-
return choices[index].value;
|
|
49
|
-
}
|
|
50
|
-
return choices[0].value;
|
|
51
|
-
}
|
|
52
|
-
async function askMultiSelect(rl, message, choices) {
|
|
53
|
-
console.log(`
|
|
54
|
-
${chalk.cyan(message)}`);
|
|
55
|
-
choices.forEach((choice, i) => {
|
|
56
|
-
console.log(chalk.gray(` ${i + 1}) `) + choice.name);
|
|
57
|
-
});
|
|
58
|
-
const answer = await ask(rl, chalk.white(`Enter numbers separated by commas (e.g., 1,2,3): `));
|
|
59
|
-
const indices = answer.split(",").map((s) => parseInt(s.trim(), 10) - 1);
|
|
60
|
-
return indices.filter((i) => i >= 0 && i < choices.length).map((i) => choices[i].value);
|
|
61
|
-
}
|
|
62
|
-
function detectProjectStructure(rootDir) {
|
|
63
|
-
const result = {};
|
|
64
|
-
for (const dir of ["src", "app", "lib", "packages"]) {
|
|
65
|
-
if (fs.existsSync(path.join(rootDir, dir))) {
|
|
66
|
-
result.sourceDir = dir;
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (result.sourceDir) {
|
|
71
|
-
const srcPath = path.join(rootDir, result.sourceDir);
|
|
72
|
-
try {
|
|
73
|
-
const entries = fs.readdirSync(srcPath, { withFileTypes: true });
|
|
74
|
-
result.directories = entries.filter((e) => e.isDirectory()).map((e) => e.name).filter((name) => !name.startsWith(".") && !name.startsWith("_"));
|
|
75
|
-
} catch {
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
function generateConfigFromAnswers(answers, projectName) {
|
|
81
|
-
const config = {
|
|
82
|
-
version: "1.0",
|
|
83
|
-
"agent-guidelines": {
|
|
84
|
-
overview: `${projectName} uses Paradigm for structured AI context management.`,
|
|
85
|
-
"how-to-use": [
|
|
86
|
-
"Check .purpose files in directories before making changes",
|
|
87
|
-
"Run `paradigm status` to see all symbols in the project",
|
|
88
|
-
"Run `paradigm visualize` to explore the Dreamscape",
|
|
89
|
-
"Reference symbols using @ # $ % ~ ^ ! ? prefixes"
|
|
90
|
-
],
|
|
91
|
-
"update-rules": [
|
|
92
|
-
"When adding a feature, create/update the nearest .purpose file",
|
|
93
|
-
"When adding authorization, update portal.yaml",
|
|
94
|
-
"When exploring ideas, add to .premise with ? prefix",
|
|
95
|
-
"Run `paradigm cursorrules` after updating .paradigm"
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
"symbol-system": DEFAULT_SYMBOL_SYSTEM,
|
|
99
|
-
states: {},
|
|
100
|
-
"purpose-required": [],
|
|
101
|
-
conventions: DEFAULT_CONVENTIONS
|
|
102
|
-
};
|
|
103
|
-
if (!config.states) config.states = {};
|
|
104
|
-
if (answers.hasAuth && answers.hasAuth !== "none") {
|
|
105
|
-
config.states.user = {
|
|
106
|
-
authenticated: { type: "boolean", default: false, description: "User is logged in" },
|
|
107
|
-
role: { type: "enum", values: ["guest", "user", "admin"], description: "User access level" }
|
|
108
|
-
};
|
|
109
|
-
if (answers.hasAuth === "session") {
|
|
110
|
-
config.states.user.sessionExpiry = { type: "string", description: "Session expiration time" };
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (answers.hasSubscription && answers.hasSubscription !== "none") {
|
|
114
|
-
if (!config.states.user) config.states.user = {};
|
|
115
|
-
if (answers.hasSubscription === "tiers") {
|
|
116
|
-
config.states.user.subscription = {
|
|
117
|
-
type: "enum",
|
|
118
|
-
values: ["free", "trial", "pro", "enterprise"],
|
|
119
|
-
description: "Subscription tier"
|
|
120
|
-
};
|
|
121
|
-
} else {
|
|
122
|
-
config.states.user.isPremium = { type: "boolean", default: false, description: "Has premium access" };
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (answers.hasGates === "yes") {
|
|
126
|
-
config["agent-guidelines"]["how-to-use"].push(
|
|
127
|
-
"Check portal.yaml for authorization rules before modifying access control"
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
if (answers.directories && answers.directories.length > 0 && answers.sourceDir) {
|
|
131
|
-
config["purpose-required"] = answers.directories.map((dir) => ({
|
|
132
|
-
pattern: `${answers.sourceDir}/${dir}/*`,
|
|
133
|
-
depth: 1
|
|
134
|
-
}));
|
|
135
|
-
}
|
|
136
|
-
if (answers.customStates) {
|
|
137
|
-
const customParts = answers.customStates.split(",").map((s) => s.trim()).filter(Boolean);
|
|
138
|
-
for (const custom of customParts) {
|
|
139
|
-
const parts = custom.split(".");
|
|
140
|
-
if (parts.length >= 2) {
|
|
141
|
-
const category = parts[0];
|
|
142
|
-
const stateName = parts.slice(1).join(".");
|
|
143
|
-
if (!config.states[category]) {
|
|
144
|
-
config.states[category] = {};
|
|
145
|
-
}
|
|
146
|
-
config.states[category][stateName] = {
|
|
147
|
-
type: "boolean",
|
|
148
|
-
description: `Custom state: ${custom}`
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return config;
|
|
154
|
-
}
|
|
155
|
-
async function runInteractiveSetup(rootDir) {
|
|
156
|
-
const rl = createPrompt();
|
|
157
|
-
const answers = {};
|
|
158
|
-
console.log(chalk.blue("\n\u{1F305} Paradigm Setup Wizard\n"));
|
|
159
|
-
console.log(chalk.gray("\u2500".repeat(55)));
|
|
160
|
-
const detected = detectProjectStructure(rootDir);
|
|
161
|
-
console.log(chalk.white("\n\u{1F4C2} Detected project structure:"));
|
|
162
|
-
if (detected.sourceDir) {
|
|
163
|
-
console.log(chalk.gray(` Source directory: ${detected.sourceDir}/`));
|
|
164
|
-
}
|
|
165
|
-
if (detected.directories?.length) {
|
|
166
|
-
console.log(chalk.gray(` Subdirectories: ${detected.directories.slice(0, 5).join(", ")}${detected.directories.length > 5 ? "..." : ""}`));
|
|
167
|
-
}
|
|
168
|
-
console.log(chalk.gray("\n\u2500".repeat(55)));
|
|
169
|
-
console.log(chalk.white("\n\u{1F4C1} Project Structure\n"));
|
|
170
|
-
answers.sourceDir = await askSelect(rl, "What is your main source directory?", [
|
|
171
|
-
{ name: `${detected.sourceDir || "src"}/ (detected)`, value: detected.sourceDir || "src" },
|
|
172
|
-
{ name: "src/", value: "src" },
|
|
173
|
-
{ name: "app/", value: "app" },
|
|
174
|
-
{ name: "lib/", value: "lib" },
|
|
175
|
-
{ name: "packages/", value: "packages" }
|
|
176
|
-
]);
|
|
177
|
-
answers.directories = await askMultiSelect(rl, "Which directories should have .purpose files?", [
|
|
178
|
-
{ name: "features/ (user-facing capabilities)", value: "features" },
|
|
179
|
-
{ name: "components/ (reusable UI/code)", value: "components" },
|
|
180
|
-
{ name: "services/ (business logic)", value: "services" },
|
|
181
|
-
{ name: "routes/ or api/ (endpoints)", value: "routes" },
|
|
182
|
-
{ name: "pages/ (page components)", value: "pages" },
|
|
183
|
-
{ name: "lib/ (utilities)", value: "lib" }
|
|
184
|
-
]);
|
|
185
|
-
console.log(chalk.gray("\n\u2500".repeat(55)));
|
|
186
|
-
console.log(chalk.white("\n\u{1F510} State Tracking\n"));
|
|
187
|
-
answers.hasAuth = await askSelect(rl, "Does your app have user authentication?", [
|
|
188
|
-
{ name: "Yes, with sessions/JWT", value: "session" },
|
|
189
|
-
{ name: "Yes, OAuth only", value: "oauth" },
|
|
190
|
-
{ name: "No authentication", value: "none" }
|
|
191
|
-
]);
|
|
192
|
-
answers.hasSubscription = await askSelect(rl, "Do you have subscription tiers or paid features?", [
|
|
193
|
-
{ name: "Yes (multiple tiers: free, pro, enterprise)", value: "tiers" },
|
|
194
|
-
{ name: "Yes (single paid tier)", value: "single" },
|
|
195
|
-
{ name: "No paid features", value: "none" }
|
|
196
|
-
]);
|
|
197
|
-
console.log(chalk.gray("\n\u2500".repeat(55)));
|
|
198
|
-
console.log(chalk.white("\n\u{1F6AA} Authorization Gates\n"));
|
|
199
|
-
answers.hasGates = await askSelect(rl, "Will you use Gate for authorization topology?", [
|
|
200
|
-
{ name: "Yes - I have role-based or feature-gated access", value: "yes" },
|
|
201
|
-
{ name: "No - simple or no authorization", value: "no" }
|
|
202
|
-
]);
|
|
203
|
-
console.log("\n");
|
|
204
|
-
answers.customStates = await ask(
|
|
205
|
-
rl,
|
|
206
|
-
chalk.cyan("Any custom states to track? ") + chalk.gray("(comma-separated, e.g., app.maintenance, cart.items)\n") + chalk.white("> ")
|
|
207
|
-
);
|
|
208
|
-
console.log(chalk.gray("\n\u2500".repeat(55)));
|
|
209
|
-
console.log(chalk.white("\n\u{1F916} Cursor Integration\n"));
|
|
210
|
-
const hasCursorrules = cursorrrulesExists(rootDir);
|
|
211
|
-
if (hasCursorrules) {
|
|
212
|
-
answers.cursorMode = await askSelect(rl, "A .cursorrules file exists. How should we handle it?", [
|
|
213
|
-
{ name: "Append Paradigm section to existing file", value: "append" },
|
|
214
|
-
{ name: "Replace with new .cursorrules", value: "create" },
|
|
215
|
-
{ name: "Skip - do not modify .cursorrules", value: "skip" }
|
|
216
|
-
]);
|
|
217
|
-
} else {
|
|
218
|
-
answers.cursorMode = await askSelect(rl, "Generate a .cursorrules file for Cursor AI?", [
|
|
219
|
-
{ name: "Yes - create .cursorrules with Paradigm context", value: "create" },
|
|
220
|
-
{ name: "No - skip Cursor integration", value: "skip" }
|
|
221
|
-
]);
|
|
222
|
-
}
|
|
223
|
-
rl.close();
|
|
224
|
-
return answers;
|
|
225
|
-
}
|
|
226
|
-
async function setupCommand(targetPath, options) {
|
|
227
|
-
const rootDir = targetPath ? path.resolve(targetPath) : process.cwd();
|
|
228
|
-
const projectName = path.basename(rootDir);
|
|
229
|
-
const paradigmPath = path.join(rootDir, ".paradigm");
|
|
230
|
-
if (fs.existsSync(paradigmPath) && !options.force) {
|
|
231
|
-
console.log(chalk.yellow("\n\u26A0\uFE0F .paradigm already exists in this directory."));
|
|
232
|
-
console.log(chalk.gray(" Use --force to overwrite, or edit .paradigm directly.\n"));
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
let answers;
|
|
236
|
-
if (options.yes) {
|
|
237
|
-
const detected = detectProjectStructure(rootDir);
|
|
238
|
-
answers = {
|
|
239
|
-
sourceDir: detected.sourceDir || "src",
|
|
240
|
-
directories: ["features", "components"],
|
|
241
|
-
hasAuth: "session",
|
|
242
|
-
hasSubscription: "none",
|
|
243
|
-
hasGates: "yes",
|
|
244
|
-
cursorMode: "create"
|
|
245
|
-
};
|
|
246
|
-
console.log(chalk.blue("\n\u{1F305} Using default configuration...\n"));
|
|
247
|
-
} else {
|
|
248
|
-
answers = await runInteractiveSetup(rootDir);
|
|
249
|
-
}
|
|
250
|
-
const config = generateConfigFromAnswers(answers, projectName);
|
|
251
|
-
fs.writeFileSync(paradigmPath, serializeParadigmConfig(config), "utf8");
|
|
252
|
-
console.log(chalk.green("\n\u2705 Created .paradigm configuration"));
|
|
253
|
-
const premisePath = path.join(rootDir, ".premise");
|
|
254
|
-
if (!fs.existsSync(premisePath)) {
|
|
255
|
-
fs.writeFileSync(premisePath, getDefaultPremiseContent(projectName), "utf8");
|
|
256
|
-
console.log(chalk.green("\u2705 Created .premise file"));
|
|
257
|
-
}
|
|
258
|
-
const purposePath = path.join(rootDir, ".purpose");
|
|
259
|
-
if (!fs.existsSync(purposePath)) {
|
|
260
|
-
fs.writeFileSync(purposePath, getDefaultPurposeContent(), "utf8");
|
|
261
|
-
console.log(chalk.green("\u2705 Created .purpose file"));
|
|
262
|
-
}
|
|
263
|
-
const gatePath = path.join(rootDir, "portal.yaml");
|
|
264
|
-
if (answers.hasGates === "yes" && !fs.existsSync(gatePath)) {
|
|
265
|
-
const { getDefaultGateConfig } = await import("./dist-TA6LSC2Q.js");
|
|
266
|
-
fs.writeFileSync(gatePath, getDefaultGateConfig(), "utf8");
|
|
267
|
-
console.log(chalk.green("\u2705 Created portal.yaml"));
|
|
268
|
-
}
|
|
269
|
-
const cursorMode = answers.cursorMode || "skip";
|
|
270
|
-
if (cursorMode !== "skip") {
|
|
271
|
-
const result = writeCursorrules(rootDir, config, cursorMode, projectName);
|
|
272
|
-
if (result.success && result.path) {
|
|
273
|
-
console.log(chalk.green(`\u2705 ${result.message}`));
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
console.log(chalk.gray("\n\u2500".repeat(55)));
|
|
277
|
-
console.log(chalk.blue("\n\u{1F389} Paradigm setup complete!\n"));
|
|
278
|
-
console.log(chalk.white("Files created:"));
|
|
279
|
-
console.log(chalk.gray(" \u2022 .paradigm ") + chalk.white("AI guidelines, symbols, states"));
|
|
280
|
-
console.log(chalk.gray(" \u2022 .premise ") + chalk.white("Project overview & ideas"));
|
|
281
|
-
console.log(chalk.gray(" \u2022 .purpose ") + chalk.white("Root context & features"));
|
|
282
|
-
if (answers.hasGates === "yes") {
|
|
283
|
-
console.log(chalk.gray(" \u2022 portal.yaml ") + chalk.white("Authorization topology"));
|
|
284
|
-
}
|
|
285
|
-
if (cursorMode !== "skip") {
|
|
286
|
-
console.log(chalk.gray(" \u2022 .cursorrules ") + chalk.white("Cursor AI integration"));
|
|
287
|
-
}
|
|
288
|
-
console.log(chalk.white("\nNext steps:"));
|
|
289
|
-
console.log(chalk.gray(" 1. ") + "Review and customize " + chalk.cyan(".paradigm"));
|
|
290
|
-
console.log(chalk.gray(" 2. ") + "Edit " + chalk.cyan(".purpose") + " to define your project context");
|
|
291
|
-
console.log(chalk.gray(" 3. ") + "Run " + chalk.cyan("paradigm visualize") + " to open the Dreamscape");
|
|
292
|
-
console.log(chalk.gray(" 4. ") + "Run " + chalk.cyan("paradigm cursorrules") + " after changes to regenerate\n");
|
|
293
|
-
}
|
|
294
|
-
export {
|
|
295
|
-
setupCommand
|
|
296
|
-
};
|