@a-company/paradigm 5.11.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.
Files changed (408) hide show
  1. package/dist/accept-orchestration-IUAWQZUN.js +18 -0
  2. package/dist/add-P76GEMGF.js +8 -0
  3. package/dist/agent-UUTYOFTH.js +33 -0
  4. package/dist/agent-loader-EPXURMO7.js +2 -0
  5. package/dist/agent-loader-PYGPX6D2.js +2 -0
  6. package/dist/agent-state-KSQ3S7OB.js +2 -0
  7. package/dist/agents-suggest-HYTFMQD3.js +10 -0
  8. package/dist/aggregate-W66DM3GA.js +10 -0
  9. package/dist/ambient-HYZR42NX.js +35 -0
  10. package/dist/assess-UFPYEJKP.js +9 -0
  11. package/dist/auto-RHJXOZFL.js +14 -0
  12. package/dist/beacon-5QVYV5DF.js +13 -0
  13. package/dist/calibration-OLJYB5HN.js +7 -0
  14. package/dist/check-THVGY4R5.js +14 -0
  15. package/dist/chunk-22ISTMKI.js +31 -0
  16. package/dist/chunk-2QO33NYK.js +3 -0
  17. package/dist/chunk-33LKBMVK.js +134 -0
  18. package/dist/chunk-4QADCWPU.js +7 -0
  19. package/dist/chunk-4TXOVRWD.js +3 -0
  20. package/dist/chunk-4UJ4NIEQ.js +4 -0
  21. package/dist/chunk-4ZGGWZ32.js +3 -0
  22. package/dist/chunk-5TAVYPOV.js +2 -0
  23. package/dist/chunk-6EX37L4Q.js +8 -0
  24. package/dist/chunk-AD5TAD2A.js +5 -0
  25. package/dist/chunk-AGVAHVUA.js +2 -0
  26. package/dist/chunk-AO7ZSRME.js +13 -0
  27. package/dist/chunk-BFD3GFRK.js +2 -0
  28. package/dist/chunk-D34YFK4M.js +6 -0
  29. package/dist/chunk-DVZWCXB6.js +2 -0
  30. package/dist/chunk-EKZDFEJW.js +2 -0
  31. package/dist/chunk-ET5XJTSX.js +2 -0
  32. package/dist/chunk-FYDRENK7.js +3 -0
  33. package/dist/chunk-HMQ5BHP2.js +743 -0
  34. package/dist/chunk-HXKWL3VK.js +29 -0
  35. package/dist/chunk-IZSBGW6E.js +2 -0
  36. package/dist/chunk-J32OPJEX.js +2 -0
  37. package/dist/chunk-JBDMCRPP.js +7 -0
  38. package/dist/chunk-JIXHEBGK.js +7 -0
  39. package/dist/chunk-JNSJVCTU.js +2 -0
  40. package/dist/chunk-JQKKVAAN.js +2 -0
  41. package/dist/chunk-KLBH26PA.js +429 -0
  42. package/dist/chunk-L6K5HNDL.js +24 -0
  43. package/dist/chunk-LKAT7IAK.js +2 -0
  44. package/dist/chunk-M4UMM6DC.js +5 -0
  45. package/dist/chunk-NKYNHSA5.js +424 -0
  46. package/dist/chunk-NW6OKHE6.js +5 -0
  47. package/dist/chunk-NXRVR37G.js +60 -0
  48. package/dist/chunk-ODVKPZZ4.js +2 -0
  49. package/dist/chunk-PUBB7LIT.js +5 -0
  50. package/dist/chunk-Q2J542ST.js +2 -0
  51. package/dist/chunk-QGZRM6ZB.js +2 -0
  52. package/dist/chunk-QNZEG7IT.js +13 -0
  53. package/dist/chunk-QT2LKB3P.js +7 -0
  54. package/dist/chunk-RVRARWSY.js +9 -0
  55. package/dist/chunk-T6IDXUUA.js +2 -0
  56. package/dist/chunk-TYWB5IQJ.js +3 -0
  57. package/dist/chunk-UIKLE3WD.js +2 -0
  58. package/dist/chunk-V7K6CQVX.js +111 -0
  59. package/dist/chunk-VCKKJDLP.js +8 -0
  60. package/dist/chunk-VG7FN2TU.js +4 -0
  61. package/dist/chunk-W5IWDW4Y.js +16 -0
  62. package/dist/chunk-W7C6FFMO.js +8 -0
  63. package/dist/chunk-WESTEMIM.js +10 -0
  64. package/dist/chunk-WR6D3SC6.js +5 -0
  65. package/dist/chunk-WS2N27RX.js +3 -0
  66. package/dist/chunk-XMAV5AG6.js +2 -0
  67. package/dist/chunk-XROULIQN.js +2 -0
  68. package/dist/chunk-XUFYOXOU.js +3 -0
  69. package/dist/chunk-Y4XFVDZC.js +3 -0
  70. package/dist/chunk-Y6KXTQBG.js +2 -0
  71. package/dist/{chunk-GTR2TBIJ.js → chunk-Z2UZUCY6.js} +237 -1047
  72. package/dist/chunk-Z34K6GY2.js +8 -0
  73. package/dist/claude-4LR3LJQZ.js +13 -0
  74. package/dist/claude-cli-UP6HGH7C.js +6 -0
  75. package/dist/claude-code-RLJ4GX77.js +11 -0
  76. package/dist/claude-code-teams-R37HJY3Y.js +29 -0
  77. package/dist/commands-LMUD5L6R.js +455 -0
  78. package/dist/compliance-GZ7UAOG3.js +6 -0
  79. package/dist/conductor-Y5IXELTL.js +4 -0
  80. package/dist/config-schema-HR7LDEQ6.js +2 -0
  81. package/dist/constellation-CG7C4WFE.js +13 -0
  82. package/dist/context-audit-RSSRX6XC.js +6 -0
  83. package/dist/cost-IDNVMAEV.js +10 -0
  84. package/dist/cost-PK4KIF7R.js +2 -0
  85. package/dist/cursor-cli-QKF7Z6M2.js +4 -0
  86. package/dist/cursorrules-U5O4G5T4.js +14 -0
  87. package/dist/decision-loader-2XPZE4EZ.js +2 -0
  88. package/dist/delete-P5VULXR4.js +14 -0
  89. package/dist/diff-RTFUKJHF.js +9 -0
  90. package/dist/discipline-H7LDI6NT.js +2 -0
  91. package/dist/dist-3ZCH25SG.js +2 -0
  92. package/dist/dist-KGRCLBJP-2QAPFYNF.js +39 -0
  93. package/dist/dist-R3RWD35F.js +2 -0
  94. package/dist/dist-VGFSP3XM.js +2 -0
  95. package/dist/dist-VXCZWVVJ.js +2 -0
  96. package/dist/dist-W3XCATBJ.js +2 -0
  97. package/dist/docs-EDQ2STFK.js +2 -0
  98. package/dist/docs-RXPN6CK7.js +12 -0
  99. package/dist/doctor-2T2QL6VM.js +2 -0
  100. package/dist/drift-ILZE5BFJ.js +13 -0
  101. package/dist/echo-UPTQUEDU.js +46 -0
  102. package/dist/edit-GUU3HBVW.js +9 -0
  103. package/dist/event-Y3VXC2RV.js +3 -0
  104. package/dist/explain-files-3GPZUETV.js +4 -0
  105. package/dist/export-CV5KCTPS.js +2 -0
  106. package/dist/flow-S3RQ4YPY.js +11 -0
  107. package/dist/global-C44FW4G2.js +13 -0
  108. package/dist/graduate-3BBSC27A.js +5 -0
  109. package/dist/graph-CNDE5TAT.js +2 -0
  110. package/dist/graph-server-COZR5C3Z.js +14 -0
  111. package/dist/habits-4J2KRYUL.js +42 -0
  112. package/dist/history-UW454SDP.js +12 -0
  113. package/dist/hooks-XH52VGOU.js +2 -0
  114. package/dist/index.js +15 -1039
  115. package/dist/init-24MAQJFM.js +2 -0
  116. package/dist/integrity-UYDOOJDP.js +7 -0
  117. package/dist/integrity-checker-DHGMZQDG.js +2 -0
  118. package/dist/journal-loader-GLH7XFTK.js +2 -0
  119. package/dist/lint-IGKE6UPS.js +26 -0
  120. package/dist/list-5IUGP3ZB.js +7 -0
  121. package/dist/list-YKIQNKGB.js +6 -0
  122. package/dist/lore-loader-RVQI5GXL.js +2 -0
  123. package/dist/lore-loader-XY5MZRR2.js +2 -0
  124. package/dist/lore-server-FC2GMDLT.js +14 -0
  125. package/dist/manual-RXSPSFLL.js +20 -0
  126. package/dist/mcp.js +93 -20529
  127. package/dist/migrate-X5OMAFAQ.js +59 -0
  128. package/dist/migrate-assessments-GEI5WMI2.js +4 -0
  129. package/dist/model-discovery-HMB3YI4L.js +2 -0
  130. package/dist/nomination-engine-XF7TWPAP.js +2 -0
  131. package/dist/notebook-PE3JSYZI.js +11 -0
  132. package/dist/notebook-loader-CENTDDUJ.js +2 -0
  133. package/dist/orchestrate-35HBQ3O3.js +8 -0
  134. package/dist/peers-P2KXU7ZK.js +5 -0
  135. package/dist/persona-STQWZH5P.js +29 -0
  136. package/dist/pipeline-MZUITRVN.js +4 -0
  137. package/dist/platform-server-2KXHGHFV.js +25 -0
  138. package/dist/plugin-update-checker-M7PW434O.js +2 -0
  139. package/dist/portal-check-3JVNLOEP.js +8 -0
  140. package/dist/portal-compliance-2UG4VKWH.js +2 -0
  141. package/dist/probe-5L5BQDGE.js +6 -0
  142. package/dist/project-type-SURTOIG7.js +2 -0
  143. package/dist/promote-NJQDZBZA.js +8 -0
  144. package/dist/providers-4PXMWA7V.js +8 -0
  145. package/dist/quiz-FE5UGAY2.js +10 -0
  146. package/dist/record-YXPB34MY.js +6 -0
  147. package/dist/reindex-PGDQSM42.js +2 -0
  148. package/dist/remember-MJRNTXYS.js +14 -0
  149. package/dist/retag-N5XF3KXP.js +6 -0
  150. package/dist/review-6UAH6V3R.js +11 -0
  151. package/dist/review-77QI6VOC.js +6 -0
  152. package/dist/ripple-ZGDITCGB.js +10 -0
  153. package/dist/roster-FLRZ5J42.js +2 -0
  154. package/dist/sentinel-HYAZ3CO5.js +19 -0
  155. package/dist/sentinel-bridge-VR357PKL.js +2 -0
  156. package/dist/sentinel-mcp.js +38 -3808
  157. package/dist/sentinel.js +1 -34
  158. package/dist/serve-JE6UF5P2.js +8 -0
  159. package/dist/serve-L52ZUTU6.js +10 -0
  160. package/dist/serve-OY6XYL7F.js +12 -0
  161. package/dist/server-2MNROHF6.js +7 -0
  162. package/dist/server-4YNUIK4W.js +8 -0
  163. package/dist/session-tracker-SKOMBDOW.js +2 -0
  164. package/dist/session-work-log-3MNUDEZ6.js +2 -0
  165. package/dist/session-work-log-J2H5OZBR.js +2 -0
  166. package/dist/setup-3F5IK7MO.js +31 -0
  167. package/dist/setup-KPIMRZ4Q.js +2 -0
  168. package/dist/shift-6GCNH666.js +11 -0
  169. package/dist/show-BOAVWZPZ.js +7 -0
  170. package/dist/show-PJ5LFLIL.js +5 -0
  171. package/dist/snapshot-L2G56RPL.js +8 -0
  172. package/dist/spawn-UH5RENSE.js +12 -0
  173. package/dist/status-77M3SDIF.js +8 -0
  174. package/dist/status-A37ECYNJ.js +6 -0
  175. package/dist/summary-ZJLQ6KHB.js +7 -0
  176. package/dist/sweep-HU74OPVW.js +17 -0
  177. package/dist/switch-CTW4PDGI.js +17 -0
  178. package/dist/symphony-3QMBGCZY.js +2 -0
  179. package/dist/symphony-QI63XL62.js +53 -0
  180. package/dist/symphony-loader-XACVV2E3.js +2 -0
  181. package/dist/symphony-peers-U4KHMKGI.js +2 -0
  182. package/dist/symphony-peers-X5NGWXFP.js +2 -0
  183. package/dist/symphony-relay-5GY5JIPT.js +3 -0
  184. package/dist/sync-QRDSFETO.js +2 -0
  185. package/dist/sync-llms-HL5PPW3M.js +15 -0
  186. package/dist/task-loader-NZFDTUQ5.js +2 -0
  187. package/dist/team-WGERKGNP.js +2 -0
  188. package/dist/test-BQJMS4Y2.js +111 -0
  189. package/dist/thread-HFXK65D4.js +41 -0
  190. package/dist/timeline-K3ZFKJ3R.js +6 -0
  191. package/dist/triage-FCWOZASE.js +18 -0
  192. package/dist/tutorial-UC6YQMNN.js +305 -0
  193. package/dist/university-content/courses/.purpose +74 -5
  194. package/dist/university-content/plsat/.purpose +3 -2
  195. package/dist/university-ui/assets/{index-BjewBB6s.js → index-CGFJczb1.js} +2 -2
  196. package/dist/university-ui/assets/{index-BjewBB6s.js.map → index-CGFJczb1.js.map} +1 -1
  197. package/dist/university-ui/index.html +1 -1
  198. package/dist/upgrade-B4IOLZYK.js +53 -0
  199. package/dist/validate-C6SMKGYD.js +9 -0
  200. package/dist/validate-LSCDOLBO.js +13 -0
  201. package/dist/validate-VZXTJHGO.js +6 -0
  202. package/dist/watch-LRM5XD46.js +8 -0
  203. package/dist/watch-PZCCUP6K.js +9 -0
  204. package/dist/wisdom-XZ3QKPNP.js +7 -0
  205. package/dist/work-log-loader-DL5GZ2BQ.js +2 -0
  206. package/dist/workspace-2ODL5WLY.js +2 -0
  207. package/package.json +1 -1
  208. package/platform-ui/dist/assets/AmbientSection-DqQ2mfCO.js +1 -0
  209. package/platform-ui/dist/assets/{CanvasSection-DwPTRdIN.js → CanvasSection-DLW0s-Bu.js} +1 -1
  210. package/platform-ui/dist/assets/{DocsSection-BJc_ws4I.js → DocsSection-BQ9Hi51g.js} +1 -1
  211. package/platform-ui/dist/assets/{GitSection-DhqBo1xc.js → GitSection-QQeUX6o3.js} +1 -1
  212. package/platform-ui/dist/assets/{GraphSection-D9fhVnZ0.js → GraphSection-0c9C-w7K.js} +2 -2
  213. package/platform-ui/dist/assets/{GraphSection-BlgXTl53.css → GraphSection-Bbs2a8sC.css} +1 -1
  214. package/platform-ui/dist/assets/LoreSection--t56kCj2.js +1 -0
  215. package/platform-ui/dist/assets/LoreSection-qnmm3o4y.css +1 -0
  216. package/platform-ui/dist/assets/SentinelSection-C4OoME9U.js +1 -0
  217. package/platform-ui/dist/assets/{SymphonySection-BRoBaUSS.js → SymphonySection-B-rvsLxq.js} +1 -1
  218. package/platform-ui/dist/assets/TeamSection-CBFmNEEo.js +1 -0
  219. package/platform-ui/dist/assets/index-Bxp0TVaf.css +1 -0
  220. package/platform-ui/dist/assets/index-DPpOdAtC.js +57 -0
  221. package/platform-ui/dist/index.html +2 -2
  222. package/dist/accept-orchestration-UQLM7PTQ.js +0 -189
  223. package/dist/add-FZRKEGH4.js +0 -81
  224. package/dist/agent-WERIO2XV.js +0 -523
  225. package/dist/agent-loader-TFIANSF4.js +0 -44
  226. package/dist/agent-state-S5DAWPTF.js +0 -24
  227. package/dist/agents-suggest-DNSYJ6IA.js +0 -83
  228. package/dist/aggregate-H57K7PNV.js +0 -88
  229. package/dist/assess-4WVXZLZQ.js +0 -68
  230. package/dist/auto-QFS5NHQU.js +0 -504
  231. package/dist/beacon-KXZXYQHX.js +0 -251
  232. package/dist/calibration-V46G7JTY.js +0 -135
  233. package/dist/check-OWAIWV23.js +0 -175
  234. package/dist/chunk-2IO7JAG2.js +0 -148
  235. package/dist/chunk-2T6BTYBN.js +0 -712
  236. package/dist/chunk-36TKPM5Z.js +0 -400
  237. package/dist/chunk-45MUDW6E.js +0 -804
  238. package/dist/chunk-4BLYIB7J.js +0 -5701
  239. package/dist/chunk-4L3UTYQX.js +0 -677
  240. package/dist/chunk-4NCFWYGG.js +0 -110
  241. package/dist/chunk-54LTTQBH.js +0 -138
  242. package/dist/chunk-5EWAQHFY.js +0 -269
  243. package/dist/chunk-5JGJACDU.js +0 -37
  244. package/dist/chunk-5OUOLN6M.js +0 -659
  245. package/dist/chunk-5VKJBNJL.js +0 -444
  246. package/dist/chunk-6N3JTACN.js +0 -2260
  247. package/dist/chunk-6QC3YGB6.js +0 -114
  248. package/dist/chunk-7N7GSU6K.js +0 -34
  249. package/dist/chunk-ABVQGRF7.js +0 -268
  250. package/dist/chunk-CL7JSK52.js +0 -129
  251. package/dist/chunk-CSD7IHSN.js +0 -152
  252. package/dist/chunk-EDOAWN7J.js +0 -717
  253. package/dist/chunk-EKGMAM62.js +0 -525
  254. package/dist/chunk-EZ3GOCYC.js +0 -132
  255. package/dist/chunk-F3BCHPYT.js +0 -143
  256. package/dist/chunk-FKJUBQU3.js +0 -3081
  257. package/dist/chunk-GT5QGC2H.js +0 -253
  258. package/dist/chunk-GZDFVP2N.js +0 -540
  259. package/dist/chunk-IRKUEJVW.js +0 -405
  260. package/dist/chunk-J2JEQRT3.js +0 -164
  261. package/dist/chunk-JASGXLK3.js +0 -679
  262. package/dist/chunk-KVDYJLTC.js +0 -121
  263. package/dist/chunk-L27I3CPZ.js +0 -357
  264. package/dist/chunk-LHLIAYQ3.js +0 -185
  265. package/dist/chunk-MCMOGQMU.js +0 -145
  266. package/dist/chunk-NQKQG45G.js +0 -688
  267. package/dist/chunk-PBHIFAL4.js +0 -259
  268. package/dist/chunk-PDX44BCA.js +0 -11
  269. package/dist/chunk-PMXRGPRQ.js +0 -305
  270. package/dist/chunk-RAB5IKPR.js +0 -487
  271. package/dist/chunk-RJE5G7WO.js +0 -590
  272. package/dist/chunk-RTHA3XRE.js +0 -880
  273. package/dist/chunk-S2HO5MLR.js +0 -621
  274. package/dist/chunk-S3ORKP3V.js +0 -716
  275. package/dist/chunk-TAIJOFOE.js +0 -124
  276. package/dist/chunk-TXESEO7Y.js +0 -245
  277. package/dist/chunk-UPLDI7CN.js +0 -1334
  278. package/dist/chunk-VL67H5IC.js +0 -506
  279. package/dist/chunk-VPPK3SY4.js +0 -1136
  280. package/dist/chunk-YMDLDELF.js +0 -314
  281. package/dist/chunk-YO6DVTL7.js +0 -99
  282. package/dist/chunk-YRZ5RPEB.js +0 -1561
  283. package/dist/chunk-ZDHLG5VP.js +0 -5676
  284. package/dist/chunk-ZGUAAVMA.js +0 -756
  285. package/dist/chunk-ZSYVKSY6.js +0 -2602
  286. package/dist/claude-FRRWJSTJ.js +0 -362
  287. package/dist/claude-cli-XJLK2X4L.js +0 -276
  288. package/dist/claude-code-HTBA4XRB.js +0 -126
  289. package/dist/claude-code-teams-T4SP24MD.js +0 -199
  290. package/dist/commands-5N4ILTPH.js +0 -5859
  291. package/dist/conductor-CQVGTEQN.js +0 -161
  292. package/dist/config-schema-EA4XALGG.js +0 -154
  293. package/dist/constellation-A26CCGQS.js +0 -225
  294. package/dist/context-audit-RLO3ETRP.js +0 -682
  295. package/dist/cost-BGM32XJU.js +0 -93
  296. package/dist/cost-VI46A4XL.js +0 -174
  297. package/dist/cursor-cli-JVEZGHWQ.js +0 -269
  298. package/dist/cursorrules-HLIKJJZT.js +0 -84
  299. package/dist/decision-loader-WWCLIQPJ.js +0 -20
  300. package/dist/delete-KBRPQLPC.js +0 -56
  301. package/dist/diff-D4X53HAC.js +0 -126
  302. package/dist/discipline-FA4OZXIS.js +0 -24
  303. package/dist/dist-34NA5RS5.js +0 -74
  304. package/dist/dist-5QE2BB2B-5S3T6Y3T.js +0 -6919
  305. package/dist/dist-77JDTVAY.js +0 -62
  306. package/dist/dist-OGTSAZ55.js +0 -1358
  307. package/dist/dist-QK4SQAK7.js +0 -64
  308. package/dist/dist-TA6LSC2Q.js +0 -20
  309. package/dist/docs-PBZB7LYP.js +0 -89
  310. package/dist/docs-QIYKO3BR.js +0 -155
  311. package/dist/doctor-ULBOHEIC.js +0 -11
  312. package/dist/drift-R5NRKFHI.js +0 -251
  313. package/dist/echo-O2LY7CC2.js +0 -248
  314. package/dist/edit-R2HNLMOG.js +0 -63
  315. package/dist/event-25OJKDCE.js +0 -31
  316. package/dist/export-IWVL7XLF.js +0 -38
  317. package/dist/flow-CRRVV3O3.js +0 -185
  318. package/dist/global-3NG5JXUB.js +0 -136
  319. package/dist/graduate-USAWGBJM.js +0 -160
  320. package/dist/graph-VHUMAAS6.js +0 -12
  321. package/dist/graph-server-YL22VBBN.js +0 -116
  322. package/dist/habits-OL5NGPXO.js +0 -1405
  323. package/dist/history-WOWC573W.js +0 -277
  324. package/dist/hooks-HFWSCGPV.js +0 -12
  325. package/dist/integrity-IHO4FZTS.js +0 -194
  326. package/dist/integrity-checker-PSKJA5SB.js +0 -12
  327. package/dist/journal-loader-5EYSBFFY.js +0 -18
  328. package/dist/lint-K6CJGGPH.js +0 -456
  329. package/dist/list-4YK7QKFF.js +0 -57
  330. package/dist/list-ENR7Q4CR.js +0 -56
  331. package/dist/lore-loader-7NO6N6FT.js +0 -26
  332. package/dist/lore-server-UNJY5KC3.js +0 -118
  333. package/dist/manual-G6FISID5.js +0 -204
  334. package/dist/migrate-LS45DNEV.js +0 -889
  335. package/dist/migrate-assessments-RGH4O6IX.js +0 -97
  336. package/dist/model-discovery-D2H3VBGC.js +0 -8
  337. package/dist/nomination-engine-RV5CNO5B.js +0 -42
  338. package/dist/notebook-YWIYGEHV.js +0 -155
  339. package/dist/orchestrate-JLILBBJE.js +0 -324
  340. package/dist/peers-DEOUIZM6.js +0 -82
  341. package/dist/persona-UHAHIVST.js +0 -390
  342. package/dist/pipeline-L4HCSBGN.js +0 -263
  343. package/dist/platform-server-H5YO3DQD.js +0 -1475
  344. package/dist/plugin-update-checker-KRRSGXMV.js +0 -12
  345. package/dist/portal-check-NPYGII2D.js +0 -42
  346. package/dist/portal-compliance-J7DGAPFX.js +0 -18
  347. package/dist/probe-MHL5HQZ2.js +0 -167
  348. package/dist/promote-F6ZYZZAL.js +0 -182
  349. package/dist/providers-GK7PB2OL.js +0 -104
  350. package/dist/quiz-M66SC7F7.js +0 -99
  351. package/dist/record-RA4WR2BO.js +0 -49
  352. package/dist/reindex-5LTD53ZC.js +0 -16
  353. package/dist/remember-HBWJ655S.js +0 -77
  354. package/dist/retag-3OLCVDEQ.js +0 -62
  355. package/dist/review-27ATYTD2.js +0 -33
  356. package/dist/review-57QMURZV.js +0 -334
  357. package/dist/ripple-JPBXP5I3.js +0 -215
  358. package/dist/sentinel-4XIG4STA.js +0 -63
  359. package/dist/sentinel-bridge-MDUXTQRL.js +0 -109
  360. package/dist/serve-CAH3PHE7.js +0 -33
  361. package/dist/serve-INL7SNBK.js +0 -36
  362. package/dist/serve-KBSE36PL.js +0 -49
  363. package/dist/server-54SKYFFY.js +0 -1647
  364. package/dist/server-XUOIO7E6.js +0 -338
  365. package/dist/session-tracker-C4BMD5WG.js +0 -13
  366. package/dist/session-work-log-MZ47OAPB.js +0 -20
  367. package/dist/setup-EDS27WUR.js +0 -25
  368. package/dist/setup-KO5AFC4K.js +0 -296
  369. package/dist/shift-D2JOHHBF.js +0 -668
  370. package/dist/show-5PV5KFJE.js +0 -176
  371. package/dist/show-NQKYX6WQ.js +0 -82
  372. package/dist/snapshot-BK4RBPCG.js +0 -62
  373. package/dist/spawn-RCHNXDHE.js +0 -196
  374. package/dist/status-WGIAQODY.js +0 -71
  375. package/dist/summary-NIRABMF5.js +0 -140
  376. package/dist/sweep-QMHNSIY5.js +0 -934
  377. package/dist/switch-6EJPZDIA.js +0 -232
  378. package/dist/symphony-4OCY36AI.js +0 -791
  379. package/dist/symphony-B75X2MME.js +0 -326
  380. package/dist/symphony-loader-UZGON56V.js +0 -90
  381. package/dist/symphony-peers-2ZQYLRNI.js +0 -34
  382. package/dist/symphony-peers-OL7F6M5S.js +0 -121
  383. package/dist/symphony-relay-UJYUXN65.js +0 -710
  384. package/dist/sync-VEHUH4OA.js +0 -11
  385. package/dist/sync-llms-YHCFIE6X.js +0 -166
  386. package/dist/task-loader-LDYWQSLM.js +0 -20
  387. package/dist/team-O5MIIFMA.js +0 -34
  388. package/dist/test-566CP5KC.js +0 -1017
  389. package/dist/thread-N754I4D5.js +0 -274
  390. package/dist/timeline-M3CICQFE.js +0 -112
  391. package/dist/triage-HHYGT3HY.js +0 -671
  392. package/dist/tutorial-KD22SUNO.js +0 -666
  393. package/dist/upgrade-H5PF32BW.js +0 -551
  394. package/dist/validate-CNKEKO6A.js +0 -134
  395. package/dist/validate-MB5ULIHS.js +0 -39
  396. package/dist/validate-QH3LADM6.js +0 -64
  397. package/dist/watch-2TKP5PVL.js +0 -199
  398. package/dist/watch-ZF4ML6CD.js +0 -111
  399. package/dist/wisdom-AATMGNFA.js +0 -319
  400. package/dist/work-log-loader-5L45XNYZ.js +0 -14
  401. package/dist/workspace-6E6OSRNU.js +0 -21
  402. package/platform-ui/dist/assets/AmbientSection-WtHfNedO.js +0 -1
  403. package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +0 -1
  404. package/platform-ui/dist/assets/LoreSection-CwDDHrz9.js +0 -1
  405. package/platform-ui/dist/assets/SentinelSection-Cl7e5oZ6.js +0 -1
  406. package/platform-ui/dist/assets/TeamSection-CqSIMrKz.js +0 -1
  407. package/platform-ui/dist/assets/index-CfpZFjea.css +0 -1
  408. package/platform-ui/dist/assets/index-F0KL9xrN.js +0 -57
@@ -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
- };
@@ -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
- };
@@ -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
- };