@dollhousemcp/mcp-server 1.4.4 → 1.4.5

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 (650) hide show
  1. package/dist/generated/version.d.ts +2 -2
  2. package/dist/generated/version.js +3 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +54 -7
  5. package/package.json +1 -1
  6. package/dist/collection/MarketplaceBrowser.d.ts +0 -24
  7. package/dist/collection/MarketplaceBrowser.d.ts.map +0 -1
  8. package/dist/collection/MarketplaceBrowser.js +0 -115
  9. package/dist/collection/MarketplaceSearch.d.ts +0 -18
  10. package/dist/collection/MarketplaceSearch.d.ts.map +0 -1
  11. package/dist/collection/MarketplaceSearch.js +0 -48
  12. package/dist/collection/PersonaInstaller.d.ts +0 -26
  13. package/dist/collection/PersonaInstaller.d.ts.map +0 -1
  14. package/dist/collection/PersonaInstaller.js +0 -103
  15. package/dist/elements/ensembles/Ensemble.d.ts +0 -144
  16. package/dist/elements/ensembles/Ensemble.d.ts.map +0 -1
  17. package/dist/elements/ensembles/Ensemble.js +0 -860
  18. package/dist/elements/ensembles/EnsembleManager.d.ts +0 -85
  19. package/dist/elements/ensembles/EnsembleManager.d.ts.map +0 -1
  20. package/dist/elements/ensembles/EnsembleManager.js +0 -378
  21. package/dist/elements/ensembles/constants.d.ts +0 -73
  22. package/dist/elements/ensembles/constants.d.ts.map +0 -1
  23. package/dist/elements/ensembles/constants.js +0 -92
  24. package/dist/elements/ensembles/index.d.ts +0 -8
  25. package/dist/elements/ensembles/index.d.ts.map +0 -1
  26. package/dist/elements/ensembles/index.js +0 -8
  27. package/dist/elements/ensembles/types.d.ts +0 -92
  28. package/dist/elements/ensembles/types.d.ts.map +0 -1
  29. package/dist/elements/ensembles/types.js +0 -8
  30. package/dist/elements/memories/Memory.d.ts +0 -110
  31. package/dist/elements/memories/Memory.d.ts.map +0 -1
  32. package/dist/elements/memories/Memory.js +0 -470
  33. package/dist/elements/memories/MemoryManager.d.ts +0 -86
  34. package/dist/elements/memories/MemoryManager.d.ts.map +0 -1
  35. package/dist/elements/memories/MemoryManager.js +0 -435
  36. package/dist/elements/memories/constants.d.ts +0 -42
  37. package/dist/elements/memories/constants.d.ts.map +0 -1
  38. package/dist/elements/memories/constants.js +0 -49
  39. package/dist/elements/memories/index.d.ts +0 -6
  40. package/dist/elements/memories/index.d.ts.map +0 -1
  41. package/dist/elements/memories/index.js +0 -6
  42. package/dist/marketplace/GitHubClient.d.ts +0 -22
  43. package/dist/marketplace/GitHubClient.d.ts.map +0 -1
  44. package/dist/marketplace/GitHubClient.js +0 -112
  45. package/dist/marketplace/MarketplaceBrowser.d.ts +0 -24
  46. package/dist/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  47. package/dist/marketplace/MarketplaceBrowser.js +0 -115
  48. package/dist/marketplace/MarketplaceSearch.d.ts +0 -18
  49. package/dist/marketplace/MarketplaceSearch.d.ts.map +0 -1
  50. package/dist/marketplace/MarketplaceSearch.js +0 -48
  51. package/dist/marketplace/PersonaDetails.d.ts +0 -22
  52. package/dist/marketplace/PersonaDetails.d.ts.map +0 -1
  53. package/dist/marketplace/PersonaDetails.js +0 -71
  54. package/dist/marketplace/PersonaInstaller.d.ts +0 -25
  55. package/dist/marketplace/PersonaInstaller.d.ts.map +0 -1
  56. package/dist/marketplace/PersonaInstaller.js +0 -100
  57. package/dist/marketplace/PersonaSubmitter.d.ts +0 -19
  58. package/dist/marketplace/PersonaSubmitter.d.ts.map +0 -1
  59. package/dist/marketplace/PersonaSubmitter.js +0 -57
  60. package/dist/marketplace/index.d.ts +0 -10
  61. package/dist/marketplace/index.d.ts.map +0 -1
  62. package/dist/marketplace/index.js +0 -10
  63. package/dist/server/tools/MarketplaceTools.d.ts +0 -10
  64. package/dist/server/tools/MarketplaceTools.d.ts.map +0 -1
  65. package/dist/server/tools/MarketplaceTools.js +0 -96
  66. package/dist/src/cache/APICache.d.ts +0 -23
  67. package/dist/src/cache/APICache.d.ts.map +0 -1
  68. package/dist/src/cache/APICache.js +0 -42
  69. package/dist/src/cache/index.d.ts +0 -5
  70. package/dist/src/cache/index.d.ts.map +0 -1
  71. package/dist/src/cache/index.js +0 -5
  72. package/dist/src/config/constants.d.ts +0 -25
  73. package/dist/src/config/constants.d.ts.map +0 -1
  74. package/dist/src/config/constants.js +0 -30
  75. package/dist/src/config/index.d.ts +0 -6
  76. package/dist/src/config/index.d.ts.map +0 -1
  77. package/dist/src/config/index.js +0 -6
  78. package/dist/src/config/indicator-config.d.ts +0 -107
  79. package/dist/src/config/indicator-config.d.ts.map +0 -1
  80. package/dist/src/config/indicator-config.js +0 -158
  81. package/dist/src/constants/defaultPersonas.d.ts +0 -10
  82. package/dist/src/constants/defaultPersonas.d.ts.map +0 -1
  83. package/dist/src/constants/defaultPersonas.js +0 -18
  84. package/dist/src/constants/limits.d.ts +0 -10
  85. package/dist/src/constants/limits.d.ts.map +0 -1
  86. package/dist/src/constants/limits.js +0 -13
  87. package/dist/src/errors/SecurityError.d.ts +0 -29
  88. package/dist/src/errors/SecurityError.d.ts.map +0 -1
  89. package/dist/src/errors/SecurityError.js +0 -47
  90. package/dist/src/errors/index.d.ts +0 -2
  91. package/dist/src/errors/index.d.ts.map +0 -1
  92. package/dist/src/errors/index.js +0 -2
  93. package/dist/src/index.barrel.d.ts +0 -21
  94. package/dist/src/index.barrel.d.ts.map +0 -1
  95. package/dist/src/index.barrel.js +0 -31
  96. package/dist/src/index.d.ts +0 -220
  97. package/dist/src/index.d.ts.map +0 -1
  98. package/dist/src/index.js +0 -1559
  99. package/dist/src/marketplace/GitHubClient.d.ts +0 -22
  100. package/dist/src/marketplace/GitHubClient.d.ts.map +0 -1
  101. package/dist/src/marketplace/GitHubClient.js +0 -112
  102. package/dist/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  103. package/dist/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  104. package/dist/src/marketplace/MarketplaceBrowser.js +0 -45
  105. package/dist/src/marketplace/MarketplaceSearch.d.ts +0 -18
  106. package/dist/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  107. package/dist/src/marketplace/MarketplaceSearch.js +0 -36
  108. package/dist/src/marketplace/PersonaDetails.d.ts +0 -22
  109. package/dist/src/marketplace/PersonaDetails.d.ts.map +0 -1
  110. package/dist/src/marketplace/PersonaDetails.js +0 -71
  111. package/dist/src/marketplace/PersonaInstaller.d.ts +0 -25
  112. package/dist/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  113. package/dist/src/marketplace/PersonaInstaller.js +0 -100
  114. package/dist/src/marketplace/PersonaSubmitter.d.ts +0 -19
  115. package/dist/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  116. package/dist/src/marketplace/PersonaSubmitter.js +0 -57
  117. package/dist/src/marketplace/index.d.ts +0 -10
  118. package/dist/src/marketplace/index.d.ts.map +0 -1
  119. package/dist/src/marketplace/index.js +0 -10
  120. package/dist/src/persona/PersonaLoader.d.ts +0 -33
  121. package/dist/src/persona/PersonaLoader.d.ts.map +0 -1
  122. package/dist/src/persona/PersonaLoader.js +0 -139
  123. package/dist/src/persona/PersonaManager.d.ts +0 -112
  124. package/dist/src/persona/PersonaManager.d.ts.map +0 -1
  125. package/dist/src/persona/PersonaManager.js +0 -341
  126. package/dist/src/persona/PersonaValidator.d.ts +0 -33
  127. package/dist/src/persona/PersonaValidator.d.ts.map +0 -1
  128. package/dist/src/persona/PersonaValidator.js +0 -157
  129. package/dist/src/persona/export-import/PersonaExporter.d.ts +0 -43
  130. package/dist/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  131. package/dist/src/persona/export-import/PersonaExporter.js +0 -99
  132. package/dist/src/persona/export-import/PersonaImporter.d.ts +0 -65
  133. package/dist/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  134. package/dist/src/persona/export-import/PersonaImporter.js +0 -313
  135. package/dist/src/persona/export-import/PersonaSharer.d.ts +0 -60
  136. package/dist/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  137. package/dist/src/persona/export-import/PersonaSharer.js +0 -363
  138. package/dist/src/persona/export-import/index.d.ts +0 -10
  139. package/dist/src/persona/export-import/index.d.ts.map +0 -1
  140. package/dist/src/persona/export-import/index.js +0 -7
  141. package/dist/src/persona/index.d.ts +0 -7
  142. package/dist/src/persona/index.d.ts.map +0 -1
  143. package/dist/src/persona/index.js +0 -7
  144. package/dist/src/security/InputValidator.d.ts +0 -69
  145. package/dist/src/security/InputValidator.d.ts.map +0 -1
  146. package/dist/src/security/InputValidator.js +0 -381
  147. package/dist/src/security/commandValidator.d.ts +0 -7
  148. package/dist/src/security/commandValidator.d.ts.map +0 -1
  149. package/dist/src/security/commandValidator.js +0 -77
  150. package/dist/src/security/constants.d.ts +0 -21
  151. package/dist/src/security/constants.d.ts.map +0 -1
  152. package/dist/src/security/constants.js +0 -23
  153. package/dist/src/security/contentValidator.d.ts +0 -47
  154. package/dist/src/security/contentValidator.d.ts.map +0 -1
  155. package/dist/src/security/contentValidator.js +0 -188
  156. package/dist/src/security/fileLockManager.d.ts +0 -70
  157. package/dist/src/security/fileLockManager.d.ts.map +0 -1
  158. package/dist/src/security/fileLockManager.js +0 -187
  159. package/dist/src/security/index.d.ts +0 -12
  160. package/dist/src/security/index.d.ts.map +0 -1
  161. package/dist/src/security/index.js +0 -14
  162. package/dist/src/security/pathValidator.d.ts +0 -9
  163. package/dist/src/security/pathValidator.d.ts.map +0 -1
  164. package/dist/src/security/pathValidator.js +0 -97
  165. package/dist/src/security/secureYamlParser.d.ts +0 -46
  166. package/dist/src/security/secureYamlParser.d.ts.map +0 -1
  167. package/dist/src/security/secureYamlParser.js +0 -203
  168. package/dist/src/security/securityMonitor.d.ts +0 -58
  169. package/dist/src/security/securityMonitor.d.ts.map +0 -1
  170. package/dist/src/security/securityMonitor.js +0 -108
  171. package/dist/src/security/tokenManager.d.ts +0 -59
  172. package/dist/src/security/tokenManager.d.ts.map +0 -1
  173. package/dist/src/security/tokenManager.js +0 -216
  174. package/dist/src/security/yamlValidator.d.ts +0 -20
  175. package/dist/src/security/yamlValidator.d.ts.map +0 -1
  176. package/dist/src/security/yamlValidator.js +0 -138
  177. package/dist/src/server/ServerSetup.d.ts +0 -31
  178. package/dist/src/server/ServerSetup.d.ts.map +0 -1
  179. package/dist/src/server/ServerSetup.js +0 -79
  180. package/dist/src/server/index.d.ts +0 -7
  181. package/dist/src/server/index.d.ts.map +0 -1
  182. package/dist/src/server/index.js +0 -7
  183. package/dist/src/server/tools/ConfigTools.d.ts +0 -10
  184. package/dist/src/server/tools/ConfigTools.d.ts.map +0 -1
  185. package/dist/src/server/tools/ConfigTools.js +0 -63
  186. package/dist/src/server/tools/MarketplaceTools.d.ts +0 -10
  187. package/dist/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  188. package/dist/src/server/tools/MarketplaceTools.js +0 -92
  189. package/dist/src/server/tools/PersonaTools.d.ts +0 -10
  190. package/dist/src/server/tools/PersonaTools.d.ts.map +0 -1
  191. package/dist/src/server/tools/PersonaTools.js +0 -257
  192. package/dist/src/server/tools/ToolRegistry.d.ts +0 -37
  193. package/dist/src/server/tools/ToolRegistry.d.ts.map +0 -1
  194. package/dist/src/server/tools/ToolRegistry.js +0 -40
  195. package/dist/src/server/tools/UpdateTools.d.ts +0 -10
  196. package/dist/src/server/tools/UpdateTools.d.ts.map +0 -1
  197. package/dist/src/server/tools/UpdateTools.js +0 -64
  198. package/dist/src/server/tools/UserTools.d.ts +0 -10
  199. package/dist/src/server/tools/UserTools.d.ts.map +0 -1
  200. package/dist/src/server/tools/UserTools.js +0 -51
  201. package/dist/src/server/tools/index.d.ts +0 -10
  202. package/dist/src/server/tools/index.d.ts.map +0 -1
  203. package/dist/src/server/tools/index.js +0 -10
  204. package/dist/src/server/types.d.ts +0 -34
  205. package/dist/src/server/types.d.ts.map +0 -1
  206. package/dist/src/server/types.js +0 -5
  207. package/dist/src/tools/debug.d.ts +0 -20
  208. package/dist/src/tools/debug.d.ts.map +0 -1
  209. package/dist/src/tools/debug.js +0 -37
  210. package/dist/src/types/cache.d.ts +0 -8
  211. package/dist/src/types/cache.d.ts.map +0 -1
  212. package/dist/src/types/cache.js +0 -5
  213. package/dist/src/types/index.d.ts +0 -8
  214. package/dist/src/types/index.d.ts.map +0 -1
  215. package/dist/src/types/index.js +0 -8
  216. package/dist/src/types/marketplace.d.ts +0 -23
  217. package/dist/src/types/marketplace.d.ts.map +0 -1
  218. package/dist/src/types/marketplace.js +0 -5
  219. package/dist/src/types/mcp.d.ts +0 -161
  220. package/dist/src/types/mcp.d.ts.map +0 -1
  221. package/dist/src/types/mcp.js +0 -75
  222. package/dist/src/types/persona.d.ts +0 -30
  223. package/dist/src/types/persona.d.ts.map +0 -1
  224. package/dist/src/types/persona.js +0 -5
  225. package/dist/src/update/BackupManager.d.ts +0 -46
  226. package/dist/src/update/BackupManager.d.ts.map +0 -1
  227. package/dist/src/update/BackupManager.js +0 -261
  228. package/dist/src/update/DependencyChecker.d.ts +0 -41
  229. package/dist/src/update/DependencyChecker.d.ts.map +0 -1
  230. package/dist/src/update/DependencyChecker.js +0 -132
  231. package/dist/src/update/RateLimiter.d.ts +0 -80
  232. package/dist/src/update/RateLimiter.d.ts.map +0 -1
  233. package/dist/src/update/RateLimiter.js +0 -172
  234. package/dist/src/update/SignatureVerifier.d.ts +0 -71
  235. package/dist/src/update/SignatureVerifier.d.ts.map +0 -1
  236. package/dist/src/update/SignatureVerifier.js +0 -214
  237. package/dist/src/update/UpdateChecker.d.ts +0 -127
  238. package/dist/src/update/UpdateChecker.d.ts.map +0 -1
  239. package/dist/src/update/UpdateChecker.js +0 -460
  240. package/dist/src/update/UpdateManager.d.ts +0 -41
  241. package/dist/src/update/UpdateManager.d.ts.map +0 -1
  242. package/dist/src/update/UpdateManager.js +0 -260
  243. package/dist/src/update/VersionManager.d.ts +0 -31
  244. package/dist/src/update/VersionManager.d.ts.map +0 -1
  245. package/dist/src/update/VersionManager.js +0 -134
  246. package/dist/src/update/index.d.ts +0 -9
  247. package/dist/src/update/index.d.ts.map +0 -1
  248. package/dist/src/update/index.js +0 -9
  249. package/dist/src/utils/filesystem.d.ts +0 -32
  250. package/dist/src/utils/filesystem.d.ts.map +0 -1
  251. package/dist/src/utils/filesystem.js +0 -73
  252. package/dist/src/utils/git.d.ts +0 -32
  253. package/dist/src/utils/git.d.ts.map +0 -1
  254. package/dist/src/utils/git.js +0 -65
  255. package/dist/src/utils/index.d.ts +0 -7
  256. package/dist/src/utils/index.d.ts.map +0 -1
  257. package/dist/src/utils/index.js +0 -7
  258. package/dist/src/utils/logger.d.ts +0 -45
  259. package/dist/src/utils/logger.d.ts.map +0 -1
  260. package/dist/src/utils/logger.js +0 -91
  261. package/dist/src/utils/version.d.ts +0 -25
  262. package/dist/src/utils/version.d.ts.map +0 -1
  263. package/dist/src/utils/version.js +0 -97
  264. package/dist/test/src/cache/APICache.d.ts +0 -23
  265. package/dist/test/src/cache/APICache.d.ts.map +0 -1
  266. package/dist/test/src/cache/APICache.js +0 -42
  267. package/dist/test/src/cache/index.d.ts +0 -5
  268. package/dist/test/src/cache/index.d.ts.map +0 -1
  269. package/dist/test/src/cache/index.js +0 -5
  270. package/dist/test/src/collection/CollectionBrowser.d.ts +0 -24
  271. package/dist/test/src/collection/CollectionBrowser.d.ts.map +0 -1
  272. package/dist/test/src/collection/CollectionBrowser.js +0 -115
  273. package/dist/test/src/collection/CollectionSearch.d.ts +0 -18
  274. package/dist/test/src/collection/CollectionSearch.d.ts.map +0 -1
  275. package/dist/test/src/collection/CollectionSearch.js +0 -48
  276. package/dist/test/src/collection/GitHubClient.d.ts +0 -22
  277. package/dist/test/src/collection/GitHubClient.d.ts.map +0 -1
  278. package/dist/test/src/collection/GitHubClient.js +0 -114
  279. package/dist/test/src/collection/PersonaDetails.d.ts +0 -22
  280. package/dist/test/src/collection/PersonaDetails.d.ts.map +0 -1
  281. package/dist/test/src/collection/PersonaDetails.js +0 -71
  282. package/dist/test/src/collection/PersonaInstaller.d.ts +0 -26
  283. package/dist/test/src/collection/PersonaInstaller.d.ts.map +0 -1
  284. package/dist/test/src/collection/PersonaInstaller.js +0 -103
  285. package/dist/test/src/collection/PersonaSubmitter.d.ts +0 -19
  286. package/dist/test/src/collection/PersonaSubmitter.d.ts.map +0 -1
  287. package/dist/test/src/collection/PersonaSubmitter.js +0 -57
  288. package/dist/test/src/collection/index.d.ts +0 -10
  289. package/dist/test/src/collection/index.d.ts.map +0 -1
  290. package/dist/test/src/collection/index.js +0 -10
  291. package/dist/test/src/config/constants.d.ts +0 -25
  292. package/dist/test/src/config/constants.d.ts.map +0 -1
  293. package/dist/test/src/config/constants.js +0 -30
  294. package/dist/test/src/config/index.d.ts +0 -6
  295. package/dist/test/src/config/index.d.ts.map +0 -1
  296. package/dist/test/src/config/index.js +0 -6
  297. package/dist/test/src/config/indicator-config.d.ts +0 -107
  298. package/dist/test/src/config/indicator-config.d.ts.map +0 -1
  299. package/dist/test/src/config/indicator-config.js +0 -158
  300. package/dist/test/src/constants/defaultPersonas.d.ts +0 -10
  301. package/dist/test/src/constants/defaultPersonas.d.ts.map +0 -1
  302. package/dist/test/src/constants/defaultPersonas.js +0 -18
  303. package/dist/test/src/constants/limits.d.ts +0 -10
  304. package/dist/test/src/constants/limits.d.ts.map +0 -1
  305. package/dist/test/src/constants/limits.js +0 -13
  306. package/dist/test/src/elements/BaseElement.d.ts +0 -81
  307. package/dist/test/src/elements/BaseElement.d.ts.map +0 -1
  308. package/dist/test/src/elements/BaseElement.js +0 -381
  309. package/dist/test/src/elements/FeedbackProcessor.d.ts +0 -57
  310. package/dist/test/src/elements/FeedbackProcessor.d.ts.map +0 -1
  311. package/dist/test/src/elements/FeedbackProcessor.js +0 -418
  312. package/dist/test/src/elements/agents/Agent.d.ts +0 -145
  313. package/dist/test/src/elements/agents/Agent.d.ts.map +0 -1
  314. package/dist/test/src/elements/agents/Agent.js +0 -848
  315. package/dist/test/src/elements/agents/AgentManager.d.ts +0 -125
  316. package/dist/test/src/elements/agents/AgentManager.d.ts.map +0 -1
  317. package/dist/test/src/elements/agents/AgentManager.js +0 -608
  318. package/dist/test/src/elements/agents/constants.d.ts +0 -42
  319. package/dist/test/src/elements/agents/constants.d.ts.map +0 -1
  320. package/dist/test/src/elements/agents/constants.js +0 -45
  321. package/dist/test/src/elements/agents/goalTemplates.d.ts +0 -44
  322. package/dist/test/src/elements/agents/goalTemplates.d.ts.map +0 -1
  323. package/dist/test/src/elements/agents/goalTemplates.js +0 -297
  324. package/dist/test/src/elements/agents/index.d.ts +0 -8
  325. package/dist/test/src/elements/agents/index.d.ts.map +0 -1
  326. package/dist/test/src/elements/agents/index.js +0 -8
  327. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts +0 -76
  328. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts.map +0 -1
  329. package/dist/test/src/elements/agents/ruleEngineConfig.js +0 -143
  330. package/dist/test/src/elements/agents/types.d.ts +0 -97
  331. package/dist/test/src/elements/agents/types.d.ts.map +0 -1
  332. package/dist/test/src/elements/agents/types.js +0 -5
  333. package/dist/test/src/elements/index.d.ts +0 -6
  334. package/dist/test/src/elements/index.d.ts.map +0 -1
  335. package/dist/test/src/elements/index.js +0 -6
  336. package/dist/test/src/elements/memories/Memory.d.ts +0 -110
  337. package/dist/test/src/elements/memories/Memory.d.ts.map +0 -1
  338. package/dist/test/src/elements/memories/Memory.js +0 -470
  339. package/dist/test/src/elements/memories/MemoryManager.d.ts +0 -86
  340. package/dist/test/src/elements/memories/MemoryManager.d.ts.map +0 -1
  341. package/dist/test/src/elements/memories/MemoryManager.js +0 -435
  342. package/dist/test/src/elements/memories/constants.d.ts +0 -42
  343. package/dist/test/src/elements/memories/constants.d.ts.map +0 -1
  344. package/dist/test/src/elements/memories/constants.js +0 -49
  345. package/dist/test/src/elements/memories/index.d.ts +0 -6
  346. package/dist/test/src/elements/memories/index.d.ts.map +0 -1
  347. package/dist/test/src/elements/memories/index.js +0 -6
  348. package/dist/test/src/elements/skills/Skill.d.ts +0 -109
  349. package/dist/test/src/elements/skills/Skill.d.ts.map +0 -1
  350. package/dist/test/src/elements/skills/Skill.js +0 -381
  351. package/dist/test/src/elements/templates/Template.d.ts +0 -138
  352. package/dist/test/src/elements/templates/Template.d.ts.map +0 -1
  353. package/dist/test/src/elements/templates/Template.js +0 -673
  354. package/dist/test/src/elements/templates/TemplateManager.d.ts +0 -104
  355. package/dist/test/src/elements/templates/TemplateManager.d.ts.map +0 -1
  356. package/dist/test/src/elements/templates/TemplateManager.js +0 -496
  357. package/dist/test/src/elements/templates/index.d.ts +0 -6
  358. package/dist/test/src/elements/templates/index.d.ts.map +0 -1
  359. package/dist/test/src/elements/templates/index.js +0 -6
  360. package/dist/test/src/errors/SecurityError.d.ts +0 -29
  361. package/dist/test/src/errors/SecurityError.d.ts.map +0 -1
  362. package/dist/test/src/errors/SecurityError.js +0 -47
  363. package/dist/test/src/errors/index.d.ts +0 -2
  364. package/dist/test/src/errors/index.d.ts.map +0 -1
  365. package/dist/test/src/errors/index.js +0 -2
  366. package/dist/test/src/index.barrel.d.ts +0 -21
  367. package/dist/test/src/index.barrel.d.ts.map +0 -1
  368. package/dist/test/src/index.barrel.js +0 -31
  369. package/dist/test/src/index.d.ts +0 -223
  370. package/dist/test/src/index.d.ts.map +0 -1
  371. package/dist/test/src/index.js +0 -1594
  372. package/dist/test/src/marketplace/GitHubClient.d.ts +0 -22
  373. package/dist/test/src/marketplace/GitHubClient.d.ts.map +0 -1
  374. package/dist/test/src/marketplace/GitHubClient.js +0 -112
  375. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  376. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  377. package/dist/test/src/marketplace/MarketplaceBrowser.js +0 -45
  378. package/dist/test/src/marketplace/MarketplaceSearch.d.ts +0 -18
  379. package/dist/test/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  380. package/dist/test/src/marketplace/MarketplaceSearch.js +0 -36
  381. package/dist/test/src/marketplace/PersonaDetails.d.ts +0 -22
  382. package/dist/test/src/marketplace/PersonaDetails.d.ts.map +0 -1
  383. package/dist/test/src/marketplace/PersonaDetails.js +0 -71
  384. package/dist/test/src/marketplace/PersonaInstaller.d.ts +0 -25
  385. package/dist/test/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  386. package/dist/test/src/marketplace/PersonaInstaller.js +0 -100
  387. package/dist/test/src/marketplace/PersonaSubmitter.d.ts +0 -19
  388. package/dist/test/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  389. package/dist/test/src/marketplace/PersonaSubmitter.js +0 -57
  390. package/dist/test/src/marketplace/index.d.ts +0 -10
  391. package/dist/test/src/marketplace/index.d.ts.map +0 -1
  392. package/dist/test/src/marketplace/index.js +0 -10
  393. package/dist/test/src/persona/PersonaElement.d.ts +0 -64
  394. package/dist/test/src/persona/PersonaElement.d.ts.map +0 -1
  395. package/dist/test/src/persona/PersonaElement.js +0 -223
  396. package/dist/test/src/persona/PersonaElementManager.d.ts +0 -97
  397. package/dist/test/src/persona/PersonaElementManager.d.ts.map +0 -1
  398. package/dist/test/src/persona/PersonaElementManager.js +0 -342
  399. package/dist/test/src/persona/PersonaLoader.d.ts +0 -34
  400. package/dist/test/src/persona/PersonaLoader.d.ts.map +0 -1
  401. package/dist/test/src/persona/PersonaLoader.js +0 -145
  402. package/dist/test/src/persona/PersonaManager.d.ts +0 -112
  403. package/dist/test/src/persona/PersonaManager.d.ts.map +0 -1
  404. package/dist/test/src/persona/PersonaManager.js +0 -341
  405. package/dist/test/src/persona/PersonaValidator.d.ts +0 -33
  406. package/dist/test/src/persona/PersonaValidator.d.ts.map +0 -1
  407. package/dist/test/src/persona/PersonaValidator.js +0 -157
  408. package/dist/test/src/persona/export-import/PersonaExporter.d.ts +0 -43
  409. package/dist/test/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  410. package/dist/test/src/persona/export-import/PersonaExporter.js +0 -99
  411. package/dist/test/src/persona/export-import/PersonaImporter.d.ts +0 -65
  412. package/dist/test/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  413. package/dist/test/src/persona/export-import/PersonaImporter.js +0 -315
  414. package/dist/test/src/persona/export-import/PersonaSharer.d.ts +0 -60
  415. package/dist/test/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  416. package/dist/test/src/persona/export-import/PersonaSharer.js +0 -502
  417. package/dist/test/src/persona/export-import/index.d.ts +0 -10
  418. package/dist/test/src/persona/export-import/index.d.ts.map +0 -1
  419. package/dist/test/src/persona/export-import/index.js +0 -7
  420. package/dist/test/src/persona/index.d.ts +0 -7
  421. package/dist/test/src/persona/index.d.ts.map +0 -1
  422. package/dist/test/src/persona/index.js +0 -7
  423. package/dist/test/src/portfolio/MigrationManager.d.ts +0 -44
  424. package/dist/test/src/portfolio/MigrationManager.d.ts.map +0 -1
  425. package/dist/test/src/portfolio/MigrationManager.js +0 -163
  426. package/dist/test/src/portfolio/PortfolioManager.d.ts +0 -54
  427. package/dist/test/src/portfolio/PortfolioManager.d.ts.map +0 -1
  428. package/dist/test/src/portfolio/PortfolioManager.js +0 -224
  429. package/dist/test/src/portfolio/types.d.ts +0 -18
  430. package/dist/test/src/portfolio/types.d.ts.map +0 -1
  431. package/dist/test/src/portfolio/types.js +0 -13
  432. package/dist/test/src/security/InputValidator.d.ts +0 -80
  433. package/dist/test/src/security/InputValidator.d.ts.map +0 -1
  434. package/dist/test/src/security/InputValidator.js +0 -436
  435. package/dist/test/src/security/audit/SecurityAuditor.d.ts +0 -44
  436. package/dist/test/src/security/audit/SecurityAuditor.d.ts.map +0 -1
  437. package/dist/test/src/security/audit/SecurityAuditor.js +0 -274
  438. package/dist/test/src/security/audit/config/suppressions.d.ts +0 -34
  439. package/dist/test/src/security/audit/config/suppressions.d.ts.map +0 -1
  440. package/dist/test/src/security/audit/config/suppressions.js +0 -575
  441. package/dist/test/src/security/audit/index.d.ts +0 -14
  442. package/dist/test/src/security/audit/index.d.ts.map +0 -1
  443. package/dist/test/src/security/audit/index.js +0 -15
  444. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts +0 -46
  445. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts.map +0 -1
  446. package/dist/test/src/security/audit/reporters/ConsoleReporter.js +0 -174
  447. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts +0 -13
  448. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts.map +0 -1
  449. package/dist/test/src/security/audit/reporters/JsonReporter.js +0 -25
  450. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts +0 -13
  451. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts.map +0 -1
  452. package/dist/test/src/security/audit/reporters/MarkdownReporter.js +0 -79
  453. package/dist/test/src/security/audit/rules/SecurityRules.d.ts +0 -20
  454. package/dist/test/src/security/audit/rules/SecurityRules.d.ts.map +0 -1
  455. package/dist/test/src/security/audit/rules/SecurityRules.js +0 -244
  456. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts +0 -47
  457. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts.map +0 -1
  458. package/dist/test/src/security/audit/scanners/CodeScanner.js +0 -174
  459. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts +0 -13
  460. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts.map +0 -1
  461. package/dist/test/src/security/audit/scanners/ConfigurationScanner.js +0 -22
  462. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts +0 -13
  463. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts.map +0 -1
  464. package/dist/test/src/security/audit/scanners/DependencyScanner.js +0 -22
  465. package/dist/test/src/security/audit/types.d.ts +0 -94
  466. package/dist/test/src/security/audit/types.d.ts.map +0 -1
  467. package/dist/test/src/security/audit/types.js +0 -6
  468. package/dist/test/src/security/commandValidator.d.ts +0 -7
  469. package/dist/test/src/security/commandValidator.d.ts.map +0 -1
  470. package/dist/test/src/security/commandValidator.js +0 -78
  471. package/dist/test/src/security/constants.d.ts +0 -24
  472. package/dist/test/src/security/constants.d.ts.map +0 -1
  473. package/dist/test/src/security/constants.js +0 -26
  474. package/dist/test/src/security/contentValidator.d.ts +0 -47
  475. package/dist/test/src/security/contentValidator.d.ts.map +0 -1
  476. package/dist/test/src/security/contentValidator.js +0 -301
  477. package/dist/test/src/security/errors.d.ts +0 -14
  478. package/dist/test/src/security/errors.d.ts.map +0 -1
  479. package/dist/test/src/security/errors.js +0 -28
  480. package/dist/test/src/security/fileLockManager.d.ts +0 -70
  481. package/dist/test/src/security/fileLockManager.d.ts.map +0 -1
  482. package/dist/test/src/security/fileLockManager.js +0 -187
  483. package/dist/test/src/security/index.d.ts +0 -12
  484. package/dist/test/src/security/index.d.ts.map +0 -1
  485. package/dist/test/src/security/index.js +0 -14
  486. package/dist/test/src/security/pathValidator.d.ts +0 -9
  487. package/dist/test/src/security/pathValidator.d.ts.map +0 -1
  488. package/dist/test/src/security/pathValidator.js +0 -98
  489. package/dist/test/src/security/regexValidator.d.ts +0 -59
  490. package/dist/test/src/security/regexValidator.d.ts.map +0 -1
  491. package/dist/test/src/security/regexValidator.js +0 -214
  492. package/dist/test/src/security/secureYamlParser.d.ts +0 -46
  493. package/dist/test/src/security/secureYamlParser.d.ts.map +0 -1
  494. package/dist/test/src/security/secureYamlParser.js +0 -203
  495. package/dist/test/src/security/securityMonitor.d.ts +0 -58
  496. package/dist/test/src/security/securityMonitor.d.ts.map +0 -1
  497. package/dist/test/src/security/securityMonitor.js +0 -108
  498. package/dist/test/src/security/tokenManager.d.ts +0 -85
  499. package/dist/test/src/security/tokenManager.d.ts.map +0 -1
  500. package/dist/test/src/security/tokenManager.js +0 -286
  501. package/dist/test/src/security/validators/unicodeValidator.d.ts +0 -97
  502. package/dist/test/src/security/validators/unicodeValidator.d.ts.map +0 -1
  503. package/dist/test/src/security/validators/unicodeValidator.js +0 -312
  504. package/dist/test/src/security/yamlValidator.d.ts +0 -21
  505. package/dist/test/src/security/yamlValidator.d.ts.map +0 -1
  506. package/dist/test/src/security/yamlValidator.js +0 -164
  507. package/dist/test/src/server/ServerSetup.d.ts +0 -35
  508. package/dist/test/src/server/ServerSetup.d.ts.map +0 -1
  509. package/dist/test/src/server/ServerSetup.js +0 -116
  510. package/dist/test/src/server/index.d.ts +0 -7
  511. package/dist/test/src/server/index.d.ts.map +0 -1
  512. package/dist/test/src/server/index.js +0 -7
  513. package/dist/test/src/server/startup.d.ts +0 -31
  514. package/dist/test/src/server/startup.d.ts.map +0 -1
  515. package/dist/test/src/server/startup.js +0 -67
  516. package/dist/test/src/server/tools/CollectionTools.d.ts +0 -10
  517. package/dist/test/src/server/tools/CollectionTools.d.ts.map +0 -1
  518. package/dist/test/src/server/tools/CollectionTools.js +0 -96
  519. package/dist/test/src/server/tools/ConfigTools.d.ts +0 -10
  520. package/dist/test/src/server/tools/ConfigTools.d.ts.map +0 -1
  521. package/dist/test/src/server/tools/ConfigTools.js +0 -63
  522. package/dist/test/src/server/tools/MarketplaceTools.d.ts +0 -10
  523. package/dist/test/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  524. package/dist/test/src/server/tools/MarketplaceTools.js +0 -92
  525. package/dist/test/src/server/tools/PersonaTools.d.ts +0 -10
  526. package/dist/test/src/server/tools/PersonaTools.d.ts.map +0 -1
  527. package/dist/test/src/server/tools/PersonaTools.js +0 -257
  528. package/dist/test/src/server/tools/ToolRegistry.d.ts +0 -37
  529. package/dist/test/src/server/tools/ToolRegistry.d.ts.map +0 -1
  530. package/dist/test/src/server/tools/ToolRegistry.js +0 -40
  531. package/dist/test/src/server/tools/UpdateTools.d.ts +0 -10
  532. package/dist/test/src/server/tools/UpdateTools.d.ts.map +0 -1
  533. package/dist/test/src/server/tools/UpdateTools.js +0 -64
  534. package/dist/test/src/server/tools/UserTools.d.ts +0 -10
  535. package/dist/test/src/server/tools/UserTools.d.ts.map +0 -1
  536. package/dist/test/src/server/tools/UserTools.js +0 -51
  537. package/dist/test/src/server/tools/index.d.ts +0 -10
  538. package/dist/test/src/server/tools/index.d.ts.map +0 -1
  539. package/dist/test/src/server/tools/index.js +0 -10
  540. package/dist/test/src/server/types.d.ts +0 -34
  541. package/dist/test/src/server/types.d.ts.map +0 -1
  542. package/dist/test/src/server/types.js +0 -5
  543. package/dist/test/src/tools/debug.d.ts +0 -20
  544. package/dist/test/src/tools/debug.d.ts.map +0 -1
  545. package/dist/test/src/tools/debug.js +0 -37
  546. package/dist/test/src/types/cache.d.ts +0 -8
  547. package/dist/test/src/types/cache.d.ts.map +0 -1
  548. package/dist/test/src/types/cache.js +0 -5
  549. package/dist/test/src/types/collection.d.ts +0 -23
  550. package/dist/test/src/types/collection.d.ts.map +0 -1
  551. package/dist/test/src/types/collection.js +0 -5
  552. package/dist/test/src/types/elements/IElement.d.ts +0 -123
  553. package/dist/test/src/types/elements/IElement.d.ts.map +0 -1
  554. package/dist/test/src/types/elements/IElement.js +0 -30
  555. package/dist/test/src/types/elements/IElementManager.d.ts +0 -65
  556. package/dist/test/src/types/elements/IElementManager.d.ts.map +0 -1
  557. package/dist/test/src/types/elements/IElementManager.js +0 -6
  558. package/dist/test/src/types/elements/IRatingManager.d.ts +0 -109
  559. package/dist/test/src/types/elements/IRatingManager.d.ts.map +0 -1
  560. package/dist/test/src/types/elements/IRatingManager.js +0 -6
  561. package/dist/test/src/types/elements/IReferenceResolver.d.ts +0 -52
  562. package/dist/test/src/types/elements/IReferenceResolver.d.ts.map +0 -1
  563. package/dist/test/src/types/elements/IReferenceResolver.js +0 -6
  564. package/dist/test/src/types/elements/RatingBreakdowns.d.ts +0 -49
  565. package/dist/test/src/types/elements/RatingBreakdowns.d.ts.map +0 -1
  566. package/dist/test/src/types/elements/RatingBreakdowns.js +0 -6
  567. package/dist/test/src/types/elements/index.d.ts +0 -9
  568. package/dist/test/src/types/elements/index.d.ts.map +0 -1
  569. package/dist/test/src/types/elements/index.js +0 -11
  570. package/dist/test/src/types/index.d.ts +0 -9
  571. package/dist/test/src/types/index.d.ts.map +0 -1
  572. package/dist/test/src/types/index.js +0 -9
  573. package/dist/test/src/types/marketplace.d.ts +0 -23
  574. package/dist/test/src/types/marketplace.d.ts.map +0 -1
  575. package/dist/test/src/types/marketplace.js +0 -5
  576. package/dist/test/src/types/mcp.d.ts +0 -84
  577. package/dist/test/src/types/mcp.d.ts.map +0 -1
  578. package/dist/test/src/types/mcp.js +0 -80
  579. package/dist/test/src/types/persona.d.ts +0 -30
  580. package/dist/test/src/types/persona.d.ts.map +0 -1
  581. package/dist/test/src/types/persona.js +0 -5
  582. package/dist/test/src/update/BackupManager.d.ts +0 -46
  583. package/dist/test/src/update/BackupManager.d.ts.map +0 -1
  584. package/dist/test/src/update/BackupManager.js +0 -261
  585. package/dist/test/src/update/DependencyChecker.d.ts +0 -41
  586. package/dist/test/src/update/DependencyChecker.d.ts.map +0 -1
  587. package/dist/test/src/update/DependencyChecker.js +0 -132
  588. package/dist/test/src/update/RateLimiter.d.ts +0 -80
  589. package/dist/test/src/update/RateLimiter.d.ts.map +0 -1
  590. package/dist/test/src/update/RateLimiter.js +0 -172
  591. package/dist/test/src/update/SignatureVerifier.d.ts +0 -71
  592. package/dist/test/src/update/SignatureVerifier.d.ts.map +0 -1
  593. package/dist/test/src/update/SignatureVerifier.js +0 -214
  594. package/dist/test/src/update/UpdateChecker.d.ts +0 -127
  595. package/dist/test/src/update/UpdateChecker.d.ts.map +0 -1
  596. package/dist/test/src/update/UpdateChecker.js +0 -469
  597. package/dist/test/src/update/UpdateManager.d.ts +0 -41
  598. package/dist/test/src/update/UpdateManager.d.ts.map +0 -1
  599. package/dist/test/src/update/UpdateManager.js +0 -260
  600. package/dist/test/src/update/VersionManager.d.ts +0 -31
  601. package/dist/test/src/update/VersionManager.d.ts.map +0 -1
  602. package/dist/test/src/update/VersionManager.js +0 -134
  603. package/dist/test/src/update/index.d.ts +0 -9
  604. package/dist/test/src/update/index.d.ts.map +0 -1
  605. package/dist/test/src/update/index.js +0 -9
  606. package/dist/test/src/utils/filesystem.d.ts +0 -29
  607. package/dist/test/src/utils/filesystem.d.ts.map +0 -1
  608. package/dist/test/src/utils/filesystem.js +0 -94
  609. package/dist/test/src/utils/git.d.ts +0 -32
  610. package/dist/test/src/utils/git.d.ts.map +0 -1
  611. package/dist/test/src/utils/git.js +0 -65
  612. package/dist/test/src/utils/index.d.ts +0 -7
  613. package/dist/test/src/utils/index.d.ts.map +0 -1
  614. package/dist/test/src/utils/index.js +0 -7
  615. package/dist/test/src/utils/logger.d.ts +0 -45
  616. package/dist/test/src/utils/logger.d.ts.map +0 -1
  617. package/dist/test/src/utils/logger.js +0 -91
  618. package/dist/test/src/utils/version.d.ts +0 -25
  619. package/dist/test/src/utils/version.d.ts.map +0 -1
  620. package/dist/test/src/utils/version.js +0 -97
  621. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts +0 -33
  622. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts.map +0 -1
  623. package/dist/test/test/__tests__/integration/helpers/file-utils.js +0 -83
  624. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts +0 -26
  625. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts.map +0 -1
  626. package/dist/test/test/__tests__/integration/helpers/test-fixtures.js +0 -95
  627. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts +0 -26
  628. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts.map +0 -1
  629. package/dist/test/test/__tests__/integration/helpers/test-server.js +0 -41
  630. package/dist/test/test/__tests__/integration/setup.d.ts +0 -8
  631. package/dist/test/test/__tests__/integration/setup.d.ts.map +0 -1
  632. package/dist/test/test/__tests__/integration/setup.js +0 -31
  633. package/dist/test/test/__tests__/integration/teardown.d.ts +0 -5
  634. package/dist/test/test/__tests__/integration/teardown.d.ts.map +0 -1
  635. package/dist/test/test/__tests__/integration/teardown.js +0 -23
  636. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts +0 -34
  637. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts.map +0 -1
  638. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.js +0 -224
  639. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts +0 -89
  640. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts.map +0 -1
  641. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.js +0 -543
  642. package/dist/test/test/__tests__/security/index.d.ts +0 -46
  643. package/dist/test/test/__tests__/security/index.d.ts.map +0 -1
  644. package/dist/test/test/__tests__/security/index.js +0 -98
  645. package/dist/test/test/__tests__/security/setup.d.ts +0 -3
  646. package/dist/test/test/__tests__/security/setup.d.ts.map +0 -1
  647. package/dist/test/test/__tests__/security/setup.js +0 -23
  648. package/dist/types/marketplace.d.ts +0 -23
  649. package/dist/types/marketplace.d.ts.map +0 -1
  650. package/dist/types/marketplace.js +0 -5
@@ -1,57 +0,0 @@
1
- /**
2
- * Submit personas to the marketplace
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 marketplace.*`;
35
- const githubIssueUrl = `https://github.com/DollhouseMCP/personas/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 marketplace 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYVN1Ym1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXJrZXRwbGFjZS9QZXJzb25hU3VibWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7T0FFRztJQUNILHVCQUF1QixDQUFDLE9BQWdCO1FBS3RDLE1BQU0sVUFBVSxHQUFHLDJCQUEyQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHOztZQUVWLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtjQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTO2dCQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxTQUFTO21CQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7Ozs7O0VBSzdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ3hHLElBQUksQ0FBQyxJQUFJLENBQUM7OztFQUdYLE9BQU8sQ0FBQyxPQUFPOzs7OztjQUtILE9BQU8sQ0FBQyxRQUFRO2VBQ2YsT0FBTyxDQUFDLFNBQVM7OzsrREFHK0IsQ0FBQztRQUU1RCxNQUFNLGNBQWMsR0FBRyw2REFBNkQsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUUzSixPQUFPO1lBQ0wsVUFBVTtZQUNWLFNBQVM7WUFDVCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUFDLE9BQWdCLEVBQUUsY0FBc0IsRUFBRSxtQkFBMkIsRUFBRTtRQUM5RixPQUFPLEdBQUcsZ0JBQWdCLHdDQUF3QztZQUNoRSxRQUFRLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSw2Q0FBNkM7WUFDMUUsbUJBQW1CO1lBQ25CLGlEQUFpRDtZQUNqRCxNQUFNLGNBQWMsTUFBTTtZQUMxQixvQ0FBb0M7WUFDcEMsK0JBQStCO1lBQy9CLG9EQUFvRDtZQUNwRCw4RUFBOEUsQ0FBQztJQUNuRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1Ym1pdCBwZXJzb25hcyB0byB0aGUgbWFya2V0cGxhY2VcbiAqL1xuXG5pbXBvcnQgeyBQZXJzb25hIH0gZnJvbSAnLi4vdHlwZXMvcGVyc29uYS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hU3VibWl0dGVyIHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIEdpdEh1YiBpc3N1ZSBmb3IgcGVyc29uYSBzdWJtaXNzaW9uXG4gICAqL1xuICBnZW5lcmF0ZVN1Ym1pc3Npb25Jc3N1ZShwZXJzb25hOiBQZXJzb25hKTogeyBcbiAgICBpc3N1ZVRpdGxlOiBzdHJpbmc7IFxuICAgIGlzc3VlQm9keTogc3RyaW5nOyBcbiAgICBnaXRodWJJc3N1ZVVybDogc3RyaW5nIFxuICB9IHtcbiAgICBjb25zdCBpc3N1ZVRpdGxlID0gYE5ldyBQZXJzb25hIFN1Ym1pc3Npb246ICR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfWA7XG4gICAgY29uc3QgaXNzdWVCb2R5ID0gYCMjIFBlcnNvbmEgU3VibWlzc2lvblxuXG4qKk5hbWU6KiogJHtwZXJzb25hLm1ldGFkYXRhLm5hbWV9XG4qKkF1dGhvcjoqKiAke3BlcnNvbmEubWV0YWRhdGEuYXV0aG9yIHx8ICdVbmtub3duJ31cbioqQ2F0ZWdvcnk6KiogJHtwZXJzb25hLm1ldGFkYXRhLmNhdGVnb3J5IHx8ICdHZW5lcmFsJ31cbioqRGVzY3JpcHRpb246KiogJHtwZXJzb25hLm1ldGFkYXRhLmRlc2NyaXB0aW9ufVxuXG4jIyMgUGVyc29uYSBDb250ZW50OlxuXFxgXFxgXFxgbWFya2Rvd25cbi0tLVxuJHtPYmplY3QuZW50cmllcyhwZXJzb25hLm1ldGFkYXRhKVxuICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7QXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YClcbiAgLmpvaW4oJ1xcbicpfVxuLS0tXG5cbiR7cGVyc29uYS5jb250ZW50fVxuXFxgXFxgXFxgXG5cbiMjIyBTdWJtaXNzaW9uIERldGFpbHM6XG4tIFN1Ym1pdHRlZCB2aWEgRG9sbGhvdXNlTUNQIGNsaWVudFxuLSBGaWxlbmFtZTogJHtwZXJzb25hLmZpbGVuYW1lfVxuLSBVbmlxdWUgSUQ6ICR7cGVyc29uYS51bmlxdWVfaWR9XG5cbi0tLVxuKlBsZWFzZSByZXZpZXcgdGhpcyBwZXJzb25hIGZvciBpbmNsdXNpb24gaW4gdGhlIG1hcmtldHBsYWNlLipgO1xuICAgIFxuICAgIGNvbnN0IGdpdGh1Yklzc3VlVXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS9Eb2xsaG91c2VNQ1AvcGVyc29uYXMvaXNzdWVzL25ldz90aXRsZT0ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZVRpdGxlKX0mYm9keT0ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZUJvZHkpfWA7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIGlzc3VlVGl0bGUsXG4gICAgICBpc3N1ZUJvZHksXG4gICAgICBnaXRodWJJc3N1ZVVybFxuICAgIH07XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBGb3JtYXQgc3VibWlzc2lvbiByZXNwb25zZVxuICAgKi9cbiAgZm9ybWF0U3VibWlzc2lvblJlc3BvbnNlKHBlcnNvbmE6IFBlcnNvbmEsIGdpdGh1Yklzc3VlVXJsOiBzdHJpbmcsIHBlcnNvbmFJbmRpY2F0b3I6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cGVyc29uYUluZGljYXRvcn3wn5OkICoqUGVyc29uYSBTdWJtaXNzaW9uIFByZXBhcmVkKipcXG5cXG5gICtcbiAgICAgIGDwn46tICoqJHtwZXJzb25hLm1ldGFkYXRhLm5hbWV9KiogaXMgcmVhZHkgZm9yIG1hcmtldHBsYWNlIHN1Ym1pc3Npb24hXFxuXFxuYCArXG4gICAgICBgKipOZXh0IFN0ZXBzOioqXFxuYCArXG4gICAgICBgMS4gQ2xpY2sgdGhpcyBsaW5rIHRvIGNyZWF0ZSBhIEdpdEh1YiBpc3N1ZTogXFxuYCArXG4gICAgICBgICAgJHtnaXRodWJJc3N1ZVVybH1cXG5cXG5gICtcbiAgICAgIGAyLiBSZXZpZXcgdGhlIHByZS1maWxsZWQgY29udGVudFxcbmAgK1xuICAgICAgYDMuIENsaWNrIFwiU3VibWl0IG5ldyBpc3N1ZVwiXFxuYCArXG4gICAgICBgNC4gVGhlIG1haW50YWluZXJzIHdpbGwgcmV2aWV3IHlvdXIgc3VibWlzc2lvblxcblxcbmAgK1xuICAgICAgYOKtkCAqKlRpcDoqKiBZb3UgY2FuIGFsc28gc3VibWl0IHZpYSBwdWxsIHJlcXVlc3QgaWYgeW91J3JlIGZhbWlsaWFyIHdpdGggR2l0IWA7XG4gIH1cbn0iXX0=
@@ -1,10 +0,0 @@
1
- /**
2
- * Marketplace module exports
3
- */
4
- export * from './GitHubClient.js';
5
- export * from './MarketplaceBrowser.js';
6
- export * from './MarketplaceSearch.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/marketplace/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Marketplace module exports
3
- */
4
- export * from './GitHubClient.js';
5
- export * from './MarketplaceBrowser.js';
6
- export * from './MarketplaceSearch.js';
7
- export * from './PersonaDetails.js';
8
- export * from './PersonaInstaller.js';
9
- export * from './PersonaSubmitter.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWFya2V0cGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFya2V0cGxhY2UgbW9kdWxlIGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0dpdEh1YkNsaWVudC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL01hcmtldHBsYWNlQnJvd3Nlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL01hcmtldHBsYWNlU2VhcmNoLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vUGVyc29uYURldGFpbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9QZXJzb25hSW5zdGFsbGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vUGVyc29uYVN1Ym1pdHRlci5qcyc7Il19
@@ -1,64 +0,0 @@
1
- /**
2
- * Persona element class implementing IElement interface.
3
- * Represents a behavioral profile that defines AI personality and interaction style.
4
- */
5
- import { BaseElement } from '../elements/BaseElement.js';
6
- import { IElement, IElementMetadata, ElementValidationResult } from '../types/elements/index.js';
7
- import { PersonaMetadata } from '../types/persona.js';
8
- export interface PersonaElementMetadata extends IElementMetadata {
9
- triggers?: string[];
10
- category?: string;
11
- age_rating?: 'all' | '13+' | '18+';
12
- content_flags?: string[];
13
- ai_generated?: boolean;
14
- generation_method?: 'human' | 'ChatGPT' | 'Claude' | 'hybrid';
15
- price?: string;
16
- revenue_split?: string;
17
- license?: string;
18
- created_date?: string;
19
- }
20
- export declare class PersonaElement extends BaseElement implements IElement {
21
- content: string;
22
- filename: string;
23
- metadata: PersonaElementMetadata;
24
- constructor(metadata: Partial<PersonaElementMetadata>, content?: string, filename?: string);
25
- /**
26
- * Create PersonaElement from legacy Persona interface
27
- */
28
- static fromLegacy(legacyPersona: {
29
- metadata: PersonaMetadata;
30
- content: string;
31
- filename: string;
32
- unique_id: string;
33
- }): PersonaElement;
34
- /**
35
- * Convert to legacy Persona interface for backward compatibility
36
- */
37
- toLegacy(): {
38
- metadata: PersonaMetadata;
39
- content: string;
40
- filename: string;
41
- unique_id: string;
42
- };
43
- /**
44
- * Persona-specific validation
45
- */
46
- validate(): ElementValidationResult;
47
- /**
48
- * Serialize persona to markdown format
49
- */
50
- serialize(): string;
51
- /**
52
- * Deserialize persona from markdown format
53
- */
54
- deserialize(data: string): void;
55
- /**
56
- * Persona activation lifecycle
57
- */
58
- activate(): Promise<void>;
59
- /**
60
- * Persona deactivation lifecycle
61
- */
62
- deactivate(): Promise<void>;
63
- }
64
- //# sourceMappingURL=PersonaElement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersonaElement.d.ts","sourceRoot":"","sources":["../../../../src/persona/PersonaElement.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEjG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,cAAe,SAAQ,WAAY,YAAW,QAAQ;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACT,QAAQ,EAAE,sBAAsB,CAAC;gBAEpC,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,OAAO,GAAE,MAAW,EAAE,QAAQ,GAAE,MAAW;IAoBlG;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IA0BrI;;OAEG;IACH,QAAQ,IAAI;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IA2B/F;;OAEG;IACa,QAAQ,IAAI,uBAAuB;IAmDnD;;OAEG;IACa,SAAS,IAAI,MAAM;IAqCnC;;OAEG;IACa,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAyC/C;;OAEG;IACmB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/C;;OAEG;IACmB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAQlD"}
@@ -1,223 +0,0 @@
1
- /**
2
- * Persona element class implementing IElement interface.
3
- * Represents a behavioral profile that defines AI personality and interaction style.
4
- */
5
- import { BaseElement } from '../elements/BaseElement.js';
6
- import { ElementType } from '../portfolio/types.js';
7
- import { logger } from '../utils/logger.js';
8
- import matter from 'gray-matter';
9
- export class PersonaElement extends BaseElement {
10
- content;
11
- filename;
12
- constructor(metadata, content = '', filename = '') {
13
- super(ElementType.PERSONA, metadata);
14
- this.content = content;
15
- this.filename = filename;
16
- // Ensure persona-specific metadata
17
- this.metadata = {
18
- ...this.metadata,
19
- triggers: metadata.triggers || [],
20
- category: metadata.category || 'personal',
21
- age_rating: metadata.age_rating || 'all',
22
- content_flags: metadata.content_flags || [],
23
- ai_generated: metadata.ai_generated || false,
24
- generation_method: metadata.generation_method || 'human',
25
- price: metadata.price || 'free',
26
- license: metadata.license || 'CC-BY-SA-4.0',
27
- created_date: metadata.created_date || new Date().toISOString().split('T')[0]
28
- };
29
- }
30
- /**
31
- * Create PersonaElement from legacy Persona interface
32
- */
33
- static fromLegacy(legacyPersona) {
34
- const metadata = {
35
- name: legacyPersona.metadata.name,
36
- description: legacyPersona.metadata.description,
37
- author: legacyPersona.metadata.author,
38
- version: legacyPersona.metadata.version,
39
- triggers: legacyPersona.metadata.triggers,
40
- category: legacyPersona.metadata.category,
41
- age_rating: legacyPersona.metadata.age_rating,
42
- content_flags: legacyPersona.metadata.content_flags,
43
- ai_generated: legacyPersona.metadata.ai_generated,
44
- generation_method: legacyPersona.metadata.generation_method,
45
- price: legacyPersona.metadata.price,
46
- revenue_split: legacyPersona.metadata.revenue_split,
47
- license: legacyPersona.metadata.license,
48
- created_date: legacyPersona.metadata.created_date
49
- };
50
- const persona = new PersonaElement(metadata, legacyPersona.content, legacyPersona.filename);
51
- // Preserve the legacy unique_id as the element id
52
- persona.id = legacyPersona.unique_id;
53
- return persona;
54
- }
55
- /**
56
- * Convert to legacy Persona interface for backward compatibility
57
- */
58
- toLegacy() {
59
- const legacyMetadata = {
60
- name: this.metadata.name,
61
- description: this.metadata.description,
62
- unique_id: this.id,
63
- author: this.metadata.author,
64
- triggers: this.metadata.triggers,
65
- version: this.metadata.version,
66
- category: this.metadata.category,
67
- age_rating: this.metadata.age_rating,
68
- content_flags: this.metadata.content_flags,
69
- ai_generated: this.metadata.ai_generated,
70
- generation_method: this.metadata.generation_method,
71
- price: this.metadata.price,
72
- revenue_split: this.metadata.revenue_split,
73
- license: this.metadata.license,
74
- created_date: this.metadata.created_date
75
- };
76
- return {
77
- metadata: legacyMetadata,
78
- content: this.content,
79
- filename: this.filename,
80
- unique_id: this.id
81
- };
82
- }
83
- /**
84
- * Persona-specific validation
85
- */
86
- validate() {
87
- const result = super.validate();
88
- // Initialize arrays if not present
89
- if (!result.errors)
90
- result.errors = [];
91
- if (!result.warnings)
92
- result.warnings = [];
93
- // Add persona-specific validation rules
94
- // Content should not be empty
95
- if (!this.content || this.content.trim().length === 0) {
96
- result.errors.push({
97
- field: 'content',
98
- message: 'Persona content cannot be empty',
99
- code: 'EMPTY_CONTENT'
100
- });
101
- }
102
- // Content should be reasonable length
103
- if (this.content && this.content.length > 10000) {
104
- result.warnings.push({
105
- field: 'content',
106
- message: 'Persona content is very long, consider breaking it down',
107
- severity: 'medium'
108
- });
109
- }
110
- // Triggers should be reasonable
111
- if (this.metadata.triggers && this.metadata.triggers.length > 10) {
112
- result.warnings.push({
113
- field: 'triggers',
114
- message: 'Many triggers may cause activation conflicts',
115
- severity: 'medium'
116
- });
117
- }
118
- // Check for adult content flags
119
- if (this.metadata.age_rating === '18+' && !this.metadata.content_flags?.includes('adult')) {
120
- result.warnings.push({
121
- field: 'content_flags',
122
- message: '18+ content should include "adult" in content_flags',
123
- severity: 'low'
124
- });
125
- }
126
- // Update the valid flag based on final errors
127
- result.valid = (result.errors?.length || 0) === 0;
128
- return result;
129
- }
130
- /**
131
- * Serialize persona to markdown format
132
- */
133
- serialize() {
134
- const frontmatter = {
135
- name: this.metadata.name,
136
- description: this.metadata.description,
137
- unique_id: this.id,
138
- author: this.metadata.author,
139
- triggers: this.metadata.triggers,
140
- version: this.metadata.version,
141
- category: this.metadata.category,
142
- age_rating: this.metadata.age_rating,
143
- content_flags: this.metadata.content_flags,
144
- ai_generated: this.metadata.ai_generated,
145
- generation_method: this.metadata.generation_method,
146
- price: this.metadata.price,
147
- revenue_split: this.metadata.revenue_split,
148
- license: this.metadata.license,
149
- created_date: this.metadata.created_date
150
- };
151
- // Remove undefined values
152
- const cleanFrontmatter = Object.fromEntries(Object.entries(frontmatter).filter(([_, value]) => value !== undefined));
153
- const yamlFrontmatter = Object.entries(cleanFrontmatter)
154
- .map(([key, value]) => {
155
- if (Array.isArray(value)) {
156
- if (value.length === 0)
157
- return `${key}: []`;
158
- return `${key}:\n${value.map(item => ` - ${item}`).join('\n')}`;
159
- }
160
- return `${key}: ${JSON.stringify(value)}`;
161
- })
162
- .join('\n');
163
- return `---\n${yamlFrontmatter}\n---\n\n${this.content}`;
164
- }
165
- /**
166
- * Deserialize persona from markdown format
167
- */
168
- deserialize(data) {
169
- try {
170
- const parsed = matter(data);
171
- const metadata = parsed.data;
172
- // Update metadata
173
- this.metadata = {
174
- ...this.metadata,
175
- name: metadata.name,
176
- description: metadata.description,
177
- author: metadata.author,
178
- version: metadata.version,
179
- triggers: metadata.triggers,
180
- category: metadata.category,
181
- age_rating: metadata.age_rating,
182
- content_flags: metadata.content_flags,
183
- ai_generated: metadata.ai_generated,
184
- generation_method: metadata.generation_method,
185
- price: metadata.price,
186
- revenue_split: metadata.revenue_split,
187
- license: metadata.license,
188
- created_date: metadata.created_date
189
- };
190
- // Update content (trim to remove leading/trailing whitespace)
191
- this.content = parsed.content.trim();
192
- // Update ID if provided
193
- if (metadata.unique_id) {
194
- this.id = metadata.unique_id;
195
- }
196
- this._isDirty = true;
197
- logger.debug(`Deserialized persona: ${this.metadata.name}`);
198
- }
199
- catch (error) {
200
- logger.error(`Failed to deserialize persona: ${error}`);
201
- throw new Error(`Deserialization failed: ${error}`);
202
- }
203
- }
204
- /**
205
- * Persona activation lifecycle
206
- */
207
- async activate() {
208
- logger.info(`Activating persona: ${this.metadata.name} (${this.id})`);
209
- // Personas don't need special activation logic currently
210
- // But this provides a hook for future enhancements
211
- await super.activate?.();
212
- }
213
- /**
214
- * Persona deactivation lifecycle
215
- */
216
- async deactivate() {
217
- logger.info(`Deactivating persona: ${this.metadata.name} (${this.id})`);
218
- // Personas don't need special deactivation logic currently
219
- // But this provides a hook for future enhancements
220
- await super.deactivate?.();
221
- }
222
- }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGVyc29uYS9QZXJzb25hRWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFnQmpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQUN0QyxPQUFPLENBQVM7SUFDaEIsUUFBUSxDQUFTO0lBR3hCLFlBQVksUUFBeUMsRUFBRSxVQUFrQixFQUFFLEVBQUUsV0FBbUIsRUFBRTtRQUNoRyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV6QixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFDaEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRTtZQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxVQUFVO1lBQ3pDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLEtBQUs7WUFDeEMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhLElBQUksRUFBRTtZQUMzQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQzVDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxPQUFPO1lBQ3hELEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLE1BQU07WUFD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QUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxLQUFLLENBQUMsUUFBUTtRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0RSx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ2EsS0FBSyxDQUFDLFVBQVU7UUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEUsMkRBQTJEO1FBQzNELG1EQUFtRDtRQUVuRCxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGVyc29uYSBlbGVtZW50IGNsYXNzIGltcGxlbWVudGluZyBJRWxlbWVudCBpbnRlcmZhY2UuXG4gKiBSZXByZXNlbnRzIGEgYmVoYXZpb3JhbCBwcm9maWxlIHRoYXQgZGVmaW5lcyBBSSBwZXJzb25hbGl0eSBhbmQgaW50ZXJhY3Rpb24gc3R5bGUuXG4gKi9cblxuaW1wb3J0IHsgQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9lbGVtZW50cy9CYXNlRWxlbWVudC5qcyc7XG5pbXBvcnQgeyBJRWxlbWVudCwgSUVsZW1lbnRNZXRhZGF0YSwgRWxlbWVudFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuLi90eXBlcy9lbGVtZW50cy9pbmRleC5qcyc7XG5pbXBvcnQgeyBFbGVtZW50VHlwZSB9IGZyb20gJy4uL3BvcnRmb2xpby90eXBlcy5qcyc7XG5pbXBvcnQgeyBQZXJzb25hTWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcy9wZXJzb25hLmpzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgbWF0dGVyIGZyb20gJ2dyYXktbWF0dGVyJztcblxuLy8gRXh0ZW5kIElFbGVtZW50TWV0YWRhdGEgd2l0aCBwZXJzb25hLXNwZWNpZmljIGZpZWxkc1xuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hRWxlbWVudE1ldGFkYXRhIGV4dGVuZHMgSUVsZW1lbnRNZXRhZGF0YSB7XG4gIHRyaWdnZXJzPzogc3RyaW5nW107XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBhZ2VfcmF0aW5nPzogJ2FsbCcgfCAnMTMrJyB8ICcxOCsnO1xuICBjb250ZW50X2ZsYWdzPzogc3RyaW5nW107XG4gIGFpX2dlbmVyYXRlZD86IGJvb2xlYW47XG4gIGdlbmVyYXRpb25fbWV0aG9kPzogJ2h1bWFuJyB8ICdDaGF0R1BUJyB8ICdDbGF1ZGUnIHwgJ2h5YnJpZCc7XG4gIHByaWNlPzogc3RyaW5nO1xuICByZXZlbnVlX3NwbGl0Pzogc3RyaW5nO1xuICBsaWNlbnNlPzogc3RyaW5nO1xuICBjcmVhdGVkX2RhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hRWxlbWVudCBleHRlbmRzIEJhc2VFbGVtZW50IGltcGxlbWVudHMgSUVsZW1lbnQge1xuICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuICBwdWJsaWMgZmlsZW5hbWU6IHN0cmluZztcbiAgcHVibGljIGRlY2xhcmUgbWV0YWRhdGE6IFBlcnNvbmFFbGVtZW50TWV0YWRhdGE7XG5cbiAgY29uc3RydWN0b3IobWV0YWRhdGE6IFBhcnRpYWw8UGVyc29uYUVsZW1lbnRNZXRhZGF0YT4sIGNvbnRlbnQ6IHN0cmluZyA9ICcnLCBmaWxlbmFtZTogc3RyaW5nID0gJycpIHtcbiAgICBzdXBlcihFbGVtZW50VHlwZS5QRVJTT05BLCBtZXRhZGF0YSk7XG4gICAgdGhpcy5jb250ZW50ID0gY29udGVudDtcbiAgICB0aGlzLmZpbGVuYW1lID0gZmlsZW5hbWU7XG4gICAgXG4gICAgLy8gRW5zdXJlIHBlcnNvbmEtc3BlY2lmaWMgbWV0YWRhdGFcbiAgICB0aGlzLm1ldGFkYXRhID0ge1xuICAgICAgLi4udGhpcy5tZXRhZGF0YSxcbiAgICAgIHRyaWdnZXJzOiBtZXRhZGF0YS50cmlnZ2VycyB8fCBbXSxcbiAgICAgIGNhdGVnb3J5OiBtZXRhZGF0YS5jYXRlZ29yeSB8fCAncGVyc29uYWwnLFxuICAgICAgYWdlX3JhdGluZzogbWV0YWRhdGEuYWdlX3JhdGluZyB8fCAnYWxsJyxcbiAgICAgIGNvbnRlbnRfZmxhZ3M6IG1ldGFkYXRhLmNvbnRlbnRfZmxhZ3MgfHwgW10sXG4gICAgICBhaV9nZW5lcmF0ZWQ6IG1ldGFkYXRhLmFpX2dlbmVyYXRlZCB8fCBmYWxzZSxcbiAgICAgIGdlbmVyYXRpb25fbWV0aG9kOiBtZXRhZGF0YS5nZW5lcmF0aW9uX21ldGhvZCB8fCAnaHVtYW4nLFxuICAgICAgcHJpY2U6IG1ldGFkYXRhLnByaWNlIHx8ICdmcmVlJyxcbiAgICAgIGxpY2Vuc2U6IG1ldGFkYXRhLmxpY2Vuc2UgfHwgJ0NDLUJZLVNBLTQuMCcsXG4gICAgICBjcmVhdGVkX2RhdGU6IG1ldGFkYXRhLmNyZWF0ZWRfZGF0ZSB8fCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIFBlcnNvbmFFbGVtZW50IGZyb20gbGVnYWN5IFBlcnNvbmEgaW50ZXJmYWNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUxlZ2FjeShsZWdhY3lQZXJzb25hOiB7IG1ldGFkYXRhOiBQZXJzb25hTWV0YWRhdGE7IGNvbnRlbnQ6IHN0cmluZzsgZmlsZW5hbWU6IHN0cmluZzsgdW5pcXVlX2lkOiBzdHJpbmcgfSk6IFBlcnNvbmFFbGVtZW50IHtcbiAgICBjb25zdCBtZXRhZGF0YTogUGFydGlhbDxQZXJzb25hRWxlbWVudE1ldGFkYXRhPiA9IHtcbiAgICAgIG5hbWU6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBsZWdhY3lQZXJzb25hLm1ldGFkYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgYXV0aG9yOiBsZWdhY3lQZXJzb25hLm1ldGFkYXRhLmF1dGhvcixcbiAgICAgIHZlcnNpb246IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEudmVyc2lvbixcbiAgICAgIHRyaWdnZXJzOiBsZWdhY3lQZXJzb25hLm1ldGFkYXRhLnRyaWdnZXJzLFxuICAgICAgY2F0ZWdvcnk6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEuY2F0ZWdvcnksXG4gICAgICBhZ2VfcmF0aW5nOiBsZWdhY3lQZXJzb25hLm1ldGFkYXRhLmFnZV9yYXRpbmcsXG4gICAgICBjb250ZW50X2ZsYWdzOiBsZWdhY3lQZXJzb25hLm1ldGFkYXRhLmNvbnRlbnRfZmxhZ3MsXG4gICAgICBhaV9nZW5lcmF0ZWQ6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEuYWlfZ2VuZXJhdGVkLFxuICAgICAgZ2VuZXJhdGlvbl9tZXRob2Q6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEuZ2VuZXJhdGlvbl9tZXRob2QsXG4gICAgICBwcmljZTogbGVnYWN5UGVyc29uYS5tZXRhZGF0YS5wcmljZSxcbiAgICAgIHJldmVudWVfc3BsaXQ6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEucmV2ZW51ZV9zcGxpdCxcbiAgICAgIGxpY2Vuc2U6IGxlZ2FjeVBlcnNvbmEubWV0YWRhdGEubGljZW5zZSxcbiAgICAgIGNyZWF0ZWRfZGF0ZTogbGVnYWN5UGVyc29uYS5tZXRhZGF0YS5jcmVhdGVkX2RhdGVcbiAgICB9O1xuXG4gICAgY29uc3QgcGVyc29uYSA9IG5ldyBQZXJzb25hRWxlbWVudChtZXRhZGF0YSwgbGVnYWN5UGVyc29uYS5jb250ZW50LCBsZWdhY3lQZXJzb25hLmZpbGVuYW1lKTtcbiAgICBcbiAgICAvLyBQcmVzZXJ2ZSB0aGUgbGVnYWN5IHVuaXF1ZV9pZCBhcyB0aGUgZWxlbWVudCBpZFxuICAgIHBlcnNvbmEuaWQgPSBsZWdhY3lQZXJzb25hLnVuaXF1ZV9pZDtcbiAgICBcbiAgICByZXR1cm4gcGVyc29uYTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRvIGxlZ2FjeSBQZXJzb25hIGludGVyZmFjZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgKi9cbiAgdG9MZWdhY3koKTogeyBtZXRhZGF0YTogUGVyc29uYU1ldGFkYXRhOyBjb250ZW50OiBzdHJpbmc7IGZpbGVuYW1lOiBzdHJpbmc7IHVuaXF1ZV9pZDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGxlZ2FjeU1ldGFkYXRhOiBQZXJzb25hTWV0YWRhdGEgPSB7XG4gICAgICBuYW1lOiB0aGlzLm1ldGFkYXRhLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5tZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICAgIHVuaXF1ZV9pZDogdGhpcy5pZCxcbiAgICAgIGF1dGhvcjogdGhpcy5tZXRhZGF0YS5hdXRob3IsXG4gICAgICB0cmlnZ2VyczogdGhpcy5tZXRhZGF0YS50cmlnZ2VycyxcbiAgICAgIHZlcnNpb246IHRoaXMubWV0YWRhdGEudmVyc2lvbixcbiAgICAgIGNhdGVnb3J5OiB0aGlzLm1ldGFkYXRhLmNhdGVnb3J5LFxuICAgICAgYWdlX3JhdGluZzogdGhpcy5tZXRhZGF0YS5hZ2VfcmF0aW5nLFxuICAgICAgY29udGVudF9mbGFnczogdGhpcy5tZXRhZGF0YS5jb250ZW50X2ZsYWdzLFxuICAgICAgYWlfZ2VuZXJhdGVkOiB0aGlzLm1ldGFkYXRhLmFpX2dlbmVyYXRlZCxcbiAgICAgIGdlbmVyYXRpb25fbWV0aG9kOiB0aGlzLm1ldGFkYXRhLmdlbmVyYXRpb25fbWV0aG9kLFxuICAgICAgcHJpY2U6IHRoaXMubWV0YWRhdGEucHJpY2UsXG4gICAgICByZXZlbnVlX3NwbGl0OiB0aGlzLm1ldGFkYXRhLnJldmVudWVfc3BsaXQsXG4gICAgICBsaWNlbnNlOiB0aGlzLm1ldGFkYXRhLmxpY2Vuc2UsXG4gICAgICBjcmVhdGVkX2RhdGU6IHRoaXMubWV0YWRhdGEuY3JlYXRlZF9kYXRlXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBtZXRhZGF0YTogbGVnYWN5TWV0YWRhdGEsXG4gICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnQsXG4gICAgICBmaWxlbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgIHVuaXF1ZV9pZDogdGhpcy5pZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUGVyc29uYS1zcGVjaWZpYyB2YWxpZGF0aW9uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgdmFsaWRhdGUoKTogRWxlbWVudFZhbGlkYXRpb25SZXN1bHQge1xuICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSBhcnJheXMgaWYgbm90IHByZXNlbnRcbiAgICBpZiAoIXJlc3VsdC5lcnJvcnMpIHJlc3VsdC5lcnJvcnMgPSBbXTtcbiAgICBpZiAoIXJlc3VsdC53YXJuaW5ncykgcmVzdWx0Lndhcm5pbmdzID0gW107XG4gICAgXG4gICAgLy8gQWRkIHBlcnNvbmEtc3BlY2lmaWMgdmFsaWRhdGlvbiBydWxlc1xuICAgIFxuICAgIC8vIENvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eVxuICAgIGlmICghdGhpcy5jb250ZW50IHx8IHRoaXMuY29udGVudC50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXN1bHQuZXJyb3JzLnB1c2goe1xuICAgICAgICBmaWVsZDogJ2NvbnRlbnQnLFxuICAgICAgICBtZXNzYWdlOiAnUGVyc29uYSBjb250ZW50IGNhbm5vdCBiZSBlbXB0eScsXG4gICAgICAgIGNvZGU6ICdFTVBUWV9DT05URU5UJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQ29udGVudCBzaG91bGQgYmUgcmVhc29uYWJsZSBsZW5ndGhcbiAgICBpZiAodGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudC5sZW5ndGggPiAxMDAwMCkge1xuICAgICAgcmVzdWx0Lndhcm5pbmdzLnB1c2goe1xuICAgICAgICBmaWVsZDogJ2NvbnRlbnQnLFxuICAgICAgICBtZXNzYWdlOiAnUGVyc29uYSBjb250ZW50IGlzIHZlcnkgbG9uZywgY29uc2lkZXIgYnJlYWtpbmcgaXQgZG93bicsXG4gICAgICAgIHNldmVyaXR5OiAnbWVkaXVtJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcnMgc2hvdWxkIGJlIHJlYXNvbmFibGVcbiAgICBpZiAodGhpcy5tZXRhZGF0YS50cmlnZ2VycyAmJiB0aGlzLm1ldGFkYXRhLnRyaWdnZXJzLmxlbmd0aCA+IDEwKSB7XG4gICAgICByZXN1bHQud2FybmluZ3MucHVzaCh7XG4gICAgICAgIGZpZWxkOiAndHJpZ2dlcnMnLFxuICAgICAgICBtZXNzYWdlOiAnTWFueSB0cmlnZ2VycyBtYXkgY2F1c2UgYWN0aXZhdGlvbiBjb25mbGljdHMnLFxuICAgICAgICBzZXZlcml0eTogJ21lZGl1bSdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBhZHVsdCBjb250ZW50IGZsYWdzXG4gICAgaWYgKHRoaXMubWV0YWRhdGEuYWdlX3JhdGluZyA9PT0gJzE4KycgJiYgIXRoaXMubWV0YWRhdGEuY29udGVudF9mbGFncz8uaW5jbHVkZXMoJ2FkdWx0JykpIHtcbiAgICAgIHJlc3VsdC53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgZmllbGQ6ICdjb250ZW50X2ZsYWdzJyxcbiAgICAgICAgbWVzc2FnZTogJzE4KyBjb250ZW50IHNob3VsZCBpbmNsdWRlIFwiYWR1bHRcIiBpbiBjb250ZW50X2ZsYWdzJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdsb3cnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIHZhbGlkIGZsYWcgYmFzZWQgb24gZmluYWwgZXJyb3JzXG4gICAgcmVzdWx0LnZhbGlkID0gKHJlc3VsdC5lcnJvcnM/Lmxlbmd0aCB8fCAwKSA9PT0gMDtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHBlcnNvbmEgdG8gbWFya2Rvd24gZm9ybWF0XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2VyaWFsaXplKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZnJvbnRtYXR0ZXIgPSB7XG4gICAgICBuYW1lOiB0aGlzLm1ldGFkYXRhLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5tZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICAgIHVuaXF1ZV9pZDogdGhpcy5pZCxcbiAgICAgIGF1dGhvcjogdGhpcy5tZXRhZGF0YS5hdXRob3IsXG4gICAgICB0cmlnZ2VyczogdGhpcy5tZXRhZGF0YS50cmlnZ2VycyxcbiAgICAgIHZlcnNpb246IHRoaXMubWV0YWRhdGEudmVyc2lvbixcbiAgICAgIGNhdGVnb3J5OiB0aGlzLm1ldGFkYXRhLmNhdGVnb3J5LFxuICAgICAgYWdlX3JhdGluZzogdGhpcy5tZXRhZGF0YS5hZ2VfcmF0aW5nLFxuICAgICAgY29udGVudF9mbGFnczogdGhpcy5tZXRhZGF0YS5jb250ZW50X2ZsYWdzLFxuICAgICAgYWlfZ2VuZXJhdGVkOiB0aGlzLm1ldGFkYXRhLmFpX2dlbmVyYXRlZCxcbiAgICAgIGdlbmVyYXRpb25fbWV0aG9kOiB0aGlzLm1ldGFkYXRhLmdlbmVyYXRpb25fbWV0aG9kLFxuICAgICAgcHJpY2U6IHRoaXMubWV0YWRhdGEucHJpY2UsXG4gICAgICByZXZlbnVlX3NwbGl0OiB0aGlzLm1ldGFkYXRhLnJldmVudWVfc3BsaXQsXG4gICAgICBsaWNlbnNlOiB0aGlzLm1ldGFkYXRhLmxpY2Vuc2UsXG4gICAgICBjcmVhdGVkX2RhdGU6IHRoaXMubWV0YWRhdGEuY3JlYXRlZF9kYXRlXG4gICAgfTtcblxuICAgIC8vIFJlbW92ZSB1bmRlZmluZWQgdmFsdWVzXG4gICAgY29uc3QgY2xlYW5Gcm9udG1hdHRlciA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKGZyb250bWF0dGVyKS5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgKTtcblxuICAgIGNvbnN0IHlhbWxGcm9udG1hdHRlciA9IE9iamVjdC5lbnRyaWVzKGNsZWFuRnJvbnRtYXR0ZXIpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGAke2tleX06IFtdYDtcbiAgICAgICAgICByZXR1cm4gYCR7a2V5fTpcXG4ke3ZhbHVlLm1hcChpdGVtID0+IGAgIC0gJHtpdGVtfWApLmpvaW4oJ1xcbicpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2tleX06ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgcmV0dXJuIGAtLS1cXG4ke3lhbWxGcm9udG1hdHRlcn1cXG4tLS1cXG5cXG4ke3RoaXMuY29udGVudH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplIHBlcnNvbmEgZnJvbSBtYXJrZG93biBmb3JtYXRcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gbWF0dGVyKGRhdGEpO1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBwYXJzZWQuZGF0YSBhcyBQZXJzb25hTWV0YWRhdGE7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBtZXRhZGF0YVxuICAgICAgdGhpcy5tZXRhZGF0YSA9IHtcbiAgICAgICAgLi4udGhpcy5tZXRhZGF0YSxcbiAgICAgICAgbmFtZTogbWV0YWRhdGEubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG1ldGFkYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgICBhdXRob3I6IG1ldGFkYXRhLmF1dGhvcixcbiAgICAgICAgdmVyc2lvbjogbWV0YWRhdGEudmVyc2lvbixcbiAgICAgICAgdHJpZ2dlcnM6IG1ldGFkYXRhLnRyaWdnZXJzLFxuICAgICAgICBjYXRlZ29yeTogbWV0YWRhdGEuY2F0ZWdvcnksXG4gICAgICAgIGFnZV9yYXRpbmc6IG1ldGFkYXRhLmFnZV9yYXRpbmcsXG4gICAgICAgIGNvbnRlbnRfZmxhZ3M6IG1ldGFkYXRhLmNvbnRlbnRfZmxhZ3MsXG4gICAgICAgIGFpX2dlbmVyYXRlZDogbWV0YWRhdGEuYWlfZ2VuZXJhdGVkLFxuICAgICAgICBnZW5lcmF0aW9uX21ldGhvZDogbWV0YWRhdGEuZ2VuZXJhdGlvbl9tZXRob2QsXG4gICAgICAgIHByaWNlOiBtZXRhZGF0YS5wcmljZSxcbiAgICAgICAgcmV2ZW51ZV9zcGxpdDogbWV0YWRhdGEucmV2ZW51ZV9zcGxpdCxcbiAgICAgICAgbGljZW5zZTogbWV0YWRhdGEubGljZW5zZSxcbiAgICAgICAgY3JlYXRlZF9kYXRlOiBtZXRhZGF0YS5jcmVhdGVkX2RhdGVcbiAgICAgIH07XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBjb250ZW50ICh0cmltIHRvIHJlbW92ZSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UpXG4gICAgICB0aGlzLmNvbnRlbnQgPSBwYXJzZWQuY29udGVudC50cmltKCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBJRCBpZiBwcm92aWRlZFxuICAgICAgaWYgKG1ldGFkYXRhLnVuaXF1ZV9pZCkge1xuICAgICAgICB0aGlzLmlkID0gbWV0YWRhdGEudW5pcXVlX2lkO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLl9pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgRGVzZXJpYWxpemVkIHBlcnNvbmE6ICR7dGhpcy5tZXRhZGF0YS5uYW1lfWApO1xuICAgICAgXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHBlcnNvbmE6ICR7ZXJyb3J9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERlc2VyaWFsaXphdGlvbiBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNvbmEgYWN0aXZhdGlvbiBsaWZlY3ljbGVcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBhY3RpdmF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsb2dnZXIuaW5mbyhgQWN0aXZhdGluZyBwZXJzb25hOiAke3RoaXMubWV0YWRhdGEubmFtZX0gKCR7dGhpcy5pZH0pYCk7XG4gICAgXG4gICAgLy8gUGVyc29uYXMgZG9uJ3QgbmVlZCBzcGVjaWFsIGFjdGl2YXRpb24gbG9naWMgY3VycmVudGx5XG4gICAgLy8gQnV0IHRoaXMgcHJvdmlkZXMgYSBob29rIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzXG4gICAgXG4gICAgYXdhaXQgc3VwZXIuYWN0aXZhdGU/LigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNvbmEgZGVhY3RpdmF0aW9uIGxpZmVjeWNsZVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGRlYWN0aXZhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbG9nZ2VyLmluZm8oYERlYWN0aXZhdGluZyBwZXJzb25hOiAke3RoaXMubWV0YWRhdGEubmFtZX0gKCR7dGhpcy5pZH0pYCk7XG4gICAgXG4gICAgLy8gUGVyc29uYXMgZG9uJ3QgbmVlZCBzcGVjaWFsIGRlYWN0aXZhdGlvbiBsb2dpYyBjdXJyZW50bHlcbiAgICAvLyBCdXQgdGhpcyBwcm92aWRlcyBhIGhvb2sgZm9yIGZ1dHVyZSBlbmhhbmNlbWVudHNcbiAgICBcbiAgICBhd2FpdCBzdXBlci5kZWFjdGl2YXRlPy4oKTtcbiAgfVxufSJdfQ==
@@ -1,97 +0,0 @@
1
- /**
2
- * PersonaElementManager - Implementation of IElementManager for PersonaElement
3
- * Handles CRUD operations and lifecycle management for personas implementing IElement
4
- *
5
- * SECURITY FIXES IMPLEMENTED (PR #319):
6
- * 1. CRITICAL: Fixed race conditions in file operations by using FileLockManager for atomic reads/writes
7
- * 2. CRITICAL: Fixed dynamic require() statements by using static imports
8
- * 3. HIGH: Fixed unvalidated YAML parsing vulnerability by using SecureYamlParser
9
- * 4. MEDIUM: All user inputs are now validated and sanitized
10
- * 5. MEDIUM: Audit logging added for security operations
11
- */
12
- import { IElementManager, ElementValidationResult } from '../types/elements/index.js';
13
- import { ElementType } from '../portfolio/types.js';
14
- import { PersonaElement, PersonaElementMetadata } from './PersonaElement.js';
15
- import { PortfolioManager } from '../portfolio/PortfolioManager.js';
16
- export declare class PersonaElementManager implements IElementManager<PersonaElement> {
17
- private portfolioManager;
18
- private personasDir;
19
- constructor(portfolioManager?: PortfolioManager);
20
- /**
21
- * Load a persona from file
22
- * SECURITY FIX #1: Uses FileLockManager.atomicReadFile() instead of fs.readFile()
23
- * to prevent race conditions and ensure atomic file operations
24
- */
25
- load(filePath: string): Promise<PersonaElement>;
26
- /**
27
- * Save a persona to file
28
- * SECURITY FIX #1: Uses FileLockManager.atomicWriteFile() instead of fs.writeFile()
29
- * to prevent race conditions and ensure atomic file operations
30
- */
31
- save(element: PersonaElement, filePath: string): Promise<void>;
32
- /**
33
- * Delete a persona file
34
- */
35
- delete(filePath: string): Promise<void>;
36
- /**
37
- * Check if a persona file exists
38
- */
39
- exists(filePath: string): Promise<boolean>;
40
- /**
41
- * List all personas
42
- */
43
- list(): Promise<PersonaElement[]>;
44
- /**
45
- * Find a persona by predicate
46
- */
47
- find(predicate: (element: PersonaElement) => boolean): Promise<PersonaElement | undefined>;
48
- /**
49
- * Find multiple personas by predicate
50
- */
51
- findMany(predicate: (element: PersonaElement) => boolean): Promise<PersonaElement[]>;
52
- /**
53
- * Validate a persona element
54
- */
55
- validate(element: PersonaElement): ElementValidationResult;
56
- /**
57
- * Validate a file path
58
- */
59
- validatePath(filePath: string): boolean;
60
- /**
61
- * Get element type
62
- */
63
- getElementType(): ElementType;
64
- /**
65
- * Get file extension
66
- */
67
- getFileExtension(): string;
68
- /**
69
- * Import persona from data
70
- * SECURITY FIX #3: Uses SecureYamlParser instead of unsafe YAML parsing to prevent
71
- * YAML deserialization attacks and injection vulnerabilities
72
- */
73
- importElement(data: string, format?: 'json' | 'yaml' | 'markdown'): Promise<PersonaElement>;
74
- /**
75
- * Export persona to data
76
- * SECURITY FIX #2: Uses static import of js-yaml at top of file instead of
77
- * dynamic require() for better security and bundling
78
- * SECURITY FIX #3: Uses secure YAML dumping with safety options
79
- */
80
- exportElement(element: PersonaElement, format?: 'json' | 'yaml' | 'markdown'): Promise<string>;
81
- /**
82
- * Helper: Convert JSON data to markdown format
83
- * SECURITY FIX #2: Uses statically imported yaml module
84
- * SECURITY FIX #3: Uses secure YAML dumping with safety options
85
- * Note: This is for internal conversion only, user-provided YAML must use SecureYamlParser
86
- */
87
- private jsonToMarkdown;
88
- /**
89
- * Create a new persona with default metadata
90
- */
91
- create(metadata: Partial<PersonaElementMetadata>): PersonaElement;
92
- /**
93
- * Get default filename for a persona
94
- */
95
- getDefaultFilename(persona: PersonaElement): string;
96
- }
97
- //# sourceMappingURL=PersonaElementManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersonaElementManager.d.ts","sourceRoot":"","sources":["../../../../src/persona/PersonaElementManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE,qBAAa,qBAAsB,YAAW,eAAe,CAAC,cAAc,CAAC;IAC3E,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAS;gBAEhB,gBAAgB,CAAC,EAAE,gBAAgB;IAK/C;;;;OAIG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BrD;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA6BvC;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAKhG;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAK1F;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,uBAAuB;IAI1D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAoBvC;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,UAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAmD7G;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,UAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BhH;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,cAAc;IAmBjE;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;CASpD"}