@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
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env node
2
+ import {b}from'./chunk-L6K5HNDL.js';import {e,f,c,d,l,h,g,k,i,m as m$1,o,n,j,b as b$1,a as a$1}from'./chunk-AO7ZSRME.js';import {a}from'./chunk-Y4XFVDZC.js';import*as $ from'fs';import*as m from'path';import e$1 from'chalk';import E from'prompts';function F(){return process.env.CLAUDE_CODE==="1"||process.env.TERM_PROGRAM==="claude"?false:!!(process.env.TERM_PROGRAM==="cursor"||process.env.CURSOR_SESSION||process.env.CURSOR_TRACE_ID||process.env.VSCODE_CWD&&process.env.VSCODE_CWD.toLowerCase().includes("cursor")||process.env.VSCODE_NLS_CONFIG&&process.env.VSCODE_NLS_CONFIG.toLowerCase().includes("cursor")||process.env.TERM_PROGRAM==="vscode"&&process.env.VSCODE_GIT_ASKPASS_NODE?.toLowerCase().includes("cursor")||process.stdin.isTTY)}async function T(g){let n=new a(g),c=await n.discover();console.log(e$1.cyan(`
3
+ Configure Agent Models
4
+ `)),console.log(e$1.gray(` Environment: ${c.source}`)),console.log(e$1.gray(` Available: ${c.models.length} models
5
+ `));let i={},o=n.groupByTier(c.models),a$2=t=>{let r=a$1[t],s=r.tier==="high"?o.high:r.tier==="medium"?o.medium:o.low,l=[];for(let f of s){let P=l.length===0;l.push({title:P?`${f.name} (recommended)`:f.name,value:f.id,description:`${f.provider} - ${r.tier} tier`});}let u=o.high.filter(f=>!s.includes(f)),y=o.medium.filter(f=>!s.includes(f)),v=o.low.filter(f=>!s.includes(f));for(let f of u)l.push({title:f.name,value:f.id,description:`${f.provider} - high tier`});for(let f of y)l.push({title:f.name,value:f.id,description:`${f.provider} - medium tier`});for(let f of v)l.push({title:f.name,value:f.id,description:`${f.provider} - low tier`});return l};for(let t of ["architect","builder","tester","reviewer","security"]){let r=a$1[t],s=t.charAt(0).toUpperCase()+t.slice(1),l=a$2(t),u=await E({type:"select",name:"model",message:`${s} (${r.description})`,choices:l,initial:0},{onCancel:()=>{console.log(e$1.yellow(`
6
+ Cancelled. Using defaults.
7
+ `)),process.exit(0);}});i[t]={id:u.model},console.log(e$1.green(` \u2713 ${s}: ${u.model}
8
+ `));}return i}async function U(g,n){let c=g?m.resolve(g):process.cwd(),i=e(c),o=new a(c);n.refresh&&o.clearCache();let a$1=await o.discover();if(n.json){let r={};if(i?.agents)for(let[s,l]of Object.entries(i.agents))r[s]=l.defaultModel||"default";console.log(JSON.stringify({environment:a$1.source,cached:a$1.cached,agents:r,available:a$1.models},null,2));return}if(console.log(e$1.cyan(`
9
+ Agent Model Configuration
10
+ `)),console.log(e$1.gray(` Environment: ${a$1.source}${a$1.cached?" (cached)":""}`)),console.log(e$1.gray(` Available models: ${a$1.models.length}
11
+ `)),console.log(" Current assignments:"),console.log(e$1.gray(" \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log(e$1.gray(" \u2502 Agent \u2502 Model \u2502")),console.log(e$1.gray(" \u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524")),i?.agents)for(let[r,s]of Object.entries(i.agents)){let l=s.defaultModel||"default",u=r.padEnd(11),y=l.padEnd(21);console.log(e$1.gray(" \u2502 ")+e$1.white(u)+e$1.gray(" \u2502 ")+e$1.yellow(y)+e$1.gray(" \u2502"));}else console.log(e$1.gray(" \u2502 (no agents configured) \u2502"));console.log(e$1.gray(` \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
12
+ `));let t=o.groupByTier(a$1.models);if(console.log(e$1.cyan(` Available models by tier:
13
+ `)),t.high.length>0){console.log(e$1.yellow(" High (complex reasoning):"));for(let r of t.high.slice(0,5))console.log(e$1.gray(` - ${r.name} (${r.provider})`));t.high.length>5&&console.log(e$1.gray(` ... and ${t.high.length-5} more`)),console.log();}if(t.medium.length>0){console.log(e$1.blue(" Medium (balanced):"));for(let r of t.medium.slice(0,5))console.log(e$1.gray(` - ${r.name} (${r.provider})`));t.medium.length>5&&console.log(e$1.gray(` ... and ${t.medium.length-5} more`)),console.log();}if(t.low.length>0){console.log(e$1.green(" Low (fast & cheap):"));for(let r of t.low.slice(0,5))console.log(e$1.gray(` - ${r.name} (${r.provider})`));t.low.length>5&&console.log(e$1.gray(` ... and ${t.low.length-5} more`)),console.log();}if(process.stdin.isTTY&&!n.json){console.log(e$1.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));let{action:r}=await E({type:"select",name:"action",message:"What would you like to do?",choices:[{title:"Reconfigure all models",value:"all"},{title:"Exit",value:"exit"}],initial:1});if(r==="all"&&i){let s=await T(c);for(let[l,u]of Object.entries(s))i.agents[l]&&(i.agents[l].defaultModel=I(u.id));f(c,i),console.log(e$1.green(`
14
+ \u2713 Model configuration updated.
15
+ `));}}}function I(g){let n=g.toLowerCase();return n.includes("opus")||n.includes("gpt-4")&&!n.includes("mini")&&!n.includes("nano")||n==="o3"||n.includes("o3")&&!n.includes("mini")||n.includes("o1")&&!n.includes("mini")||n.includes("-pro")&&!n.includes("mini")||n.includes("large")||n.includes("maverick")||n.includes("deepseek-r1")||n.includes("grok-3")&&!n.includes("mini")||n.includes("grok-2")&&!n.includes("mini")?"opus":n.includes("haiku")||n.includes("mini")||n.includes("nano")||n.includes("flash")||n.includes("scout")||n.includes("small")?"haiku":"sonnet"}async function oe(g,n){let c$1=g?m.resolve(g):process.cwd(),i=m.basename(c$1),o=c(c$1);if(n.json||console.log(e$1.blue(`
16
+ Initialize Paradigm Team
17
+ `)),d(c$1)&&!n.force){n.json?console.log(JSON.stringify({error:"Team already configured",path:o})):(console.log(e$1.yellow(` Team already configured at ${o}`)),console.log(e$1.gray(` Use --force to reinitialize.
18
+ `)));return}let a;if((n.configureModels||F()&&n.noConfigureModels!==true)&&!n.json)try{a=await T(c$1);}catch{}let r=l(i,a);if(f(c$1,r),h(c$1,{current:null,queue:[],recent:[],blocked:[]}),n.json){let l={};for(let[u,y]of Object.entries(r.agents))l[u]=y.defaultModel||"default";console.log(JSON.stringify({success:true,path:o,agents:Object.keys(r.agents),models:l}));return}console.log(e$1.green(` \u2713 Team configuration created
19
+ `)),console.log(e$1.gray(` ${o}
20
+ `)),console.log(e$1.cyan(" Available agents:"));for(let[l,u]of Object.entries(r.agents)){let y=u.defaultModel||"default";console.log(` ${e$1.yellow(l.padEnd(12))} ${e$1.gray(`(${y})`)} ${u.role.split(`
21
+ `)[0]}`);}console.log(e$1.cyan(`
22
+ Next steps:`)),console.log(e$1.gray(" 1. Review .paradigm/agents.yaml and customize roles")),console.log(e$1.gray(" 2. Run `paradigm team models` to reconfigure models")),console.log(e$1.gray(" 3. Run `paradigm team status` to see team state")),console.log(e$1.gray(" 4. Use `paradigm team handoff --to <agent>` to hand off work\n"));}async function ne(g$1,n){let c=g$1?m.resolve(g$1):process.cwd();if(n.id)return L(c,n.id,n);if(n.running)return B(c,n);let i=e(c);if(!i){n.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let o=g(c),a=k(c),r=new b(c).getRunning();if(n.json){console.log(JSON.stringify({team:i.team,agents:Object.keys(i.agents),current:o.current,queue:o.queue,pending_handoffs:a.length,running_orchestrations:r.length,recent:o.recent.slice(0,5)},null,2));return}if(console.log(e$1.blue(`
23
+ \u{1F465} Paradigm Team Status
24
+ `)),console.log(e$1.gray("\u2500".repeat(50))),console.log(e$1.white(`Team: ${i.team.name}`)),console.log(e$1.gray(`Agents: ${Object.keys(i.agents).join(", ")}`)),console.log(),r.length>0){console.log(e$1.cyan("Running Orchestrations:"));for(let s of r){let l=s.started?Math.floor((Date.now()-new Date(s.started).getTime())/6e4):0;console.log(` ${e$1.yellow("\u25B6")} ${s.id}`),console.log(e$1.gray(` ${s.task.slice(0,40)}${s.task.length>40?"...":""}`)),console.log(e$1.gray(` Running for ${l}m | Mode: ${s.mode}`));}console.log(e$1.gray("\n Use --running to see details, or `tail -f <output_file>` for logs")),console.log();}if(o.current){let s=Date.now()-new Date(o.current.started).getTime(),l=Math.floor(s/6e4);console.log(e$1.cyan("Current Agent:")),console.log(` ${e$1.yellow(o.current.agent.toUpperCase())} - ${o.current.task}`),console.log(e$1.gray(` Started ${l}m ago`)),o.current.symbols_touched.length>0&&console.log(e$1.gray(` Touched: ${o.current.symbols_touched.join(", ")}`)),console.log();}else console.log(e$1.cyan("Current Agent:")),console.log(e$1.gray(" No active agent")),console.log();if(a.length>0){console.log(e$1.cyan("Pending Handoffs:"));for(let s of a)console.log(` ${e$1.yellow(s.from)} \u2192 ${e$1.green(s.to)}: ${s.context.summary.substring(0,50)}...`);console.log(e$1.gray("\n Run `paradigm team accept` to accept a handoff")),console.log();}if(o.queue.length>0){console.log(e$1.cyan("Queue:"));for(let s of o.queue)console.log(` ${e$1.yellow(s.agent)} waiting for ${s.waiting_for}: ${s.task}`);console.log();}if(o.blocked.length>0){console.log(e$1.red("Blocked:"));for(let s of o.blocked)console.log(` ${e$1.yellow(s.agent)}: ${s.reason}`);console.log();}if(o.recent.length>0){console.log(e$1.cyan("Recent Activity:"));for(let s of o.recent.slice(0,5)){let l=new Date(s.timestamp).toLocaleTimeString(),u=s.result==="success"?e$1.green("\u2713"):s.result==="failed"?e$1.red("\u2717"):s.result==="blocked"?e$1.yellow("\u2298"):e$1.gray("\u25CB"),y=s.handed_to?` \u2192 ${s.handed_to}`:"";console.log(` ${u} ${l} ${e$1.gray(s.agent)}: ${s.task}${y}`);}console.log();}console.log(e$1.gray("\u2500".repeat(50))),console.log(e$1.gray("Commands: team status | team status --running | team diff <id> | team accept <id>")),console.log();}async function B(g,n){let c=new b(g),i=c.listOrchestrations({status:["running","pending"]}),o=c.listOrchestrations({status:"completed",limit:5});if(n.json){console.log(JSON.stringify({running:i,recently_completed:o},null,2));return}if(console.log(e$1.blue(`
25
+ \u{1F504} Running Orchestrations
26
+ `)),console.log(e$1.gray("\u2500".repeat(60))),i.length===0)console.log(e$1.gray(" No orchestrations currently running.")),console.log();else for(let a of i){let t=a.started?Math.floor((Date.now()-new Date(a.started).getTime())/6e4):0,r=a.status==="running"?e$1.yellow("\u25B6"):e$1.gray("\u25CB");console.log(` ${r} ${e$1.cyan(a.id)}`),console.log(e$1.white(` Task: ${a.task.slice(0,50)}${a.task.length>50?"...":""}`)),console.log(e$1.gray(` Status: ${a.status} | Mode: ${a.mode} | Duration: ${t}m`)),console.log(e$1.gray(` Output: ${a.outputFile}`)),console.log();}if(o.length>0){console.log(e$1.cyan("Recently Completed:"));for(let a of o){let t=a.status==="completed"?e$1.green("\u2713"):a.status==="failed"?e$1.red("\u2717"):a.status==="accepted"?e$1.green("\u2713\u2713"):e$1.gray("\u25CB");console.log(` ${t} ${a.id} - ${a.task.slice(0,40)}${a.task.length>40?"...":""}`);}console.log();}console.log(e$1.gray("\u2500".repeat(60))),console.log(e$1.gray("Commands: team status <id> | team diff <id> | team accept <id>")),console.log();}async function L(g,n,c){let o=new b(g).getOrchestration(n);if(!o){c.json?console.log(JSON.stringify({error:"Orchestration not found",id:n})):console.log(e$1.red(`
27
+ Orchestration not found: ${n}
28
+ `));return}if(c.json){console.log(JSON.stringify(o,null,2));return}let a=o.status==="running"?e$1.yellow("\u25B6"):o.status==="completed"?e$1.green("\u2713"):o.status==="failed"?e$1.red("\u2717"):o.status==="accepted"?e$1.green("\u2713\u2713"):o.status==="rejected"?e$1.red("\u2717\u2717"):e$1.gray("\u25CB");if(console.log(),console.log(e$1.blue("\u2501".repeat(60))),console.log(e$1.blue(` Orchestration: ${o.id}`)),console.log(e$1.blue("\u2501".repeat(60))),console.log(),console.log(` Status: ${a} ${o.status}`),console.log(e$1.gray(` Task: ${o.task}`)),console.log(e$1.gray(` Mode: ${o.mode}`)),console.log(e$1.gray(` Created: ${o.created}`)),o.started&&console.log(e$1.gray(` Started: ${o.started}`)),o.completed&&console.log(e$1.gray(` Completed: ${o.completed}`)),console.log(),o.parallelBuilderStats&&(console.log(e$1.cyan(" Parallel Builders:")),console.log(e$1.gray(` Used file plan: ${o.parallelBuilderStats.usedFilePlan?"Yes":"No"}`)),console.log(e$1.gray(` Sub-phases: ${o.parallelBuilderStats.totalSubPhases}`)),console.log(e$1.gray(` Parallel builders: ${o.parallelBuilderStats.totalParallelBuilders}`)),console.log(e$1.gray(` Files created: ${o.parallelBuilderStats.filesCreated}`)),console.log()),o.artifacts.length>0){console.log(e$1.cyan(" Artifacts:"));for(let t of o.artifacts){let r=t.action==="created"?e$1.green("+"):t.action==="modified"?e$1.yellow("~"):e$1.red("-");console.log(` ${r} ${t.path}`);}console.log();}o.result&&(console.log(e$1.cyan(" Result:")),console.log(e$1.gray(` Agents spawned: ${o.result.agentsSpawned}`)),console.log(e$1.gray(` Total tokens: ${o.result.totalTokens.total}`)),console.log(e$1.gray(` Total cost: $${o.result.totalCost.toFixed(4)}`)),console.log(e$1.gray(` Duration: ${(o.result.duration_ms/1e3).toFixed(1)}s`)),console.log()),o.error&&(console.log(e$1.red(` Error: ${o.error}`)),console.log()),console.log(e$1.gray(` Output file: ${o.outputFile}`)),console.log(),o.status==="completed"&&(console.log(e$1.cyan(" Actions:")),console.log(e$1.gray(` paradigm team diff ${o.id} # View changes`)),console.log(e$1.gray(` paradigm team accept ${o.id} # Accept changes`)),console.log(e$1.gray(` paradigm team reject ${o.id} # Reject changes`)),console.log());}async function te(g$1,n){let c=g$1?m.resolve(g$1):process.cwd(),i$1=e(c);if(!i$1){n.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let o$1=g(c);if(!i$1.agents[n.to]){n.json?console.log(JSON.stringify({error:"Unknown agent",agent:n.to,available:Object.keys(i$1.agents)})):(console.log(e$1.red(`
29
+ Unknown agent: ${n.to}`)),console.log(e$1.gray(`Available agents: ${Object.keys(i$1.agents).join(", ")}
30
+ `)));return}let a=o$1.current?.agent||i$1.team.default_agent,t=`${Date.now()}-${a}-${n.to}`,r={id:t,from:a,to:n.to,timestamp:new Date().toISOString(),status:"pending",completed:{symbols:o$1.current?.symbols_touched||[],artifacts:[]},context:{summary:n.summary||`Task handed off from ${a} to ${n.to}`,key_symbols:[],warnings:[]}};if(i(c,r),m$1(c,{agent:a,task:o$1.current?.task||"Unknown task",result:"success",handed_to:n.to}),o(c),n.json){console.log(JSON.stringify({success:true,handoff_id:t,from:a,to:n.to}));return}console.log(e$1.blue(`
31
+ \u270B Handoff Created
32
+ `)),console.log(e$1.gray("\u2500".repeat(50))),console.log(` From: ${e$1.yellow(a)}`),console.log(` To: ${e$1.green(n.to)}`),console.log(` ID: ${e$1.gray(t)}`),console.log(e$1.gray("\u2500".repeat(50)));let s=i$1.agents[n.to];console.log(e$1.cyan(`
33
+ Target agent role:`));for(let l of s.role.split(`
34
+ `))console.log(e$1.gray(` ${l}`));console.log(e$1.cyan(`
35
+ Next steps:`)),console.log(e$1.gray(` 1. The ${n.to} agent will see this handoff`)),console.log(e$1.gray(` 2. Run \`paradigm team accept\` as ${n.to} to accept`)),console.log();}async function se(g,n$1,c){let i$1=n$1?m.resolve(n$1):process.cwd(),o=e(i$1);if(!o){c.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let a=k(i$1);if(a.length===0){c.json?console.log(JSON.stringify({error:"No pending handoffs"})):console.log(e$1.yellow(`
36
+ No pending handoffs to accept.
37
+ `));return}let t;if(g){if(t=a.find(s=>s.id===g),!t){c.json?console.log(JSON.stringify({error:"Handoff not found",id:g})):console.log(e$1.red(`
38
+ Handoff not found: ${g}
39
+ `));return}}else t=a[0];if(t.status="accepted",t.accepted_at=new Date().toISOString(),t.acceptance_note=c.note,i(i$1,t),n(i$1,t.to,`Accepted from ${t.from}: ${t.context.summary}`),c.json){console.log(JSON.stringify({success:true,handoff_id:t.id,agent:t.to,from:t.from,context:t.context}));return}if(console.log(e$1.blue(`
40
+ \u2713 Handoff Accepted
41
+ `)),console.log(e$1.gray("\u2500".repeat(50))),console.log(` You are now: ${e$1.green(t.to.toUpperCase())}`),console.log(` From: ${e$1.yellow(t.from)}`),console.log(e$1.gray("\u2500".repeat(50))),console.log(e$1.cyan(`
42
+ Context from previous agent:`)),console.log(e$1.white(` ${t.context.summary}`)),t.completed.symbols.length>0){console.log(e$1.cyan(`
43
+ Symbols touched:`));for(let s of t.completed.symbols)console.log(e$1.gray(` \u2022 ${s}`));}if(t.context.warnings.length>0){console.log(e$1.yellow(`
44
+ Warnings:`));for(let s of t.context.warnings)console.log(e$1.yellow(` \u26A0 ${s}`));}let r=o.agents[t.to];console.log(e$1.cyan(`
45
+ Your role:`));for(let s of r.role.split(`
46
+ `))console.log(e$1.gray(` ${s}`));console.log();}async function le(g$1,n){let c=g$1?m.resolve(g$1):process.cwd(),i=e(c);if(!i){n.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let o=g(c),a=k(c),t=[];for(let r of a){let s=Date.now()-new Date(r.timestamp).getTime(),l=Math.floor(s/36e5);l>24&&t.push({type:"stale_handoff",message:`Handoff from ${r.from} to ${r.to} pending for ${l}h`,severity:"warning"});}for(let r of o.blocked)t.push({type:"blocked_agent",message:`${r.agent} blocked: ${r.reason}`,severity:"error"});if(o.current){let r=Date.now()-new Date(o.current.started).getTime(),s=Math.floor(r/36e5);s>8&&t.push({type:"long_task",message:`Current task running for ${s}h - consider handing off`,severity:"warning"});}for(let[r,s]of Object.entries(i.agents))for(let l of s.handoff_to)i.agents[l]||t.push({type:"invalid_handoff",message:`${r} can handoff to unknown agent: ${l}`,severity:"error"});if(n.json){console.log(JSON.stringify({issues:t,current:o.current,pending_count:a.length},null,2));return}if(console.log(e$1.blue(`
47
+ \u{1F50D} Team Health Check
48
+ `)),console.log(e$1.gray("\u2500".repeat(50))),t.length===0)console.log(e$1.green(`\u2713 No issues found
49
+ `));else {console.log(e$1.yellow(`Found ${t.length} issue(s):
50
+ `));for(let r of t){let s=r.severity==="error"?e$1.red("\u2717"):e$1.yellow("\u26A0");console.log(` ${s} ${r.message}`);}console.log();}console.log(e$1.cyan("Status:")),console.log(` Current agent: ${o.current?e$1.green(o.current.agent):e$1.gray("none")}`),console.log(` Pending handoffs: ${a.length}`),console.log(` Blocked agents: ${o.blocked.length}`),console.log();}async function re(g$1,n){let c=g$1?m.resolve(g$1):process.cwd();if(!e(c)){n.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let o=g(c),a=j(c),t=n.limit||50,r=[];for(let l of o.recent)r.push({timestamp:l.timestamp,type:"activity",agent:l.agent,description:l.task,details:{result:l.result,handed_to:l.handed_to,artifacts:l.artifacts}});for(let l of a)r.push({timestamp:l.timestamp,type:"handoff",agent:l.from,description:`Handoff to ${l.to}: ${l.context.summary}`,details:{to:l.to,status:l.status,symbols:l.completed.symbols}});r.sort((l,u)=>new Date(u.timestamp).getTime()-new Date(l.timestamp).getTime());let s=r.slice(0,t);if(n.json){console.log(JSON.stringify({total:r.length,showing:s.length,timeline:s},null,2));return}if(console.log(e$1.blue(`
51
+ \u{1F4DC} Team History
52
+ `)),console.log(e$1.gray("\u2500".repeat(60))),s.length===0){console.log(e$1.gray(`No activity recorded yet.
53
+ `));return}for(let l of s){let u=new Date(l.timestamp).toLocaleString(),y=l.type==="handoff"?"\u270B":l.details?.result==="success"?"\u2713":l.details?.result==="failed"?"\u2717":"\u25CB",v=l.type==="handoff"?e$1.cyan:l.details?.result==="success"?e$1.green:l.details?.result==="failed"?e$1.red:e$1.gray;console.log(`${v(y)} ${e$1.gray(u)}`),console.log(` ${e$1.yellow(l.agent)}: ${l.description}`),l.details?.handed_to&&console.log(e$1.gray(` \u2192 handed to ${l.details.handed_to}`)),l.details?.symbols&&l.details.symbols.length>0&&console.log(e$1.gray(` symbols: ${l.details.symbols.join(", ")}`)),console.log();}r.length>t&&console.log(e$1.gray(`Showing ${t} of ${r.length} entries. Use --limit to see more.
54
+ `));}async function ae(g$1,n){let c=g$1?m.resolve(g$1):process.cwd();if(!e(c)){n.json?console.log(JSON.stringify({error:"Team not configured"})):console.log(e$1.yellow("\nTeam not configured. Run `paradigm team init` first.\n"));return}let o=g(c),a=k(c);if(!n.force&&(o.current||a.length>0)){n.json?console.log(JSON.stringify({error:"Has pending work",current:o.current,pending_handoffs:a.length})):(console.log(e$1.yellow(`
55
+ \u26A0 Cannot reset - there is pending work:
56
+ `)),o.current&&console.log(` Current: ${o.current.agent} working on "${o.current.task}"`),a.length>0&&console.log(` Pending handoffs: ${a.length}`),console.log(e$1.gray(`
57
+ Use --force to reset anyway.
58
+ `)));return}h(c,{current:null,queue:[],recent:[],blocked:[]});let r=m.join(b$1(c),"handoffs");if(n.force&&$.existsSync(r)){let s=$.readdirSync(r);for(let l of s)$.unlinkSync(m.join(r,l));}if(n.json){console.log(JSON.stringify({success:true,cleared_handoffs:n.force}));return}console.log(e$1.green(`
59
+ \u2713 Team state reset
60
+ `)),console.log(e$1.gray(" Current agent: cleared")),console.log(e$1.gray(" Activity log: cleared")),console.log(e$1.gray(" Queue: cleared")),n.force&&console.log(e$1.gray(" Handoff files: deleted")),console.log(e$1.gray("\nReady for fresh start. Run `paradigm team status` to verify.\n"));}export{U as a,oe as b,ne as c,te as d,se as e,le as f,re as g,ae as h};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import {b as b$1}from'./chunk-5TAVYPOV.js';import*as i from'fs';import*as a from'path';import*as u from'js-yaml';import {execSync}from'child_process';function j(s){let e=s.toLowerCase();return e.includes("claude")||e.includes("anthropic")?"anthropic":e.includes("gpt")||e.includes("openai")||e.includes("o1")||e.includes("o3")?"openai":e.includes("gemini")||e.includes("google")||e.includes("palm")?"google":e.includes("llama")||e.includes("meta")?"meta":e.includes("mistral")||e.includes("mixtral")?"mistral":e.includes("deepseek")?"deepseek":e.includes("cohere")||e.includes("command")?"cohere":"unknown"}function T(s){let e=s,n=e.author;if(e.type||(e.type="agent-session"),typeof n=="string")return s;if(n&&typeof n=="object"&&!Array.isArray(n)){let t=n;t.type==="agent"?(e.author="unknown",e.agent={provider:t.model?j(t.model):j(t.id),model:t.model||t.id}):e.author=t.id||"unknown",delete e.assistedBy;}return e}function E(s){return s.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,20)||"unknown"}function F(){let s=process.env.PARADIGM_AUTHOR;if(s)return E(s);try{let e=execSync("git config user.name",{encoding:"utf-8",timeout:3e3}).trim();if(e)return E(e)}catch{}try{let e=os.userInfo().username;if(e)return E(e)}catch{}return "unknown"}function L(s){return s.endsWith(".yaml")||s.endsWith(".lore")}function k(s,e,n){let t=a.join(s,_,b,e),r=a.join(t,`${n}.lore`);if(i.existsSync(r))return r;let o=a.join(t,`${n}.yaml`);return i.existsSync(o)?o:null}async function O(s,e){let n=a.join(s,_,b);if(!i.existsSync(n))return [];$(s);let t=[],r=i.readdirSync(n).filter(o=>/^\d{4}-\d{2}-\d{2}$/.test(o)).sort().reverse();for(let o of r){if(e?.dateFrom&&o<e.dateFrom.slice(0,10)||e?.dateTo&&o>e.dateTo.slice(0,10))continue;let f=a.join(n,o),l=i.readdirSync(f).filter(L).sort();for(let c of l)try{let g=i.readFileSync(a.join(f,c),"utf8"),d=u.load(g);t.push(T(d));}catch{}}return e?M(t,e):t}async function P(s,e){let n=e.match(/^L-(\d{4}-\d{2}-\d{2})-/);if(n){let r=n[1],o=k(s,r,e);if(o)try{let f=i.readFileSync(o,"utf8"),l=u.load(f);return T(l)}catch{return null}}return (await O(s)).find(r=>r.id===e)||null}async function z(s){let e=a.join(s,_,R);if(!i.existsSync(e))return null;try{let n=i.readFileSync(e,"utf8");return u.load(n)}catch{return null}}function B(s){try{let e=execSync("git rev-parse HEAD",{cwd:s,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim(),n=execSync("git rev-parse --abbrev-ref HEAD",{cwd:s,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim(),t=execSync("git status --porcelain",{cwd:s,encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim();return {ref:e,branch:n,dirty:t.length>0}}catch{return}}async function H(s,e){let n=a.join(s,_),t=e.timestamp.slice(0,10),r=a.join(n,b,t);i.existsSync(r)||i.mkdirSync(r,{recursive:true}),e.author||(e.author=F()),e.git_context||(e.git_context=B(s)),e.id||(e.id=W(s,t,e.author,e.timestamp));let o=a.join(r,`${e.id}.lore`);return i.writeFileSync(o,u.dump(e,{lineWidth:-1,noRefs:true})),await A(s),e.id}async function K(s,e,n){let t=await P(s,e);if(!t)return false;let r=t.timestamp.slice(0,10),o=k(s,r,e);return o?(t.review=n,i.writeFileSync(o,u.dump(t,{lineWidth:-1,noRefs:true})),true):false}async function A(s){let e=a.join(s,_),n=a.join(e,b);if(!i.existsSync(n))return;$(s);let t=new Set,r=0,o="",f=i.readdirSync(n).filter(d=>/^\d{4}-\d{2}-\d{2}$/.test(d));for(let d of f){let y=a.join(n,d),h=i.readdirSync(y).filter(L);for(let w of h)try{let m=i.readFileSync(a.join(y,w),"utf8"),S=u.load(m),p=T(S);t.add(p.author),r++,(!o||p.timestamp>o)&&(o=p.timestamp);}catch{}}let l="unknown",c=a.join(s,".paradigm","config.yaml");if(i.existsSync(c))try{let d=u.load(i.readFileSync(c,"utf8"));l=d.project||d.name||"unknown";}catch{}let g={version:"1.0",project:l,entries:r,last_updated:o||new Date().toISOString(),authors:Array.from(t)};i.existsSync(e)||i.mkdirSync(e,{recursive:true}),i.writeFileSync(a.join(e,R),u.dump(g,{lineWidth:-1,noRefs:true}));}function $(s){let e=a.join(s,_,b);if(!i.existsSync(e))return 0;let n=i.readdirSync(e).filter(r=>L(r)&&!r.startsWith(".")),t=0;for(let r of n){let o=a.join(e,r);if(i.statSync(o).isFile())try{let l=i.readFileSync(o,"utf8"),c=u.load(l);if(c.author&&typeof c.author=="object"||typeof c.author=="string"&&c.timestamp)continue;let g=typeof c.date=="string"?c.date.slice(0,10):new Date().toISOString().slice(0,10),d=a.join(e,g);i.existsSync(d)||i.mkdirSync(d,{recursive:!0});let y=F(),h=`${g}T00:00:00.000Z`,w=W(s,g,y,h),m=String(c.type||"agent-session"),S=["agent-session","human-note","decision","review","incident","milestone"].includes(m)?m:"agent-session",p;if(c.test_results&&typeof c.test_results=="object"){let v=c.test_results;p={status:v.total===v.passed?"pass":"partial",details:{tests:v.total===v.passed?"pass":"fail"}};}let C={id:w,type:S,timestamp:h,author:"unknown",agent:{provider:"unknown",model:"unknown"},title:String(c.title||r.replace(/\.(yaml|lore)$/,"")),summary:String(c.summary||""),symbols_touched:Array.isArray(c.symbols_touched)?c.symbols_touched:[],files_modified:Array.isArray(c.files_modified)?c.files_modified:void 0,...p?{verification:p}:{},tags:["migrated",m]};i.writeFileSync(a.join(d,`${w}.lore`),u.dump(C,{lineWidth:-1,noRefs:!0})),i.unlinkSync(o),t++;}catch{}}return t}async function G(s,e,n){let t=await P(s,e);if(!t)return false;let r=t.timestamp.slice(0,10),o=k(s,r,e);return o?(n.title!==void 0&&(t.title=n.title),n.summary!==void 0&&(t.summary=n.summary),n.type!==void 0&&(t.type=n.type),n.duration_minutes!==void 0&&(t.duration_minutes=n.duration_minutes),n.symbols_touched!==void 0&&(t.symbols_touched=n.symbols_touched),n.symbols_created!==void 0&&(t.symbols_created=n.symbols_created),n.files_created!==void 0&&(t.files_created=n.files_created),n.files_modified!==void 0&&(t.files_modified=n.files_modified),n.lines_added!==void 0&&(t.lines_added=n.lines_added),n.lines_removed!==void 0&&(t.lines_removed=n.lines_removed),n.commit!==void 0&&(t.commit=n.commit),n.decisions!==void 0&&(t.decisions=n.decisions),n.errors_encountered!==void 0&&(t.errors_encountered=n.errors_encountered),n.learnings!==void 0&&(t.learnings=n.learnings),n.verification!==void 0&&(t.verification=n.verification),n.tags!==void 0&&(t.tags=n.tags),n.body!==void 0&&(t.body=n.body),n.linked_lore!==void 0&&(t.linked_lore=n.linked_lore),n.linked_tasks!==void 0&&(t.linked_tasks=n.linked_tasks),n.linked_commits!==void 0&&(t.linked_commits=n.linked_commits),n.confidence!==void 0&&(t.confidence=n.confidence),n.assessment!==void 0&&(t.assessment=n.assessment),n.assessment_delta!==void 0&&(t.assessment_delta=n.assessment_delta),i.writeFileSync(o,u.dump(t,{lineWidth:-1,noRefs:true})),await A(s),true):false}function I(s){switch(s){case "correct":return 1;case "partial":return .5;case "incorrect":return 0}}async function V(s,e,n){let t=await P(s,e);if(!t)return false;let r=t.timestamp.slice(0,10),o=k(s,r,e);return o?(t.assessment=n,t.confidence!=null&&(t.assessment_delta=I(n.verdict)-t.confidence),i.writeFileSync(o,u.dump(t,{lineWidth:-1,noRefs:true})),true):false}async function q(s,e){let n=await P(s,e);if(!n)return false;let t=n.timestamp.slice(0,10),r=k(s,t,e);if(!r)return false;i.unlinkSync(r);let o=a.dirname(r);return i.readdirSync(o).filter(L).length===0&&i.rmdirSync(o),await A(s),true}function M(s,e){let n=s;if(e.author&&(n=n.filter(t=>t.author===e.author)),e.hasAgent!==void 0?n=n.filter(t=>e.hasAgent?t.agent!=null:t.agent==null):e.authorType&&(n=n.filter(t=>e.authorType==="agent"?t.agent!=null:t.agent==null)),e.symbol&&(n=n.filter(t=>t.symbols_touched.includes(e.symbol)||t.symbols_created?.includes(e.symbol))),e.dateFrom){let t=new Date(e.dateFrom).getTime();n=n.filter(r=>new Date(r.timestamp).getTime()>=t);}if(e.dateTo){let t=new Date(e.dateTo).getTime();n=n.filter(r=>new Date(r.timestamp).getTime()<=t);}if(e.type&&(n=n.filter(t=>t.type===e.type)),e.tag){let t=e.tag;n=n.filter(r=>r.tags?.some(o=>o===t||o.startsWith(t+":")||t.includes(":")&&o===t));}return e.tags&&e.tags.length>0&&(n=n.filter(t=>e.tags.some(r=>t.tags?.includes(r)))),e.hasBody!==void 0&&(n=n.filter(t=>e.hasBody?t.body!=null&&t.body.length>0:!t.body||t.body.length===0)),e.hasReview!==void 0&&(n=n.filter(t=>e.hasReview?t.review!=null:t.review==null)),e.hasConfidence!==void 0&&(n=n.filter(t=>e.hasConfidence?t.confidence!=null:t.confidence==null)),e.hasAssessment!==void 0&&(n=n.filter(t=>e.hasAssessment?t.assessment!=null:t.assessment==null)),n.sort((t,r)=>new Date(r.timestamp).getTime()-new Date(t.timestamp).getTime()),e.offset&&(n=n.slice(e.offset)),e.limit&&(n=n.slice(0,e.limit)),n}function W(s,e,n,t){let r=E(n),o=new Date(t),f=String(o.getUTCHours()).padStart(2,"0"),l=String(o.getUTCMinutes()).padStart(2,"0"),c=String(o.getUTCSeconds()).padStart(2,"0"),g=`${f}${l}${c}`,d=`L-${e}-${r}-${g}`,y=a.join(s,_,b,e);if(!i.existsSync(y))return `${d}-001`;let h=i.readdirSync(y).filter(m=>m.startsWith(d)&&L(m)).map(m=>{let S=m.match(/-(\d{3})\.(yaml|lore)$/);return S?parseInt(S[1],10):0}),w=h.length>0?Math.max(...h)+1:1;return `${d}-${String(w).padStart(3,"0")}`}var _,b,R,N=b$1(()=>{_=".paradigm/lore",b="entries",R="timeline.yaml";});export{O as a,P as b,z as c,H as d,K as e,A as f,G as g,V as h,q as i,N as j};
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import*as i from'fs';import*as f from'path';var u=".paradigm/events/session-log.jsonl",y=200;function h(e,t){try{let n=f.join(e,u),o=f.dirname(n);if(i.existsSync(o)||i.mkdirSync(o,{recursive:!0}),i.existsSync(n)&&i.readFileSync(n,"utf8").trim().split(`
3
+ `).filter(r=>r.trim()).length>=y)return;let g=JSON.stringify(t)+`
4
+ `;i.appendFileSync(n,g,"utf8"),t.type==="user-verdict"&&t.agent&&t.symbols?.length&&import('./agent-loader-PYGPX6D2.js').then(({loadAgentProfile:c,saveAgentProfile:s})=>{try{let r=c(e,t.agent);if(r?.expertise){let d=t.verdict==="accepted"?.03:t.verdict==="dismissed"?-.02:t.verdict==="revised"?-.01:0;if(d!==0){for(let p of t.symbols){let a=r.expertise.find(S=>S.symbol===p);a&&(a.confidence=Math.max(0,Math.min(1,a.confidence+d)),a.sessions=(a.sessions||0)+1,a.lastTouch=new Date().toISOString());}s(t.agent,r,"global");}}}catch{}}).catch(()=>{});}catch{}}function l(e){try{let t=f.join(e,u);return i.existsSync(t)?i.readFileSync(t,"utf8").trim().split(`
5
+ `).filter(n=>n.trim()).map(n=>{try{return JSON.parse(n)}catch{return null}}).filter(n=>n!==null):[]}catch{return []}}function v(e){try{let t=f.join(e,u);i.existsSync(t)&&i.writeFileSync(t,"","utf8");}catch{}}function b(e){let t=l(e),n=new Set;for(let o of t)o.agent&&n.add(o.agent);return Array.from(n)}function m(e,t){return l(e).filter(n=>n.agent===t)}function E(e,t){let n=m(e,t),o=n.filter(s=>s.type==="agent-contribution"),g=n.filter(s=>s.type==="user-verdict"),c=[];for(let s of o)c.push({contribution:s});for(let s of g){let r=c.find(d=>!d.verdict&&d.contribution);r?r.verdict=s:c.push({verdict:s});}return c}export{h as a,l as b,v as c,b as d,m as e,E as f};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import*as r from'fs';import*as c from'path';import*as d from'js-yaml';var u=".paradigm/decisions";function y(){let t=new Date().toISOString().slice(0,10),n=String(Math.floor(Math.random()*999)+1).padStart(3,"0");return `TD-${t}-${n}`}function D(o,t){let n=new Date,a=y(),s={id:a,timestamp:n.toISOString(),...t},e=c.join(o,u);r.mkdirSync(e,{recursive:true});let i=c.join(e,`${a}.yaml`);return r.writeFileSync(i,d.dump(s,{lineWidth:120,noRefs:true}),"utf8"),s}function g(o,t,n){let a=f(o,t);if(!a)return null;let s={...a,...n},e=c.join(o,u),i=c.join(e,`${t}.yaml`);return r.writeFileSync(i,d.dump(s,{lineWidth:120,noRefs:true}),"utf8"),s}function h(o,t,n){if(!f(o,t))return null;let s=D(o,n),e=g(o,t,{status:"superseded",superseded_by:s.id});return e?{old:e,new:s}:null}function p(o,t){let n=c.join(o,u);if(!r.existsSync(n))return [];let a=[],s=r.readdirSync(n).filter(i=>i.endsWith(".yaml"));for(let i of s)try{let m=r.readFileSync(c.join(n,i),"utf8"),l=d.load(m);l&&l.id&&a.push(l);}catch{}let e=a;return t?.status&&(e=e.filter(i=>i.status===t.status)),t?.participant&&(e=e.filter(i=>i.participants.some(m=>m.id===t.participant))),t?.symbol&&(e=e.filter(i=>i.symbols_affected?.includes(t.symbol))),t?.tag&&(e=e.filter(i=>i.tags?.some(m=>m.startsWith(t.tag)))),t?.dateFrom&&(e=e.filter(i=>i.timestamp>=t.dateFrom)),t?.dateTo&&(e=e.filter(i=>i.timestamp<=t.dateTo)),e.sort((i,m)=>m.timestamp.localeCompare(i.timestamp)),t?.limit&&(e=e.slice(0,t.limit)),e}function f(o,t){let n=c.join(o,u),a=c.join(n,`${t}.yaml`);if(!r.existsSync(a))return null;let s=r.readFileSync(a,"utf8");return d.load(s)}function S(o,t){return p(o,{symbol:t,status:"active"})}function T(o){let t=p(o),n={},a=new Set;for(let s of t)n[s.status]=(n[s.status]||0)+1,s.symbols_affected?.forEach(e=>a.add(e));return {total:t.length,active:n.active||0,superseded:n.superseded||0,deprecated:n.deprecated||0,proposed:n.proposed||0,recentDecisions:t.slice(0,10).map(s=>({id:s.id,title:s.title,status:s.status,timestamp:s.timestamp})),symbolsCovered:[...a].sort()}}export{D as a,g as b,h as c,p as d,f as e,S as f,T as g};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import {c as c$1,b as b$1}from'./chunk-5TAVYPOV.js';import*as s from'fs';import*as c from'path';import*as g from'js-yaml';var b={};c$1(b,{getJournalStats:()=>S,loadAllJournalEntries:()=>E,loadJournalEntries:()=>f,loadJournalEntry:()=>J,recordJournalEntry:()=>h});function m(e){let r=process.env.HOME||process.env.USERPROFILE||"";return c.join(r,".paradigm","agents",e,"journal")}function y(){let e=new Date,r=e.toISOString().slice(0,10),i=e.toISOString().slice(11,19).replace(/:/g,""),o=String(Math.floor(Math.random()*999)+1).padStart(3,"0");return `LJ-${r}-${i}-${o}`}function h(e,r){let i=new Date,o=y(),a={id:o,agent:e,timestamp:i.toISOString(),...r},t=m(e);s.mkdirSync(t,{recursive:true});let n=c.join(t,`${o}.yaml`);return s.writeFileSync(n,g.dump(a,{lineWidth:120,noRefs:true}),"utf8"),a}function f(e,r){let i=m(e);if(!s.existsSync(i))return [];let o=[],a=s.readdirSync(i).filter(n=>n.endsWith(".yaml"));for(let n of a)try{let l=s.readFileSync(c.join(i,n),"utf8"),u=g.load(l);u&&u.id&&o.push(u);}catch{}let t=o;return r?.trigger&&(t=t.filter(n=>n.trigger===r.trigger)),r?.project&&(t=t.filter(n=>n.project===r.project)),r?.transferable!==void 0&&(t=t.filter(n=>n.transferable===r.transferable)),r?.tag&&(t=t.filter(n=>n.tags?.some(l=>l.startsWith(r.tag)))),r?.dateFrom&&(t=t.filter(n=>n.timestamp>=r.dateFrom)),r?.dateTo&&(t=t.filter(n=>n.timestamp<=r.dateTo)),t.sort((n,l)=>l.timestamp.localeCompare(n.timestamp)),r?.limit&&(t=t.slice(0,r.limit)),t}function J(e,r){let i=m(e),o=c.join(i,`${r}.yaml`);if(!s.existsSync(o))return null;let a=s.readFileSync(o,"utf8");return g.load(a)}function E(e){let r=process.env.HOME||process.env.USERPROFILE||"",i=c.join(r,".paradigm","agents");if(!s.existsSync(i))return [];let o=[],a=s.readdirSync(i,{withFileTypes:true}).filter(t=>t.isDirectory());for(let t of a){if(e?.agent&&t.name!==e.agent)continue;let n=f(t.name,e);o.push(...n);}return o.sort((t,n)=>n.timestamp.localeCompare(t.timestamp)),e?.limit?o.slice(0,e.limit):o}function S(e){let r=f(e),i={},o={},a=0;for(let t of r)i[t.trigger]=(i[t.trigger]||0)+1,o[t.project]=(o[t.project]||0)+1,t.transferable&&a++;return {total:r.length,byTrigger:i,byProject:o,transferableCount:a,recentInsights:r.slice(0,5).map(t=>({id:t.id,trigger:t.trigger,insight:t.insight.slice(0,200),timestamp:t.timestamp}))}}var j=b$1(()=>{});export{h as a,f as b,J as c,E as d,S as e,b as f,j as g};
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {d,f,b,a as a$1,g,c,e as e$1,h}from'./chunk-HMQ5BHP2.js';import {a}from'./chunk-LKAT7IAK.js';import*as S from'path';import e from'chalk';import M from'ora';async function q(b$1,a$2){let i=process.cwd(),r=M(),x=a$2.target||b$1,o=a$2.quiet;o||console.log(e.blue(`
3
+ \u{1F504} Paradigm Sync
4
+ `)),o||r.start("Loading .paradigm/ configuration...");let f$1=d(i);if(!f$1)throw o||(r.fail("No .paradigm/ directory found"),console.log(e.gray("\nRun `paradigm init` to initialize Paradigm in this project.\n"))),a.command("sync").error("Missing .paradigm/ directory"),o||process.exit(1),new Error("No .paradigm/ directory found");if(o||r.succeed(`Loaded configuration for ${e.cyan(f$1.projectName)}`),a.command("sync").debug("Configuration loaded",{projectName:f$1.projectName}),a$2.all){console.log(e.gray(`
5
+ Syncing to all IDEs...
6
+ `));let n=a.operation("sync-all").start("Syncing to all IDEs"),g$1=f(i,f$1,a$2.force);for(let s of g$1)s.success?(console.log(e.green(` \u2713 ${s.ide}`),e.gray(`\u2192 ${s.outputPath}`)),a.operation(`sync-${s.ide}`).success("IDE files generated",{path:s.outputPath})):(console.log(e.red(` \u2717 ${s.ide}`),e.gray(`\u2192 ${s.message}`)),a.operation(`sync-${s.ide}`).error("Sync failed",{message:s.message}));let p=g$1.filter(s=>s.success).length;if(console.log(e.gray(`
7
+ ${p}/${g$1.length} IDE files generated.`)),p===g$1.length?n.success("All IDE files generated",{count:g$1.length}):n.error("Some IDE syncs failed",{success:p,total:g$1.length}),a$2.mcp!==false){console.log("");let s=b();for(let u of s)if(a$1(u)?.generateMcpConfig){let y=g(i,u);y.success&&(console.log(e.green(` \u2713 MCP config for ${u}`),e.gray(`\u2192 ${S.relative(i,y.path)}`)),a.component("mcp-config").success("MCP config generated",{ide:u,path:y.path}));}}console.log("");return}let t=x;if(!t){o||r.start("Auto-detecting IDE...");let n=c(i);n.detected?(t=n.detected,o||r.succeed(`Detected ${e.cyan(t)} (${n.reason})`)):(o||r.warn("Could not auto-detect IDE, defaulting to Cursor"),t="cursor");}let l=a$1(t);if(!l)throw o||(console.log(e.red(`
8
+ \u274C Unknown IDE: ${t}`)),console.log(e.gray(`
9
+ Available IDEs: ${b().join(", ")}
10
+ `))),a.command("sync").error("Unknown IDE",{ide:t,available:b()}),o||process.exit(1),new Error(`Unknown IDE: ${t}`);let E=l.multiFile;o||r.start(`Generating ${E?l.outputPath+"/":l.outputPath}...`);let D=a.operation(`sync-${t}`).start("Syncing IDE files",{ide:t}),d$1=e$1(i,t,f$1,a$2.force);if(d$1.success){if(!o&&(r.succeed(e.green(d$1.message)),console.log(e.gray(`
11
+ Path: ${d$1.outputPath}`)),E&&l.generateFiles)){let n=l.generateFiles(f$1);for(let g of n)console.log(e.gray(` \u2514\u2500 ${g.path}`));}if(D.success("IDE files generated",{ide:t,path:d$1.outputPath}),a$2.mcp!==false&&l.generateMcpConfig){let n=g(i,t);n.success&&(o||console.log(e.green(`
12
+ \u2713 ${n.message}`)),a.component("mcp-config").success("MCP config generated",{ide:t,path:n.path}));}if(a$2.nested&&l.generateNestedContexts){let n=h(i,t,f$1);n.success&&n.count>0&&(o||console.log(e.green(`
13
+ \u2713 ${n.message}`)),a.component("nested-contexts").success("Nested contexts generated",{ide:t,count:n.count}));}o||console.log("");}else throw o||r.fail(e.red(d$1.message)),D.error("Sync failed",{ide:t,message:d$1.message}),o||process.exit(1),new Error(d$1.message||"Sync failed")}export{q as a};
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import*as d from'fs';import*as r from'path';import*as p from'js-yaml';import {glob}from'glob';var w={visualizerPort:42195,watcherPort:42196,autoConnect:true};async function F(e){let t=r.resolve(e),o=r.dirname(t);if(!d.existsSync(t))throw new Error(`Gate config not found: ${t}`);let n=d.readFileSync(t,"utf8"),s=p.load(n);if(!s.version)throw new Error('Gate config missing required "version" field');let i=[],a=s,l=s.gates||a.portals;if(l)for(let[f,c]of Object.entries(l))i.push(u(f,c));if(s.include)for(let f of s.include){let c=r.join(o,f),m=await glob(c.replace(/\\/g,"/"));for(let y of m){let $=await v(y);i.push(...$);}}let h=[];if(s.flows)for(let[f,c]of Object.entries(s.flows))h.push(D(f,c));return {version:s.version,gates:i,flows:h,settings:{dev:{...w,...s.settings?.dev}}}}async function v(e){let t=d.readFileSync(e,"utf8"),o=p.load(t);if(o.id)return [u(o.id,o)];if(o.gates){let n=[];for(let[s,i]of Object.entries(o.gates))n.push(u(s,i));return n}return []}function u(e,t){let o=[];if(t.locks)for(let s of t.locks)o.push(z(s));let n=[];if(t.prizes)for(let s of t.prizes)n.push(k(s));return {id:e,description:t.description,locks:o,prizes:n,position:t.position}}function z(e){let t=e,o=[];if(t.keys){for(let n of t.keys)if(typeof n=="string")o.push({expression:n});else if(n.expression){let s=n;o.push({expression:s.expression,description:s.description});}}return {id:t.id,description:t.description,keys:o,mode:t.mode||"all"}}function k(e){let t=e;return {id:t.id,oneTime:t.oneTime??false,metadata:t.metadata}}function D(e,t){return {id:e,description:t.description,gates:t.gates||[],forkable:t.forkable}}function C(e){let t={version:e.version,gates:{},flows:{},settings:{dev:e.settings.dev}};for(let o of e.gates){let{id:n,...s}=o;t.gates[n]=s;}for(let o of e.flows){let{id:n,...s}=o;t.flows[n]=s;}return p.dump(t,{indent:2,lineWidth:-1,noRefs:true,sortKeys:false})}function S(){return p.dump({version:"1.0.0",gates:{"example-gate":{description:"An example gate to get you started",locks:[{id:"example-lock",description:"Requires user to be authenticated",keys:[{expression:"user.isAuthenticated === true"}]}],prizes:[{id:"example-prize",oneTime:true,metadata:{event:"first_access"}}]}},flows:{"example-flow":{description:"An example user journey",gates:["example-gate"]}},settings:{dev:{visualizerPort:42195,watcherPort:42196,autoConnect:true}}},{indent:2,lineWidth:-1,noRefs:true,sortKeys:false})}async function P(e){let t=r.resolve(e);return await glob("**/portal.yaml",{cwd:t,absolute:true,ignore:["**/node_modules/**","**/dist/**","**/.git/**"]})}function j(e){let t=[];e.version||t.push({type:"error",message:'Missing required "version" field',path:"version"});let o=new Set;for(let n of e.gates)b(n,o,t),o.add(n.id);for(let n of e.flows)G(n,o,t);return {valid:t.filter(n=>n.type==="error").length===0,issues:t}}function b(e,t,o){let n=`gates.${e.id}`;t.has(e.id)&&o.push({type:"error",message:`Duplicate gate ID: "${e.id}"`,path:n}),/^[a-z][a-z0-9-]*$/.test(e.id)||o.push({type:"warning",message:`Gate ID "${e.id}" should use kebab-case (e.g., "my-gate")`,path:n});let s=new Set;for(let a of e.locks)x(a,s,`${n}.locks`,o),s.add(a.id);let i=new Set;for(let a of e.prizes)i.has(a.id)&&o.push({type:"error",message:`Duplicate prize ID "${a.id}" in gate "${e.id}"`,path:`${n}.prizes`}),i.add(a.id),/^[a-z][a-z0-9-]*$/.test(a.id)||o.push({type:"warning",message:`Prize ID "${a.id}" should use kebab-case`,path:`${n}.prizes`});e.locks.length===0&&o.push({type:"warning",message:`Gate "${e.id}" has no locks - any entity can pass through`,path:n});}function x(e,t,o,n){let s=`${o}.${e.id}`;t.has(e.id)&&n.push({type:"error",message:`Duplicate lock ID: "${e.id}"`,path:s}),/^[a-z][a-z0-9-]*$/.test(e.id)||n.push({type:"warning",message:`Lock ID "${e.id}" should use kebab-case`,path:s}),e.keys.length===0&&n.push({type:"error",message:`Lock "${e.id}" has no keys - it can never be opened`,path:s});for(let i of e.keys)(!i.expression||i.expression.trim()==="")&&n.push({type:"error",message:`Key in lock "${e.id}" has empty expression`,path:`${s}.keys`}),i.expression.includes("==")&&!i.expression.includes("===")&&n.push({type:"warning",message:'Key expression uses "==" instead of "===" - consider using strict equality',path:`${s}.keys`});e.mode&&!["all","any"].includes(e.mode)&&n.push({type:"error",message:`Invalid lock mode "${e.mode}" - must be "all" or "any"`,path:s});}function G(e,t,o){let n=`flows.${e.id}`;/^[a-z][a-z0-9-]*$/.test(e.id)||o.push({type:"warning",message:`Flow ID "${e.id}" should use kebab-case`,path:n});for(let i of e.gates)t.has(i)||o.push({type:"error",message:`Flow "${e.id}" references unknown gate "${i}"`,path:`${n}.gates`});e.gates.length===0&&o.push({type:"warning",message:`Flow "${e.id}" has no gates`,path:n});let s=new Set;for(let i of e.gates)s.has(i)&&o.push({type:"warning",message:`Flow "${e.id}" contains duplicate gate "${i}"`,path:`${n}.gates`}),s.add(i);}function A(e){if(e.valid&&e.issues.length===0)return "\u2705 Configuration is valid";let t=[],o=e.issues.filter(s=>s.type==="error"),n=e.issues.filter(s=>s.type==="warning");if(o.length>0){t.push(`
3
+ \u274C ${o.length} error(s):`);for(let s of o)t.push(` \u2022 ${s.message}${s.path?` (${s.path})`:""}`);}if(n.length>0){t.push(`
4
+ \u26A0\uFE0F ${n.length} warning(s):`);for(let s of n)t.push(` \u2022 ${s.message}${s.path?` (${s.path})`:""}`);}return e.valid?t.push(`
5
+ \u2705 Configuration is valid (with warnings)`):t.push(`
6
+ \u274C Configuration is invalid`),t.join(`
7
+ `)}export{F as a,v as b,C as c,S as d,P as e,j as f,A as g};
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import {c as c$1,a as a$1}from'./chunk-HMQ5BHP2.js';import {e as e$1}from'./chunk-JQKKVAAN.js';import {a}from'./chunk-LKAT7IAK.js';import*as e from'fs';import*as i from'path';import*as x from'js-yaml';import c from'chalk';async function rs(A={}){let l=A.rootDir||process.cwd(),s=[],k=A.quiet,q=A.context;k||(console.log(c.blue(`
3
+ \u{1FA7A} Paradigm Doctor
4
+ `)),console.log(q?c.gray(`Running context audit checks...
5
+ `):c.gray(`Checking Paradigm setup...
6
+ `)));let L=a.command("doctor").start("Running health checks");if(!q){let M=function(t){let a=[];try{let n=e.readdirSync(t,{withFileTypes:!0});for(let o of n){if(o.name==="node_modules"||o.name==="dist"||o.name===".git")continue;let m=i.join(t,o.name);o.isDirectory()?a.push(...M(m)):o.name===".purpose"&&a.push(m);}}catch{}return a};let r=i.join(l,".paradigm");if(e.existsSync(r))if(e.statSync(r).isFile())s.push({name:".paradigm",status:"warn",message:"Legacy file format (should be directory)",fix:"paradigm upgrade --all"});else {s.push({name:".paradigm/",status:"ok",message:"Directory exists"});let a=i.join(r,"config.yaml");if(e.existsSync(a))try{let d=e.readFileSync(a,"utf8");e$1(d),s.push({name:".paradigm/config.yaml",status:"ok",message:"Valid YAML"});}catch(d){s.push({name:".paradigm/config.yaml",status:"error",message:`Invalid YAML: ${d.message}`,fix:"Check YAML syntax"});}else s.push({name:".paradigm/config.yaml",status:"missing",message:"Config file not found",fix:"paradigm init --force"});let n=["logger.md","scan.md","symbols.md"],o=i.join(r,"specs");if(e.existsSync(o))for(let d of n){let w=i.join(o,d);e.existsSync(w)?s.push({name:`.paradigm/specs/${d}`,status:"ok",message:"Present"}):s.push({name:`.paradigm/specs/${d}`,status:"missing",message:"Spec file not found",fix:"paradigm upgrade --all"});}else s.push({name:".paradigm/specs/",status:"missing",message:"Specs directory not found",fix:"paradigm upgrade --all"});let m=i.join(r,"docs");e.existsSync(m)?s.push({name:".paradigm/docs/",status:"ok",message:"Directory exists"}):s.push({name:".paradigm/docs/",status:"missing",message:"Docs directory not found",fix:"paradigm upgrade --all"});let h=i.join(r,"prompts");e.existsSync(h)?s.push({name:".paradigm/prompts/",status:"ok",message:"Directory exists"}):s.push({name:".paradigm/prompts/",status:"missing",message:"Prompts directory not found",fix:"paradigm upgrade --all"});let u=i.join(r,"scan-index.json"),g=i.join(l,".paradigm-scan-index.json");if(e.existsSync(u)){let d=e.statSync(u),w=Date.now()-d.mtime.getTime(),y=Math.floor(w/(1e3*60*60));y>24?s.push({name:".paradigm/scan-index.json",status:"warn",message:`Stale (${y} hours old)`,fix:"paradigm index"}):s.push({name:".paradigm/scan-index.json",status:"ok",message:y>0?`${y} hours old`:"Fresh"});}else e.existsSync(g)?s.push({name:"scan-index",status:"warn",message:"Using legacy location",fix:"paradigm index"}):s.push({name:".paradigm/scan-index.json",status:"missing",message:"Not generated",fix:"paradigm index"});}else s.push({name:".paradigm/",status:"missing",message:"Not initialized",fix:"paradigm init"});let f=c$1(l);if(f.detected){let t=a$1(f.detected);if(t){let a=i.join(l,t.outputPath);e.existsSync(a)?s.push({name:t.outputPath,status:"ok",message:`Present (${f.detected})`}):s.push({name:t.outputPath,status:"missing",message:`Not generated for ${f.detected}`,fix:"paradigm sync"});}}let p=i.join(l,".premise");e.existsSync(p)?s.push({name:".premise",status:"ok",message:"Present"}):s.push({name:".premise",status:"missing",message:"Not found (optional)"});let j=i.join(l,".purpose");e.existsSync(j)?s.push({name:".purpose",status:"ok",message:"Present"}):s.push({name:".purpose",status:"warn",message:"Root .purpose not found",fix:"paradigm init"});let P=i.join(l,".paradigm","config.yaml");if(e.existsSync(P))try{let t=e.readFileSync(P,"utf8"),n=x.load(t)?.["purpose-required"];if(n&&Array.isArray(n)){let o=[];for(let m of n){if(!m.pattern)continue;let{glob:h}=await import('glob'),u=await h(m.pattern,{cwd:l,nodir:!1});for(let g of u){let d=i.join(l,g);try{e.statSync(d).isDirectory()&&!e.existsSync(i.join(d,".purpose"))&&o.push(g);}catch{}}}o.length>0?s.push({name:"Purpose-required",status:"warn",message:`${o.length} director${o.length===1?"y":"ies"} missing .purpose: ${o.join(", ")}`,fix:"Create .purpose files with paradigm_purpose_init + paradigm_purpose_add_component"}):s.push({name:"Purpose-required",status:"ok",message:"All required directories have .purpose files"});}}catch{}let F=/\[NEEDS CLARIFICATION:\s*[^\]]+\]/gi,v=0,T=M(l);for(let t of T)try{let n=e.readFileSync(t,"utf8").match(F);n&&(v+=n.length);}catch{}v>0?s.push({name:"Clarification markers",status:"warn",message:`${v} [NEEDS CLARIFICATION] marker${v>1?"s":""} found in .purpose files`,fix:"Resolve open clarification markers before shipping"}):T.length>0&&s.push({name:"Clarification markers",status:"ok",message:"No unresolved markers"});let E=i.join(l,"portal.yaml");if(e.existsSync(E))try{let t=e.readFileSync(E,"utf8"),a=x.load(t);if(a?.version&&a?.gates){let n=Object.keys(a.gates||{}).length,o=Object.keys(a.routes||{}).length;s.push({name:"portal.yaml",status:"ok",message:`Valid (${n} gates, ${o} routes)`});}else s.push({name:"portal.yaml",status:"warn",message:"Missing version or gates section",fix:'Add version: "1.0" and gates: {} to portal.yaml'});}catch(t){s.push({name:"portal.yaml",status:"error",message:`Invalid YAML: ${t.message}`,fix:"Check YAML syntax in portal.yaml"});}if(e.existsSync(E))try{let{checkPortalCompliance:t,getComplianceSummary:a}=await import('./portal-compliance-2UG4VKWH.js'),n=await t(l),o=a(n);s.push({name:"Portal compliance",status:o.status,message:o.message,fix:o.status!=="ok"?"paradigm portal check":void 0});}catch{}let W=i.join(l,".paradigm","flows.yaml");if(e.existsSync(W))try{let t=e.readFileSync(W,"utf8"),a=x.load(t);if(a?.version&&a?.flows){let n=Object.keys(a.flows||{}).length,o=Object.entries(a.flows||{}).filter(([,m])=>!m?.steps||(m.steps?.length??0)===0);o.length>0?s.push({name:".paradigm/flows.yaml",status:"warn",message:`${n} flows defined, ${o.length} have no steps`,fix:"Add steps to empty flow definitions"}):s.push({name:".paradigm/flows.yaml",status:"ok",message:`Valid (${n} flows)`});}else s.push({name:".paradigm/flows.yaml",status:"warn",message:"Missing version or flows section",fix:'Ensure flows.yaml has version: "1.0" and flows: {}'});}catch(t){s.push({name:".paradigm/flows.yaml",status:"error",message:`Invalid YAML: ${t.message}`,fix:"Check YAML syntax in flows.yaml"});}let Y=i.join(l,".paradigm","lore");if(e.existsSync(Y))try{let t=e.readdirSync(Y).filter(a=>a.endsWith(".yaml"));t.length===0?s.push({name:"Lore entries",status:"warn",message:"Lore directory exists but no entries found",fix:"Record a lore entry: paradigm lore record"}):s.push({name:"Lore entries",status:"ok",message:`${t.length} lore file${t.length>1?"s":""}`});}catch{s.push({name:"Lore entries",status:"warn",message:"Could not read lore directory"});}let U=i.join(l,".paradigm","university");if(e.existsSync(U))try{let t=i.join(U,"content"),a=0,n=0;if(e.existsSync(t))for(let o of ["notes","policies","quizzes","paths"]){let m=i.join(t,o);e.existsSync(m)&&(a+=e.readdirSync(m).filter(h=>h.endsWith(".md")||h.endsWith(".yaml")).length);}if(a===0)s.push({name:"University content",status:"warn",message:"University directory exists but no content found",fix:'Add content: paradigm university add note --title "Getting Started"'});else {let o=i.join(t,"quizzes");if(e.existsSync(o))for(let h of e.readdirSync(o).filter(u=>u.endsWith(".yaml")))try{let u=x.load(e.readFileSync(i.join(o,h),"utf8"));if(u?.questions)for(let g of u.questions)g.choices&&g.correct&&!(g.correct in g.choices)&&n++;}catch{}let m=i.join(t,"paths");if(e.existsSync(m))for(let h of e.readdirSync(m).filter(u=>u.endsWith(".yaml")))try{let u=x.load(e.readFileSync(i.join(m,h),"utf8"));if(u?.steps){for(let g of u.steps)if(g.content&&!g.content.startsWith("plsat:")){let d=!1;for(let w of ["notes","policies","quizzes","paths"]){let y=i.join(t,w);if(e.existsSync(y)&&e.readdirSync(y).some(Z=>Z.startsWith(g.content))){d=!0;break}}d||n++;}}}catch{}n>0?s.push({name:"University content",status:"warn",message:`${a} items, ${n} issue${n>1?"s":""}`,fix:"Run: paradigm university validate --deep"}):s.push({name:"University content",status:"ok",message:`${a} content item${a>1?"s":""}`});}}catch{s.push({name:"University content",status:"warn",message:"Could not read university directory"});}let H=i.join(l,".claude","hooks.json"),X=i.join(l,"plugins","paradigm","hooks.json");if(e.existsSync(H)){let t=e.statSync(H),a=Date.now()-t.mtime.getTime(),n=Math.floor(a/(1e3*60*60*24));n>30?s.push({name:"Claude Code hooks",status:"warn",message:`Hooks are ${n} days old \u2014 may be outdated`,fix:"paradigm hooks install"}):s.push({name:"Claude Code hooks",status:"ok",message:n>0?`${n} days old`:"Fresh"});}else e.existsSync(X)?s.push({name:"Claude Code hooks",status:"ok",message:"Using plugin hooks"}):s.push({name:"Claude Code hooks",status:"missing",message:"No hooks installed",fix:"paradigm hooks install"});let _=i.join(l,".paradigm","habits.yaml");if(e.existsSync(_))try{let t=e.readFileSync(_,"utf8"),a=x.load(t);if(a?.version&&Array.isArray(a?.habits)){let n=a.habits.filter(o=>o.enabled!==!1).length;s.push({name:"Habits config",status:"ok",message:`Valid (${n}/${a.habits.length} enabled)`});}else s.push({name:"Habits config",status:"warn",message:"Missing version or habits array",fix:"Regenerate habits.yaml with paradigm habits init"});}catch(t){s.push({name:"Habits config",status:"error",message:`Invalid YAML: ${t.message}`,fix:"Check YAML syntax in habits.yaml"});}let G=i.join(l,"AGENTS.md");if(e.existsSync(G)){let t=e.statSync(G),a=Date.now()-t.mtime.getTime(),n=Math.floor(a/(1e3*60*60*24));n>60?s.push({name:"AGENTS.md",status:"warn",message:`${n} days since last update \u2014 may be stale`,fix:"paradigm sync"}):s.push({name:"AGENTS.md",status:"ok",message:n>0?`Updated ${n} days ago`:"Fresh"});}}let I=0,N=0,S=0;for(let r of s){let f,p;switch(r.status){case "ok":f="\u2713",p=c.green;break;case "warn":f="\u26A0",p=c.yellow,N++;break;case "error":f="\u2717",p=c.red,I++;break;case "missing":f="\u25CB",p=c.gray,S++;break}if(!k){let j=r.name.padEnd(30);console.log(` ${p(f)} ${j} ${p(r.message)}`),r.fix&&console.log(c.gray(` \u2514\u2500 Fix: ${r.fix}`));}}let{runContextAudit:Q}=await import('./context-audit-RSSRX6XC.js'),D=await Q(l,{quiet:k}),z=0,O=0,$=0;!k&&D.length>0&&(console.log(""),console.log(c.blue(" Context Audit")),console.log(c.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")));for(let r of D){let f,p;switch(r.status){case "ok":f="\u2713",p=c.green;break;case "warn":f="\u26A0",p=c.yellow,O++;break;case "error":f="\u2717",p=c.red,z++;break;case "advisory":f="\u2139",p=c.cyan,$++;break}if(!k){let j=r.check.padEnd(30);if(console.log(` ${p(f)} ${j} ${p(r.message)}`),r.details&&r.details.length>0){let P=r.details.slice(0,5);for(let F of P)console.log(c.gray(` \u2502 ${F}`));r.details.length>5&&console.log(c.gray(` \u2502 ... and ${r.details.length-5} more`));}r.fix&&console.log(c.gray(` \u2514\u2500 Fix: ${r.fix}`));}}let C=I+z,b=N+O,R=C+b+S===0;if(!k)if(console.log(""),R)console.log(c.green(`\u2728 All checks passed!
7
+ `));else {let r=[];C>0&&r.push(c.red(`${C} error${C>1?"s":""}`)),b>0&&r.push(c.yellow(`${b} warning${b>1?"s":""}`)),S>0&&r.push(c.gray(`${S} missing`)),$>0&&r.push(c.cyan(`${$} advisor${$>1?"ies":"y"}`)),console.log(`${r.join(", ")} found.
8
+ `),console.log(c.gray(`Run the suggested commands to fix issues.
9
+ `));}return R?L.success("All health checks passed",{total:s.length+D.length}):L.error("Health checks found issues",{errors:C,warnings:b,missing:S,advisories:$}),R}export{rs as a};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import {f,g,h,i,j,k,l,m,n}from'./chunk-JIXHEBGK.js';import {a,e}from'./chunk-QT2LKB3P.js';import*as N from'fs';import*as v from'js-yaml';import {z as z$1}from'zod';import*as S from'path';var U={component:"#",flow:"$",gate:"^",signal:"!",aspect:"~"},Z={"#":"component",$:"flow","^":"gate","!":"signal","~":"aspect"},q=["#","$","^","!","~"];function H(e){return q.includes(e)}var ee=z$1.object({x:z$1.number(),y:z$1.number()}),te=z$1.object({x:z$1.number(),y:z$1.number(),zoom:z$1.number()}),z=z$1.object({path:z$1.string(),include:z$1.array(z$1.string()).optional(),exclude:z$1.array(z$1.string()).optional()}),G=z$1.object({id:z$1.string(),symbol:z$1.string(),type:z$1.enum(["feature","component","flow","state","aspect","gate","signal","idea"]),content:z$1.string().optional(),position:ee,tags:z$1.array(z$1.string()).optional(),created:z$1.string(),modified:z$1.string().optional()}),_=z$1.object({from:z$1.string(),to:z$1.string(),label:z$1.string().optional(),type:z$1.string().optional()}),oe=z$1.object({id:z$1.string(),name:z$1.string(),nodes:z$1.array(z$1.string()),color:z$1.string().optional()}),F=z$1.object({viewport:te,groups:z$1.array(oe).optional()}),ne=z$1.object({nodes:z$1.array(G),connections:z$1.array(_),layout:F}),se=z$1.object({id:z$1.string(),name:z$1.string(),timestamp:z$1.string(),description:z$1.string().optional(),state:ne}),re=z$1.object({version:z$1.string(),metadata:z$1.object({name:z$1.string(),created:z$1.string(),modified:z$1.string()}),sources:z$1.object({purpose:z$1.array(z).optional(),portal:z$1.array(z).optional()}),nodes:z$1.array(G),connections:z$1.array(_),layout:F,snapshots:z$1.array(se).optional()});function ge(e){let o=[],t;try{t=N.readFileSync(e,"utf8");}catch(n){return o.push(`Cannot read file: ${n.message}`),{data:null,errors:o,rawContent:void 0}}return ae(t)}function ae(e){let o=[],t=null;try{t=v.load(e);}catch(i){let l=i,f=l.mark?.line?l.mark.line+1:void 0;return o.push(`YAML syntax error: ${l.reason||i.message}${f?` (line ${f})`:""}`),{data:null,errors:o,rawContent:e}}if(t==null)return {data:V(),errors:[],rawContent:e};let n=re.safeParse(t);if(!n.success){for(let i of n.error.issues){let l=i.path.join(".");o.push(`Schema error at ${l||"/"}: ${i.message}`);}return {data:t,errors:o,rawContent:e}}return {data:n.data,errors:[],rawContent:e}}function V(e="Untitled"){let o=new Date().toISOString();return {version:"1.0.0",metadata:{name:e,created:o,modified:o},sources:{purpose:[{path:"./"}],portal:[{path:"./portal.yaml"}]},nodes:[],connections:[],layout:{viewport:{x:0,y:0,zoom:1}}}}function ie(e){return e.metadata.modified=new Date().toISOString(),v.dump(e,{indent:2,lineWidth:-1,noRefs:true,sortKeys:false})}function he(e="My Project"){return ie(V(e))}function be(e,o){return {...e,nodes:[...e.nodes,o],metadata:{...e.metadata,modified:new Date().toISOString()}}}function Se(e,o,t){return {...e,nodes:e.nodes.map(n=>n.id===o?{...n,position:t,modified:new Date().toISOString()}:n),metadata:{...e.metadata,modified:new Date().toISOString()}}}function $e(e,o){return e.connections.some(n=>n.from===o.from&&n.to===o.to)?e:{...e,connections:[...e.connections,o],metadata:{...e.metadata,modified:new Date().toISOString()}}}function we(e,o,t){let n={id:`snap-${Date.now()}`,name:o,timestamp:new Date().toISOString(),description:t,state:{nodes:[...e.nodes],connections:[...e.connections],layout:{...e.layout}}};return {...e,snapshots:[...e.snapshots||[],n],metadata:{...e.metadata,modified:new Date().toISOString()}}}async function ce(e$1,o){let t=[],n$1=[],i$1=[],l$1=[];if(e$1.sources.purpose)for(let c of e$1.sources.purpose){let u=S.resolve(o,c.path);try{let p=await f(u);i$1.push(...p.map(r=>r.filePath));let m$1=g(p);for(let[r,{item:a,filePath:d}]of m$1){let b=["feature",...a.tags||[]];t.push(y({id:`purpose-feature-${r}`,symbol:`#${r}`,type:"component",source:"purpose",filePath:d,data:a,description:a.description,tags:b,componentType:a.type,parentSymbol:a.parent,anchors:a.anchors?.map(Q=>T(Q))}));}let g$1=h(p);for(let[r,{item:a,filePath:d}]of g$1)t.push(y({id:`purpose-component-${r}`,symbol:`#${r}`,type:"component",source:"purpose",filePath:d,data:a,description:a.description,tags:a.tags,componentType:a.type,parentSymbol:a.parent,anchors:a.anchors?.map(b=>T(b))}));let $=i(p);for(let[r,{item:a,filePath:d}]of $)t.push(y({id:`purpose-gate-${r}`,symbol:`^${r}`,type:"gate",source:"purpose",filePath:d,data:a,description:a.description}));let k$1=j(p);for(let[r,{item:a,filePath:d}]of k$1)t.push(y({id:`purpose-state-${r}`,symbol:`#${r}`,type:"component",source:"purpose",filePath:d,data:a,description:a.description,tags:["state"]}));let W=k(p);for(let[r,{item:a,filePath:d}]of W)t.push(y({id:`purpose-flow-${r}`,symbol:`$${r}`,type:"flow",source:"purpose",filePath:d,data:a,description:a.description}));let X=l(p);for(let[r,{item:a,filePath:d}]of X)t.push(y({id:`purpose-signal-${r}`,symbol:`!${r}`,type:"signal",source:"purpose",filePath:d,data:a,description:a.description}));let K=m(p);for(let[r,{item:a,filePath:d}]of K)t.push(y({id:`purpose-aspect-${r}`,symbol:`~${r}`,type:"aspect",source:"purpose",filePath:d,data:a,description:a.description,anchors:a.anchors?.map(b=>T(b)),appliesTo:a["applies-to"],tags:a.tags,enforcement:a.enforcement}));let J=n(p),x=new Set(t.map(r=>r.symbol));for(let r of J)x.has(r.symbol)||(x.add(r.symbol),t.push(y({id:`purpose-ref-${r.type}-${r.symbol.slice(1)}`,symbol:r.symbol,type:r.type,source:"purpose",filePath:r.filePath,data:{referencedFrom:r.sourceSymbol},description:`Referenced from ${r.sourceSymbol}`})));}catch(p){n$1.push({source:"purpose",filePath:u,message:p.message});}}if(e$1.sources.portal)for(let c of e$1.sources.portal){let u=S.resolve(o,c.path);try{let p;if(u.endsWith(".yaml")||u.endsWith(".yml"))p=await a(u),l$1.push(u);else {let m=await e(u);if(l$1.push(...m),m.length>0){p=await a(m[0]);for(let g=1;g<m.length;g++){let $=await a(m[g]);p.gates.push(...$.gates),p.flows.push(...$.flows);}}else continue}for(let m of p.gates){t.push(pe(m,u));for(let g of m.prizes)t.push(y({id:`gate-signal-${m.id}-${g.id}`,symbol:`!${g.id}`,type:"signal",source:"portal",filePath:u,data:g,description:`Signal from gate ${m.id}`}));}for(let m of p.flows)t.push(ue(m,u));}catch(p){n$1.push({source:"portal",filePath:u,message:p.message});}}for(let c of e$1.nodes){let u=c.tags?.includes("idea");if(!c.content&&!u){let p=t.find(m=>m.symbol===c.symbol);if(p){p.position=c.position,p.tags=c.tags;continue}}t.push(y({id:c.id,symbol:c.symbol,type:c.type,source:"premise",filePath:".premise",data:c,description:c.content,position:c.position,tags:c.tags,created:c.created,modified:c.modified}));}fe(t);let f$1=new Map;for(let c of t){let u=f$1.get(c.symbol)||[];u.includes(c.filePath)||u.push(c.filePath),f$1.set(c.symbol,u);}let h$1=[];for(let[c,u]of f$1)u.length>1&&h$1.push({symbol:c,files:u});return {symbols:t,purposeFiles:i$1,portalFiles:l$1,errors:n$1,timestamp:Date.now(),...h$1.length>0?{duplicateSymbols:h$1}:{}}}function y(e){return {...e,data:e.data??null,references:e.references??[],referencedBy:e.referencedBy??[]}}function pe(e,o){return y({id:`gate-${e.id}`,symbol:`^${e.id}`,type:"gate",source:"portal",filePath:o,data:e,description:e.description,position:e.position})}function ue(e,o){return y({id:`gate-flow-${e.id}`,symbol:`$${e.id}`,type:"flow",source:"portal",filePath:o,data:e,description:e.description})}function T(e){let o=e.lastIndexOf(":");if(o===-1||o===e.length-1)return {path:e,lines:0,raw:e};let t=e.slice(o+1),n=e.slice(0,o);if(!/^[\d,\- ]+$/.test(t))return {path:e,lines:0,raw:e};if(t.includes("-")){let[i,l]=t.split("-").map(Number);return {path:n,lines:[i,l],raw:e}}else if(t.includes(",")){let i=t.split(",").map(Number);return {path:n,lines:i,raw:e}}else return {path:n,lines:Number(t),raw:e}}var le=new Set(["$lib","$env","$app","$service-worker","$virtual","$schema","$ref","$id","$type"]);function fe(e){let o=new Map(e.map(t=>[t.symbol,t]));for(let t of e){let n=JSON.stringify(t.data),i=/(?:\?[@#$%~^!]|[@#$%~^!?])[a-zA-Z][\w-]*/g,l=(n.match(i)||[]).filter(f=>!le.has(f));for(let f of l)if(f!==t.symbol&&o.has(f)){t.references.includes(f)||t.references.push(f);let h=o.get(f);h&&!h.referencedBy.includes(t.symbol)&&h.referencedBy.push(t.symbol);}}}async function Ce(e){let o={metadata:{name:S.basename(e),created:new Date().toISOString(),modified:new Date().toISOString()},sources:{purpose:[{path:"./"}],portal:[{path:"./"}]},nodes:[]};return ce(o,e)}function me(){return {entries:new Map,byType:new Map,bySource:new Map,timestamp:0}}function Te(e){let o=me();o.timestamp=e.timestamp;for(let t of e.symbols)o.entries.set(t.id,t),o.byType.has(t.type)||o.byType.set(t.type,[]),o.byType.get(t.type).push(t),o.bySource.has(t.source)||o.bySource.set(t.source,[]),o.bySource.get(t.source).push(t);return o}function P(e,o){for(let t of e.entries.values())if(t.symbol===o)return t}function xe(e,o){return e.entries.get(o)}function C(e,o){return e.byType.get(o)||[]}function Ie(e,o){return e.bySource.get(o)||[]}function de(e,o){let t=o.toLowerCase(),n=[];for(let i of e.entries.values()){if(i.symbol.toLowerCase().includes(t)){n.push(i);continue}if(i.description?.toLowerCase().includes(t)){n.push(i);continue}if(i.tags?.some(l=>l.toLowerCase().includes(t))){n.push(i);continue}if(i.componentType?.toLowerCase().includes(t)){n.push(i);continue}}return n}function Oe(e,o){return C(e,"component").filter(n=>n.componentType===o)}function je(e){let o=new Set,t=C(e,"component");for(let n of t)n.componentType&&o.add(n.componentType);return Array.from(o).sort()}function Le(e,o){return C(e,"component").filter(n=>n.parentSymbol===o)}function Ae(e,o){let t=P(e,o);return t?t.referencedBy.map(n=>P(e,n)).filter(n=>n!==void 0):[]}function Be(e,o){let t=P(e,o);return t?t.references.map(n=>P(e,n)).filter(n=>n!==void 0):[]}function De(e,o){let t=[];for(let n of e.entries.values())n.tags?.includes(o)&&t.push(n);return t}function Me(e){let o=new Set;for(let t of e.entries.values())for(let n of t.tags||[])o.add(n);return Array.from(o).sort()}function Re(e){let o={component:0,flow:0,gate:0,signal:0,aspect:0};for(let[t,n]of e.byType)t in o&&(o[t]=n.length);return o}function Ee(e){return Array.from(e.entries.values())}function Y(e){if(e.length<2)return null;let o=e[0],t=e.slice(1);return H(o)?{type:Z[o],name:t}:null}function ze(e,o){return `${U[e]}${o}`}function Ne(e){return Y(e)!==null}function Ge(e,o,t=10){let n=o.toLowerCase(),i=Y(o);return i?C(e,i.type).filter(f=>f.symbol.toLowerCase().includes(n)).slice(0,t):de(e,o).slice(0,t)}export{Me as A,Re as B,Ee as C,Y as D,ze as E,Ne as F,Ge as G,U as a,Z as b,ge as c,ae as d,V as e,ie as f,he as g,be as h,Se as i,$e as j,we as k,ce as l,Ce as m,me as n,Te as o,P as p,xe as q,C as r,Ie as s,de as t,Oe as u,je as v,Le as w,Ae as x,Be as y,De as z};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ var f=/[@#$%^!?&~][a-zA-Z0-9_-]+/g;function p(t,e){let o=[],r=t.toLowerCase(),n=m(t);for(let[i,s]of Object.entries(e)){let g=[];for(let c of s.triggers||[]){let a=l(c,r,n);g.push(...a);}g.length>0&&o.push({name:i,reason:d(i,s,g),confidence:y(g),triggers_matched:g});}return o.sort((i,s)=>h(s.confidence)-h(i.confidence))}function l(t,e,o){let r=[];switch(t.type){case "keyword":if(t.match)for(let n of t.match)e.includes(n.toLowerCase())&&r.push(`keyword:${n}`);break;case "symbol":if(t.match)for(let n of t.match){let i=o.filter(s=>u(s,n));for(let s of i)r.push(`symbol:${s}`);}break;}return r}function u(t,e){if(e.endsWith("*")){let o=e.slice(0,-1);return t.startsWith(o)}return e.startsWith("^")&&e==="^*"?t.startsWith("^"):t===e}function m(t){let e=t.match(f)||[];return [...new Set(e)]}function d(t,e,o){let r=o.filter(c=>c.startsWith("keyword:")),n=o.filter(c=>c.startsWith("symbol:")),i=[];if(r.length>0){let c=r.map(a=>a.split(":")[1]);i.push(`keywords: ${c.join(", ")}`);}if(n.length>0){let c=n.map(a=>a.split(":")[1]);i.push(`symbols: ${c.join(", ")}`);}let s=e.role.split(`
3
+ `)[0].trim(),g=s.length>60?s.slice(0,57)+"...":s;return `Matched ${i.join("; ")}. ${g}`}function y(t){let e=t.filter(n=>n.startsWith("keyword:")).length,o=t.filter(n=>n.startsWith("symbol:")).length,r=e>0&&o>0;return t.length>=3||r?"high":t.length>=2?"medium":"low"}function h(t){switch(t){case "high":return 3;case "medium":return 2;case "low":return 1}}export{p as a};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import*as t from'fs';import*as r from'path';function $(e){let s=l(e),n=s?.dependencies??{},h=s?.devDependencies??{},a={...n,...h},i=g=>g in a;if(s?.workspaces||t.existsSync(r.join(e,"pnpm-workspace.yaml"))||t.existsSync(r.join(e,"lerna.json")))return "monorepo";if(s){if(s.bin&&!x(e,a))return "cli";if((s.exports||s.main)&&!s.bin&&!d(a)&&!u(a))return "library";if(i("react-native")||i("expo"))return "mobile";if(i("next")||i("nuxt")||i("@sveltejs/kit")||i("remix")||i("@remix-run/node")||i("astro"))return "fullstack";if(d(a)&&!u(a))return "web";if(u(a)&&!d(a))return "api";if(d(a)&&u(a))return "fullstack";if(i("@tensorflow/tfjs")||i("onnxruntime-node"))return "ml"}let b=p(e,"pyproject.toml"),y=p(e,"requirements.txt"),c=(b||"")+(y||"");if(c){if(/torch|tensorflow|scikit-learn|transformers|jax/i.test(c))return "ml";if(/dbt|airflow|prefect|dagster|spark|pandas(?!.*flask)(?!.*django)/i.test(c))return "data";if(t.existsSync(r.join(e,"manage.py"))&&t.existsSync(r.join(e,"templates")))return "fullstack";if(/fastapi|flask|django-rest-framework|djangorestframework|starlette/i.test(c))return "api";if(t.existsSync(r.join(e,"manage.py")))return "fullstack";if(/click|typer|argparse|fire/i.test(c)&&!t.existsSync(r.join(e,"manage.py")))return "cli"}if(t.existsSync(r.join(e,"go.mod"))){if(t.existsSync(r.join(e,"cmd")))return "cli";let g=p(e,"go.mod")||"";return /gin|echo|fiber|chi|gorilla\/mux/i.test(g)?"api":"backend"}let o=p(e,"Cargo.toml");return o?/embedded-hal|no_std|cortex-m/i.test(o)?"embedded":/clap|structopt/i.test(o)?"cli":/actix-web|axum|rocket|warp/i.test(o)?"api":/bevy|ggez|macroquad/i.test(o)?"game":/tauri/i.test(o)?"fullstack":"backend":t.existsSync(r.join(e,"pubspec.yaml"))||t.existsSync(r.join(e,"ios"))&&t.existsSync(r.join(e,"android"))?"mobile":t.existsSync(r.join(e,"project.godot"))||t.existsSync(r.join(e,"ProjectSettings"))||m(e,".pretend")?"game":t.existsSync(r.join(e,"terraform"))||t.existsSync(r.join(e,"main.tf"))||t.existsSync(r.join(e,"pulumi"))||t.existsSync(r.join(e,"ansible.cfg"))||t.existsSync(r.join(e,"Dockerfile"))&&!s?"devops":t.existsSync(r.join(e,"platformio.ini"))?"embedded":"backend"}var v={web:{symbolMapping:{"components/**":"#","pages/**":"#","views/**":"#","hooks/**":"#","stores/**":"#","state/**":"#","utils/**":"#","lib/**":"#","services/**":"#","middleware/**":"^","auth/**":"^","guards/**":"^","events/**":"!","handlers/**":"!","flows/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"src/components/*",depth:1},{pattern:"src/pages/*",depth:1},{pattern:"src/features/*",depth:1}],examples:{"#":["#LoginForm","#useAuth","#CartStore","#api-client"],$:["$checkout-flow","$onboarding"],"^":["^authenticated","^admin-only"],"!":["!form-submit","!notification-sent"],"~":["~rate-limited","~csrf-protected"]}},backend:{symbolMapping:{"services/**":"#","routes/**":"#","api/**":"#","models/**":"#","lib/**":"#","utils/**":"#","core/**":"#","config/**":"#","middleware/**":"^","auth/**":"^","guards/**":"^","policies/**":"^","events/**":"!","handlers/**":"!","listeners/**":"!","flows/**":"$","workflows/**":"$","pipelines/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"src/services/*",depth:1},{pattern:"src/routes/*",depth:1},{pattern:"src/api/*",depth:1}],examples:{"#":["#users-create","#database","#cache","#postgres-client"],$:["$order-fulfillment","$data-sync"],"^":["^api-key-required","^rate-limited"],"!":["!order-created","!email-sent"],"~":["~audit-logged","~encrypted"]}},fullstack:{symbolMapping:{"components/**":"#","pages/**":"#","views/**":"#","hooks/**":"#","stores/**":"#","services/**":"#","routes/**":"#","api/**":"#","models/**":"#","lib/**":"#","utils/**":"#","core/**":"#","config/**":"#","middleware/**":"^","auth/**":"^","guards/**":"^","policies/**":"^","events/**":"!","handlers/**":"!","listeners/**":"!","flows/**":"$","workflows/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"src/components/*",depth:1},{pattern:"src/pages/*",depth:1},{pattern:"src/api/*",depth:1},{pattern:"src/services/*",depth:1}],examples:{"#":["#LoginPage","#api-users","#UserService","#stripe-client"],$:["$checkout-flow","$auth-flow"],"^":["^authenticated","^admin-only"],"!":["!order-created","!notification-sent"],"~":["~rate-limited","~audit-required"]}},api:{symbolMapping:{"routes/**":"#","endpoints/**":"#","controllers/**":"#","services/**":"#","models/**":"#","lib/**":"#","utils/**":"#","core/**":"#","config/**":"#","middleware/**":"^","auth/**":"^","guards/**":"^","policies/**":"^","events/**":"!","handlers/**":"!","listeners/**":"!","webhooks/**":"!","flows/**":"$","workflows/**":"$","pipelines/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"src/routes/*",depth:1},{pattern:"src/services/*",depth:1},{pattern:"src/endpoints/*",depth:1}],examples:{"#":["#users-endpoint","#OrderService","#database","#redis-client"],$:["$order-processing","$webhook-ingestion"],"^":["^api-key-required","^rate-limited","^authenticated"],"!":["!request-received","!order-created"],"~":["~audit-logged","~validated","~idempotent"]}},cli:{symbolMapping:{"commands/**":"#","cmd/**":"#","lib/**":"#","utils/**":"#","core/**":"#","config/**":"#","handlers/**":"!","events/**":"!","flows/**":"$","workflows/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"src/commands/*",depth:1},{pattern:"cmd/*",depth:1}],examples:{"#":["#init-command","#config-loader","#output-formatter"],$:["$setup-flow","$migration-flow"],"^":["^config-valid","^version-check"],"!":["!command-complete","!error-occurred"],"~":["~logged","~validated"]}},ml:{symbolMapping:{"models/**":"#","data/**":"#","experiments/**":"#","notebooks/**":"#","features/**":"#","utils/**":"#","lib/**":"#","config/**":"#","pipelines/**":"$","training/**":"$","evaluation/**":"#","preprocessing/**":"#","auth/**":"^","events/**":"!","aspects/**":"~"},purposeRequired:[{pattern:"models/*",depth:1},{pattern:"pipelines/*",depth:1},{pattern:"experiments/*",depth:1}],examples:{"#":["#classifier-v2","#dataloader","#feature-extractor","#wandb-client"],$:["$training-pipeline","$data-ingestion","$evaluation-pipeline"],"^":["^data-scientist","^production-only"],"!":["!epoch-complete","!drift-detected","!training-finished"],"~":["~reproducible","~versioned"]}},mobile:{symbolMapping:{"screens/**":"#","components/**":"#","widgets/**":"#","services/**":"#","stores/**":"#","state/**":"#","hooks/**":"#","utils/**":"#","lib/**":"#","native/**":"#","navigation/**":"$","flows/**":"$","middleware/**":"^","auth/**":"^","permissions/**":"^","events/**":"!","handlers/**":"!","aspects/**":"~"},purposeRequired:[{pattern:"src/screens/*",depth:1},{pattern:"src/components/*",depth:1}],examples:{"#":["#home-screen","#camera-capture","#bottom-sheet","#push-service"],$:["$onboarding","$purchase-flow"],"^":["^camera-permission","^premium-user"],"!":["!push-received","!app-backgrounded"],"~":["~offline-capable","~encrypted-storage"]}},game:{symbolMapping:{"gameplay/**":"#","systems/**":"#","entities/**":"#","components/**":"#","scenes/**":"#","ui/**":"#","utils/**":"#","lib/**":"#","core/**":"#","config/**":"#","events/**":"!","triggers/**":"!","flows/**":"$","sequences/**":"$","auth/**":"^","aspects/**":"~"},purposeRequired:[{pattern:"gameplay/*",depth:1},{pattern:"systems/*",depth:1},{pattern:"entities/*",depth:1}],examples:{"#":["#attack","#inventory","#player","#enemy-ai"],$:["$combat-loop","$tutorial-sequence"],"^":["^multiplayer-session","^dev-mode"],"!":["!enemy-killed","!level-complete"],"~":["~deterministic","~network-synced"]}},embedded:{symbolMapping:{"drivers/**":"#","hal/**":"#","bsp/**":"#","src/**":"#","lib/**":"#","utils/**":"#","config/**":"#","protocols/**":"$","flows/**":"$","auth/**":"^","security/**":"^","events/**":"!","interrupts/**":"!","aspects/**":"~"},purposeRequired:[{pattern:"src/drivers/*",depth:1},{pattern:"src/*",depth:1}],examples:{"#":["#spi-driver","#gpio-handler","#mqtt-client","#read-sensor"],$:["$boot-sequence","$handshake","$firmware-update"],"^":["^secure-boot","^authenticated-cmd"],"!":["!data-ready","!watchdog-timeout"],"~":["~power-optimized","~real-time"]}},devops:{symbolMapping:{"modules/**":"#","terraform/**":"#","ansible/**":"#","scripts/**":"#","lib/**":"#","config/**":"#","pipelines/**":"$","workflows/**":"$","ci/**":"$","auth/**":"^","policies/**":"^","alerts/**":"!","monitoring/**":"!","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"modules/*",depth:1},{pattern:"terraform/*",depth:1},{pattern:"pipelines/*",depth:1}],examples:{"#":["#vpc-module","#backup-script","#deploy","#aws-client"],$:["$release-pipeline","$disaster-recovery"],"^":["^admin-access","^vpc-restricted"],"!":["!high-cpu","!deployment-failed"],"~":["~immutable-infra","~zero-downtime"]}},data:{symbolMapping:{"models/**":"#","dbt/**":"#","transforms/**":"#","sources/**":"#","utils/**":"#","lib/**":"#","config/**":"#","pipelines/**":"$","dags/**":"$","workflows/**":"$","orchestration/**":"$","auth/**":"^","policies/**":"^","events/**":"!","alerts/**":"!","aspects/**":"~","tests/**":"~"},purposeRequired:[{pattern:"models/*",depth:1},{pattern:"pipelines/*",depth:1},{pattern:"dags/*",depth:1}],examples:{"#":["#users-model","#data-source","#transform-revenue","#snowflake-client"],$:["$etl-pipeline","$daily-refresh","$data-quality-check"],"^":["^analyst-only","^pii-access"],"!":["!pipeline-complete","!data-quality-fail"],"~":["~idempotent","~schema-validated"]}},library:{symbolMapping:{"src/**":"#","lib/**":"#","utils/**":"#","core/**":"#","config/**":"#","events/**":"!","handlers/**":"!","flows/**":"$","aspects/**":"~"},purposeRequired:[{pattern:"src/*",depth:1},{pattern:"lib/*",depth:1}],examples:{"#":["#parser","#formatter","#validator","#client"],$:["$build-pipeline","$publish-flow"],"^":["^version-check","^config-valid"],"!":["!parse-error","!validation-failed"],"~":["~tree-shakeable","~backwards-compatible"]}},monorepo:{symbolMapping:{"packages/**":"#","apps/**":"#","services/**":"#","libs/**":"#","shared/**":"#","tools/**":"#","config/**":"#","middleware/**":"^","auth/**":"^","events/**":"!","handlers/**":"!","flows/**":"$","pipelines/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"packages/*",depth:1},{pattern:"apps/*",depth:1}],examples:{"#":["#web-app","#api-server","#shared-ui","#config-loader"],$:["$deploy-all","$release-pipeline"],"^":["^authenticated","^admin-only"],"!":["!build-complete","!package-published"],"~":["~consistent-versions","~shared-config"]}}},w={"features/**":"#","routes/**":"#","api/**":"#","endpoints/**":"#","commands/**":"#","models/**":"#","components/**":"#","lib/**":"#","utils/**":"#","services/**":"#","core/**":"#","drivers/**":"#","systems/**":"#","stores/**":"#","state/**":"#","reducers/**":"#","config/**":"#","integrations/**":"#","external/**":"#","vendors/**":"#","middleware/**":"^","auth/**":"^","guards/**":"^","policies/**":"^","events/**":"!","handlers/**":"!","listeners/**":"!","hooks/**":"!","flows/**":"$","sagas/**":"$","workflows/**":"$","pipelines/**":"$","aspects/**":"~","rules/**":"~"};function k(e){return e==="auto"||e==="custom"?{symbolMapping:w,purposeRequired:[{pattern:"src/*",depth:1},{pattern:"lib/*",depth:1},{pattern:"packages/*",depth:1}],examples:{"#":["#checkout","#login-handler","#Button","#stripe-client"],$:["$checkout-flow","$onboarding","$auth-flow"],"^":["^authenticated","^admin-only","^rate-limited"],"!":["!login-success","!payment-failed","!rate-limited"],"~":["~audit-required","~rate-limited","~cached"]}}:v[e]}function P(e){let s={components:[],routes:[],auth:[]};switch(e){case "ml":s.components.push("models/**/*.py","notebooks/**/*.ipynb","experiments/**/*.py","data/**/*.py"),s.routes.push("pipelines/**/*.py","training/**/*.py");break;case "game":s.components.push("entities/**/*.{ts,rs,cs,gd}","systems/**/*.{ts,rs,cs,gd}","gameplay/**/*.{ts,rs,cs,gd}","scenes/**/*.{ts,rs,cs,gd}");break;case "embedded":s.components.push("drivers/**/*.{c,h,rs}","hal/**/*.{c,h,rs}","bsp/**/*.{c,h}"),s.routes.push("protocols/**/*.{c,h,rs}");break;case "data":s.components.push("models/**/*.sql","dbt/**/*.sql","transforms/**/*.{py,sql}","sources/**/*.yml"),s.routes.push("dags/**/*.py","pipelines/**/*.py","orchestration/**/*.py");break;case "devops":s.components.push("modules/**/*.tf","terraform/**/*.tf","ansible/**/*.yml","scripts/**/*.sh"),s.routes.push("pipelines/**/*.yml","workflows/**/*.yml",".github/workflows/**/*.yml");break;case "cli":s.components.push("commands/**/*.{ts,go,rs,py}","cmd/**/*.go");break;case "mobile":s.components.push("screens/**/*.{tsx,dart,swift,kt}","widgets/**/*.dart"),s.routes.push("navigation/**/*.{ts,tsx,dart}");break;case "monorepo":s.components.push("packages/*/src/**/*.{ts,tsx}","apps/*/src/**/*.{ts,tsx}");break;}return s}function l(e){let s=r.join(e,"package.json");try{return JSON.parse(t.readFileSync(s,"utf8"))}catch{return null}}function p(e,s){let n=r.join(e,s);try{return t.readFileSync(n,"utf8")}catch{return null}}function d(e){return ["react","vue","@angular/core","svelte","solid-js","preact","lit"].some(n=>n in e)}function u(e){return ["express","fastify","hono","koa","nestjs","@nestjs/core","hapi","@hapi/hapi"].some(n=>n in e)}function x(e,s){return d(s)?true:t.existsSync(r.join(e,"src","components"))||t.existsSync(r.join(e,"src","pages"))}function m(e,s){try{return t.readdirSync(e).some(h=>h.endsWith(s))}catch{return false}}var f={nextjs:{id:"nextjs",name:"Next.js",discipline:"fullstack",symbolMapping:{"app/**/page.tsx":"#","app/**/layout.tsx":"#","app/**/loading.tsx":"#","app/**/error.tsx":"#","app/api/**":"#","pages/**":"#","pages/api/**":"#","components/**":"#","lib/**":"#","hooks/**":"#","stores/**":"#","utils/**":"#","services/**":"#","config/**":"#","middleware.ts":"^","app/api/auth/**":"^","events/**":"!","handlers/**":"!","flows/**":"$","aspects/**":"~","rules/**":"~"},purposeRequired:[{pattern:"app/*",depth:1},{pattern:"app/api/*",depth:1},{pattern:"components/*",depth:1},{pattern:"lib/*",depth:1}],scanHints:{componentPatterns:["app/**/page.tsx","app/**/layout.tsx","components/**/*.tsx","pages/**/*.tsx"],routePatterns:["app/api/**/route.ts","app/**/page.tsx","pages/api/**/*.ts"],authPatterns:["middleware.ts","app/api/auth/**","lib/auth.*"],statePatterns:["stores/**","lib/*store*","lib/*context*"]},detectFn:e=>{try{return t.readdirSync(e).some(s=>s.startsWith("next.config"))}catch{return false}}},remix:{id:"remix",name:"Remix",discipline:"fullstack",symbolMapping:{"app/routes/**":"#","app/components/**":"#","app/models/**":"#","app/utils/**":"#","app/lib/**":"#","app/services/**":"#","app/hooks/**":"#","app/stores/**":"#","app/config/**":"#","app/middleware/**":"^","app/auth/**":"^","app/events/**":"!","app/flows/**":"$","app/aspects/**":"~"},purposeRequired:[{pattern:"app/routes/*",depth:1},{pattern:"app/components/*",depth:1},{pattern:"app/models/*",depth:1}],scanHints:{componentPatterns:["app/routes/**/*.tsx","app/components/**/*.tsx"],routePatterns:["app/routes/**/*.tsx"],authPatterns:["app/utils/auth.*","app/services/auth.*"],statePatterns:["app/utils/*session*","app/models/**"]},detectFn:e=>{try{return t.readdirSync(e).some(s=>s.startsWith("remix.config"))}catch{return false}}},nuxt:{id:"nuxt",name:"Nuxt",discipline:"fullstack",symbolMapping:{"pages/**":"#","components/**":"#","composables/**":"#","server/api/**":"#","server/routes/**":"#","server/utils/**":"#","utils/**":"#","stores/**":"#","plugins/**":"#","layouts/**":"#","server/middleware/**":"^","middleware/**":"^","server/plugins/**":"!","flows/**":"$","aspects/**":"~"},purposeRequired:[{pattern:"pages/*",depth:1},{pattern:"components/*",depth:1},{pattern:"server/api/*",depth:1}],scanHints:{componentPatterns:["pages/**/*.vue","components/**/*.vue","layouts/**/*.vue"],routePatterns:["server/api/**/*.ts","server/routes/**/*.ts","pages/**/*.vue"],authPatterns:["server/middleware/auth.*","middleware/auth.*","server/utils/auth.*"],statePatterns:["stores/**/*.ts","composables/use*State*"]},detectFn:e=>{try{return t.readdirSync(e).some(s=>s.startsWith("nuxt.config"))}catch{return false}}},sveltekit:{id:"sveltekit",name:"SvelteKit",discipline:"fullstack",symbolMapping:{"src/routes/**":"#","src/lib/**":"#","src/lib/components/**":"#","src/lib/server/**":"#","src/lib/stores/**":"#","src/lib/utils/**":"#","src/hooks.*":"^","src/lib/auth/**":"^","src/lib/events/**":"!","src/lib/flows/**":"$","src/lib/aspects/**":"~"},purposeRequired:[{pattern:"src/routes/*",depth:1},{pattern:"src/lib/components/*",depth:1},{pattern:"src/lib/server/*",depth:1}],scanHints:{componentPatterns:["src/routes/**/+page.svelte","src/lib/components/**/*.svelte"],routePatterns:["src/routes/**/+server.ts","src/routes/**/+page.server.ts"],authPatterns:["src/hooks.server.ts","src/lib/auth/**","src/lib/server/auth.*"],statePatterns:["src/lib/stores/**"]},detectFn:e=>{try{return t.readdirSync(e).some(s=>s.startsWith("svelte.config"))}catch{return false}}},astro:{id:"astro",name:"Astro",discipline:"fullstack",symbolMapping:{"src/pages/**":"#","src/components/**":"#","src/layouts/**":"#","src/content/**":"#","src/lib/**":"#","src/utils/**":"#","src/middleware.*":"^","src/events/**":"!","src/flows/**":"$","src/aspects/**":"~"},purposeRequired:[{pattern:"src/pages/*",depth:1},{pattern:"src/components/*",depth:1}],scanHints:{componentPatterns:["src/pages/**/*.astro","src/components/**/*.astro","src/layouts/**/*.astro"],routePatterns:["src/pages/**/*.astro","src/pages/api/**/*.ts"],authPatterns:["src/middleware.*"],statePatterns:["src/content/**"]},detectFn:e=>{try{return t.readdirSync(e).some(s=>s.startsWith("astro.config"))}catch{return false}}},"react-spa":{id:"react-spa",name:"React SPA",discipline:"web",symbolMapping:{"src/components/**":"#","src/pages/**":"#","src/views/**":"#","src/hooks/**":"#","src/stores/**":"#","src/state/**":"#","src/utils/**":"#","src/lib/**":"#","src/services/**":"#","src/api/**":"#","src/config/**":"#","src/middleware/**":"^","src/auth/**":"^","src/guards/**":"^","src/events/**":"!","src/handlers/**":"!","src/flows/**":"$","src/aspects/**":"~","src/rules/**":"~"},purposeRequired:[{pattern:"src/components/*",depth:1},{pattern:"src/pages/*",depth:1},{pattern:"src/features/*",depth:1}],scanHints:{componentPatterns:["src/components/**/*.tsx","src/pages/**/*.tsx","src/views/**/*.tsx"],routePatterns:["src/routes.*","src/App.tsx"],authPatterns:["src/auth/**","src/guards/**","src/hooks/useAuth*"],statePatterns:["src/stores/**","src/state/**","src/hooks/use*Store*"]},detectFn:e=>{let s=l(e);if(!s)return false;let n={...s.dependencies??{},...s.devDependencies??{}};return "react"in n&&!("next"in n)&&!("remix"in n)&&!("react-native"in n)}},"vue-spa":{id:"vue-spa",name:"Vue SPA",discipline:"web",symbolMapping:{"src/components/**":"#","src/views/**":"#","src/pages/**":"#","src/composables/**":"#","src/stores/**":"#","src/utils/**":"#","src/lib/**":"#","src/services/**":"#","src/api/**":"#","src/config/**":"#","src/router/**":"$","src/middleware/**":"^","src/auth/**":"^","src/guards/**":"^","src/events/**":"!","src/flows/**":"$","src/aspects/**":"~"},purposeRequired:[{pattern:"src/components/*",depth:1},{pattern:"src/views/*",depth:1},{pattern:"src/stores/*",depth:1}],scanHints:{componentPatterns:["src/components/**/*.vue","src/views/**/*.vue"],routePatterns:["src/router/**/*.ts"],authPatterns:["src/auth/**","src/guards/**","src/router/guards*"],statePatterns:["src/stores/**/*.ts","src/composables/**/*.ts"]},detectFn:e=>{let s=l(e);if(!s)return false;let n={...s.dependencies??{},...s.devDependencies??{}};return "vue"in n&&!("nuxt"in n)}},express:{id:"express",name:"Express",discipline:"api",symbolMapping:{"src/routes/**":"#","src/controllers/**":"#","src/services/**":"#","src/models/**":"#","src/lib/**":"#","src/utils/**":"#","src/config/**":"#","src/middleware/**":"^","src/auth/**":"^","src/guards/**":"^","src/policies/**":"^","src/events/**":"!","src/handlers/**":"!","src/listeners/**":"!","src/webhooks/**":"!","src/flows/**":"$","src/workflows/**":"$","src/aspects/**":"~","src/rules/**":"~"},purposeRequired:[{pattern:"src/routes/*",depth:1},{pattern:"src/services/*",depth:1},{pattern:"src/controllers/*",depth:1}],scanHints:{componentPatterns:["src/routes/**/*.ts","src/controllers/**/*.ts","src/services/**/*.ts"],routePatterns:["src/routes/**/*.ts","src/index.ts","src/app.ts"],authPatterns:["src/middleware/auth*","src/auth/**"],statePatterns:["src/models/**/*.ts"]},detectFn:e=>{let s=l(e);return s?"express"in{...s.dependencies??{}}:false}},fastify:{id:"fastify",name:"Fastify",discipline:"api",symbolMapping:{"src/routes/**":"#","src/plugins/**":"#","src/services/**":"#","src/models/**":"#","src/schemas/**":"#","src/lib/**":"#","src/utils/**":"#","src/config/**":"#","src/hooks/**":"^","src/auth/**":"^","src/decorators/**":"^","src/events/**":"!","src/handlers/**":"!","src/flows/**":"$","src/aspects/**":"~"},purposeRequired:[{pattern:"src/routes/*",depth:1},{pattern:"src/plugins/*",depth:1},{pattern:"src/services/*",depth:1}],scanHints:{componentPatterns:["src/routes/**/*.ts","src/plugins/**/*.ts","src/services/**/*.ts"],routePatterns:["src/routes/**/*.ts"],authPatterns:["src/hooks/auth*","src/auth/**","src/decorators/auth*"],statePatterns:["src/models/**/*.ts","src/schemas/**/*.ts"]},detectFn:e=>{let s=l(e);return s?"fastify"in{...s.dependencies??{}}:false}},fastapi:{id:"fastapi",name:"FastAPI",discipline:"api",symbolMapping:{"routers/**":"#","routes/**":"#","api/**":"#","services/**":"#","models/**":"#","schemas/**":"#","crud/**":"#","core/**":"#","utils/**":"#","config/**":"#","deps/**":"^","middleware/**":"^","auth/**":"^","events/**":"!","handlers/**":"!","flows/**":"$","aspects/**":"~"},purposeRequired:[{pattern:"routers/*",depth:1},{pattern:"services/*",depth:1},{pattern:"models/*",depth:1}],scanHints:{componentPatterns:["routers/**/*.py","api/**/*.py","services/**/*.py"],routePatterns:["routers/**/*.py","api/**/*.py","main.py","app.py"],authPatterns:["deps/**/*.py","auth/**/*.py","middleware/**/*.py"],statePatterns:["models/**/*.py","schemas/**/*.py"]},detectFn:e=>{let s=(p(e,"pyproject.toml")||"")+(p(e,"requirements.txt")||"");return /fastapi/i.test(s)}},django:{id:"django",name:"Django",discipline:"api",symbolMapping:{"**/views/**":"#","**/views.py":"#","**/serializers/**":"#","**/models/**":"#","**/models.py":"#","**/admin.py":"#","**/forms.py":"#","**/urls.py":"$","**/management/**":"#","**/utils/**":"#","**/middleware/**":"^","**/permissions/**":"^","**/signals/**":"!","**/tasks/**":"$","**/aspects/**":"~"},purposeRequired:[{pattern:"*/views/*",depth:1},{pattern:"*/models/*",depth:1}],scanHints:{componentPatterns:["**/views.py","**/views/**/*.py","**/serializers.py"],routePatterns:["**/urls.py"],authPatterns:["**/permissions.py","**/permissions/**/*.py","**/middleware/**/*.py"],statePatterns:["**/models.py","**/models/**/*.py"]},detectFn:e=>t.existsSync(r.join(e,"manage.py"))},gin:{id:"gin",name:"Gin (Go)",discipline:"api",symbolMapping:{"handlers/**":"#","controllers/**":"#","services/**":"#","models/**":"#","repository/**":"#","pkg/**":"#","internal/**":"#","cmd/**":"#","config/**":"#","middleware/**":"^","auth/**":"^","events/**":"!","flows/**":"$","aspects/**":"~"},purposeRequired:[{pattern:"handlers/*",depth:1},{pattern:"services/*",depth:1},{pattern:"cmd/*",depth:1}],scanHints:{componentPatterns:["handlers/**/*.go","controllers/**/*.go","services/**/*.go"],routePatterns:["cmd/**/*.go","routes/**/*.go","router/**/*.go"],authPatterns:["middleware/**/*.go","auth/**/*.go"],statePatterns:["models/**/*.go","repository/**/*.go"]},detectFn:e=>{let s=p(e,"go.mod")||"";return /gin-gonic\/gin/i.test(s)}},axum:{id:"axum",name:"Axum (Rust)",discipline:"api",symbolMapping:{"src/handlers/**":"#","src/routes/**":"#","src/services/**":"#","src/models/**":"#","src/db/**":"#","src/lib.rs":"#","src/config/**":"#","src/middleware/**":"^","src/auth/**":"^","src/extractors/**":"^","src/events/**":"!","src/flows/**":"$","src/aspects/**":"~"},purposeRequired:[{pattern:"src/handlers/*",depth:1},{pattern:"src/services/*",depth:1}],scanHints:{componentPatterns:["src/handlers/**/*.rs","src/routes/**/*.rs","src/services/**/*.rs"],routePatterns:["src/routes/**/*.rs","src/main.rs","src/lib.rs"],authPatterns:["src/middleware/**/*.rs","src/auth/**/*.rs","src/extractors/**/*.rs"],statePatterns:["src/models/**/*.rs","src/db/**/*.rs"]},detectFn:e=>{let s=p(e,"Cargo.toml")||"";return /axum/i.test(s)}},"swift-ios":{id:"swift-ios",name:"Swift iOS",discipline:"mobile",symbolMapping:{"**/Views/**":"#","**/Screens/**":"#","**/Components/**":"#","**/ViewModels/**":"#","**/Models/**":"#","**/Services/**":"#","**/Managers/**":"#","**/Helpers/**":"#","**/Utils/**":"#","**/Extensions/**":"#","**/Networking/**":"#","**/Coordinators/**":"$","**/Navigation/**":"$","**/Flows/**":"$","**/Auth/**":"^","**/Middleware/**":"^","**/Events/**":"!","**/Notifications/**":"!","**/Aspects/**":"~"},purposeRequired:[{pattern:"**/Views/*",depth:1},{pattern:"**/Screens/*",depth:1},{pattern:"**/Services/*",depth:1}],scanHints:{componentPatterns:["**/*.swift"],routePatterns:["**/Navigation/**/*.swift","**/Coordinators/**/*.swift"],authPatterns:["**/Auth/**/*.swift","**/Keychain*"],statePatterns:["**/ViewModels/**/*.swift","**/Models/**/*.swift","**/Stores/**/*.swift"]},detectFn:e=>{let s=m(e,".xcodeproj")||m(e,".xcworkspace"),n=t.existsSync(r.join(e,"Package.swift"))||t.existsSync(r.join(e,"Sources"))&&m(r.join(e,"Sources"),".swift");return s||n}},"kotlin-android":{id:"kotlin-android",name:"Kotlin Android",discipline:"mobile",symbolMapping:{"**/ui/**":"#","**/screens/**":"#","**/components/**":"#","**/viewmodel/**":"#","**/viewmodels/**":"#","**/model/**":"#","**/models/**":"#","**/data/**":"#","**/repository/**":"#","**/service/**":"#","**/network/**":"#","**/api/**":"#","**/util/**":"#","**/utils/**":"#","**/di/**":"#","**/navigation/**":"$","**/auth/**":"^","**/middleware/**":"^","**/events/**":"!","**/flows/**":"$","**/aspects/**":"~"},purposeRequired:[{pattern:"**/ui/*",depth:1},{pattern:"**/screens/*",depth:1},{pattern:"**/data/*",depth:1}],scanHints:{componentPatterns:["**/*.kt"],routePatterns:["**/navigation/**/*.kt"],authPatterns:["**/auth/**/*.kt"],statePatterns:["**/viewmodel/**/*.kt","**/viewmodels/**/*.kt","**/model/**/*.kt","**/repository/**/*.kt"]},detectFn:e=>t.existsSync(r.join(e,"build.gradle.kts"))||t.existsSync(r.join(e,"build.gradle"))},flutter:{id:"flutter",name:"Flutter",discipline:"mobile",symbolMapping:{"lib/screens/**":"#","lib/pages/**":"#","lib/widgets/**":"#","lib/components/**":"#","lib/models/**":"#","lib/services/**":"#","lib/providers/**":"#","lib/repositories/**":"#","lib/utils/**":"#","lib/config/**":"#","lib/routes/**":"$","lib/navigation/**":"$","lib/auth/**":"^","lib/middleware/**":"^","lib/events/**":"!","lib/flows/**":"$","lib/aspects/**":"~"},purposeRequired:[{pattern:"lib/screens/*",depth:1},{pattern:"lib/widgets/*",depth:1},{pattern:"lib/services/*",depth:1}],scanHints:{componentPatterns:["lib/**/*.dart"],routePatterns:["lib/routes/**/*.dart","lib/navigation/**/*.dart"],authPatterns:["lib/auth/**/*.dart"],statePatterns:["lib/providers/**/*.dart","lib/models/**/*.dart","lib/repositories/**/*.dart"]},detectFn:e=>t.existsSync(r.join(e,"pubspec.yaml"))}};function S(e){for(let[s,n]of Object.entries(f))if(n.detectFn(e))return s;return null}function R(e){let s=f[e];if(!s)return null;let n=k(s.discipline);return {symbolMapping:{...n.symbolMapping,...s.symbolMapping},purposeRequired:s.purposeRequired,examples:n.examples}}function j(e){let s=Object.values(f);return e?s.filter(n=>n.discipline===e):s}export{$ as a,v as b,w as c,k as d,P as e,f,S as g,R as h,j as i};