@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.
Files changed (409) 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 -20484
  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/courses/para-701.json +807 -0
  195. package/dist/university-content/plsat/.purpose +3 -2
  196. package/dist/university-ui/assets/{index-BjewBB6s.js → index-CGFJczb1.js} +2 -2
  197. package/dist/university-ui/assets/{index-BjewBB6s.js.map → index-CGFJczb1.js.map} +1 -1
  198. package/dist/university-ui/index.html +1 -1
  199. package/dist/upgrade-B4IOLZYK.js +53 -0
  200. package/dist/validate-C6SMKGYD.js +9 -0
  201. package/dist/validate-LSCDOLBO.js +13 -0
  202. package/dist/validate-VZXTJHGO.js +6 -0
  203. package/dist/watch-LRM5XD46.js +8 -0
  204. package/dist/watch-PZCCUP6K.js +9 -0
  205. package/dist/wisdom-XZ3QKPNP.js +7 -0
  206. package/dist/work-log-loader-DL5GZ2BQ.js +2 -0
  207. package/dist/workspace-2ODL5WLY.js +2 -0
  208. package/package.json +1 -1
  209. package/platform-ui/dist/assets/AmbientSection-DqQ2mfCO.js +1 -0
  210. package/platform-ui/dist/assets/{CanvasSection-DwPTRdIN.js → CanvasSection-DLW0s-Bu.js} +1 -1
  211. package/platform-ui/dist/assets/{DocsSection-BJc_ws4I.js → DocsSection-BQ9Hi51g.js} +1 -1
  212. package/platform-ui/dist/assets/{GitSection-DhqBo1xc.js → GitSection-QQeUX6o3.js} +1 -1
  213. package/platform-ui/dist/assets/{GraphSection-D9fhVnZ0.js → GraphSection-0c9C-w7K.js} +2 -2
  214. package/platform-ui/dist/assets/{GraphSection-BlgXTl53.css → GraphSection-Bbs2a8sC.css} +1 -1
  215. package/platform-ui/dist/assets/LoreSection--t56kCj2.js +1 -0
  216. package/platform-ui/dist/assets/LoreSection-qnmm3o4y.css +1 -0
  217. package/platform-ui/dist/assets/SentinelSection-C4OoME9U.js +1 -0
  218. package/platform-ui/dist/assets/{SymphonySection-BRoBaUSS.js → SymphonySection-B-rvsLxq.js} +1 -1
  219. package/platform-ui/dist/assets/TeamSection-CBFmNEEo.js +1 -0
  220. package/platform-ui/dist/assets/index-Bxp0TVaf.css +1 -0
  221. package/platform-ui/dist/assets/index-DPpOdAtC.js +57 -0
  222. package/platform-ui/dist/index.html +2 -2
  223. package/dist/accept-orchestration-UQLM7PTQ.js +0 -189
  224. package/dist/add-FZRKEGH4.js +0 -81
  225. package/dist/agent-WERIO2XV.js +0 -523
  226. package/dist/agent-loader-TFIANSF4.js +0 -44
  227. package/dist/agent-state-S5DAWPTF.js +0 -24
  228. package/dist/agents-suggest-DNSYJ6IA.js +0 -83
  229. package/dist/aggregate-H57K7PNV.js +0 -88
  230. package/dist/assess-4WVXZLZQ.js +0 -68
  231. package/dist/auto-QFS5NHQU.js +0 -504
  232. package/dist/beacon-KXZXYQHX.js +0 -251
  233. package/dist/calibration-V46G7JTY.js +0 -135
  234. package/dist/check-OWAIWV23.js +0 -175
  235. package/dist/chunk-2IO7JAG2.js +0 -148
  236. package/dist/chunk-2T6BTYBN.js +0 -712
  237. package/dist/chunk-36TKPM5Z.js +0 -400
  238. package/dist/chunk-45MUDW6E.js +0 -804
  239. package/dist/chunk-4BLYIB7J.js +0 -5701
  240. package/dist/chunk-4L3UTYQX.js +0 -677
  241. package/dist/chunk-4NCFWYGG.js +0 -110
  242. package/dist/chunk-54LTTQBH.js +0 -138
  243. package/dist/chunk-5EWAQHFY.js +0 -269
  244. package/dist/chunk-5JGJACDU.js +0 -37
  245. package/dist/chunk-5OUOLN6M.js +0 -659
  246. package/dist/chunk-5VKJBNJL.js +0 -444
  247. package/dist/chunk-6N3JTACN.js +0 -2260
  248. package/dist/chunk-6QC3YGB6.js +0 -114
  249. package/dist/chunk-7N7GSU6K.js +0 -34
  250. package/dist/chunk-ABVQGRF7.js +0 -268
  251. package/dist/chunk-CL7JSK52.js +0 -129
  252. package/dist/chunk-CSD7IHSN.js +0 -152
  253. package/dist/chunk-EDOAWN7J.js +0 -717
  254. package/dist/chunk-EKGMAM62.js +0 -525
  255. package/dist/chunk-EZ3GOCYC.js +0 -132
  256. package/dist/chunk-F3BCHPYT.js +0 -143
  257. package/dist/chunk-FKJUBQU3.js +0 -3081
  258. package/dist/chunk-GT5QGC2H.js +0 -253
  259. package/dist/chunk-GZDFVP2N.js +0 -540
  260. package/dist/chunk-IRKUEJVW.js +0 -405
  261. package/dist/chunk-J2JEQRT3.js +0 -164
  262. package/dist/chunk-JASGXLK3.js +0 -679
  263. package/dist/chunk-KVDYJLTC.js +0 -121
  264. package/dist/chunk-L27I3CPZ.js +0 -357
  265. package/dist/chunk-LHLIAYQ3.js +0 -185
  266. package/dist/chunk-MCMOGQMU.js +0 -145
  267. package/dist/chunk-NQKQG45G.js +0 -688
  268. package/dist/chunk-PBHIFAL4.js +0 -259
  269. package/dist/chunk-PDX44BCA.js +0 -11
  270. package/dist/chunk-PMXRGPRQ.js +0 -305
  271. package/dist/chunk-RAB5IKPR.js +0 -487
  272. package/dist/chunk-RJE5G7WO.js +0 -590
  273. package/dist/chunk-RTHA3XRE.js +0 -880
  274. package/dist/chunk-S2HO5MLR.js +0 -621
  275. package/dist/chunk-S3ORKP3V.js +0 -716
  276. package/dist/chunk-TAIJOFOE.js +0 -124
  277. package/dist/chunk-TXESEO7Y.js +0 -245
  278. package/dist/chunk-UPLDI7CN.js +0 -1334
  279. package/dist/chunk-VL67H5IC.js +0 -506
  280. package/dist/chunk-VPPK3SY4.js +0 -1136
  281. package/dist/chunk-YMDLDELF.js +0 -314
  282. package/dist/chunk-YO6DVTL7.js +0 -99
  283. package/dist/chunk-YRZ5RPEB.js +0 -1561
  284. package/dist/chunk-ZDHLG5VP.js +0 -5676
  285. package/dist/chunk-ZGUAAVMA.js +0 -756
  286. package/dist/chunk-ZSYVKSY6.js +0 -2602
  287. package/dist/claude-FRRWJSTJ.js +0 -362
  288. package/dist/claude-cli-XJLK2X4L.js +0 -276
  289. package/dist/claude-code-HTBA4XRB.js +0 -126
  290. package/dist/claude-code-teams-T4SP24MD.js +0 -199
  291. package/dist/commands-5N4ILTPH.js +0 -5859
  292. package/dist/conductor-CQVGTEQN.js +0 -161
  293. package/dist/config-schema-EA4XALGG.js +0 -154
  294. package/dist/constellation-A26CCGQS.js +0 -225
  295. package/dist/context-audit-RLO3ETRP.js +0 -682
  296. package/dist/cost-BGM32XJU.js +0 -93
  297. package/dist/cost-VI46A4XL.js +0 -174
  298. package/dist/cursor-cli-JVEZGHWQ.js +0 -269
  299. package/dist/cursorrules-HLIKJJZT.js +0 -84
  300. package/dist/decision-loader-WWCLIQPJ.js +0 -20
  301. package/dist/delete-KBRPQLPC.js +0 -56
  302. package/dist/diff-D4X53HAC.js +0 -126
  303. package/dist/discipline-FA4OZXIS.js +0 -24
  304. package/dist/dist-34NA5RS5.js +0 -74
  305. package/dist/dist-5QE2BB2B-5S3T6Y3T.js +0 -6919
  306. package/dist/dist-77JDTVAY.js +0 -62
  307. package/dist/dist-OGTSAZ55.js +0 -1358
  308. package/dist/dist-QK4SQAK7.js +0 -64
  309. package/dist/dist-TA6LSC2Q.js +0 -20
  310. package/dist/docs-PBZB7LYP.js +0 -89
  311. package/dist/docs-QIYKO3BR.js +0 -155
  312. package/dist/doctor-ULBOHEIC.js +0 -11
  313. package/dist/drift-R5NRKFHI.js +0 -251
  314. package/dist/echo-O2LY7CC2.js +0 -248
  315. package/dist/edit-R2HNLMOG.js +0 -63
  316. package/dist/event-25OJKDCE.js +0 -31
  317. package/dist/export-IWVL7XLF.js +0 -38
  318. package/dist/flow-CRRVV3O3.js +0 -185
  319. package/dist/global-3NG5JXUB.js +0 -136
  320. package/dist/graduate-USAWGBJM.js +0 -160
  321. package/dist/graph-VHUMAAS6.js +0 -12
  322. package/dist/graph-server-YL22VBBN.js +0 -116
  323. package/dist/habits-OL5NGPXO.js +0 -1405
  324. package/dist/history-WOWC573W.js +0 -277
  325. package/dist/hooks-HFWSCGPV.js +0 -12
  326. package/dist/integrity-IHO4FZTS.js +0 -194
  327. package/dist/integrity-checker-PSKJA5SB.js +0 -12
  328. package/dist/journal-loader-5EYSBFFY.js +0 -18
  329. package/dist/lint-K6CJGGPH.js +0 -456
  330. package/dist/list-4YK7QKFF.js +0 -57
  331. package/dist/list-ENR7Q4CR.js +0 -56
  332. package/dist/lore-loader-7NO6N6FT.js +0 -26
  333. package/dist/lore-server-UNJY5KC3.js +0 -118
  334. package/dist/manual-G6FISID5.js +0 -204
  335. package/dist/migrate-LS45DNEV.js +0 -889
  336. package/dist/migrate-assessments-RGH4O6IX.js +0 -97
  337. package/dist/model-discovery-D2H3VBGC.js +0 -8
  338. package/dist/nomination-engine-RV5CNO5B.js +0 -42
  339. package/dist/notebook-YWIYGEHV.js +0 -155
  340. package/dist/orchestrate-JLILBBJE.js +0 -324
  341. package/dist/peers-DEOUIZM6.js +0 -82
  342. package/dist/persona-UHAHIVST.js +0 -390
  343. package/dist/pipeline-L4HCSBGN.js +0 -263
  344. package/dist/platform-server-H5YO3DQD.js +0 -1475
  345. package/dist/plugin-update-checker-KRRSGXMV.js +0 -12
  346. package/dist/portal-check-NPYGII2D.js +0 -42
  347. package/dist/portal-compliance-J7DGAPFX.js +0 -18
  348. package/dist/probe-MHL5HQZ2.js +0 -167
  349. package/dist/promote-F6ZYZZAL.js +0 -182
  350. package/dist/providers-GK7PB2OL.js +0 -104
  351. package/dist/quiz-M66SC7F7.js +0 -99
  352. package/dist/record-RA4WR2BO.js +0 -49
  353. package/dist/reindex-5LTD53ZC.js +0 -16
  354. package/dist/remember-HBWJ655S.js +0 -77
  355. package/dist/retag-3OLCVDEQ.js +0 -62
  356. package/dist/review-27ATYTD2.js +0 -33
  357. package/dist/review-57QMURZV.js +0 -334
  358. package/dist/ripple-JPBXP5I3.js +0 -215
  359. package/dist/sentinel-4XIG4STA.js +0 -63
  360. package/dist/sentinel-bridge-MDUXTQRL.js +0 -109
  361. package/dist/serve-CAH3PHE7.js +0 -33
  362. package/dist/serve-INL7SNBK.js +0 -36
  363. package/dist/serve-KBSE36PL.js +0 -49
  364. package/dist/server-54SKYFFY.js +0 -1647
  365. package/dist/server-XUOIO7E6.js +0 -338
  366. package/dist/session-tracker-C4BMD5WG.js +0 -13
  367. package/dist/session-work-log-MZ47OAPB.js +0 -20
  368. package/dist/setup-EDS27WUR.js +0 -25
  369. package/dist/setup-KO5AFC4K.js +0 -296
  370. package/dist/shift-D2JOHHBF.js +0 -668
  371. package/dist/show-5PV5KFJE.js +0 -176
  372. package/dist/show-NQKYX6WQ.js +0 -82
  373. package/dist/snapshot-BK4RBPCG.js +0 -62
  374. package/dist/spawn-RCHNXDHE.js +0 -196
  375. package/dist/status-WGIAQODY.js +0 -71
  376. package/dist/summary-NIRABMF5.js +0 -140
  377. package/dist/sweep-QMHNSIY5.js +0 -934
  378. package/dist/switch-6EJPZDIA.js +0 -232
  379. package/dist/symphony-4OCY36AI.js +0 -791
  380. package/dist/symphony-B75X2MME.js +0 -326
  381. package/dist/symphony-loader-UZGON56V.js +0 -90
  382. package/dist/symphony-peers-2ZQYLRNI.js +0 -34
  383. package/dist/symphony-peers-OL7F6M5S.js +0 -121
  384. package/dist/symphony-relay-UJYUXN65.js +0 -710
  385. package/dist/sync-VEHUH4OA.js +0 -11
  386. package/dist/sync-llms-YHCFIE6X.js +0 -166
  387. package/dist/task-loader-LDYWQSLM.js +0 -20
  388. package/dist/team-O5MIIFMA.js +0 -34
  389. package/dist/test-566CP5KC.js +0 -1017
  390. package/dist/thread-N754I4D5.js +0 -274
  391. package/dist/timeline-M3CICQFE.js +0 -112
  392. package/dist/triage-HHYGT3HY.js +0 -671
  393. package/dist/tutorial-KD22SUNO.js +0 -666
  394. package/dist/upgrade-H5PF32BW.js +0 -551
  395. package/dist/validate-CNKEKO6A.js +0 -134
  396. package/dist/validate-MB5ULIHS.js +0 -39
  397. package/dist/validate-QH3LADM6.js +0 -64
  398. package/dist/watch-2TKP5PVL.js +0 -199
  399. package/dist/watch-ZF4ML6CD.js +0 -111
  400. package/dist/wisdom-AATMGNFA.js +0 -319
  401. package/dist/work-log-loader-5L45XNYZ.js +0 -14
  402. package/dist/workspace-6E6OSRNU.js +0 -21
  403. package/platform-ui/dist/assets/AmbientSection-WtHfNedO.js +0 -1
  404. package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +0 -1
  405. package/platform-ui/dist/assets/LoreSection-CwDDHrz9.js +0 -1
  406. package/platform-ui/dist/assets/SentinelSection-Cl7e5oZ6.js +0 -1
  407. package/platform-ui/dist/assets/TeamSection-CqSIMrKz.js +0 -1
  408. package/platform-ui/dist/assets/index-CfpZFjea.css +0 -1
  409. 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
- };