@dollhousemcp/mcp-server 1.4.4 → 1.5.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 (667) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +68 -7
  3. package/dist/auth/GitHubAuthManager.d.ts +93 -0
  4. package/dist/auth/GitHubAuthManager.d.ts.map +1 -0
  5. package/dist/auth/GitHubAuthManager.js +465 -0
  6. package/dist/generated/version.d.ts +2 -2
  7. package/dist/generated/version.js +3 -3
  8. package/dist/index.d.ts +23 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +244 -5
  11. package/dist/security/tokenManager.d.ts +34 -0
  12. package/dist/security/tokenManager.d.ts.map +1 -1
  13. package/dist/security/tokenManager.js +199 -1
  14. package/dist/server/ServerSetup.d.ts.map +1 -1
  15. package/dist/server/ServerSetup.js +4 -1
  16. package/dist/server/tools/AuthTools.d.ts +10 -0
  17. package/dist/server/tools/AuthTools.d.ts.map +1 -0
  18. package/dist/server/tools/AuthTools.js +41 -0
  19. package/dist/server/types.d.ts +3 -0
  20. package/dist/server/types.d.ts.map +1 -1
  21. package/dist/server/types.js +1 -1
  22. package/package.json +1 -1
  23. package/dist/collection/MarketplaceBrowser.d.ts +0 -24
  24. package/dist/collection/MarketplaceBrowser.d.ts.map +0 -1
  25. package/dist/collection/MarketplaceBrowser.js +0 -115
  26. package/dist/collection/MarketplaceSearch.d.ts +0 -18
  27. package/dist/collection/MarketplaceSearch.d.ts.map +0 -1
  28. package/dist/collection/MarketplaceSearch.js +0 -48
  29. package/dist/collection/PersonaInstaller.d.ts +0 -26
  30. package/dist/collection/PersonaInstaller.d.ts.map +0 -1
  31. package/dist/collection/PersonaInstaller.js +0 -103
  32. package/dist/elements/ensembles/Ensemble.d.ts +0 -144
  33. package/dist/elements/ensembles/Ensemble.d.ts.map +0 -1
  34. package/dist/elements/ensembles/Ensemble.js +0 -860
  35. package/dist/elements/ensembles/EnsembleManager.d.ts +0 -85
  36. package/dist/elements/ensembles/EnsembleManager.d.ts.map +0 -1
  37. package/dist/elements/ensembles/EnsembleManager.js +0 -378
  38. package/dist/elements/ensembles/constants.d.ts +0 -73
  39. package/dist/elements/ensembles/constants.d.ts.map +0 -1
  40. package/dist/elements/ensembles/constants.js +0 -92
  41. package/dist/elements/ensembles/index.d.ts +0 -8
  42. package/dist/elements/ensembles/index.d.ts.map +0 -1
  43. package/dist/elements/ensembles/index.js +0 -8
  44. package/dist/elements/ensembles/types.d.ts +0 -92
  45. package/dist/elements/ensembles/types.d.ts.map +0 -1
  46. package/dist/elements/ensembles/types.js +0 -8
  47. package/dist/elements/memories/Memory.d.ts +0 -110
  48. package/dist/elements/memories/Memory.d.ts.map +0 -1
  49. package/dist/elements/memories/Memory.js +0 -470
  50. package/dist/elements/memories/MemoryManager.d.ts +0 -86
  51. package/dist/elements/memories/MemoryManager.d.ts.map +0 -1
  52. package/dist/elements/memories/MemoryManager.js +0 -435
  53. package/dist/elements/memories/constants.d.ts +0 -42
  54. package/dist/elements/memories/constants.d.ts.map +0 -1
  55. package/dist/elements/memories/constants.js +0 -49
  56. package/dist/elements/memories/index.d.ts +0 -6
  57. package/dist/elements/memories/index.d.ts.map +0 -1
  58. package/dist/elements/memories/index.js +0 -6
  59. package/dist/marketplace/GitHubClient.d.ts +0 -22
  60. package/dist/marketplace/GitHubClient.d.ts.map +0 -1
  61. package/dist/marketplace/GitHubClient.js +0 -112
  62. package/dist/marketplace/MarketplaceBrowser.d.ts +0 -24
  63. package/dist/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  64. package/dist/marketplace/MarketplaceBrowser.js +0 -115
  65. package/dist/marketplace/MarketplaceSearch.d.ts +0 -18
  66. package/dist/marketplace/MarketplaceSearch.d.ts.map +0 -1
  67. package/dist/marketplace/MarketplaceSearch.js +0 -48
  68. package/dist/marketplace/PersonaDetails.d.ts +0 -22
  69. package/dist/marketplace/PersonaDetails.d.ts.map +0 -1
  70. package/dist/marketplace/PersonaDetails.js +0 -71
  71. package/dist/marketplace/PersonaInstaller.d.ts +0 -25
  72. package/dist/marketplace/PersonaInstaller.d.ts.map +0 -1
  73. package/dist/marketplace/PersonaInstaller.js +0 -100
  74. package/dist/marketplace/PersonaSubmitter.d.ts +0 -19
  75. package/dist/marketplace/PersonaSubmitter.d.ts.map +0 -1
  76. package/dist/marketplace/PersonaSubmitter.js +0 -57
  77. package/dist/marketplace/index.d.ts +0 -10
  78. package/dist/marketplace/index.d.ts.map +0 -1
  79. package/dist/marketplace/index.js +0 -10
  80. package/dist/server/tools/MarketplaceTools.d.ts +0 -10
  81. package/dist/server/tools/MarketplaceTools.d.ts.map +0 -1
  82. package/dist/server/tools/MarketplaceTools.js +0 -96
  83. package/dist/src/cache/APICache.d.ts +0 -23
  84. package/dist/src/cache/APICache.d.ts.map +0 -1
  85. package/dist/src/cache/APICache.js +0 -42
  86. package/dist/src/cache/index.d.ts +0 -5
  87. package/dist/src/cache/index.d.ts.map +0 -1
  88. package/dist/src/cache/index.js +0 -5
  89. package/dist/src/config/constants.d.ts +0 -25
  90. package/dist/src/config/constants.d.ts.map +0 -1
  91. package/dist/src/config/constants.js +0 -30
  92. package/dist/src/config/index.d.ts +0 -6
  93. package/dist/src/config/index.d.ts.map +0 -1
  94. package/dist/src/config/index.js +0 -6
  95. package/dist/src/config/indicator-config.d.ts +0 -107
  96. package/dist/src/config/indicator-config.d.ts.map +0 -1
  97. package/dist/src/config/indicator-config.js +0 -158
  98. package/dist/src/constants/defaultPersonas.d.ts +0 -10
  99. package/dist/src/constants/defaultPersonas.d.ts.map +0 -1
  100. package/dist/src/constants/defaultPersonas.js +0 -18
  101. package/dist/src/constants/limits.d.ts +0 -10
  102. package/dist/src/constants/limits.d.ts.map +0 -1
  103. package/dist/src/constants/limits.js +0 -13
  104. package/dist/src/errors/SecurityError.d.ts +0 -29
  105. package/dist/src/errors/SecurityError.d.ts.map +0 -1
  106. package/dist/src/errors/SecurityError.js +0 -47
  107. package/dist/src/errors/index.d.ts +0 -2
  108. package/dist/src/errors/index.d.ts.map +0 -1
  109. package/dist/src/errors/index.js +0 -2
  110. package/dist/src/index.barrel.d.ts +0 -21
  111. package/dist/src/index.barrel.d.ts.map +0 -1
  112. package/dist/src/index.barrel.js +0 -31
  113. package/dist/src/index.d.ts +0 -220
  114. package/dist/src/index.d.ts.map +0 -1
  115. package/dist/src/index.js +0 -1559
  116. package/dist/src/marketplace/GitHubClient.d.ts +0 -22
  117. package/dist/src/marketplace/GitHubClient.d.ts.map +0 -1
  118. package/dist/src/marketplace/GitHubClient.js +0 -112
  119. package/dist/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  120. package/dist/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  121. package/dist/src/marketplace/MarketplaceBrowser.js +0 -45
  122. package/dist/src/marketplace/MarketplaceSearch.d.ts +0 -18
  123. package/dist/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  124. package/dist/src/marketplace/MarketplaceSearch.js +0 -36
  125. package/dist/src/marketplace/PersonaDetails.d.ts +0 -22
  126. package/dist/src/marketplace/PersonaDetails.d.ts.map +0 -1
  127. package/dist/src/marketplace/PersonaDetails.js +0 -71
  128. package/dist/src/marketplace/PersonaInstaller.d.ts +0 -25
  129. package/dist/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  130. package/dist/src/marketplace/PersonaInstaller.js +0 -100
  131. package/dist/src/marketplace/PersonaSubmitter.d.ts +0 -19
  132. package/dist/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  133. package/dist/src/marketplace/PersonaSubmitter.js +0 -57
  134. package/dist/src/marketplace/index.d.ts +0 -10
  135. package/dist/src/marketplace/index.d.ts.map +0 -1
  136. package/dist/src/marketplace/index.js +0 -10
  137. package/dist/src/persona/PersonaLoader.d.ts +0 -33
  138. package/dist/src/persona/PersonaLoader.d.ts.map +0 -1
  139. package/dist/src/persona/PersonaLoader.js +0 -139
  140. package/dist/src/persona/PersonaManager.d.ts +0 -112
  141. package/dist/src/persona/PersonaManager.d.ts.map +0 -1
  142. package/dist/src/persona/PersonaManager.js +0 -341
  143. package/dist/src/persona/PersonaValidator.d.ts +0 -33
  144. package/dist/src/persona/PersonaValidator.d.ts.map +0 -1
  145. package/dist/src/persona/PersonaValidator.js +0 -157
  146. package/dist/src/persona/export-import/PersonaExporter.d.ts +0 -43
  147. package/dist/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  148. package/dist/src/persona/export-import/PersonaExporter.js +0 -99
  149. package/dist/src/persona/export-import/PersonaImporter.d.ts +0 -65
  150. package/dist/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  151. package/dist/src/persona/export-import/PersonaImporter.js +0 -313
  152. package/dist/src/persona/export-import/PersonaSharer.d.ts +0 -60
  153. package/dist/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  154. package/dist/src/persona/export-import/PersonaSharer.js +0 -363
  155. package/dist/src/persona/export-import/index.d.ts +0 -10
  156. package/dist/src/persona/export-import/index.d.ts.map +0 -1
  157. package/dist/src/persona/export-import/index.js +0 -7
  158. package/dist/src/persona/index.d.ts +0 -7
  159. package/dist/src/persona/index.d.ts.map +0 -1
  160. package/dist/src/persona/index.js +0 -7
  161. package/dist/src/security/InputValidator.d.ts +0 -69
  162. package/dist/src/security/InputValidator.d.ts.map +0 -1
  163. package/dist/src/security/InputValidator.js +0 -381
  164. package/dist/src/security/commandValidator.d.ts +0 -7
  165. package/dist/src/security/commandValidator.d.ts.map +0 -1
  166. package/dist/src/security/commandValidator.js +0 -77
  167. package/dist/src/security/constants.d.ts +0 -21
  168. package/dist/src/security/constants.d.ts.map +0 -1
  169. package/dist/src/security/constants.js +0 -23
  170. package/dist/src/security/contentValidator.d.ts +0 -47
  171. package/dist/src/security/contentValidator.d.ts.map +0 -1
  172. package/dist/src/security/contentValidator.js +0 -188
  173. package/dist/src/security/fileLockManager.d.ts +0 -70
  174. package/dist/src/security/fileLockManager.d.ts.map +0 -1
  175. package/dist/src/security/fileLockManager.js +0 -187
  176. package/dist/src/security/index.d.ts +0 -12
  177. package/dist/src/security/index.d.ts.map +0 -1
  178. package/dist/src/security/index.js +0 -14
  179. package/dist/src/security/pathValidator.d.ts +0 -9
  180. package/dist/src/security/pathValidator.d.ts.map +0 -1
  181. package/dist/src/security/pathValidator.js +0 -97
  182. package/dist/src/security/secureYamlParser.d.ts +0 -46
  183. package/dist/src/security/secureYamlParser.d.ts.map +0 -1
  184. package/dist/src/security/secureYamlParser.js +0 -203
  185. package/dist/src/security/securityMonitor.d.ts +0 -58
  186. package/dist/src/security/securityMonitor.d.ts.map +0 -1
  187. package/dist/src/security/securityMonitor.js +0 -108
  188. package/dist/src/security/tokenManager.d.ts +0 -59
  189. package/dist/src/security/tokenManager.d.ts.map +0 -1
  190. package/dist/src/security/tokenManager.js +0 -216
  191. package/dist/src/security/yamlValidator.d.ts +0 -20
  192. package/dist/src/security/yamlValidator.d.ts.map +0 -1
  193. package/dist/src/security/yamlValidator.js +0 -138
  194. package/dist/src/server/ServerSetup.d.ts +0 -31
  195. package/dist/src/server/ServerSetup.d.ts.map +0 -1
  196. package/dist/src/server/ServerSetup.js +0 -79
  197. package/dist/src/server/index.d.ts +0 -7
  198. package/dist/src/server/index.d.ts.map +0 -1
  199. package/dist/src/server/index.js +0 -7
  200. package/dist/src/server/tools/ConfigTools.d.ts +0 -10
  201. package/dist/src/server/tools/ConfigTools.d.ts.map +0 -1
  202. package/dist/src/server/tools/ConfigTools.js +0 -63
  203. package/dist/src/server/tools/MarketplaceTools.d.ts +0 -10
  204. package/dist/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  205. package/dist/src/server/tools/MarketplaceTools.js +0 -92
  206. package/dist/src/server/tools/PersonaTools.d.ts +0 -10
  207. package/dist/src/server/tools/PersonaTools.d.ts.map +0 -1
  208. package/dist/src/server/tools/PersonaTools.js +0 -257
  209. package/dist/src/server/tools/ToolRegistry.d.ts +0 -37
  210. package/dist/src/server/tools/ToolRegistry.d.ts.map +0 -1
  211. package/dist/src/server/tools/ToolRegistry.js +0 -40
  212. package/dist/src/server/tools/UpdateTools.d.ts +0 -10
  213. package/dist/src/server/tools/UpdateTools.d.ts.map +0 -1
  214. package/dist/src/server/tools/UpdateTools.js +0 -64
  215. package/dist/src/server/tools/UserTools.d.ts +0 -10
  216. package/dist/src/server/tools/UserTools.d.ts.map +0 -1
  217. package/dist/src/server/tools/UserTools.js +0 -51
  218. package/dist/src/server/tools/index.d.ts +0 -10
  219. package/dist/src/server/tools/index.d.ts.map +0 -1
  220. package/dist/src/server/tools/index.js +0 -10
  221. package/dist/src/server/types.d.ts +0 -34
  222. package/dist/src/server/types.d.ts.map +0 -1
  223. package/dist/src/server/types.js +0 -5
  224. package/dist/src/tools/debug.d.ts +0 -20
  225. package/dist/src/tools/debug.d.ts.map +0 -1
  226. package/dist/src/tools/debug.js +0 -37
  227. package/dist/src/types/cache.d.ts +0 -8
  228. package/dist/src/types/cache.d.ts.map +0 -1
  229. package/dist/src/types/cache.js +0 -5
  230. package/dist/src/types/index.d.ts +0 -8
  231. package/dist/src/types/index.d.ts.map +0 -1
  232. package/dist/src/types/index.js +0 -8
  233. package/dist/src/types/marketplace.d.ts +0 -23
  234. package/dist/src/types/marketplace.d.ts.map +0 -1
  235. package/dist/src/types/marketplace.js +0 -5
  236. package/dist/src/types/mcp.d.ts +0 -161
  237. package/dist/src/types/mcp.d.ts.map +0 -1
  238. package/dist/src/types/mcp.js +0 -75
  239. package/dist/src/types/persona.d.ts +0 -30
  240. package/dist/src/types/persona.d.ts.map +0 -1
  241. package/dist/src/types/persona.js +0 -5
  242. package/dist/src/update/BackupManager.d.ts +0 -46
  243. package/dist/src/update/BackupManager.d.ts.map +0 -1
  244. package/dist/src/update/BackupManager.js +0 -261
  245. package/dist/src/update/DependencyChecker.d.ts +0 -41
  246. package/dist/src/update/DependencyChecker.d.ts.map +0 -1
  247. package/dist/src/update/DependencyChecker.js +0 -132
  248. package/dist/src/update/RateLimiter.d.ts +0 -80
  249. package/dist/src/update/RateLimiter.d.ts.map +0 -1
  250. package/dist/src/update/RateLimiter.js +0 -172
  251. package/dist/src/update/SignatureVerifier.d.ts +0 -71
  252. package/dist/src/update/SignatureVerifier.d.ts.map +0 -1
  253. package/dist/src/update/SignatureVerifier.js +0 -214
  254. package/dist/src/update/UpdateChecker.d.ts +0 -127
  255. package/dist/src/update/UpdateChecker.d.ts.map +0 -1
  256. package/dist/src/update/UpdateChecker.js +0 -460
  257. package/dist/src/update/UpdateManager.d.ts +0 -41
  258. package/dist/src/update/UpdateManager.d.ts.map +0 -1
  259. package/dist/src/update/UpdateManager.js +0 -260
  260. package/dist/src/update/VersionManager.d.ts +0 -31
  261. package/dist/src/update/VersionManager.d.ts.map +0 -1
  262. package/dist/src/update/VersionManager.js +0 -134
  263. package/dist/src/update/index.d.ts +0 -9
  264. package/dist/src/update/index.d.ts.map +0 -1
  265. package/dist/src/update/index.js +0 -9
  266. package/dist/src/utils/filesystem.d.ts +0 -32
  267. package/dist/src/utils/filesystem.d.ts.map +0 -1
  268. package/dist/src/utils/filesystem.js +0 -73
  269. package/dist/src/utils/git.d.ts +0 -32
  270. package/dist/src/utils/git.d.ts.map +0 -1
  271. package/dist/src/utils/git.js +0 -65
  272. package/dist/src/utils/index.d.ts +0 -7
  273. package/dist/src/utils/index.d.ts.map +0 -1
  274. package/dist/src/utils/index.js +0 -7
  275. package/dist/src/utils/logger.d.ts +0 -45
  276. package/dist/src/utils/logger.d.ts.map +0 -1
  277. package/dist/src/utils/logger.js +0 -91
  278. package/dist/src/utils/version.d.ts +0 -25
  279. package/dist/src/utils/version.d.ts.map +0 -1
  280. package/dist/src/utils/version.js +0 -97
  281. package/dist/test/src/cache/APICache.d.ts +0 -23
  282. package/dist/test/src/cache/APICache.d.ts.map +0 -1
  283. package/dist/test/src/cache/APICache.js +0 -42
  284. package/dist/test/src/cache/index.d.ts +0 -5
  285. package/dist/test/src/cache/index.d.ts.map +0 -1
  286. package/dist/test/src/cache/index.js +0 -5
  287. package/dist/test/src/collection/CollectionBrowser.d.ts +0 -24
  288. package/dist/test/src/collection/CollectionBrowser.d.ts.map +0 -1
  289. package/dist/test/src/collection/CollectionBrowser.js +0 -115
  290. package/dist/test/src/collection/CollectionSearch.d.ts +0 -18
  291. package/dist/test/src/collection/CollectionSearch.d.ts.map +0 -1
  292. package/dist/test/src/collection/CollectionSearch.js +0 -48
  293. package/dist/test/src/collection/GitHubClient.d.ts +0 -22
  294. package/dist/test/src/collection/GitHubClient.d.ts.map +0 -1
  295. package/dist/test/src/collection/GitHubClient.js +0 -114
  296. package/dist/test/src/collection/PersonaDetails.d.ts +0 -22
  297. package/dist/test/src/collection/PersonaDetails.d.ts.map +0 -1
  298. package/dist/test/src/collection/PersonaDetails.js +0 -71
  299. package/dist/test/src/collection/PersonaInstaller.d.ts +0 -26
  300. package/dist/test/src/collection/PersonaInstaller.d.ts.map +0 -1
  301. package/dist/test/src/collection/PersonaInstaller.js +0 -103
  302. package/dist/test/src/collection/PersonaSubmitter.d.ts +0 -19
  303. package/dist/test/src/collection/PersonaSubmitter.d.ts.map +0 -1
  304. package/dist/test/src/collection/PersonaSubmitter.js +0 -57
  305. package/dist/test/src/collection/index.d.ts +0 -10
  306. package/dist/test/src/collection/index.d.ts.map +0 -1
  307. package/dist/test/src/collection/index.js +0 -10
  308. package/dist/test/src/config/constants.d.ts +0 -25
  309. package/dist/test/src/config/constants.d.ts.map +0 -1
  310. package/dist/test/src/config/constants.js +0 -30
  311. package/dist/test/src/config/index.d.ts +0 -6
  312. package/dist/test/src/config/index.d.ts.map +0 -1
  313. package/dist/test/src/config/index.js +0 -6
  314. package/dist/test/src/config/indicator-config.d.ts +0 -107
  315. package/dist/test/src/config/indicator-config.d.ts.map +0 -1
  316. package/dist/test/src/config/indicator-config.js +0 -158
  317. package/dist/test/src/constants/defaultPersonas.d.ts +0 -10
  318. package/dist/test/src/constants/defaultPersonas.d.ts.map +0 -1
  319. package/dist/test/src/constants/defaultPersonas.js +0 -18
  320. package/dist/test/src/constants/limits.d.ts +0 -10
  321. package/dist/test/src/constants/limits.d.ts.map +0 -1
  322. package/dist/test/src/constants/limits.js +0 -13
  323. package/dist/test/src/elements/BaseElement.d.ts +0 -81
  324. package/dist/test/src/elements/BaseElement.d.ts.map +0 -1
  325. package/dist/test/src/elements/BaseElement.js +0 -381
  326. package/dist/test/src/elements/FeedbackProcessor.d.ts +0 -57
  327. package/dist/test/src/elements/FeedbackProcessor.d.ts.map +0 -1
  328. package/dist/test/src/elements/FeedbackProcessor.js +0 -418
  329. package/dist/test/src/elements/agents/Agent.d.ts +0 -145
  330. package/dist/test/src/elements/agents/Agent.d.ts.map +0 -1
  331. package/dist/test/src/elements/agents/Agent.js +0 -848
  332. package/dist/test/src/elements/agents/AgentManager.d.ts +0 -125
  333. package/dist/test/src/elements/agents/AgentManager.d.ts.map +0 -1
  334. package/dist/test/src/elements/agents/AgentManager.js +0 -608
  335. package/dist/test/src/elements/agents/constants.d.ts +0 -42
  336. package/dist/test/src/elements/agents/constants.d.ts.map +0 -1
  337. package/dist/test/src/elements/agents/constants.js +0 -45
  338. package/dist/test/src/elements/agents/goalTemplates.d.ts +0 -44
  339. package/dist/test/src/elements/agents/goalTemplates.d.ts.map +0 -1
  340. package/dist/test/src/elements/agents/goalTemplates.js +0 -297
  341. package/dist/test/src/elements/agents/index.d.ts +0 -8
  342. package/dist/test/src/elements/agents/index.d.ts.map +0 -1
  343. package/dist/test/src/elements/agents/index.js +0 -8
  344. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts +0 -76
  345. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts.map +0 -1
  346. package/dist/test/src/elements/agents/ruleEngineConfig.js +0 -143
  347. package/dist/test/src/elements/agents/types.d.ts +0 -97
  348. package/dist/test/src/elements/agents/types.d.ts.map +0 -1
  349. package/dist/test/src/elements/agents/types.js +0 -5
  350. package/dist/test/src/elements/index.d.ts +0 -6
  351. package/dist/test/src/elements/index.d.ts.map +0 -1
  352. package/dist/test/src/elements/index.js +0 -6
  353. package/dist/test/src/elements/memories/Memory.d.ts +0 -110
  354. package/dist/test/src/elements/memories/Memory.d.ts.map +0 -1
  355. package/dist/test/src/elements/memories/Memory.js +0 -470
  356. package/dist/test/src/elements/memories/MemoryManager.d.ts +0 -86
  357. package/dist/test/src/elements/memories/MemoryManager.d.ts.map +0 -1
  358. package/dist/test/src/elements/memories/MemoryManager.js +0 -435
  359. package/dist/test/src/elements/memories/constants.d.ts +0 -42
  360. package/dist/test/src/elements/memories/constants.d.ts.map +0 -1
  361. package/dist/test/src/elements/memories/constants.js +0 -49
  362. package/dist/test/src/elements/memories/index.d.ts +0 -6
  363. package/dist/test/src/elements/memories/index.d.ts.map +0 -1
  364. package/dist/test/src/elements/memories/index.js +0 -6
  365. package/dist/test/src/elements/skills/Skill.d.ts +0 -109
  366. package/dist/test/src/elements/skills/Skill.d.ts.map +0 -1
  367. package/dist/test/src/elements/skills/Skill.js +0 -381
  368. package/dist/test/src/elements/templates/Template.d.ts +0 -138
  369. package/dist/test/src/elements/templates/Template.d.ts.map +0 -1
  370. package/dist/test/src/elements/templates/Template.js +0 -673
  371. package/dist/test/src/elements/templates/TemplateManager.d.ts +0 -104
  372. package/dist/test/src/elements/templates/TemplateManager.d.ts.map +0 -1
  373. package/dist/test/src/elements/templates/TemplateManager.js +0 -496
  374. package/dist/test/src/elements/templates/index.d.ts +0 -6
  375. package/dist/test/src/elements/templates/index.d.ts.map +0 -1
  376. package/dist/test/src/elements/templates/index.js +0 -6
  377. package/dist/test/src/errors/SecurityError.d.ts +0 -29
  378. package/dist/test/src/errors/SecurityError.d.ts.map +0 -1
  379. package/dist/test/src/errors/SecurityError.js +0 -47
  380. package/dist/test/src/errors/index.d.ts +0 -2
  381. package/dist/test/src/errors/index.d.ts.map +0 -1
  382. package/dist/test/src/errors/index.js +0 -2
  383. package/dist/test/src/index.barrel.d.ts +0 -21
  384. package/dist/test/src/index.barrel.d.ts.map +0 -1
  385. package/dist/test/src/index.barrel.js +0 -31
  386. package/dist/test/src/index.d.ts +0 -223
  387. package/dist/test/src/index.d.ts.map +0 -1
  388. package/dist/test/src/index.js +0 -1594
  389. package/dist/test/src/marketplace/GitHubClient.d.ts +0 -22
  390. package/dist/test/src/marketplace/GitHubClient.d.ts.map +0 -1
  391. package/dist/test/src/marketplace/GitHubClient.js +0 -112
  392. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  393. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  394. package/dist/test/src/marketplace/MarketplaceBrowser.js +0 -45
  395. package/dist/test/src/marketplace/MarketplaceSearch.d.ts +0 -18
  396. package/dist/test/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  397. package/dist/test/src/marketplace/MarketplaceSearch.js +0 -36
  398. package/dist/test/src/marketplace/PersonaDetails.d.ts +0 -22
  399. package/dist/test/src/marketplace/PersonaDetails.d.ts.map +0 -1
  400. package/dist/test/src/marketplace/PersonaDetails.js +0 -71
  401. package/dist/test/src/marketplace/PersonaInstaller.d.ts +0 -25
  402. package/dist/test/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  403. package/dist/test/src/marketplace/PersonaInstaller.js +0 -100
  404. package/dist/test/src/marketplace/PersonaSubmitter.d.ts +0 -19
  405. package/dist/test/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  406. package/dist/test/src/marketplace/PersonaSubmitter.js +0 -57
  407. package/dist/test/src/marketplace/index.d.ts +0 -10
  408. package/dist/test/src/marketplace/index.d.ts.map +0 -1
  409. package/dist/test/src/marketplace/index.js +0 -10
  410. package/dist/test/src/persona/PersonaElement.d.ts +0 -64
  411. package/dist/test/src/persona/PersonaElement.d.ts.map +0 -1
  412. package/dist/test/src/persona/PersonaElement.js +0 -223
  413. package/dist/test/src/persona/PersonaElementManager.d.ts +0 -97
  414. package/dist/test/src/persona/PersonaElementManager.d.ts.map +0 -1
  415. package/dist/test/src/persona/PersonaElementManager.js +0 -342
  416. package/dist/test/src/persona/PersonaLoader.d.ts +0 -34
  417. package/dist/test/src/persona/PersonaLoader.d.ts.map +0 -1
  418. package/dist/test/src/persona/PersonaLoader.js +0 -145
  419. package/dist/test/src/persona/PersonaManager.d.ts +0 -112
  420. package/dist/test/src/persona/PersonaManager.d.ts.map +0 -1
  421. package/dist/test/src/persona/PersonaManager.js +0 -341
  422. package/dist/test/src/persona/PersonaValidator.d.ts +0 -33
  423. package/dist/test/src/persona/PersonaValidator.d.ts.map +0 -1
  424. package/dist/test/src/persona/PersonaValidator.js +0 -157
  425. package/dist/test/src/persona/export-import/PersonaExporter.d.ts +0 -43
  426. package/dist/test/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  427. package/dist/test/src/persona/export-import/PersonaExporter.js +0 -99
  428. package/dist/test/src/persona/export-import/PersonaImporter.d.ts +0 -65
  429. package/dist/test/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  430. package/dist/test/src/persona/export-import/PersonaImporter.js +0 -315
  431. package/dist/test/src/persona/export-import/PersonaSharer.d.ts +0 -60
  432. package/dist/test/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  433. package/dist/test/src/persona/export-import/PersonaSharer.js +0 -502
  434. package/dist/test/src/persona/export-import/index.d.ts +0 -10
  435. package/dist/test/src/persona/export-import/index.d.ts.map +0 -1
  436. package/dist/test/src/persona/export-import/index.js +0 -7
  437. package/dist/test/src/persona/index.d.ts +0 -7
  438. package/dist/test/src/persona/index.d.ts.map +0 -1
  439. package/dist/test/src/persona/index.js +0 -7
  440. package/dist/test/src/portfolio/MigrationManager.d.ts +0 -44
  441. package/dist/test/src/portfolio/MigrationManager.d.ts.map +0 -1
  442. package/dist/test/src/portfolio/MigrationManager.js +0 -163
  443. package/dist/test/src/portfolio/PortfolioManager.d.ts +0 -54
  444. package/dist/test/src/portfolio/PortfolioManager.d.ts.map +0 -1
  445. package/dist/test/src/portfolio/PortfolioManager.js +0 -224
  446. package/dist/test/src/portfolio/types.d.ts +0 -18
  447. package/dist/test/src/portfolio/types.d.ts.map +0 -1
  448. package/dist/test/src/portfolio/types.js +0 -13
  449. package/dist/test/src/security/InputValidator.d.ts +0 -80
  450. package/dist/test/src/security/InputValidator.d.ts.map +0 -1
  451. package/dist/test/src/security/InputValidator.js +0 -436
  452. package/dist/test/src/security/audit/SecurityAuditor.d.ts +0 -44
  453. package/dist/test/src/security/audit/SecurityAuditor.d.ts.map +0 -1
  454. package/dist/test/src/security/audit/SecurityAuditor.js +0 -274
  455. package/dist/test/src/security/audit/config/suppressions.d.ts +0 -34
  456. package/dist/test/src/security/audit/config/suppressions.d.ts.map +0 -1
  457. package/dist/test/src/security/audit/config/suppressions.js +0 -575
  458. package/dist/test/src/security/audit/index.d.ts +0 -14
  459. package/dist/test/src/security/audit/index.d.ts.map +0 -1
  460. package/dist/test/src/security/audit/index.js +0 -15
  461. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts +0 -46
  462. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts.map +0 -1
  463. package/dist/test/src/security/audit/reporters/ConsoleReporter.js +0 -174
  464. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts +0 -13
  465. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts.map +0 -1
  466. package/dist/test/src/security/audit/reporters/JsonReporter.js +0 -25
  467. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts +0 -13
  468. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts.map +0 -1
  469. package/dist/test/src/security/audit/reporters/MarkdownReporter.js +0 -79
  470. package/dist/test/src/security/audit/rules/SecurityRules.d.ts +0 -20
  471. package/dist/test/src/security/audit/rules/SecurityRules.d.ts.map +0 -1
  472. package/dist/test/src/security/audit/rules/SecurityRules.js +0 -244
  473. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts +0 -47
  474. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts.map +0 -1
  475. package/dist/test/src/security/audit/scanners/CodeScanner.js +0 -174
  476. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts +0 -13
  477. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts.map +0 -1
  478. package/dist/test/src/security/audit/scanners/ConfigurationScanner.js +0 -22
  479. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts +0 -13
  480. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts.map +0 -1
  481. package/dist/test/src/security/audit/scanners/DependencyScanner.js +0 -22
  482. package/dist/test/src/security/audit/types.d.ts +0 -94
  483. package/dist/test/src/security/audit/types.d.ts.map +0 -1
  484. package/dist/test/src/security/audit/types.js +0 -6
  485. package/dist/test/src/security/commandValidator.d.ts +0 -7
  486. package/dist/test/src/security/commandValidator.d.ts.map +0 -1
  487. package/dist/test/src/security/commandValidator.js +0 -78
  488. package/dist/test/src/security/constants.d.ts +0 -24
  489. package/dist/test/src/security/constants.d.ts.map +0 -1
  490. package/dist/test/src/security/constants.js +0 -26
  491. package/dist/test/src/security/contentValidator.d.ts +0 -47
  492. package/dist/test/src/security/contentValidator.d.ts.map +0 -1
  493. package/dist/test/src/security/contentValidator.js +0 -301
  494. package/dist/test/src/security/errors.d.ts +0 -14
  495. package/dist/test/src/security/errors.d.ts.map +0 -1
  496. package/dist/test/src/security/errors.js +0 -28
  497. package/dist/test/src/security/fileLockManager.d.ts +0 -70
  498. package/dist/test/src/security/fileLockManager.d.ts.map +0 -1
  499. package/dist/test/src/security/fileLockManager.js +0 -187
  500. package/dist/test/src/security/index.d.ts +0 -12
  501. package/dist/test/src/security/index.d.ts.map +0 -1
  502. package/dist/test/src/security/index.js +0 -14
  503. package/dist/test/src/security/pathValidator.d.ts +0 -9
  504. package/dist/test/src/security/pathValidator.d.ts.map +0 -1
  505. package/dist/test/src/security/pathValidator.js +0 -98
  506. package/dist/test/src/security/regexValidator.d.ts +0 -59
  507. package/dist/test/src/security/regexValidator.d.ts.map +0 -1
  508. package/dist/test/src/security/regexValidator.js +0 -214
  509. package/dist/test/src/security/secureYamlParser.d.ts +0 -46
  510. package/dist/test/src/security/secureYamlParser.d.ts.map +0 -1
  511. package/dist/test/src/security/secureYamlParser.js +0 -203
  512. package/dist/test/src/security/securityMonitor.d.ts +0 -58
  513. package/dist/test/src/security/securityMonitor.d.ts.map +0 -1
  514. package/dist/test/src/security/securityMonitor.js +0 -108
  515. package/dist/test/src/security/tokenManager.d.ts +0 -85
  516. package/dist/test/src/security/tokenManager.d.ts.map +0 -1
  517. package/dist/test/src/security/tokenManager.js +0 -286
  518. package/dist/test/src/security/validators/unicodeValidator.d.ts +0 -97
  519. package/dist/test/src/security/validators/unicodeValidator.d.ts.map +0 -1
  520. package/dist/test/src/security/validators/unicodeValidator.js +0 -312
  521. package/dist/test/src/security/yamlValidator.d.ts +0 -21
  522. package/dist/test/src/security/yamlValidator.d.ts.map +0 -1
  523. package/dist/test/src/security/yamlValidator.js +0 -164
  524. package/dist/test/src/server/ServerSetup.d.ts +0 -35
  525. package/dist/test/src/server/ServerSetup.d.ts.map +0 -1
  526. package/dist/test/src/server/ServerSetup.js +0 -116
  527. package/dist/test/src/server/index.d.ts +0 -7
  528. package/dist/test/src/server/index.d.ts.map +0 -1
  529. package/dist/test/src/server/index.js +0 -7
  530. package/dist/test/src/server/startup.d.ts +0 -31
  531. package/dist/test/src/server/startup.d.ts.map +0 -1
  532. package/dist/test/src/server/startup.js +0 -67
  533. package/dist/test/src/server/tools/CollectionTools.d.ts +0 -10
  534. package/dist/test/src/server/tools/CollectionTools.d.ts.map +0 -1
  535. package/dist/test/src/server/tools/CollectionTools.js +0 -96
  536. package/dist/test/src/server/tools/ConfigTools.d.ts +0 -10
  537. package/dist/test/src/server/tools/ConfigTools.d.ts.map +0 -1
  538. package/dist/test/src/server/tools/ConfigTools.js +0 -63
  539. package/dist/test/src/server/tools/MarketplaceTools.d.ts +0 -10
  540. package/dist/test/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  541. package/dist/test/src/server/tools/MarketplaceTools.js +0 -92
  542. package/dist/test/src/server/tools/PersonaTools.d.ts +0 -10
  543. package/dist/test/src/server/tools/PersonaTools.d.ts.map +0 -1
  544. package/dist/test/src/server/tools/PersonaTools.js +0 -257
  545. package/dist/test/src/server/tools/ToolRegistry.d.ts +0 -37
  546. package/dist/test/src/server/tools/ToolRegistry.d.ts.map +0 -1
  547. package/dist/test/src/server/tools/ToolRegistry.js +0 -40
  548. package/dist/test/src/server/tools/UpdateTools.d.ts +0 -10
  549. package/dist/test/src/server/tools/UpdateTools.d.ts.map +0 -1
  550. package/dist/test/src/server/tools/UpdateTools.js +0 -64
  551. package/dist/test/src/server/tools/UserTools.d.ts +0 -10
  552. package/dist/test/src/server/tools/UserTools.d.ts.map +0 -1
  553. package/dist/test/src/server/tools/UserTools.js +0 -51
  554. package/dist/test/src/server/tools/index.d.ts +0 -10
  555. package/dist/test/src/server/tools/index.d.ts.map +0 -1
  556. package/dist/test/src/server/tools/index.js +0 -10
  557. package/dist/test/src/server/types.d.ts +0 -34
  558. package/dist/test/src/server/types.d.ts.map +0 -1
  559. package/dist/test/src/server/types.js +0 -5
  560. package/dist/test/src/tools/debug.d.ts +0 -20
  561. package/dist/test/src/tools/debug.d.ts.map +0 -1
  562. package/dist/test/src/tools/debug.js +0 -37
  563. package/dist/test/src/types/cache.d.ts +0 -8
  564. package/dist/test/src/types/cache.d.ts.map +0 -1
  565. package/dist/test/src/types/cache.js +0 -5
  566. package/dist/test/src/types/collection.d.ts +0 -23
  567. package/dist/test/src/types/collection.d.ts.map +0 -1
  568. package/dist/test/src/types/collection.js +0 -5
  569. package/dist/test/src/types/elements/IElement.d.ts +0 -123
  570. package/dist/test/src/types/elements/IElement.d.ts.map +0 -1
  571. package/dist/test/src/types/elements/IElement.js +0 -30
  572. package/dist/test/src/types/elements/IElementManager.d.ts +0 -65
  573. package/dist/test/src/types/elements/IElementManager.d.ts.map +0 -1
  574. package/dist/test/src/types/elements/IElementManager.js +0 -6
  575. package/dist/test/src/types/elements/IRatingManager.d.ts +0 -109
  576. package/dist/test/src/types/elements/IRatingManager.d.ts.map +0 -1
  577. package/dist/test/src/types/elements/IRatingManager.js +0 -6
  578. package/dist/test/src/types/elements/IReferenceResolver.d.ts +0 -52
  579. package/dist/test/src/types/elements/IReferenceResolver.d.ts.map +0 -1
  580. package/dist/test/src/types/elements/IReferenceResolver.js +0 -6
  581. package/dist/test/src/types/elements/RatingBreakdowns.d.ts +0 -49
  582. package/dist/test/src/types/elements/RatingBreakdowns.d.ts.map +0 -1
  583. package/dist/test/src/types/elements/RatingBreakdowns.js +0 -6
  584. package/dist/test/src/types/elements/index.d.ts +0 -9
  585. package/dist/test/src/types/elements/index.d.ts.map +0 -1
  586. package/dist/test/src/types/elements/index.js +0 -11
  587. package/dist/test/src/types/index.d.ts +0 -9
  588. package/dist/test/src/types/index.d.ts.map +0 -1
  589. package/dist/test/src/types/index.js +0 -9
  590. package/dist/test/src/types/marketplace.d.ts +0 -23
  591. package/dist/test/src/types/marketplace.d.ts.map +0 -1
  592. package/dist/test/src/types/marketplace.js +0 -5
  593. package/dist/test/src/types/mcp.d.ts +0 -84
  594. package/dist/test/src/types/mcp.d.ts.map +0 -1
  595. package/dist/test/src/types/mcp.js +0 -80
  596. package/dist/test/src/types/persona.d.ts +0 -30
  597. package/dist/test/src/types/persona.d.ts.map +0 -1
  598. package/dist/test/src/types/persona.js +0 -5
  599. package/dist/test/src/update/BackupManager.d.ts +0 -46
  600. package/dist/test/src/update/BackupManager.d.ts.map +0 -1
  601. package/dist/test/src/update/BackupManager.js +0 -261
  602. package/dist/test/src/update/DependencyChecker.d.ts +0 -41
  603. package/dist/test/src/update/DependencyChecker.d.ts.map +0 -1
  604. package/dist/test/src/update/DependencyChecker.js +0 -132
  605. package/dist/test/src/update/RateLimiter.d.ts +0 -80
  606. package/dist/test/src/update/RateLimiter.d.ts.map +0 -1
  607. package/dist/test/src/update/RateLimiter.js +0 -172
  608. package/dist/test/src/update/SignatureVerifier.d.ts +0 -71
  609. package/dist/test/src/update/SignatureVerifier.d.ts.map +0 -1
  610. package/dist/test/src/update/SignatureVerifier.js +0 -214
  611. package/dist/test/src/update/UpdateChecker.d.ts +0 -127
  612. package/dist/test/src/update/UpdateChecker.d.ts.map +0 -1
  613. package/dist/test/src/update/UpdateChecker.js +0 -469
  614. package/dist/test/src/update/UpdateManager.d.ts +0 -41
  615. package/dist/test/src/update/UpdateManager.d.ts.map +0 -1
  616. package/dist/test/src/update/UpdateManager.js +0 -260
  617. package/dist/test/src/update/VersionManager.d.ts +0 -31
  618. package/dist/test/src/update/VersionManager.d.ts.map +0 -1
  619. package/dist/test/src/update/VersionManager.js +0 -134
  620. package/dist/test/src/update/index.d.ts +0 -9
  621. package/dist/test/src/update/index.d.ts.map +0 -1
  622. package/dist/test/src/update/index.js +0 -9
  623. package/dist/test/src/utils/filesystem.d.ts +0 -29
  624. package/dist/test/src/utils/filesystem.d.ts.map +0 -1
  625. package/dist/test/src/utils/filesystem.js +0 -94
  626. package/dist/test/src/utils/git.d.ts +0 -32
  627. package/dist/test/src/utils/git.d.ts.map +0 -1
  628. package/dist/test/src/utils/git.js +0 -65
  629. package/dist/test/src/utils/index.d.ts +0 -7
  630. package/dist/test/src/utils/index.d.ts.map +0 -1
  631. package/dist/test/src/utils/index.js +0 -7
  632. package/dist/test/src/utils/logger.d.ts +0 -45
  633. package/dist/test/src/utils/logger.d.ts.map +0 -1
  634. package/dist/test/src/utils/logger.js +0 -91
  635. package/dist/test/src/utils/version.d.ts +0 -25
  636. package/dist/test/src/utils/version.d.ts.map +0 -1
  637. package/dist/test/src/utils/version.js +0 -97
  638. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts +0 -33
  639. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts.map +0 -1
  640. package/dist/test/test/__tests__/integration/helpers/file-utils.js +0 -83
  641. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts +0 -26
  642. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts.map +0 -1
  643. package/dist/test/test/__tests__/integration/helpers/test-fixtures.js +0 -95
  644. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts +0 -26
  645. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts.map +0 -1
  646. package/dist/test/test/__tests__/integration/helpers/test-server.js +0 -41
  647. package/dist/test/test/__tests__/integration/setup.d.ts +0 -8
  648. package/dist/test/test/__tests__/integration/setup.d.ts.map +0 -1
  649. package/dist/test/test/__tests__/integration/setup.js +0 -31
  650. package/dist/test/test/__tests__/integration/teardown.d.ts +0 -5
  651. package/dist/test/test/__tests__/integration/teardown.d.ts.map +0 -1
  652. package/dist/test/test/__tests__/integration/teardown.js +0 -23
  653. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts +0 -34
  654. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts.map +0 -1
  655. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.js +0 -224
  656. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts +0 -89
  657. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts.map +0 -1
  658. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.js +0 -543
  659. package/dist/test/test/__tests__/security/index.d.ts +0 -46
  660. package/dist/test/test/__tests__/security/index.d.ts.map +0 -1
  661. package/dist/test/test/__tests__/security/index.js +0 -98
  662. package/dist/test/test/__tests__/security/setup.d.ts +0 -3
  663. package/dist/test/test/__tests__/security/setup.d.ts.map +0 -1
  664. package/dist/test/test/__tests__/security/setup.js +0 -23
  665. package/dist/types/marketplace.d.ts +0 -23
  666. package/dist/types/marketplace.d.ts.map +0 -1
  667. package/dist/types/marketplace.js +0 -5
@@ -1,103 +0,0 @@
1
- /**
2
- * Install content from collection
3
- */
4
- import * as fs from 'fs/promises';
5
- import * as path from 'path';
6
- import { validatePath, validateFilename, validateContentSize } from '../security/InputValidator.js';
7
- import { SECURITY_LIMITS } from '../security/constants.js';
8
- import { ContentValidator } from '../security/contentValidator.js';
9
- import { SecureYamlParser } from '../security/secureYamlParser.js';
10
- import { SecurityError } from '../errors/SecurityError.js';
11
- import { PortfolioManager, ElementType } from '../portfolio/PortfolioManager.js';
12
- export class PersonaInstaller {
13
- githubClient;
14
- personasDir;
15
- portfolioManager;
16
- baseUrl = 'https://api.github.com/repos/DollhouseMCP/collection/contents';
17
- constructor(githubClient, personasDir) {
18
- this.githubClient = githubClient;
19
- this.portfolioManager = PortfolioManager.getInstance();
20
- this.personasDir = personasDir || this.portfolioManager.getElementDir(ElementType.PERSONA);
21
- }
22
- /**
23
- * Install content from the collection
24
- */
25
- async installContent(inputPath) {
26
- // Validate and sanitize the input path
27
- const sanitizedPath = validatePath(inputPath);
28
- // Ensure the path ends with .md
29
- if (!sanitizedPath.endsWith('.md')) {
30
- throw new Error('Invalid file type. Only .md files are allowed.');
31
- }
32
- const url = `${this.baseUrl}/${sanitizedPath}`;
33
- const data = await this.githubClient.fetchFromGitHub(url);
34
- if (data.type !== 'file') {
35
- throw new Error('Path does not point to a file');
36
- }
37
- // Check file size before downloading
38
- if (data.size > SECURITY_LIMITS.MAX_PERSONA_SIZE_BYTES) {
39
- throw new Error(`File too large (${data.size} bytes, max ${SECURITY_LIMITS.MAX_PERSONA_SIZE_BYTES} bytes)`);
40
- }
41
- // Decode Base64 content
42
- const content = Buffer.from(data.content, 'base64').toString('utf-8');
43
- // Validate content size after decoding
44
- validateContentSize(content, SECURITY_LIMITS.MAX_PERSONA_SIZE_BYTES);
45
- // Sanitize content for security threats
46
- const sanitizedContent = ContentValidator.sanitizePersonaContent(content);
47
- // Use secure YAML parser
48
- let parsed;
49
- try {
50
- parsed = SecureYamlParser.safeMatter(sanitizedContent);
51
- }
52
- catch (error) {
53
- if (error instanceof SecurityError) {
54
- throw new Error(`Security threat in content: ${error.message}`);
55
- }
56
- throw error;
57
- }
58
- const metadata = parsed.data;
59
- // Additional metadata validation for injection attacks
60
- const metadataValidation = ContentValidator.validateMetadata(metadata);
61
- if (!metadataValidation.isValid) {
62
- throw new Error(`Security validation failed: ${metadataValidation.detectedPatterns?.join(', ')}`);
63
- }
64
- // Validate metadata
65
- if (!metadata.name || !metadata.description) {
66
- throw new Error('Invalid content: missing required name or description');
67
- }
68
- // Generate and validate local filename
69
- const originalFilename = sanitizedPath.split('/').pop() || 'downloaded-persona.md';
70
- const filename = validateFilename(originalFilename);
71
- const localPath = path.join(this.personasDir, filename);
72
- // Check if file already exists
73
- try {
74
- await fs.access(localPath);
75
- return {
76
- success: false,
77
- message: `Content already exists: ${filename}\n\nUse \`reload_personas\` to refresh if you've updated it manually.`
78
- };
79
- }
80
- catch {
81
- // File doesn't exist, proceed with installation
82
- }
83
- // Write the sanitized file
84
- await fs.writeFile(localPath, sanitizedContent, 'utf-8');
85
- return {
86
- success: true,
87
- message: `Content installed successfully!`,
88
- metadata,
89
- filename
90
- };
91
- }
92
- /**
93
- * Format installation success message
94
- */
95
- formatInstallSuccess(metadata, filename, totalPersonas, personaIndicator = '') {
96
- return `${personaIndicator}✅ **Content Installed Successfully!**\n\n` +
97
- `🎭 **${metadata.name}** by ${metadata.author}\n` +
98
- `📁 Saved as: ${filename}\n` +
99
- `📊 Total personas: ${totalPersonas}\n\n` +
100
- `🎯 **Ready to use:** \`activate_persona "${metadata.name}"\``;
101
- }
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUluc3RhbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xsZWN0aW9uL1BlcnNvbmFJbnN0YWxsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUk3QixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakYsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixZQUFZLENBQWU7SUFDM0IsV0FBVyxDQUFTO0lBQ3BCLGdCQUFnQixDQUFtQjtJQUNuQyxPQUFPLEdBQUcsK0RBQStELENBQUM7SUFFbEYsWUFBWSxZQUEwQixFQUFFLFdBQW9CO1FBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQWlCO1FBTXBDLHVDQUF1QztRQUN2QyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxJQUFJLGVBQWUsZUFBZSxDQUFDLHNCQUFzQixTQUFTLENBQUMsQ0FBQztRQUM5RyxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEUsdUNBQXVDO1FBQ3ZDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVyRSx3Q0FBd0M7UUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxRSx5QkFBeUI7UUFDekIsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbEUsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUF1QixDQUFDO1FBRWhELHVEQUF1RDtRQUN2RCxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCx1Q0FBdUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLHVCQUF1QixDQUFDO1FBQ25GLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXhELCtCQUErQjtRQUMvQixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsMkJBQTJCLFFBQVEsdUVBQXVFO2FBQ3BILENBQUM7UUFDSixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsZ0RBQWdEO1FBQ2xELENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RCxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFFBQVE7WUFDUixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFFBQXlCLEVBQUUsUUFBZ0IsRUFBRSxhQUFxQixFQUFFLG1CQUEyQixFQUFFO1FBQ3BILE9BQU8sR0FBRyxnQkFBZ0IsMkNBQTJDO1lBQ25FLFFBQVEsUUFBUSxDQUFDLElBQUksU0FBUyxRQUFRLENBQUMsTUFBTSxJQUFJO1lBQ2pELGdCQUFnQixRQUFRLElBQUk7WUFDNUIsc0JBQXNCLGFBQWEsTUFBTTtZQUN6Qyw0Q0FBNEMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW5zdGFsbCBjb250ZW50IGZyb20gY29sbGVjdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbWF0dGVyIGZyb20gJ2dyYXktbWF0dGVyJztcbmltcG9ydCB7IEdpdEh1YkNsaWVudCB9IGZyb20gJy4vR2l0SHViQ2xpZW50LmpzJztcbmltcG9ydCB7IFBlcnNvbmFNZXRhZGF0YSB9IGZyb20gJy4uL3R5cGVzL3BlcnNvbmEuanMnO1xuaW1wb3J0IHsgdmFsaWRhdGVQYXRoLCB2YWxpZGF0ZUZpbGVuYW1lLCB2YWxpZGF0ZUNvbnRlbnRTaXplIH0gZnJvbSAnLi4vc2VjdXJpdHkvSW5wdXRWYWxpZGF0b3IuanMnO1xuaW1wb3J0IHsgU0VDVVJJVFlfTElNSVRTIH0gZnJvbSAnLi4vc2VjdXJpdHkvY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IENvbnRlbnRWYWxpZGF0b3IgfSBmcm9tICcuLi9zZWN1cml0eS9jb250ZW50VmFsaWRhdG9yLmpzJztcbmltcG9ydCB7IFNlY3VyZVlhbWxQYXJzZXIgfSBmcm9tICcuLi9zZWN1cml0eS9zZWN1cmVZYW1sUGFyc2VyLmpzJztcbmltcG9ydCB7IFNlY3VyaXR5RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvU2VjdXJpdHlFcnJvci5qcyc7XG5pbXBvcnQgeyBQb3J0Zm9saW9NYW5hZ2VyLCBFbGVtZW50VHlwZSB9IGZyb20gJy4uL3BvcnRmb2xpby9Qb3J0Zm9saW9NYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFJbnN0YWxsZXIge1xuICBwcml2YXRlIGdpdGh1YkNsaWVudDogR2l0SHViQ2xpZW50O1xuICBwcml2YXRlIHBlcnNvbmFzRGlyOiBzdHJpbmc7XG4gIHByaXZhdGUgcG9ydGZvbGlvTWFuYWdlcjogUG9ydGZvbGlvTWFuYWdlcjtcbiAgcHJpdmF0ZSBiYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvRG9sbGhvdXNlTUNQL2NvbGxlY3Rpb24vY29udGVudHMnO1xuICBcbiAgY29uc3RydWN0b3IoZ2l0aHViQ2xpZW50OiBHaXRIdWJDbGllbnQsIHBlcnNvbmFzRGlyPzogc3RyaW5nKSB7XG4gICAgdGhpcy5naXRodWJDbGllbnQgPSBnaXRodWJDbGllbnQ7XG4gICAgdGhpcy5wb3J0Zm9saW9NYW5hZ2VyID0gUG9ydGZvbGlvTWFuYWdlci5nZXRJbnN0YW5jZSgpO1xuICAgIHRoaXMucGVyc29uYXNEaXIgPSBwZXJzb25hc0RpciB8fCB0aGlzLnBvcnRmb2xpb01hbmFnZXIuZ2V0RWxlbWVudERpcihFbGVtZW50VHlwZS5QRVJTT05BKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEluc3RhbGwgY29udGVudCBmcm9tIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBhc3luYyBpbnN0YWxsQ29udGVudChpbnB1dFBhdGg6IHN0cmluZyk6IFByb21pc2U8eyBcbiAgICBzdWNjZXNzOiBib29sZWFuOyBcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiBQZXJzb25hTWV0YWRhdGE7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIH0+IHtcbiAgICAvLyBWYWxpZGF0ZSBhbmQgc2FuaXRpemUgdGhlIGlucHV0IHBhdGhcbiAgICBjb25zdCBzYW5pdGl6ZWRQYXRoID0gdmFsaWRhdGVQYXRoKGlucHV0UGF0aCk7XG4gICAgXG4gICAgLy8gRW5zdXJlIHRoZSBwYXRoIGVuZHMgd2l0aCAubWRcbiAgICBpZiAoIXNhbml0aXplZFBhdGguZW5kc1dpdGgoJy5tZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmlsZSB0eXBlLiBPbmx5IC5tZCBmaWxlcyBhcmUgYWxsb3dlZC4nKTtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS8ke3Nhbml0aXplZFBhdGh9YDtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5naXRodWJDbGllbnQuZmV0Y2hGcm9tR2l0SHViKHVybCk7XG4gICAgXG4gICAgaWYgKGRhdGEudHlwZSAhPT0gJ2ZpbGUnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhdGggZG9lcyBub3QgcG9pbnQgdG8gYSBmaWxlJyk7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGZpbGUgc2l6ZSBiZWZvcmUgZG93bmxvYWRpbmdcbiAgICBpZiAoZGF0YS5zaXplID4gU0VDVVJJVFlfTElNSVRTLk1BWF9QRVJTT05BX1NJWkVfQllURVMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSB0b28gbGFyZ2UgKCR7ZGF0YS5zaXplfSBieXRlcywgbWF4ICR7U0VDVVJJVFlfTElNSVRTLk1BWF9QRVJTT05BX1NJWkVfQllURVN9IGJ5dGVzKWApO1xuICAgIH1cbiAgICBcbiAgICAvLyBEZWNvZGUgQmFzZTY0IGNvbnRlbnRcbiAgICBjb25zdCBjb250ZW50ID0gQnVmZmVyLmZyb20oZGF0YS5jb250ZW50LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgXG4gICAgLy8gVmFsaWRhdGUgY29udGVudCBzaXplIGFmdGVyIGRlY29kaW5nXG4gICAgdmFsaWRhdGVDb250ZW50U2l6ZShjb250ZW50LCBTRUNVUklUWV9MSU1JVFMuTUFYX1BFUlNPTkFfU0laRV9CWVRFUyk7XG4gICAgXG4gICAgLy8gU2FuaXRpemUgY29udGVudCBmb3Igc2VjdXJpdHkgdGhyZWF0c1xuICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSBDb250ZW50VmFsaWRhdG9yLnNhbml0aXplUGVyc29uYUNvbnRlbnQoY29udGVudCk7XG4gICAgXG4gICAgLy8gVXNlIHNlY3VyZSBZQU1MIHBhcnNlclxuICAgIGxldCBwYXJzZWQ7XG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZCA9IFNlY3VyZVlhbWxQYXJzZXIuc2FmZU1hdHRlcihzYW5pdGl6ZWRDb250ZW50KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU2VjdXJpdHlFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNlY3VyaXR5IHRocmVhdCBpbiBjb250ZW50OiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgbWV0YWRhdGEgPSBwYXJzZWQuZGF0YSBhcyBQZXJzb25hTWV0YWRhdGE7XG4gICAgXG4gICAgLy8gQWRkaXRpb25hbCBtZXRhZGF0YSB2YWxpZGF0aW9uIGZvciBpbmplY3Rpb24gYXR0YWNrc1xuICAgIGNvbnN0IG1ldGFkYXRhVmFsaWRhdGlvbiA9IENvbnRlbnRWYWxpZGF0b3IudmFsaWRhdGVNZXRhZGF0YShtZXRhZGF0YSk7XG4gICAgaWYgKCFtZXRhZGF0YVZhbGlkYXRpb24uaXNWYWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZWN1cml0eSB2YWxpZGF0aW9uIGZhaWxlZDogJHttZXRhZGF0YVZhbGlkYXRpb24uZGV0ZWN0ZWRQYXR0ZXJucz8uam9pbignLCAnKX1gKTtcbiAgICB9XG4gICAgXG4gICAgLy8gVmFsaWRhdGUgbWV0YWRhdGFcbiAgICBpZiAoIW1ldGFkYXRhLm5hbWUgfHwgIW1ldGFkYXRhLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29udGVudDogbWlzc2luZyByZXF1aXJlZCBuYW1lIG9yIGRlc2NyaXB0aW9uJyk7XG4gICAgfVxuICAgIFxuICAgIC8vIEdlbmVyYXRlIGFuZCB2YWxpZGF0ZSBsb2NhbCBmaWxlbmFtZVxuICAgIGNvbnN0IG9yaWdpbmFsRmlsZW5hbWUgPSBzYW5pdGl6ZWRQYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgJ2Rvd25sb2FkZWQtcGVyc29uYS5tZCc7XG4gICAgY29uc3QgZmlsZW5hbWUgPSB2YWxpZGF0ZUZpbGVuYW1lKG9yaWdpbmFsRmlsZW5hbWUpO1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9IHBhdGguam9pbih0aGlzLnBlcnNvbmFzRGlyLCBmaWxlbmFtZSk7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgZmlsZSBhbHJlYWR5IGV4aXN0c1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5hY2Nlc3MobG9jYWxQYXRoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiBgQ29udGVudCBhbHJlYWR5IGV4aXN0czogJHtmaWxlbmFtZX1cXG5cXG5Vc2UgXFxgcmVsb2FkX3BlcnNvbmFzXFxgIHRvIHJlZnJlc2ggaWYgeW91J3ZlIHVwZGF0ZWQgaXQgbWFudWFsbHkuYFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCwgcHJvY2VlZCB3aXRoIGluc3RhbGxhdGlvblxuICAgIH1cbiAgICBcbiAgICAvLyBXcml0ZSB0aGUgc2FuaXRpemVkIGZpbGVcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUobG9jYWxQYXRoLCBzYW5pdGl6ZWRDb250ZW50LCAndXRmLTgnKTtcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IGBDb250ZW50IGluc3RhbGxlZCBzdWNjZXNzZnVsbHkhYCxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgZmlsZW5hbWVcbiAgICB9O1xuICB9XG4gIFxuICAvKipcbiAgICogRm9ybWF0IGluc3RhbGxhdGlvbiBzdWNjZXNzIG1lc3NhZ2VcbiAgICovXG4gIGZvcm1hdEluc3RhbGxTdWNjZXNzKG1ldGFkYXRhOiBQZXJzb25hTWV0YWRhdGEsIGZpbGVuYW1lOiBzdHJpbmcsIHRvdGFsUGVyc29uYXM6IG51bWJlciwgcGVyc29uYUluZGljYXRvcjogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtwZXJzb25hSW5kaWNhdG9yfeKchSAqKkNvbnRlbnQgSW5zdGFsbGVkIFN1Y2Nlc3NmdWxseSEqKlxcblxcbmAgK1xuICAgICAgYPCfjq0gKioke21ldGFkYXRhLm5hbWV9KiogYnkgJHttZXRhZGF0YS5hdXRob3J9XFxuYCArXG4gICAgICBg8J+TgSBTYXZlZCBhczogJHtmaWxlbmFtZX1cXG5gICtcbiAgICAgIGDwn5OKIFRvdGFsIHBlcnNvbmFzOiAke3RvdGFsUGVyc29uYXN9XFxuXFxuYCArXG4gICAgICBg8J+OryAqKlJlYWR5IHRvIHVzZToqKiBcXGBhY3RpdmF0ZV9wZXJzb25hIFwiJHttZXRhZGF0YS5uYW1lfVwiXFxgYDtcbiAgfVxufSJdfQ==
@@ -1,19 +0,0 @@
1
- /**
2
- * Submit personas to the collection
3
- */
4
- import { Persona } from '../types/persona.js';
5
- export declare class PersonaSubmitter {
6
- /**
7
- * Generate GitHub issue for persona submission
8
- */
9
- generateSubmissionIssue(persona: Persona): {
10
- issueTitle: string;
11
- issueBody: string;
12
- githubIssueUrl: string;
13
- };
14
- /**
15
- * Format submission response
16
- */
17
- formatSubmissionResponse(persona: Persona, githubIssueUrl: string, personaIndicator?: string): string;
18
- }
19
- //# sourceMappingURL=PersonaSubmitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersonaSubmitter.d.ts","sourceRoot":"","sources":["../../../../src/collection/PersonaSubmitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;QACzC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAA;KACvB;IAqCD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAW,GAAG,MAAM;CAW1G"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Submit personas to the collection
3
- */
4
- export class PersonaSubmitter {
5
- /**
6
- * Generate GitHub issue for persona submission
7
- */
8
- generateSubmissionIssue(persona) {
9
- const issueTitle = `New Persona Submission: ${persona.metadata.name}`;
10
- const issueBody = `## Persona Submission
11
-
12
- **Name:** ${persona.metadata.name}
13
- **Author:** ${persona.metadata.author || 'Unknown'}
14
- **Category:** ${persona.metadata.category || 'General'}
15
- **Description:** ${persona.metadata.description}
16
-
17
- ### Persona Content:
18
- \`\`\`markdown
19
- ---
20
- ${Object.entries(persona.metadata)
21
- .map(([key, value]) => `${key}: ${Array.isArray(value) ? JSON.stringify(value) : JSON.stringify(value)}`)
22
- .join('\n')}
23
- ---
24
-
25
- ${persona.content}
26
- \`\`\`
27
-
28
- ### Submission Details:
29
- - Submitted via DollhouseMCP client
30
- - Filename: ${persona.filename}
31
- - Unique ID: ${persona.unique_id}
32
-
33
- ---
34
- *Please review this persona for inclusion in the collection.*`;
35
- const githubIssueUrl = `https://github.com/DollhouseMCP/collection/issues/new?title=${encodeURIComponent(issueTitle)}&body=${encodeURIComponent(issueBody)}`;
36
- return {
37
- issueTitle,
38
- issueBody,
39
- githubIssueUrl
40
- };
41
- }
42
- /**
43
- * Format submission response
44
- */
45
- formatSubmissionResponse(persona, githubIssueUrl, personaIndicator = '') {
46
- return `${personaIndicator}📤 **Persona Submission Prepared**\n\n` +
47
- `🎭 **${persona.metadata.name}** is ready for collection submission!\n\n` +
48
- `**Next Steps:**\n` +
49
- `1. Click this link to create a GitHub issue: \n` +
50
- ` ${githubIssueUrl}\n\n` +
51
- `2. Review the pre-filled content\n` +
52
- `3. Click "Submit new issue"\n` +
53
- `4. The maintainers will review your submission\n\n` +
54
- `⭐ **Tip:** You can also submit via pull request if you're familiar with Git!`;
55
- }
56
- }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYVN1Ym1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xsZWN0aW9uL1BlcnNvbmFTdWJtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsdUJBQXVCLENBQUMsT0FBZ0I7UUFLdEMsTUFBTSxVQUFVLEdBQUcsMkJBQTJCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEUsTUFBTSxTQUFTLEdBQUc7O1lBRVYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2NBQ25CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVM7Z0JBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFNBQVM7bUJBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVzs7Ozs7RUFLN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDeEcsSUFBSSxDQUFDLElBQUksQ0FBQzs7O0VBR1gsT0FBTyxDQUFDLE9BQU87Ozs7O2NBS0gsT0FBTyxDQUFDLFFBQVE7ZUFDZixPQUFPLENBQUMsU0FBUzs7OzhEQUc4QixDQUFDO1FBRTNELE1BQU0sY0FBYyxHQUFHLCtEQUErRCxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBRTdKLE9BQU87WUFDTCxVQUFVO1lBQ1YsU0FBUztZQUNULGNBQWM7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCLENBQUMsT0FBZ0IsRUFBRSxjQUFzQixFQUFFLG1CQUEyQixFQUFFO1FBQzlGLE9BQU8sR0FBRyxnQkFBZ0Isd0NBQXdDO1lBQ2hFLFFBQVEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLDRDQUE0QztZQUN6RSxtQkFBbUI7WUFDbkIsaURBQWlEO1lBQ2pELE1BQU0sY0FBYyxNQUFNO1lBQzFCLG9DQUFvQztZQUNwQywrQkFBK0I7WUFDL0Isb0RBQW9EO1lBQ3BELDhFQUE4RSxDQUFDO0lBQ25GLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3VibWl0IHBlcnNvbmFzIHRvIHRoZSBjb2xsZWN0aW9uXG4gKi9cblxuaW1wb3J0IHsgUGVyc29uYSB9IGZyb20gJy4uL3R5cGVzL3BlcnNvbmEuanMnO1xuXG5leHBvcnQgY2xhc3MgUGVyc29uYVN1Ym1pdHRlciB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBHaXRIdWIgaXNzdWUgZm9yIHBlcnNvbmEgc3VibWlzc2lvblxuICAgKi9cbiAgZ2VuZXJhdGVTdWJtaXNzaW9uSXNzdWUocGVyc29uYTogUGVyc29uYSk6IHsgXG4gICAgaXNzdWVUaXRsZTogc3RyaW5nOyBcbiAgICBpc3N1ZUJvZHk6IHN0cmluZzsgXG4gICAgZ2l0aHViSXNzdWVVcmw6IHN0cmluZyBcbiAgfSB7XG4gICAgY29uc3QgaXNzdWVUaXRsZSA9IGBOZXcgUGVyc29uYSBTdWJtaXNzaW9uOiAke3BlcnNvbmEubWV0YWRhdGEubmFtZX1gO1xuICAgIGNvbnN0IGlzc3VlQm9keSA9IGAjIyBQZXJzb25hIFN1Ym1pc3Npb25cblxuKipOYW1lOioqICR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfVxuKipBdXRob3I6KiogJHtwZXJzb25hLm1ldGFkYXRhLmF1dGhvciB8fCAnVW5rbm93bid9XG4qKkNhdGVnb3J5OioqICR7cGVyc29uYS5tZXRhZGF0YS5jYXRlZ29yeSB8fCAnR2VuZXJhbCd9XG4qKkRlc2NyaXB0aW9uOioqICR7cGVyc29uYS5tZXRhZGF0YS5kZXNjcmlwdGlvbn1cblxuIyMjIFBlcnNvbmEgQ29udGVudDpcblxcYFxcYFxcYG1hcmtkb3duXG4tLS1cbiR7T2JqZWN0LmVudHJpZXMocGVyc29uYS5tZXRhZGF0YSlcbiAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9OiAke0FycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpfWApXG4gIC5qb2luKCdcXG4nKX1cbi0tLVxuXG4ke3BlcnNvbmEuY29udGVudH1cblxcYFxcYFxcYFxuXG4jIyMgU3VibWlzc2lvbiBEZXRhaWxzOlxuLSBTdWJtaXR0ZWQgdmlhIERvbGxob3VzZU1DUCBjbGllbnRcbi0gRmlsZW5hbWU6ICR7cGVyc29uYS5maWxlbmFtZX1cbi0gVW5pcXVlIElEOiAke3BlcnNvbmEudW5pcXVlX2lkfVxuXG4tLS1cbipQbGVhc2UgcmV2aWV3IHRoaXMgcGVyc29uYSBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb2xsZWN0aW9uLipgO1xuICAgIFxuICAgIGNvbnN0IGdpdGh1Yklzc3VlVXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS9Eb2xsaG91c2VNQ1AvY29sbGVjdGlvbi9pc3N1ZXMvbmV3P3RpdGxlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGlzc3VlVGl0bGUpfSZib2R5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGlzc3VlQm9keSl9YDtcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgaXNzdWVUaXRsZSxcbiAgICAgIGlzc3VlQm9keSxcbiAgICAgIGdpdGh1Yklzc3VlVXJsXG4gICAgfTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZvcm1hdCBzdWJtaXNzaW9uIHJlc3BvbnNlXG4gICAqL1xuICBmb3JtYXRTdWJtaXNzaW9uUmVzcG9uc2UocGVyc29uYTogUGVyc29uYSwgZ2l0aHViSXNzdWVVcmw6IHN0cmluZywgcGVyc29uYUluZGljYXRvcjogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtwZXJzb25hSW5kaWNhdG9yffCfk6QgKipQZXJzb25hIFN1Ym1pc3Npb24gUHJlcGFyZWQqKlxcblxcbmAgK1xuICAgICAgYPCfjq0gKioke3BlcnNvbmEubWV0YWRhdGEubmFtZX0qKiBpcyByZWFkeSBmb3IgY29sbGVjdGlvbiBzdWJtaXNzaW9uIVxcblxcbmAgK1xuICAgICAgYCoqTmV4dCBTdGVwczoqKlxcbmAgK1xuICAgICAgYDEuIENsaWNrIHRoaXMgbGluayB0byBjcmVhdGUgYSBHaXRIdWIgaXNzdWU6IFxcbmAgK1xuICAgICAgYCAgICR7Z2l0aHViSXNzdWVVcmx9XFxuXFxuYCArXG4gICAgICBgMi4gUmV2aWV3IHRoZSBwcmUtZmlsbGVkIGNvbnRlbnRcXG5gICtcbiAgICAgIGAzLiBDbGljayBcIlN1Ym1pdCBuZXcgaXNzdWVcIlxcbmAgK1xuICAgICAgYDQuIFRoZSBtYWludGFpbmVycyB3aWxsIHJldmlldyB5b3VyIHN1Ym1pc3Npb25cXG5cXG5gICtcbiAgICAgIGDirZAgKipUaXA6KiogWW91IGNhbiBhbHNvIHN1Ym1pdCB2aWEgcHVsbCByZXF1ZXN0IGlmIHlvdSdyZSBmYW1pbGlhciB3aXRoIEdpdCFgO1xuICB9XG59Il19
@@ -1,10 +0,0 @@
1
- /**
2
- * Collection module exports
3
- */
4
- export * from './GitHubClient.js';
5
- export * from './CollectionBrowser.js';
6
- export * from './CollectionSearch.js';
7
- export * from './PersonaDetails.js';
8
- export * from './PersonaInstaller.js';
9
- export * from './PersonaSubmitter.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Collection module exports
3
- */
4
- export * from './GitHubClient.js';
5
- export * from './CollectionBrowser.js';
6
- export * from './CollectionSearch.js';
7
- export * from './PersonaDetails.js';
8
- export * from './PersonaInstaller.js';
9
- export * from './PersonaSubmitter.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29sbGVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb2xsZWN0aW9uIG1vZHVsZSBleHBvcnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9HaXRIdWJDbGllbnQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db2xsZWN0aW9uQnJvd3Nlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rpb25TZWFyY2guanMnO1xuZXhwb3J0ICogZnJvbSAnLi9QZXJzb25hRGV0YWlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1BlcnNvbmFJbnN0YWxsZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9QZXJzb25hU3VibWl0dGVyLmpzJzsiXX0=
@@ -1,25 +0,0 @@
1
- /**
2
- * Application-wide constants and configuration
3
- */
4
- export declare const REPO_OWNER = "DollhouseMCP";
5
- export declare const REPO_NAME = "mcp-server";
6
- export declare const REPO_URL = "https://github.com/DollhouseMCP/mcp-server";
7
- export declare const RELEASES_API_URL = "https://api.github.com/repos/DollhouseMCP/mcp-server/releases/latest";
8
- export declare const MARKETPLACE_REPO_OWNER = "DollhouseMCP";
9
- export declare const MARKETPLACE_REPO_NAME = "personas";
10
- export declare const DEPENDENCY_REQUIREMENTS: {
11
- git: {
12
- minimum: string;
13
- maximum: string;
14
- recommended: string;
15
- };
16
- npm: {
17
- minimum: string;
18
- maximum: string;
19
- recommended: string;
20
- };
21
- };
22
- export declare const ADJECTIVES: string[];
23
- export declare const ANIMALS: string[];
24
- export declare const VALID_CATEGORIES: string[];
25
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AACzC,eAAO,MAAM,SAAS,eAAe,CAAC;AACtC,eAAO,MAAM,QAAQ,+CAAkD,CAAC;AACxE,eAAO,MAAM,gBAAgB,yEAA4E,CAAC;AAG1G,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAGhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;CAWnC,CAAC;AAGF,eAAO,MAAM,UAAU,UAA0F,CAAC;AAClH,eAAO,MAAM,OAAO,UAAkF,CAAC;AAGvG,eAAO,MAAM,gBAAgB,UAAoE,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Application-wide constants and configuration
3
- */
4
- // Repository configuration
5
- export const REPO_OWNER = 'DollhouseMCP';
6
- export const REPO_NAME = 'mcp-server';
7
- export const REPO_URL = `https://github.com/${REPO_OWNER}/${REPO_NAME}`;
8
- export const RELEASES_API_URL = `https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/releases/latest`;
9
- // Marketplace repository configuration
10
- export const MARKETPLACE_REPO_OWNER = 'DollhouseMCP';
11
- export const MARKETPLACE_REPO_NAME = 'personas';
12
- // Dependency version requirements
13
- export const DEPENDENCY_REQUIREMENTS = {
14
- git: {
15
- minimum: '2.20.0', // Required for modern features and security
16
- maximum: '2.50.0', // Latest tested working version
17
- recommended: '2.40.0' // Optimal version for stability
18
- },
19
- npm: {
20
- minimum: '8.0.0', // Required for package-lock v2 and modern features
21
- maximum: '12.0.0', // Latest tested working version
22
- recommended: '10.0.0' // Optimal version for stability
23
- }
24
- };
25
- // Anonymous ID generation
26
- export const ADJECTIVES = ['clever', 'swift', 'bright', 'bold', 'wise', 'calm', 'keen', 'witty', 'sharp', 'cool'];
27
- export const ANIMALS = ['fox', 'owl', 'cat', 'wolf', 'bear', 'hawk', 'deer', 'lion', 'eagle', 'tiger'];
28
- // Valid persona categories
29
- export const VALID_CATEGORIES = ['creative', 'professional', 'educational', 'gaming', 'personal'];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCwyQkFBMkI7QUFDM0IsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGdDQUFnQyxVQUFVLElBQUksU0FBUyxrQkFBa0IsQ0FBQztBQUUxRyx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQztBQUVoRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsR0FBRyxFQUFFO1FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBSyw0Q0FBNEM7UUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBSyxnQ0FBZ0M7UUFDdEQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxnQ0FBZ0M7S0FDdkQ7SUFDRCxHQUFHLEVBQUU7UUFDSCxPQUFPLEVBQUUsT0FBTyxFQUFNLHFEQUFxRDtRQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFLLGdDQUFnQztRQUN0RCxXQUFXLEVBQUUsUUFBUSxDQUFDLGdDQUFnQztLQUN2RDtDQUNGLENBQUM7QUFFRiwwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFdkcsMkJBQTJCO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcHBsaWNhdGlvbi13aWRlIGNvbnN0YW50cyBhbmQgY29uZmlndXJhdGlvblxuICovXG5cbi8vIFJlcG9zaXRvcnkgY29uZmlndXJhdGlvblxuZXhwb3J0IGNvbnN0IFJFUE9fT1dORVIgPSAnRG9sbGhvdXNlTUNQJztcbmV4cG9ydCBjb25zdCBSRVBPX05BTUUgPSAnbWNwLXNlcnZlcic7XG5leHBvcnQgY29uc3QgUkVQT19VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7UkVQT19PV05FUn0vJHtSRVBPX05BTUV9YDtcbmV4cG9ydCBjb25zdCBSRUxFQVNFU19BUElfVVJMID0gYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtSRVBPX09XTkVSfS8ke1JFUE9fTkFNRX0vcmVsZWFzZXMvbGF0ZXN0YDtcblxuLy8gTWFya2V0cGxhY2UgcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgTUFSS0VUUExBQ0VfUkVQT19PV05FUiA9ICdEb2xsaG91c2VNQ1AnO1xuZXhwb3J0IGNvbnN0IE1BUktFVFBMQUNFX1JFUE9fTkFNRSA9ICdwZXJzb25hcyc7XG5cbi8vIERlcGVuZGVuY3kgdmVyc2lvbiByZXF1aXJlbWVudHNcbmV4cG9ydCBjb25zdCBERVBFTkRFTkNZX1JFUVVJUkVNRU5UUyA9IHtcbiAgZ2l0OiB7XG4gICAgbWluaW11bTogJzIuMjAuMCcsICAgIC8vIFJlcXVpcmVkIGZvciBtb2Rlcm4gZmVhdHVyZXMgYW5kIHNlY3VyaXR5XG4gICAgbWF4aW11bTogJzIuNTAuMCcsICAgIC8vIExhdGVzdCB0ZXN0ZWQgd29ya2luZyB2ZXJzaW9uXG4gICAgcmVjb21tZW5kZWQ6ICcyLjQwLjAnIC8vIE9wdGltYWwgdmVyc2lvbiBmb3Igc3RhYmlsaXR5XG4gIH0sXG4gIG5wbToge1xuICAgIG1pbmltdW06ICc4LjAuMCcsICAgICAvLyBSZXF1aXJlZCBmb3IgcGFja2FnZS1sb2NrIHYyIGFuZCBtb2Rlcm4gZmVhdHVyZXMgIFxuICAgIG1heGltdW06ICcxMi4wLjAnLCAgICAvLyBMYXRlc3QgdGVzdGVkIHdvcmtpbmcgdmVyc2lvblxuICAgIHJlY29tbWVuZGVkOiAnMTAuMC4wJyAvLyBPcHRpbWFsIHZlcnNpb24gZm9yIHN0YWJpbGl0eVxuICB9XG59O1xuXG4vLyBBbm9ueW1vdXMgSUQgZ2VuZXJhdGlvblxuZXhwb3J0IGNvbnN0IEFESkVDVElWRVMgPSBbJ2NsZXZlcicsICdzd2lmdCcsICdicmlnaHQnLCAnYm9sZCcsICd3aXNlJywgJ2NhbG0nLCAna2VlbicsICd3aXR0eScsICdzaGFycCcsICdjb29sJ107XG5leHBvcnQgY29uc3QgQU5JTUFMUyA9IFsnZm94JywgJ293bCcsICdjYXQnLCAnd29sZicsICdiZWFyJywgJ2hhd2snLCAnZGVlcicsICdsaW9uJywgJ2VhZ2xlJywgJ3RpZ2VyJ107XG5cbi8vIFZhbGlkIHBlcnNvbmEgY2F0ZWdvcmllc1xuZXhwb3J0IGNvbnN0IFZBTElEX0NBVEVHT1JJRVMgPSBbJ2NyZWF0aXZlJywgJ3Byb2Zlc3Npb25hbCcsICdlZHVjYXRpb25hbCcsICdnYW1pbmcnLCAncGVyc29uYWwnXTsiXX0=
@@ -1,6 +0,0 @@
1
- /**
2
- * Central export point for configuration
3
- */
4
- export * from './constants.js';
5
- export * from './indicator-config.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Central export point for configuration
3
- */
4
- export * from './constants.js';
5
- export * from './indicator-config.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDZW50cmFsIGV4cG9ydCBwb2ludCBmb3IgY29uZmlndXJhdGlvblxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5kaWNhdG9yLWNvbmZpZy5qcyc7Il19
@@ -1,107 +0,0 @@
1
- /**
2
- * Configuration interface for the persona active indicator system.
3
- * Controls how persona information is displayed in AI responses.
4
- *
5
- * @interface IndicatorConfig
6
- * @example
7
- * ```typescript
8
- * const config: IndicatorConfig = {
9
- * enabled: true,
10
- * style: 'full',
11
- * showEmoji: true,
12
- * showName: true,
13
- * showVersion: true,
14
- * showAuthor: true,
15
- * showCategory: false,
16
- * separator: ' | ',
17
- * emoji: '🎭',
18
- * bracketStyle: 'square'
19
- * };
20
- * ```
21
- */
22
- export interface IndicatorConfig {
23
- /** Whether to show the indicator at all */
24
- enabled: boolean;
25
- /** Format style: 'full', 'minimal', 'compact', 'custom' */
26
- style: 'full' | 'minimal' | 'compact' | 'custom';
27
- /**
28
- * Custom format template (used when style is 'custom')
29
- * Available placeholders: {emoji}, {name}, {version}, {author}, {category}
30
- */
31
- customFormat?: string;
32
- /** Whether to include specific elements */
33
- showEmoji: boolean;
34
- showName: boolean;
35
- showVersion: boolean;
36
- showAuthor: boolean;
37
- showCategory: boolean;
38
- /** Separator between indicator and response */
39
- separator: string;
40
- /** Emoji to use (defaults to 🎭) */
41
- emoji: string;
42
- /** Bracket style: 'square', 'round', 'curly', 'angle', 'none' */
43
- bracketStyle: 'square' | 'round' | 'curly' | 'angle' | 'none';
44
- }
45
- export declare const DEFAULT_INDICATOR_CONFIG: IndicatorConfig;
46
- export declare const INDICATOR_STYLES: {
47
- full: string;
48
- minimal: string;
49
- compact: string;
50
- custom: string;
51
- };
52
- export declare const BRACKETS: {
53
- square: {
54
- open: string;
55
- close: string;
56
- };
57
- round: {
58
- open: string;
59
- close: string;
60
- };
61
- curly: {
62
- open: string;
63
- close: string;
64
- };
65
- angle: {
66
- open: string;
67
- close: string;
68
- };
69
- none: {
70
- open: string;
71
- close: string;
72
- };
73
- };
74
- /**
75
- * Load indicator configuration from environment variables or use defaults.
76
- * Environment variables take precedence over default values.
77
- *
78
- * @returns {IndicatorConfig} The loaded configuration
79
- * @example
80
- * ```typescript
81
- * // Set environment variables before loading
82
- * process.env.DOLLHOUSE_INDICATOR_STYLE = 'minimal';
83
- * process.env.DOLLHOUSE_INDICATOR_EMOJI = '🤖';
84
- *
85
- * const config = loadIndicatorConfig();
86
- * // config.style === 'minimal'
87
- * // config.emoji === '🤖'
88
- * ```
89
- */
90
- export declare function loadIndicatorConfig(): IndicatorConfig;
91
- /**
92
- * Validate custom format template for valid placeholders
93
- */
94
- export declare function validateCustomFormat(format: string): {
95
- valid: boolean;
96
- error?: string;
97
- };
98
- /**
99
- * Format the indicator based on configuration and persona metadata
100
- */
101
- export declare function formatIndicator(config: IndicatorConfig, metadata: {
102
- name: string;
103
- version?: string;
104
- author?: string;
105
- category?: string;
106
- }): string;
107
- //# sourceMappingURL=indicator-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indicator-config.d.ts","sourceRoot":"","sources":["../../../../src/config/indicator-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IAEjB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAEjD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IAEtB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,iEAAiE;IACjE,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;CAC/D;AAGD,eAAO,MAAM,wBAAwB,EAAE,eAWtC,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAMpB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CA6CrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBvF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;IACR,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CA4DR"}
@@ -1,158 +0,0 @@
1
- // Default configuration
2
- export const DEFAULT_INDICATOR_CONFIG = {
3
- enabled: true,
4
- style: 'full',
5
- showEmoji: true,
6
- showName: true,
7
- showVersion: true,
8
- showAuthor: true,
9
- showCategory: false,
10
- separator: ' | ',
11
- emoji: '🎭',
12
- bracketStyle: 'square'
13
- };
14
- // Predefined styles
15
- export const INDICATOR_STYLES = {
16
- full: '[{emoji} {name} v{version} by {author}]',
17
- minimal: '{emoji} {name}',
18
- compact: '[{name} v{version}]',
19
- custom: '{customFormat}'
20
- };
21
- // Bracket mappings
22
- export const BRACKETS = {
23
- square: { open: '[', close: ']' },
24
- round: { open: '(', close: ')' },
25
- curly: { open: '{', close: '}' },
26
- angle: { open: '<', close: '>' },
27
- none: { open: '', close: '' }
28
- };
29
- /**
30
- * Load indicator configuration from environment variables or use defaults.
31
- * Environment variables take precedence over default values.
32
- *
33
- * @returns {IndicatorConfig} The loaded configuration
34
- * @example
35
- * ```typescript
36
- * // Set environment variables before loading
37
- * process.env.DOLLHOUSE_INDICATOR_STYLE = 'minimal';
38
- * process.env.DOLLHOUSE_INDICATOR_EMOJI = '🤖';
39
- *
40
- * const config = loadIndicatorConfig();
41
- * // config.style === 'minimal'
42
- * // config.emoji === '🤖'
43
- * ```
44
- */
45
- export function loadIndicatorConfig() {
46
- const config = { ...DEFAULT_INDICATOR_CONFIG };
47
- // Check environment variables for overrides
48
- if (process.env.DOLLHOUSE_INDICATOR_ENABLED !== undefined) {
49
- config.enabled = process.env.DOLLHOUSE_INDICATOR_ENABLED === 'true';
50
- }
51
- if (process.env.DOLLHOUSE_INDICATOR_STYLE) {
52
- const style = process.env.DOLLHOUSE_INDICATOR_STYLE;
53
- if (['full', 'minimal', 'compact', 'custom'].includes(style)) {
54
- config.style = style;
55
- }
56
- }
57
- if (process.env.DOLLHOUSE_INDICATOR_FORMAT) {
58
- config.customFormat = process.env.DOLLHOUSE_INDICATOR_FORMAT;
59
- config.style = 'custom';
60
- }
61
- if (process.env.DOLLHOUSE_INDICATOR_EMOJI) {
62
- config.emoji = process.env.DOLLHOUSE_INDICATOR_EMOJI;
63
- }
64
- if (process.env.DOLLHOUSE_INDICATOR_BRACKETS) {
65
- const bracketStyle = process.env.DOLLHOUSE_INDICATOR_BRACKETS;
66
- if (['square', 'round', 'curly', 'angle', 'none'].includes(bracketStyle)) {
67
- config.bracketStyle = bracketStyle;
68
- }
69
- }
70
- // Parse show flags from environment
71
- if (process.env.DOLLHOUSE_INDICATOR_SHOW_VERSION !== undefined) {
72
- config.showVersion = process.env.DOLLHOUSE_INDICATOR_SHOW_VERSION === 'true';
73
- }
74
- if (process.env.DOLLHOUSE_INDICATOR_SHOW_AUTHOR !== undefined) {
75
- config.showAuthor = process.env.DOLLHOUSE_INDICATOR_SHOW_AUTHOR === 'true';
76
- }
77
- if (process.env.DOLLHOUSE_INDICATOR_SHOW_CATEGORY !== undefined) {
78
- config.showCategory = process.env.DOLLHOUSE_INDICATOR_SHOW_CATEGORY === 'true';
79
- }
80
- return config;
81
- }
82
- /**
83
- * Validate custom format template for valid placeholders
84
- */
85
- export function validateCustomFormat(format) {
86
- const validPlaceholders = ['{emoji}', '{name}', '{version}', '{author}', '{category}'];
87
- // Length limit added to prevent ReDoS attacks
88
- const placeholderRegex = /\{[^}]{0,50}\}/g; // Limited to 50 chars for placeholder names
89
- const foundPlaceholders = format.match(placeholderRegex) || [];
90
- for (const placeholder of foundPlaceholders) {
91
- if (!validPlaceholders.includes(placeholder)) {
92
- return {
93
- valid: false,
94
- error: `Invalid placeholder: ${placeholder}. Valid placeholders are: ${validPlaceholders.join(', ')}`
95
- };
96
- }
97
- }
98
- return { valid: true };
99
- }
100
- /**
101
- * Format the indicator based on configuration and persona metadata
102
- */
103
- export function formatIndicator(config, metadata) {
104
- if (!config.enabled) {
105
- return '';
106
- }
107
- // Get the format template based on style
108
- let template = INDICATOR_STYLES[config.style];
109
- if (config.style === 'custom' && config.customFormat) {
110
- // Validate custom format
111
- const validation = validateCustomFormat(config.customFormat);
112
- if (!validation.valid) {
113
- // Fall back to full style if custom format is invalid
114
- template = INDICATOR_STYLES.full;
115
- }
116
- else {
117
- template = config.customFormat;
118
- }
119
- }
120
- // Replace placeholders with values or empty strings
121
- let result = template
122
- .replace('{emoji}', config.showEmoji ? config.emoji : '')
123
- .replace('{name}', config.showName ? metadata.name : '')
124
- .replace('{version}', config.showVersion && metadata.version ? metadata.version : '')
125
- .replace('{author}', config.showAuthor && metadata.author ? metadata.author : '')
126
- .replace('{category}', config.showCategory && metadata.category ? metadata.category : '');
127
- // Clean up the format string
128
- // Remove "v" if no version follows it
129
- if (!config.showVersion || !metadata.version) {
130
- result = result.replace(/\sv(?=\s|]|\)|>|}|$)/, '');
131
- }
132
- // Remove "by" if no author follows it
133
- if (!config.showAuthor || !metadata.author) {
134
- result = result.replace(/\sby(?=\s|]|\)|>|}|$)/, '');
135
- }
136
- // Clean up extra spaces
137
- result = result.replace(/\s+/g, ' ').trim();
138
- // Apply brackets based on the template format (only if template doesn't already have them)
139
- if (result && config.style !== 'custom') {
140
- // Check if the template already includes brackets
141
- const templateHasBrackets = template.includes('[') || template.includes(']') ||
142
- template.includes('(') || template.includes(')') ||
143
- template.includes('{') || template.includes('}') ||
144
- template.includes('<') || template.includes('>');
145
- if (!templateHasBrackets) {
146
- const brackets = BRACKETS[config.bracketStyle];
147
- if (brackets.open || brackets.close) {
148
- result = `${brackets.open}${result}${brackets.close}`;
149
- }
150
- }
151
- }
152
- // Add separator if we have content
153
- if (result) {
154
- result += config.separator;
155
- }
156
- return result;
157
- }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kaWNhdG9yLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvaW5kaWNhdG9yLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtREEsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFvQjtJQUN2RCxPQUFPLEVBQUUsSUFBSTtJQUNiLEtBQUssRUFBRSxNQUFNO0lBQ2IsU0FBUyxFQUFFLElBQUk7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsWUFBWSxFQUFFLFFBQVE7Q0FDdkIsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixJQUFJLEVBQUUseUNBQXlDO0lBQy9DLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixNQUFNLEVBQUUsZ0JBQWdCO0NBQ3pCLENBQUM7QUFFRixtQkFBbUI7QUFDbkIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDaEMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNoQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Q0FD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LE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNqRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2hELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDaEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGZvciB0aGUgcGVyc29uYSBhY3RpdmUgaW5kaWNhdG9yIHN5c3RlbS5cbiAqIENvbnRyb2xzIGhvdyBwZXJzb25hIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCBpbiBBSSByZXNwb25zZXMuXG4gKiBcbiAqIEBpbnRlcmZhY2UgSW5kaWNhdG9yQ29uZmlnXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29uZmlnOiBJbmRpY2F0b3JDb25maWcgPSB7XG4gKiAgIGVuYWJsZWQ6IHRydWUsXG4gKiAgIHN0eWxlOiAnZnVsbCcsXG4gKiAgIHNob3dFbW9qaTogdHJ1ZSxcbiAqICAgc2hvd05hbWU6IHRydWUsXG4gKiAgIHNob3dWZXJzaW9uOiB0cnVlLFxuICogICBzaG93QXV0aG9yOiB0cnVlLFxuICogICBzaG93Q2F0ZWdvcnk6IGZhbHNlLFxuICogICBzZXBhcmF0b3I6ICcgfCAnLFxuICogICBlbW9qaTogJ/Cfjq0nLFxuICogICBicmFja2V0U3R5bGU6ICdzcXVhcmUnXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kaWNhdG9yQ29uZmlnIHtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgaW5kaWNhdG9yIGF0IGFsbCAqL1xuICBlbmFibGVkOiBib29sZWFuO1xuICBcbiAgLyoqIEZvcm1hdCBzdHlsZTogJ2Z1bGwnLCAnbWluaW1hbCcsICdjb21wYWN0JywgJ2N1c3RvbScgKi9cbiAgc3R5bGU6ICdmdWxsJyB8ICdtaW5pbWFsJyB8ICdjb21wYWN0JyB8ICdjdXN0b20nO1xuICBcbiAgLyoqIFxuICAgKiBDdXN0b20gZm9ybWF0IHRlbXBsYXRlICh1c2VkIHdoZW4gc3R5bGUgaXMgJ2N1c3RvbScpXG4gICAqIEF2YWlsYWJsZSBwbGFjZWhvbGRlcnM6IHtlbW9qaX0sIHtuYW1lfSwge3ZlcnNpb259LCB7YXV0aG9yfSwge2NhdGVnb3J5fVxuICAgKi9cbiAgY3VzdG9tRm9ybWF0Pzogc3RyaW5nO1xuICBcbiAgLyoqIFdoZXRoZXIgdG8gaW5jbHVkZSBzcGVjaWZpYyBlbGVtZW50cyAqL1xuICBzaG93RW1vamk6IGJvb2xlYW47XG4gIHNob3dOYW1lOiBib29sZWFuO1xuICBzaG93VmVyc2lvbjogYm9vbGVhbjtcbiAgc2hvd0F1dGhvcjogYm9vbGVhbjtcbiAgc2hvd0NhdGVnb3J5OiBib29sZWFuO1xuICBcbiAgLyoqIFNlcGFyYXRvciBiZXR3ZWVuIGluZGljYXRvciBhbmQgcmVzcG9uc2UgKi9cbiAgc2VwYXJhdG9yOiBzdHJpbmc7XG4gIFxuICAvKiogRW1vamkgdG8gdXNlIChkZWZhdWx0cyB0byDwn46tKSAqL1xuICBlbW9qaTogc3RyaW5nO1xuICBcbiAgLyoqIEJyYWNrZXQgc3R5bGU6ICdzcXVhcmUnLCAncm91bmQnLCAnY3VybHknLCAnYW5nbGUnLCAnbm9uZScgKi9cbiAgYnJhY2tldFN0eWxlOiAnc3F1YXJlJyB8ICdyb3VuZCcgfCAnY3VybHknIHwgJ2FuZ2xlJyB8ICdub25lJztcbn1cblxuLy8gRGVmYXVsdCBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTkRJQ0FUT1JfQ09ORklHOiBJbmRpY2F0b3JDb25maWcgPSB7XG4gIGVuYWJsZWQ6IHRydWUsXG4gIHN0eWxlOiAnZnVsbCcsXG4gIHNob3dFbW9qaTogdHJ1ZSxcbiAgc2hvd05hbWU6IHRydWUsXG4gIHNob3dWZXJzaW9uOiB0cnVlLFxuICBzaG93QXV0aG9yOiB0cnVlLFxuICBzaG93Q2F0ZWdvcnk6IGZhbHNlLFxuICBzZXBhcmF0b3I6ICcgfCAnLFxuICBlbW9qaTogJ/Cfjq0nLFxuICBicmFja2V0U3R5bGU6ICdzcXVhcmUnXG59O1xuXG4vLyBQcmVkZWZpbmVkIHN0eWxlc1xuZXhwb3J0IGNvbnN0IElORElDQVRPUl9TVFlMRVMgPSB7XG4gIGZ1bGw6ICdbe2Vtb2ppfSB7bmFtZX0gdnt2ZXJzaW9ufSBieSB7YXV0aG9yfV0nLFxuICBtaW5pbWFsOiAne2Vtb2ppfSB7bmFtZX0nLFxuICBjb21wYWN0OiAnW3tuYW1lfSB2e3ZlcnNpb259XScsXG4gIGN1c3RvbTogJ3tjdXN0b21Gb3JtYXR9J1xufTtcblxuLy8gQnJhY2tldCBtYXBwaW5nc1xuZXhwb3J0IGNvbnN0IEJSQUNLRVRTID0ge1xuICBzcXVhcmU6IHsgb3BlbjogJ1snLCBjbG9zZTogJ10nIH0sXG4gIHJvdW5kOiB7IG9wZW46ICcoJywgY2xvc2U6ICcpJyB9LFxuICBjdXJseTogeyBvcGVuOiAneycsIGNsb3NlOiAnfScgfSxcbiAgYW5nbGU6IHsgb3BlbjogJzwnLCBjbG9zZTogJz4nIH0sXG4gIG5vbmU6IHsgb3BlbjogJycsIGNsb3NlOiAnJyB9XG59O1xuXG4vKipcbiAqIExvYWQgaW5kaWNhdG9yIGNvbmZpZ3VyYXRpb24gZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3IgdXNlIGRlZmF1bHRzLlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIGRlZmF1bHQgdmFsdWVzLlxuICogXG4gKiBAcmV0dXJucyB7SW5kaWNhdG9yQ29uZmlnfSBUaGUgbG9hZGVkIGNvbmZpZ3VyYXRpb25cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGJlZm9yZSBsb2FkaW5nXG4gKiBwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX1NUWUxFID0gJ21pbmltYWwnO1xuICogcHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0lORElDQVRPUl9FTU9KSSA9ICfwn6SWJztcbiAqIFxuICogY29uc3QgY29uZmlnID0gbG9hZEluZGljYXRvckNvbmZpZygpO1xuICogLy8gY29uZmlnLnN0eWxlID09PSAnbWluaW1hbCdcbiAqIC8vIGNvbmZpZy5lbW9qaSA9PT0gJ/CfpJYnXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRJbmRpY2F0b3JDb25maWcoKTogSW5kaWNhdG9yQ29uZmlnIHtcbiAgY29uc3QgY29uZmlnID0geyAuLi5ERUZBVUxUX0lORElDQVRPUl9DT05GSUcgfTtcbiAgXG4gIC8vIENoZWNrIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3Igb3ZlcnJpZGVzXG4gIGlmIChwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX0VOQUJMRUQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbmZpZy5lbmFibGVkID0gcHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0lORElDQVRPUl9FTkFCTEVEID09PSAndHJ1ZSc7XG4gIH1cbiAgXG4gIGlmIChwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX1NUWUxFKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX1NUWUxFO1xuICAgIGlmIChbJ2Z1bGwnLCAnbWluaW1hbCcsICdjb21wYWN0JywgJ2N1c3RvbSddLmluY2x1ZGVzKHN0eWxlKSkge1xuICAgICAgY29uZmlnLnN0eWxlID0gc3R5bGUgYXMgSW5kaWNhdG9yQ29uZmlnWydzdHlsZSddO1xuICAgIH1cbiAgfVxuICBcbiAgaWYgKHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfRk9STUFUKSB7XG4gICAgY29uZmlnLmN1c3RvbUZvcm1hdCA9IHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfRk9STUFUO1xuICAgIGNvbmZpZy5zdHlsZSA9ICdjdXN0b20nO1xuICB9XG4gIFxuICBpZiAocHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0lORElDQVRPUl9FTU9KSSkge1xuICAgIGNvbmZpZy5lbW9qaSA9IHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfRU1PSkk7XG4gIH1cbiAgXG4gIGlmIChwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX0JSQUNLRVRTKSB7XG4gICAgY29uc3QgYnJhY2tldFN0eWxlID0gcHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0lORElDQVRPUl9CUkFDS0VUUztcbiAgICBpZiAoWydzcXVhcmUnLCAncm91bmQnLCAnY3VybHknLCAnYW5nbGUnLCAnbm9uZSddLmluY2x1ZGVzKGJyYWNrZXRTdHlsZSkpIHtcbiAgICAgIGNvbmZpZy5icmFja2V0U3R5bGUgPSBicmFja2V0U3R5bGUgYXMgSW5kaWNhdG9yQ29uZmlnWydicmFja2V0U3R5bGUnXTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIFBhcnNlIHNob3cgZmxhZ3MgZnJvbSBlbnZpcm9ubWVudFxuICBpZiAocHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0lORElDQVRPUl9TSE9XX1ZFUlNJT04gIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbmZpZy5zaG93VmVyc2lvbiA9IHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfU0hPV19WRVJTSU9OID09PSAndHJ1ZSc7XG4gIH1cbiAgXG4gIGlmIChwcm9jZXNzLmVudi5ET0xMSE9VU0VfSU5ESUNBVE9SX1NIT1dfQVVUSE9SICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuc2hvd0F1dGhvciA9IHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfU0hPV19BVVRIT1IgPT09ICd0cnVlJztcbiAgfVxuICBcbiAgaWYgKHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfU0hPV19DQVRFR09SWSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLnNob3dDYXRlZ29yeSA9IHByb2Nlc3MuZW52LkRPTExIT1VTRV9JTkRJQ0FUT1JfU0hPV19DQVRFR09SWSA9PT0gJ3RydWUnO1xuICB9XG4gIFxuICByZXR1cm4gY29uZmlnO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGN1c3RvbSBmb3JtYXQgdGVtcGxhdGUgZm9yIHZhbGlkIHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDdXN0b21Gb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiB7IHZhbGlkOiBib29sZWFuOyBlcnJvcj86IHN0cmluZyB9IHtcbiAgY29uc3QgdmFsaWRQbGFjZWhvbGRlcnMgPSBbJ3tlbW9qaX0nLCAne25hbWV9JywgJ3t2ZXJzaW9ufScsICd7YXV0aG9yfScsICd7Y2F0ZWdvcnl9J107XG4gIC8vIExlbmd0aCBsaW1pdCBhZGRlZCB0byBwcmV2ZW50IFJlRG9TIGF0dGFja3NcbiAgY29uc3QgcGxhY2Vob2xkZXJSZWdleCA9IC9cXHtbXn1dezAsNTB9XFx9L2c7ICAvLyBMaW1pdGVkIHRvIDUwIGNoYXJzIGZvciBwbGFjZWhvbGRlciBuYW1lc1xuICBjb25zdCBmb3VuZFBsYWNlaG9sZGVycyA9IGZvcm1hdC5tYXRjaChwbGFjZWhvbGRlclJlZ2V4KSB8fCBbXTtcbiAgXG4gIGZvciAoY29uc3QgcGxhY2Vob2xkZXIgb2YgZm91bmRQbGFjZWhvbGRlcnMpIHtcbiAgICBpZiAoIXZhbGlkUGxhY2Vob2xkZXJzLmluY2x1ZGVzKHBsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogYEludmFsaWQgcGxhY2Vob2xkZXI6ICR7cGxhY2Vob2xkZXJ9LiBWYWxpZCBwbGFjZWhvbGRlcnMgYXJlOiAke3ZhbGlkUGxhY2Vob2xkZXJzLmpvaW4oJywgJyl9YFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG59XG5cbi8qKlxuICogRm9ybWF0IHRoZSBpbmRpY2F0b3IgYmFzZWQgb24gY29uZmlndXJhdGlvbiBhbmQgcGVyc29uYSBtZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SW5kaWNhdG9yKFxuICBjb25maWc6IEluZGljYXRvckNvbmZpZyxcbiAgbWV0YWRhdGE6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBhdXRob3I/OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIH1cbik6IHN0cmluZyB7XG4gIGlmICghY29uZmlnLmVuYWJsZWQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgXG4gIC8vIEdldCB0aGUgZm9ybWF0IHRlbXBsYXRlIGJhc2VkIG9uIHN0eWxlXG4gIGxldCB0ZW1wbGF0ZSA9IElORElDQVRPUl9TVFlMRVNbY29uZmlnLnN0eWxlXTtcbiAgaWYgKGNvbmZpZy5zdHlsZSA9PT0gJ2N1c3RvbScgJiYgY29uZmlnLmN1c3RvbUZvcm1hdCkge1xuICAgIC8vIFZhbGlkYXRlIGN1c3RvbSBmb3JtYXRcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdmFsaWRhdGVDdXN0b21Gb3JtYXQoY29uZmlnLmN1c3RvbUZvcm1hdCk7XG4gICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICAvLyBGYWxsIGJhY2sgdG8gZnVsbCBzdHlsZSBpZiBjdXN0b20gZm9ybWF0IGlzIGludmFsaWRcbiAgICAgIHRlbXBsYXRlID0gSU5ESUNBVE9SX1NUWUxFUy5mdWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ZW1wbGF0ZSA9IGNvbmZpZy5jdXN0b21Gb3JtYXQ7XG4gICAgfVxuICB9XG4gIFxuICAvLyBSZXBsYWNlIHBsYWNlaG9sZGVycyB3aXRoIHZhbHVlcyBvciBlbXB0eSBzdHJpbmdzXG4gIGxldCByZXN1bHQgPSB0ZW1wbGF0ZVxuICAgIC5yZXBsYWNlKCd7ZW1vaml9JywgY29uZmlnLnNob3dFbW9qaSA/IGNvbmZpZy5lbW9qaSA6ICcnKVxuICAgIC5yZXBsYWNlKCd7bmFtZX0nLCBjb25maWcuc2hvd05hbWUgPyBtZXRhZGF0YS5uYW1lIDogJycpXG4gICAgLnJlcGxhY2UoJ3t2ZXJzaW9ufScsIGNvbmZpZy5zaG93VmVyc2lvbiAmJiBtZXRhZGF0YS52ZXJzaW9uID8gbWV0YWRhdGEudmVyc2lvbiA6ICcnKVxuICAgIC5yZXBsYWNlKCd7YXV0aG9yfScsIGNvbmZpZy5zaG93QXV0aG9yICYmIG1ldGFkYXRhLmF1dGhvciA/IG1ldGFkYXRhLmF1dGhvciA6ICcnKVxuICAgIC5yZXBsYWNlKCd7Y2F0ZWdvcnl9JywgY29uZmlnLnNob3dDYXRlZ29yeSAmJiBtZXRhZGF0YS5jYXRlZ29yeSA/IG1ldGFkYXRhLmNhdGVnb3J5IDogJycpO1xuICBcbiAgLy8gQ2xlYW4gdXAgdGhlIGZvcm1hdCBzdHJpbmdcbiAgLy8gUmVtb3ZlIFwidlwiIGlmIG5vIHZlcnNpb24gZm9sbG93cyBpdFxuICBpZiAoIWNvbmZpZy5zaG93VmVyc2lvbiB8fCAhbWV0YWRhdGEudmVyc2lvbikge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9cXHN2KD89XFxzfF18XFwpfD58fXwkKS8sICcnKTtcbiAgfVxuICAvLyBSZW1vdmUgXCJieVwiIGlmIG5vIGF1dGhvciBmb2xsb3dzIGl0XG4gIGlmICghY29uZmlnLnNob3dBdXRob3IgfHwgIW1ldGFkYXRhLmF1dGhvcikge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9cXHNieSg/PVxcc3xdfFxcKXw+fH18JCkvLCAnJyk7XG4gIH1cbiAgLy8gQ2xlYW4gdXAgZXh0cmEgc3BhY2VzXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xuICBcbiAgLy8gQXBwbHkgYnJhY2tldHMgYmFzZWQgb24gdGhlIHRlbXBsYXRlIGZvcm1hdCAob25seSBpZiB0ZW1wbGF0ZSBkb2Vzbid0IGFscmVhZHkgaGF2ZSB0aGVtKVxuICBpZiAocmVzdWx0ICYmIGNvbmZpZy5zdHlsZSAhPT0gJ2N1c3RvbScpIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgdGVtcGxhdGUgYWxyZWFkeSBpbmNsdWRlcyBicmFja2V0c1xuICAgIGNvbnN0IHRlbXBsYXRlSGFzQnJhY2tldHMgPSB0ZW1wbGF0ZS5pbmNsdWRlcygnWycpIHx8IHRlbXBsYXRlLmluY2x1ZGVzKCddJykgfHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuaW5jbHVkZXMoJygnKSB8fCB0ZW1wbGF0ZS5pbmNsdWRlcygnKScpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuaW5jbHVkZXMoJ3snKSB8fCB0ZW1wbGF0ZS5pbmNsdWRlcygnfScpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuaW5jbHVkZXMoJzwnKSB8fCB0ZW1wbGF0ZS5pbmNsdWRlcygnPicpO1xuICAgIFxuICAgIGlmICghdGVtcGxhdGVIYXNCcmFja2V0cykge1xuICAgICAgY29uc3QgYnJhY2tldHMgPSBCUkFDS0VUU1tjb25maWcuYnJhY2tldFN0eWxlXTtcbiAgICAgIGlmIChicmFja2V0cy5vcGVuIHx8IGJyYWNrZXRzLmNsb3NlKSB7XG4gICAgICAgIHJlc3VsdCA9IGAke2JyYWNrZXRzLm9wZW59JHtyZXN1bHR9JHticmFja2V0cy5jbG9zZX1gO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gQWRkIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGNvbnRlbnRcbiAgaWYgKHJlc3VsdCkge1xuICAgIHJlc3VsdCArPSBjb25maWcuc2VwYXJhdG9yO1xuICB9XG4gIFxuICByZXR1cm4gcmVzdWx0O1xufSJdfQ==
@@ -1,10 +0,0 @@
1
- /**
2
- * Default personas that ship with DollhouseMCP
3
- */
4
- export declare const DEFAULT_PERSONAS: readonly ["business-consultant.md", "creative-writer.md", "debug-detective.md", "eli5-explainer.md", "excel-expert.md", "technical-analyst.md"];
5
- export type DefaultPersonaFilename = typeof DEFAULT_PERSONAS[number];
6
- /**
7
- * Check if a filename is a default persona
8
- */
9
- export declare function isDefaultPersona(filename: string): boolean;
10
- //# sourceMappingURL=defaultPersonas.d.ts.map