@codemieai/code 0.0.45 → 0.0.46

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 (395) hide show
  1. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  2. package/dist/agents/core/BaseAgentAdapter.js +20 -3
  3. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  4. package/dist/agents/core/metrics/types.d.ts +0 -6
  5. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  6. package/dist/agents/core/session/BaseSessionAdapter.d.ts +0 -6
  7. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -1
  8. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +0 -11
  9. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -1
  10. package/dist/agents/plugins/claude/claude.plugin-installer.js +0 -32
  11. package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -1
  12. package/dist/agents/plugins/claude/claude.plugin.js +1 -1
  13. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
  14. package/dist/agents/plugins/claude/claude.session.js +1 -28
  15. package/dist/agents/plugins/claude/claude.session.js.map +1 -1
  16. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  17. package/dist/agents/plugins/claude/plugin/README.md +1 -14
  18. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +4 -4
  19. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/SKILL.md +206 -0
  20. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-agent.md +45 -0
  21. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-claude-md-snippet.md +40 -0
  22. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-command.md +30 -0
  23. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-hooks.json +23 -0
  24. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-skill.md +48 -0
  25. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-agent.md +145 -0
  26. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-claude-md-snippet.md +126 -0
  27. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-command.md +170 -0
  28. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-hooks.json +46 -0
  29. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-skill.md +144 -0
  30. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/sample-report.md +223 -0
  31. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/best-practices.md +510 -0
  32. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/component-checklists.md +413 -0
  33. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/scripts/scan-repo.sh +162 -0
  34. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  35. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +3 -78
  36. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  37. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  38. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +7 -16
  39. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  40. package/dist/agents/plugins/claude/sounds-installer.d.ts +1 -1
  41. package/dist/agents/plugins/claude/sounds-installer.d.ts.map +1 -1
  42. package/dist/agents/plugins/claude/sounds-installer.js +1 -4
  43. package/dist/agents/plugins/claude/sounds-installer.js.map +1 -1
  44. package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -4
  45. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  46. package/dist/agents/plugins/codemie-code.plugin.js +26 -81
  47. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  48. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +1 -8
  49. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -1
  50. package/dist/agents/plugins/gemini/gemini.session-adapter.js +2 -30
  51. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -1
  52. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -1
  53. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +2 -8
  54. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -1
  55. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -1
  56. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +0 -7
  57. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -1
  58. package/dist/agents/plugins/opencode/index.d.ts +1 -1
  59. package/dist/agents/plugins/opencode/index.d.ts.map +1 -1
  60. package/dist/agents/plugins/opencode/index.js.map +1 -1
  61. package/dist/agents/plugins/opencode/opencode-message-types.d.ts +2 -22
  62. package/dist/agents/plugins/opencode/opencode-message-types.d.ts.map +1 -1
  63. package/dist/agents/plugins/opencode/opencode-message-types.js.map +1 -1
  64. package/dist/agents/plugins/opencode/opencode.session.d.ts.map +1 -1
  65. package/dist/agents/plugins/opencode/opencode.session.js +5 -30
  66. package/dist/agents/plugins/opencode/opencode.session.js.map +1 -1
  67. package/dist/agents/plugins/opencode/opencode.sqlite-reader.d.ts.map +1 -1
  68. package/dist/agents/plugins/opencode/opencode.sqlite-reader.js +0 -2
  69. package/dist/agents/plugins/opencode/opencode.sqlite-reader.js.map +1 -1
  70. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts +0 -8
  71. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts.map +1 -1
  72. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js +8 -97
  73. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js.map +1 -1
  74. package/dist/cli/commands/analytics/aggregator.d.ts +0 -8
  75. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -1
  76. package/dist/cli/commands/analytics/aggregator.js +5 -100
  77. package/dist/cli/commands/analytics/aggregator.js.map +1 -1
  78. package/dist/cli/commands/analytics/data-loader.d.ts +0 -7
  79. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  80. package/dist/cli/commands/analytics/data-loader.js +3 -10
  81. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  82. package/dist/cli/commands/analytics/exporter.d.ts.map +1 -1
  83. package/dist/cli/commands/analytics/exporter.js +0 -12
  84. package/dist/cli/commands/analytics/exporter.js.map +1 -1
  85. package/dist/cli/commands/analytics/formatter.d.ts.map +1 -1
  86. package/dist/cli/commands/analytics/formatter.js +0 -9
  87. package/dist/cli/commands/analytics/formatter.js.map +1 -1
  88. package/dist/cli/commands/analytics/types.d.ts +0 -17
  89. package/dist/cli/commands/analytics/types.d.ts.map +1 -1
  90. package/dist/cli/commands/assistants/chat/historyLoader.d.ts +22 -0
  91. package/dist/cli/commands/assistants/chat/historyLoader.d.ts.map +1 -0
  92. package/dist/cli/commands/assistants/chat/historyLoader.js +80 -0
  93. package/dist/cli/commands/assistants/chat/historyLoader.js.map +1 -0
  94. package/dist/cli/commands/assistants/{chat.d.ts → chat/index.d.ts} +1 -1
  95. package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -0
  96. package/dist/cli/commands/assistants/{chat.js → chat/index.js} +54 -45
  97. package/dist/cli/commands/assistants/chat/index.js.map +1 -0
  98. package/dist/cli/commands/assistants/chat/types.d.ts +27 -0
  99. package/dist/cli/commands/assistants/chat/types.d.ts.map +1 -0
  100. package/dist/cli/commands/assistants/chat/types.js +5 -0
  101. package/dist/cli/commands/assistants/chat/types.js.map +1 -0
  102. package/dist/cli/commands/assistants/chat/utils.d.ts +12 -0
  103. package/dist/cli/commands/assistants/chat/utils.d.ts.map +1 -0
  104. package/dist/cli/commands/assistants/chat/utils.js +24 -0
  105. package/dist/cli/commands/assistants/chat/utils.js.map +1 -0
  106. package/dist/cli/commands/assistants/constants.d.ts +1 -0
  107. package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
  108. package/dist/cli/commands/assistants/constants.js.map +1 -1
  109. package/dist/cli/commands/assistants/index.js +2 -2
  110. package/dist/cli/commands/assistants/index.js.map +1 -1
  111. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +1 -1
  112. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +1 -1
  113. package/dist/cli/commands/assistants/setup/index.js +4 -4
  114. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  115. package/dist/cli/commands/assistants/setup/selection/index.d.ts +1 -1
  116. package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -1
  117. package/dist/cli/commands/assistants/setup/selection/index.js +5 -3
  118. package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -1
  119. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -1
  120. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +7 -1
  121. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -1
  122. package/dist/cli/commands/assistants/setup/selection/types.d.ts +2 -0
  123. package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -1
  124. package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
  125. package/dist/cli/commands/assistants/setup/selection/ui.js +15 -4
  126. package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
  127. package/dist/cli/commands/hook.js +1 -1
  128. package/dist/cli/commands/hook.js.map +1 -1
  129. package/dist/cli/commands/plugin.d.ts +16 -0
  130. package/dist/cli/commands/plugin.d.ts.map +1 -0
  131. package/dist/cli/commands/plugin.js +210 -0
  132. package/dist/cli/commands/plugin.js.map +1 -0
  133. package/dist/cli/commands/setup.js +1 -1
  134. package/dist/cli/commands/skill.d.ts.map +1 -1
  135. package/dist/cli/commands/skill.js +3 -1
  136. package/dist/cli/commands/skill.js.map +1 -1
  137. package/dist/cli/commands/sound.d.ts +3 -0
  138. package/dist/cli/commands/sound.d.ts.map +1 -0
  139. package/dist/cli/commands/sound.js +87 -0
  140. package/dist/cli/commands/sound.js.map +1 -0
  141. package/dist/cli/commands/test-metrics.js +3 -5
  142. package/dist/cli/commands/test-metrics.js.map +1 -1
  143. package/dist/cli/index.js +4 -0
  144. package/dist/cli/index.js.map +1 -1
  145. package/dist/env/types.d.ts +8 -0
  146. package/dist/env/types.d.ts.map +1 -1
  147. package/dist/env/types.js.map +1 -1
  148. package/dist/plugins/core/index.d.ts +13 -0
  149. package/dist/plugins/core/index.d.ts.map +1 -0
  150. package/dist/plugins/core/index.js +15 -0
  151. package/dist/plugins/core/index.js.map +1 -0
  152. package/dist/plugins/core/manifest-parser.d.ts +28 -0
  153. package/dist/plugins/core/manifest-parser.d.ts.map +1 -0
  154. package/dist/plugins/core/manifest-parser.js +137 -0
  155. package/dist/plugins/core/manifest-parser.js.map +1 -0
  156. package/dist/plugins/core/plugin-cache.d.ts +65 -0
  157. package/dist/plugins/core/plugin-cache.d.ts.map +1 -0
  158. package/dist/plugins/core/plugin-cache.js +170 -0
  159. package/dist/plugins/core/plugin-cache.js.map +1 -0
  160. package/dist/plugins/core/plugin-loader.d.ts +21 -0
  161. package/dist/plugins/core/plugin-loader.d.ts.map +1 -0
  162. package/dist/plugins/core/plugin-loader.js +55 -0
  163. package/dist/plugins/core/plugin-loader.js.map +1 -0
  164. package/dist/plugins/core/plugin-resolver.d.ts +33 -0
  165. package/dist/plugins/core/plugin-resolver.d.ts.map +1 -0
  166. package/dist/plugins/core/plugin-resolver.js +118 -0
  167. package/dist/plugins/core/plugin-resolver.js.map +1 -0
  168. package/dist/plugins/core/types.d.ts +183 -0
  169. package/dist/plugins/core/types.d.ts.map +1 -0
  170. package/dist/plugins/core/types.js +22 -0
  171. package/dist/plugins/core/types.js.map +1 -0
  172. package/dist/plugins/loaders/agents-loader.d.ts +19 -0
  173. package/dist/plugins/loaders/agents-loader.d.ts.map +1 -0
  174. package/dist/plugins/loaders/agents-loader.js +92 -0
  175. package/dist/plugins/loaders/agents-loader.js.map +1 -0
  176. package/dist/plugins/loaders/hooks-loader.d.ts +27 -0
  177. package/dist/plugins/loaders/hooks-loader.d.ts.map +1 -0
  178. package/dist/plugins/loaders/hooks-loader.js +94 -0
  179. package/dist/plugins/loaders/hooks-loader.js.map +1 -0
  180. package/dist/plugins/loaders/mcp-loader.d.ts +24 -0
  181. package/dist/plugins/loaders/mcp-loader.d.ts.map +1 -0
  182. package/dist/plugins/loaders/mcp-loader.js +86 -0
  183. package/dist/plugins/loaders/mcp-loader.js.map +1 -0
  184. package/dist/plugins/loaders/skills-loader.d.ts +30 -0
  185. package/dist/plugins/loaders/skills-loader.d.ts.map +1 -0
  186. package/dist/plugins/loaders/skills-loader.js +167 -0
  187. package/dist/plugins/loaders/skills-loader.js.map +1 -0
  188. package/dist/providers/plugins/bedrock/bedrock.template.js +1 -1
  189. package/dist/providers/plugins/jwt/jwt.setup-steps.js +1 -1
  190. package/dist/providers/plugins/jwt/jwt.template.js +1 -1
  191. package/dist/providers/plugins/litellm/litellm.template.js +1 -1
  192. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +10 -0
  193. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
  194. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +3 -0
  195. package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
  196. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
  197. package/dist/providers/plugins/sso/session/SessionSyncer.js +2 -3
  198. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
  199. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts +21 -0
  200. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts.map +1 -0
  201. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js +159 -0
  202. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js.map +1 -0
  203. package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts +24 -0
  204. package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts.map +1 -0
  205. package/dist/providers/plugins/sso/session/processors/conversations/constants.js +36 -0
  206. package/dist/providers/plugins/sso/session/processors/conversations/constants.js.map +1 -0
  207. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.d.ts +19 -0
  208. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.d.ts.map +1 -0
  209. package/dist/providers/plugins/sso/session/processors/conversations/{conversation-sync-processor.js → syncProcessor.js} +48 -33
  210. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.js.map +1 -0
  211. package/dist/providers/plugins/sso/session/processors/conversations/{conversation-types.d.ts → types.d.ts} +14 -2
  212. package/dist/providers/plugins/sso/session/processors/conversations/types.d.ts.map +1 -0
  213. package/dist/providers/plugins/sso/session/processors/conversations/types.js +14 -0
  214. package/dist/providers/plugins/sso/session/processors/conversations/types.js.map +1 -0
  215. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -1
  216. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +16 -17
  217. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
  218. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts +3 -3
  219. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -1
  220. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js +8 -38
  221. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -1
  222. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
  223. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +2 -6
  224. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  225. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts +49 -31
  226. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -1
  227. package/dist/providers/plugins/sso/sso.template.js +1 -1
  228. package/dist/{agents/codemie-code/skills → skills}/core/SkillDiscovery.d.ts +10 -0
  229. package/dist/skills/core/SkillDiscovery.d.ts.map +1 -0
  230. package/dist/{agents/codemie-code/skills → skills}/core/SkillDiscovery.js +64 -7
  231. package/dist/skills/core/SkillDiscovery.js.map +1 -0
  232. package/dist/skills/core/SkillManager.d.ts.map +1 -0
  233. package/dist/{agents/codemie-code/skills → skills}/core/SkillManager.js +15 -10
  234. package/dist/skills/core/SkillManager.js.map +1 -0
  235. package/dist/{agents/codemie-code/skills → skills}/core/types.d.ts +3 -25
  236. package/dist/skills/core/types.d.ts.map +1 -0
  237. package/dist/skills/core/types.js.map +1 -0
  238. package/dist/{agents/codemie-code/skills → skills}/index.d.ts +3 -3
  239. package/dist/skills/index.d.ts.map +1 -0
  240. package/dist/{agents/codemie-code/skills → skills}/index.js +2 -2
  241. package/dist/skills/index.js.map +1 -0
  242. package/dist/skills/sync/SkillSync.d.ts.map +1 -0
  243. package/dist/{agents/codemie-code/skills → skills}/sync/SkillSync.js +5 -3
  244. package/dist/skills/sync/SkillSync.js.map +1 -0
  245. package/dist/{agents/codemie-code/skills → skills}/utils/content-loader.d.ts +2 -12
  246. package/dist/skills/utils/content-loader.d.ts.map +1 -0
  247. package/dist/{agents/codemie-code/skills → skills}/utils/content-loader.js +3 -8
  248. package/dist/skills/utils/content-loader.js.map +1 -0
  249. package/dist/skills/utils/pattern-matcher.d.ts.map +1 -0
  250. package/dist/skills/utils/pattern-matcher.js.map +1 -0
  251. package/dist/utils/frontmatter.d.ts.map +1 -0
  252. package/dist/utils/frontmatter.js.map +1 -0
  253. package/package.json +1 -1
  254. package/dist/agents/codemie-code/agent.d.ts +0 -129
  255. package/dist/agents/codemie-code/agent.d.ts.map +0 -1
  256. package/dist/agents/codemie-code/agent.js +0 -1106
  257. package/dist/agents/codemie-code/agent.js.map +0 -1
  258. package/dist/agents/codemie-code/config.d.ts +0 -40
  259. package/dist/agents/codemie-code/config.d.ts.map +0 -1
  260. package/dist/agents/codemie-code/config.js +0 -293
  261. package/dist/agents/codemie-code/config.js.map +0 -1
  262. package/dist/agents/codemie-code/filters.d.ts +0 -91
  263. package/dist/agents/codemie-code/filters.d.ts.map +0 -1
  264. package/dist/agents/codemie-code/filters.js +0 -328
  265. package/dist/agents/codemie-code/filters.js.map +0 -1
  266. package/dist/agents/codemie-code/index.d.ts +0 -93
  267. package/dist/agents/codemie-code/index.d.ts.map +0 -1
  268. package/dist/agents/codemie-code/index.js +0 -359
  269. package/dist/agents/codemie-code/index.js.map +0 -1
  270. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +0 -87
  271. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +0 -1
  272. package/dist/agents/codemie-code/modes/contextAwarePlanning.js +0 -957
  273. package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +0 -1
  274. package/dist/agents/codemie-code/modes/planMode.d.ts +0 -116
  275. package/dist/agents/codemie-code/modes/planMode.d.ts.map +0 -1
  276. package/dist/agents/codemie-code/modes/planMode.js +0 -537
  277. package/dist/agents/codemie-code/modes/planMode.js.map +0 -1
  278. package/dist/agents/codemie-code/prompts.d.ts +0 -47
  279. package/dist/agents/codemie-code/prompts.d.ts.map +0 -1
  280. package/dist/agents/codemie-code/prompts.js +0 -207
  281. package/dist/agents/codemie-code/prompts.js.map +0 -1
  282. package/dist/agents/codemie-code/skills/core/SkillDiscovery.d.ts.map +0 -1
  283. package/dist/agents/codemie-code/skills/core/SkillDiscovery.js.map +0 -1
  284. package/dist/agents/codemie-code/skills/core/SkillManager.d.ts.map +0 -1
  285. package/dist/agents/codemie-code/skills/core/SkillManager.js.map +0 -1
  286. package/dist/agents/codemie-code/skills/core/types.d.ts.map +0 -1
  287. package/dist/agents/codemie-code/skills/core/types.js.map +0 -1
  288. package/dist/agents/codemie-code/skills/index.d.ts.map +0 -1
  289. package/dist/agents/codemie-code/skills/index.js.map +0 -1
  290. package/dist/agents/codemie-code/skills/sync/SkillSync.d.ts.map +0 -1
  291. package/dist/agents/codemie-code/skills/sync/SkillSync.js.map +0 -1
  292. package/dist/agents/codemie-code/skills/utils/content-loader.d.ts.map +0 -1
  293. package/dist/agents/codemie-code/skills/utils/content-loader.js.map +0 -1
  294. package/dist/agents/codemie-code/skills/utils/frontmatter.d.ts.map +0 -1
  295. package/dist/agents/codemie-code/skills/utils/frontmatter.js.map +0 -1
  296. package/dist/agents/codemie-code/skills/utils/pattern-matcher.d.ts.map +0 -1
  297. package/dist/agents/codemie-code/skills/utils/pattern-matcher.js.map +0 -1
  298. package/dist/agents/codemie-code/storage/todoStorage.d.ts +0 -78
  299. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +0 -1
  300. package/dist/agents/codemie-code/storage/todoStorage.js +0 -225
  301. package/dist/agents/codemie-code/storage/todoStorage.js.map +0 -1
  302. package/dist/agents/codemie-code/tokenUtils.d.ts +0 -108
  303. package/dist/agents/codemie-code/tokenUtils.d.ts.map +0 -1
  304. package/dist/agents/codemie-code/tokenUtils.js +0 -220
  305. package/dist/agents/codemie-code/tokenUtils.js.map +0 -1
  306. package/dist/agents/codemie-code/toolMetadata.d.ts +0 -15
  307. package/dist/agents/codemie-code/toolMetadata.d.ts.map +0 -1
  308. package/dist/agents/codemie-code/toolMetadata.js +0 -316
  309. package/dist/agents/codemie-code/toolMetadata.js.map +0 -1
  310. package/dist/agents/codemie-code/tools/assistant-invocation.d.ts +0 -47
  311. package/dist/agents/codemie-code/tools/assistant-invocation.d.ts.map +0 -1
  312. package/dist/agents/codemie-code/tools/assistant-invocation.js +0 -129
  313. package/dist/agents/codemie-code/tools/assistant-invocation.js.map +0 -1
  314. package/dist/agents/codemie-code/tools/index.d.ts +0 -111
  315. package/dist/agents/codemie-code/tools/index.d.ts.map +0 -1
  316. package/dist/agents/codemie-code/tools/index.js +0 -424
  317. package/dist/agents/codemie-code/tools/index.js.map +0 -1
  318. package/dist/agents/codemie-code/tools/planning.d.ts +0 -54
  319. package/dist/agents/codemie-code/tools/planning.d.ts.map +0 -1
  320. package/dist/agents/codemie-code/tools/planning.js +0 -226
  321. package/dist/agents/codemie-code/tools/planning.js.map +0 -1
  322. package/dist/agents/codemie-code/types.d.ts +0 -459
  323. package/dist/agents/codemie-code/types.d.ts.map +0 -1
  324. package/dist/agents/codemie-code/types.js +0 -59
  325. package/dist/agents/codemie-code/types.js.map +0 -1
  326. package/dist/agents/codemie-code/ui/autocomplete.d.ts +0 -98
  327. package/dist/agents/codemie-code/ui/autocomplete.d.ts.map +0 -1
  328. package/dist/agents/codemie-code/ui/autocomplete.js +0 -145
  329. package/dist/agents/codemie-code/ui/autocomplete.js.map +0 -1
  330. package/dist/agents/codemie-code/ui/keyHandlers.d.ts +0 -112
  331. package/dist/agents/codemie-code/ui/keyHandlers.d.ts.map +0 -1
  332. package/dist/agents/codemie-code/ui/keyHandlers.js +0 -415
  333. package/dist/agents/codemie-code/ui/keyHandlers.js.map +0 -1
  334. package/dist/agents/codemie-code/ui/mentions.d.ts +0 -86
  335. package/dist/agents/codemie-code/ui/mentions.d.ts.map +0 -1
  336. package/dist/agents/codemie-code/ui/mentions.js +0 -122
  337. package/dist/agents/codemie-code/ui/mentions.js.map +0 -1
  338. package/dist/agents/codemie-code/ui/progressTracker.d.ts +0 -125
  339. package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +0 -1
  340. package/dist/agents/codemie-code/ui/progressTracker.js +0 -343
  341. package/dist/agents/codemie-code/ui/progressTracker.js.map +0 -1
  342. package/dist/agents/codemie-code/ui/terminalCodes.d.ts +0 -38
  343. package/dist/agents/codemie-code/ui/terminalCodes.d.ts.map +0 -1
  344. package/dist/agents/codemie-code/ui/terminalCodes.js +0 -42
  345. package/dist/agents/codemie-code/ui/terminalCodes.js.map +0 -1
  346. package/dist/agents/codemie-code/ui/todoPanel.d.ts +0 -112
  347. package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +0 -1
  348. package/dist/agents/codemie-code/ui/todoPanel.js +0 -321
  349. package/dist/agents/codemie-code/ui/todoPanel.js.map +0 -1
  350. package/dist/agents/codemie-code/ui.d.ts +0 -180
  351. package/dist/agents/codemie-code/ui.d.ts.map +0 -1
  352. package/dist/agents/codemie-code/ui.js +0 -1345
  353. package/dist/agents/codemie-code/ui.js.map +0 -1
  354. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +0 -87
  355. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +0 -1
  356. package/dist/agents/codemie-code/utils/progressionEnforcer.js +0 -293
  357. package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +0 -1
  358. package/dist/agents/codemie-code/utils/todoParser.d.ts +0 -41
  359. package/dist/agents/codemie-code/utils/todoParser.d.ts.map +0 -1
  360. package/dist/agents/codemie-code/utils/todoParser.js +0 -305
  361. package/dist/agents/codemie-code/utils/todoParser.js.map +0 -1
  362. package/dist/agents/codemie-code/utils/todoValidator.d.ts +0 -65
  363. package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +0 -1
  364. package/dist/agents/codemie-code/utils/todoValidator.js +0 -249
  365. package/dist/agents/codemie-code/utils/todoValidator.js.map +0 -1
  366. package/dist/agents/codemie-code/validators/planValidator.d.ts +0 -94
  367. package/dist/agents/codemie-code/validators/planValidator.d.ts.map +0 -1
  368. package/dist/agents/codemie-code/validators/planValidator.js +0 -281
  369. package/dist/agents/codemie-code/validators/planValidator.js.map +0 -1
  370. package/dist/agents/plugins/claude/plugin/hooks/hooks.windows.json +0 -98
  371. package/dist/agents/plugins/claude/plugin/sounds/play-random-sound.ps1 +0 -112
  372. package/dist/agents/plugins/claude/plugin/sounds/play-random-sound.sh +0 -58
  373. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +0 -26
  374. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +0 -1
  375. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +0 -38
  376. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +0 -1
  377. package/dist/cli/commands/assistants/chat.d.ts.map +0 -1
  378. package/dist/cli/commands/assistants/chat.js.map +0 -1
  379. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +0 -26
  380. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +0 -1
  381. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +0 -146
  382. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +0 -1
  383. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +0 -22
  384. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +0 -1
  385. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +0 -1
  386. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +0 -1
  387. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +0 -7
  388. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +0 -1
  389. /package/dist/{agents/codemie-code/skills → skills}/core/SkillManager.d.ts +0 -0
  390. /package/dist/{agents/codemie-code/skills → skills}/core/types.js +0 -0
  391. /package/dist/{agents/codemie-code/skills → skills}/sync/SkillSync.d.ts +0 -0
  392. /package/dist/{agents/codemie-code/skills → skills}/utils/pattern-matcher.d.ts +0 -0
  393. /package/dist/{agents/codemie-code/skills → skills}/utils/pattern-matcher.js +0 -0
  394. /package/dist/{agents/codemie-code/skills/utils → utils}/frontmatter.d.ts +0 -0
  395. /package/dist/{agents/codemie-code/skills/utils → utils}/frontmatter.js +0 -0
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Plugin Cache
3
+ *
4
+ * Manages the plugin cache directory at ~/.codemie/plugins/cache/.
5
+ * Handles copying plugins for installation and cleaning up orphaned entries.
6
+ */
7
+ import { join, resolve, sep } from 'path';
8
+ import { existsSync } from 'fs';
9
+ import { mkdir, cp, rm, readdir, readFile, writeFile } from 'fs/promises';
10
+ import { logger } from '../../utils/logger.js';
11
+ import { getCodemiePath } from '../../utils/paths.js';
12
+ import { parseManifest } from './manifest-parser.js';
13
+ /**
14
+ * Validate that a plugin name is safe (kebab-case, no path traversal)
15
+ */
16
+ function validatePluginName(name) {
17
+ if (!name || /[/\\]/.test(name) || name.includes('..')) {
18
+ throw new Error(`Invalid plugin name: "${name}". Must be a simple kebab-case name.`);
19
+ }
20
+ if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(name)) {
21
+ throw new Error(`Invalid plugin name: "${name}". Must be kebab-case (lowercase alphanumeric with hyphens).`);
22
+ }
23
+ }
24
+ /**
25
+ * Get the plugin cache directory path
26
+ */
27
+ export function getPluginCacheDir() {
28
+ return getCodemiePath('plugins', 'cache');
29
+ }
30
+ /**
31
+ * Install a plugin from a source directory into the cache
32
+ *
33
+ * Copies the plugin directory to ~/.codemie/plugins/cache/<plugin-name>/.
34
+ * If the plugin already exists with the same version, skips the copy.
35
+ *
36
+ * @param sourceDir - Absolute path to the plugin source directory
37
+ * @returns The cache directory path where the plugin was installed
38
+ */
39
+ export async function installPluginToCache(sourceDir) {
40
+ if (!existsSync(sourceDir)) {
41
+ throw new Error(`Plugin source directory does not exist: ${sourceDir}`);
42
+ }
43
+ // Parse manifest to get plugin name and version
44
+ const manifest = await parseManifest(sourceDir);
45
+ const cacheDir = getPluginCacheDir();
46
+ const pluginCacheDir = join(cacheDir, manifest.name);
47
+ // Check if already installed with same version
48
+ if (existsSync(pluginCacheDir)) {
49
+ try {
50
+ const existingManifest = await parseManifest(pluginCacheDir);
51
+ if (existingManifest.version && manifest.version && existingManifest.version === manifest.version) {
52
+ logger.debug(`[plugin] Plugin "${manifest.name}" v${manifest.version} already cached, skipping`);
53
+ return pluginCacheDir;
54
+ }
55
+ }
56
+ catch (error) {
57
+ logger.debug(`[plugin] Corrupt cache for "${manifest.name}", reinstalling: ${error instanceof Error ? error.message : String(error)}`);
58
+ }
59
+ // Remove existing cached version
60
+ await rm(pluginCacheDir, { recursive: true, force: true });
61
+ }
62
+ // Ensure cache directory exists
63
+ await mkdir(cacheDir, { recursive: true });
64
+ // Copy plugin to cache
65
+ await cp(sourceDir, pluginCacheDir, { recursive: true });
66
+ logger.debug(`[plugin] Installed "${manifest.name}" to cache: ${pluginCacheDir}`);
67
+ return pluginCacheDir;
68
+ }
69
+ /**
70
+ * Remove a plugin from the cache
71
+ *
72
+ * @param pluginName - Name of the plugin to remove
73
+ * @returns true if the plugin was removed, false if not found
74
+ */
75
+ export async function removePluginFromCache(pluginName) {
76
+ validatePluginName(pluginName);
77
+ const cacheDir = getPluginCacheDir();
78
+ const pluginCacheDir = join(cacheDir, pluginName);
79
+ // Verify resolved path stays within cache directory
80
+ const resolvedPath = resolve(pluginCacheDir);
81
+ const resolvedCache = resolve(cacheDir);
82
+ if (!resolvedPath.startsWith(resolvedCache + sep)) {
83
+ throw new Error(`Plugin path escapes cache directory: ${pluginName}`);
84
+ }
85
+ if (!existsSync(pluginCacheDir)) {
86
+ return false;
87
+ }
88
+ await rm(pluginCacheDir, { recursive: true, force: true });
89
+ logger.debug(`[plugin] Removed "${pluginName}" from cache`);
90
+ return true;
91
+ }
92
+ /**
93
+ * List all cached plugins
94
+ *
95
+ * @returns Array of { name, dir } for each cached plugin
96
+ */
97
+ export async function listCachedPlugins() {
98
+ const cacheDir = getPluginCacheDir();
99
+ if (!existsSync(cacheDir)) {
100
+ return [];
101
+ }
102
+ try {
103
+ const entries = await readdir(cacheDir, { withFileTypes: true });
104
+ return entries
105
+ .filter(entry => entry.isDirectory())
106
+ .map(entry => ({
107
+ name: entry.name,
108
+ dir: join(cacheDir, entry.name),
109
+ }));
110
+ }
111
+ catch (error) {
112
+ logger.debug(`[plugin] Failed to list cached plugins: ${error instanceof Error ? error.message : String(error)}`);
113
+ return [];
114
+ }
115
+ }
116
+ /**
117
+ * Read plugin settings from ~/.codemie/plugins.json
118
+ */
119
+ export async function readPluginSettings() {
120
+ const settingsPath = getCodemiePath('plugins.json');
121
+ if (!existsSync(settingsPath)) {
122
+ return {};
123
+ }
124
+ try {
125
+ const raw = await readFile(settingsPath, 'utf-8');
126
+ return JSON.parse(raw);
127
+ }
128
+ catch (error) {
129
+ logger.debug(`[plugin] Failed to read plugin settings: ${error instanceof Error ? error.message : String(error)}`);
130
+ return {};
131
+ }
132
+ }
133
+ /**
134
+ * Write plugin settings to ~/.codemie/plugins.json
135
+ */
136
+ export async function writePluginSettings(settings) {
137
+ const settingsPath = getCodemiePath('plugins.json');
138
+ const pluginsDir = getCodemiePath('plugins');
139
+ await mkdir(pluginsDir, { recursive: true });
140
+ await writeFile(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
141
+ }
142
+ /**
143
+ * Enable a plugin by name (remove from disabled list)
144
+ */
145
+ export async function enablePlugin(pluginName) {
146
+ validatePluginName(pluginName);
147
+ const settings = await readPluginSettings();
148
+ settings.disabled = (settings.disabled || []).filter(n => n !== pluginName);
149
+ await writePluginSettings(settings);
150
+ }
151
+ /**
152
+ * Disable a plugin by name (add to disabled list)
153
+ */
154
+ export async function disablePlugin(pluginName) {
155
+ validatePluginName(pluginName);
156
+ const settings = await readPluginSettings();
157
+ settings.disabled = settings.disabled || [];
158
+ if (!settings.disabled.includes(pluginName)) {
159
+ settings.disabled.push(pluginName);
160
+ }
161
+ await writePluginSettings(settings);
162
+ }
163
+ /**
164
+ * Check if a plugin is installed in the cache
165
+ */
166
+ export function isPluginCached(pluginName) {
167
+ validatePluginName(pluginName);
168
+ return existsSync(join(getPluginCacheDir(), pluginName));
169
+ }
170
+ //# sourceMappingURL=plugin-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-cache.js","sourceRoot":"","sources":["../../../src/plugins/core/plugin-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Plugin Loader
3
+ *
4
+ * Loads a single plugin from a directory. Parses the manifest and discovers
5
+ * all components (skills, commands, agents, hooks, MCP servers).
6
+ */
7
+ import type { LoadedPlugin, PluginSource } from './types.js';
8
+ /**
9
+ * Load a plugin from a directory
10
+ *
11
+ * Parses the manifest, discovers all components (skills, commands, agents,
12
+ * hooks, MCP servers), and returns a fully loaded plugin object.
13
+ *
14
+ * @param pluginDir - Absolute path to the plugin root directory
15
+ * @param source - Where this plugin was found (local, user, project)
16
+ * @param enabled - Whether the plugin should be enabled (default: true)
17
+ * @returns Loaded plugin with all discovered components
18
+ * @throws Error if the directory doesn't exist or manifest is invalid
19
+ */
20
+ export declare function loadPlugin(pluginDir: string, source: PluginSource, enabled?: boolean): Promise<LoadedPlugin>;
21
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../../src/plugins/core/plugin-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,OAAc,GACtB,OAAO,CAAC,YAAY,CAAC,CAmCvB"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Plugin Loader
3
+ *
4
+ * Loads a single plugin from a directory. Parses the manifest and discovers
5
+ * all components (skills, commands, agents, hooks, MCP servers).
6
+ */
7
+ import { existsSync } from 'fs';
8
+ import { logger } from '../../utils/logger.js';
9
+ import { parseManifest } from './manifest-parser.js';
10
+ import { discoverPluginSkills, discoverPluginCommands } from '../loaders/skills-loader.js';
11
+ import { loadPluginHooks } from '../loaders/hooks-loader.js';
12
+ import { loadPluginMcpServers } from '../loaders/mcp-loader.js';
13
+ import { discoverPluginAgents } from '../loaders/agents-loader.js';
14
+ /**
15
+ * Load a plugin from a directory
16
+ *
17
+ * Parses the manifest, discovers all components (skills, commands, agents,
18
+ * hooks, MCP servers), and returns a fully loaded plugin object.
19
+ *
20
+ * @param pluginDir - Absolute path to the plugin root directory
21
+ * @param source - Where this plugin was found (local, user, project)
22
+ * @param enabled - Whether the plugin should be enabled (default: true)
23
+ * @returns Loaded plugin with all discovered components
24
+ * @throws Error if the directory doesn't exist or manifest is invalid
25
+ */
26
+ export async function loadPlugin(pluginDir, source, enabled = true) {
27
+ if (!existsSync(pluginDir)) {
28
+ throw new Error(`Plugin directory does not exist: ${pluginDir}`);
29
+ }
30
+ // Parse manifest
31
+ const manifest = await parseManifest(pluginDir);
32
+ logger.debug(`[plugin] Loading plugin "${manifest.name}" from ${pluginDir}`);
33
+ // Discover all components in parallel
34
+ const [skills, commands, agents, hooks, mcpServers] = await Promise.all([
35
+ discoverPluginSkills(pluginDir, manifest),
36
+ discoverPluginCommands(pluginDir, manifest),
37
+ discoverPluginAgents(pluginDir, manifest),
38
+ loadPluginHooks(pluginDir, manifest),
39
+ loadPluginMcpServers(pluginDir, manifest),
40
+ ]);
41
+ const plugin = {
42
+ manifest,
43
+ rootDir: pluginDir,
44
+ source,
45
+ enabled,
46
+ skills,
47
+ commands,
48
+ agents,
49
+ hooks,
50
+ mcpServers,
51
+ };
52
+ logger.debug(`[plugin] Loaded "${manifest.name}": ${skills.length} skills, ${commands.length} commands, ${agents.length} agents`);
53
+ return plugin;
54
+ }
55
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../../src/plugins/core/plugin-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,MAAoB,EACpB,UAAmB,IAAI;IAEvB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,UAAU,SAAS,EAAE,CAAC,CAAC;IAE7E,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtE,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACzC,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC3C,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACzC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC;QACpC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC1C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAiB;QAC3B,QAAQ;QACR,OAAO,EAAE,SAAS;QAClB,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,UAAU;KACX,CAAC;IAEF,MAAM,CAAC,KAAK,CACV,oBAAoB,QAAQ,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,YAAY,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,MAAM,SAAS,CACpH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Plugin Resolver
3
+ *
4
+ * Discovers plugins from multiple sources, resolves enabled/disabled state,
5
+ * and returns an ordered list of loaded plugins. Higher-priority sources
6
+ * win when the same plugin exists in multiple locations.
7
+ */
8
+ import type { LoadedPlugin, PluginSettings } from './types.js';
9
+ /**
10
+ * Options for plugin resolution
11
+ */
12
+ export interface PluginResolverOptions {
13
+ /** Additional plugin directories from CLI flags (highest priority) */
14
+ cliDirs?: string[];
15
+ /** Working directory for project-level plugins */
16
+ cwd?: string;
17
+ /** Plugin settings from config */
18
+ settings?: PluginSettings;
19
+ }
20
+ /**
21
+ * Resolve all plugins from all sources
22
+ *
23
+ * Discovery sources (in priority order):
24
+ * 1. CLI flag directories (--plugin-dir) — highest priority
25
+ * 2. Project plugins (.codemie/plugins/) — team-shared
26
+ * 3. User cache (~/.codemie/plugins/cache/) — personal installs
27
+ * 4. Settings dirs (from config plugins.dirs) — managed
28
+ *
29
+ * @param options - Resolution options
30
+ * @returns Array of loaded plugins, deduplicated (highest priority wins)
31
+ */
32
+ export declare function resolvePlugins(options?: PluginResolverOptions): Promise<LoadedPlugin[]>;
33
+ //# sourceMappingURL=plugin-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-resolver.d.ts","sourceRoot":"","sources":["../../../src/plugins/core/plugin-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,YAAY,EAAE,CAAC,CA2CzB"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Plugin Resolver
3
+ *
4
+ * Discovers plugins from multiple sources, resolves enabled/disabled state,
5
+ * and returns an ordered list of loaded plugins. Higher-priority sources
6
+ * win when the same plugin exists in multiple locations.
7
+ */
8
+ import { join, basename } from 'path';
9
+ import { existsSync } from 'fs';
10
+ import { readdir } from 'fs/promises';
11
+ import { logger } from '../../utils/logger.js';
12
+ import { getCodemiePath } from '../../utils/paths.js';
13
+ import { loadPlugin } from './plugin-loader.js';
14
+ /**
15
+ * Resolve all plugins from all sources
16
+ *
17
+ * Discovery sources (in priority order):
18
+ * 1. CLI flag directories (--plugin-dir) — highest priority
19
+ * 2. Project plugins (.codemie/plugins/) — team-shared
20
+ * 3. User cache (~/.codemie/plugins/cache/) — personal installs
21
+ * 4. Settings dirs (from config plugins.dirs) — managed
22
+ *
23
+ * @param options - Resolution options
24
+ * @returns Array of loaded plugins, deduplicated (highest priority wins)
25
+ */
26
+ export async function resolvePlugins(options = {}) {
27
+ const { cliDirs = [], cwd = process.cwd(), settings = {} } = options;
28
+ const disabledSet = new Set(settings.disabled || []);
29
+ const enabledSet = settings.enabled ? new Set(settings.enabled) : null;
30
+ // Discover from all sources
31
+ const sources = [
32
+ { dirs: cliDirs, source: 'local', priority: 400 },
33
+ { dirs: await getProjectPluginDirs(cwd), source: 'project', priority: 300 },
34
+ { dirs: await getUserPluginDirs(), source: 'user', priority: 200 },
35
+ { dirs: settings.dirs || [], source: 'local', priority: 100 },
36
+ ];
37
+ // Load all plugins from all sources
38
+ const pluginMap = new Map();
39
+ for (const { dirs, source, priority: _priority } of sources) {
40
+ for (const dir of dirs) {
41
+ try {
42
+ const isEnabled = determineEnabled(dir, enabledSet, disabledSet);
43
+ const plugin = await loadPlugin(dir, source, isEnabled);
44
+ const name = plugin.manifest.name;
45
+ // Higher priority source wins (first encountered wins since we iterate highest first)
46
+ if (!pluginMap.has(name)) {
47
+ pluginMap.set(name, plugin);
48
+ }
49
+ else {
50
+ logger.debug(`[plugin] Skipping duplicate plugin "${name}" from ${dir} (already loaded from higher priority source)`);
51
+ }
52
+ }
53
+ catch (error) {
54
+ logger.debug(`[plugin] Failed to load plugin from ${dir}: ${error instanceof Error ? error.message : String(error)}`);
55
+ }
56
+ }
57
+ }
58
+ const plugins = Array.from(pluginMap.values());
59
+ logger.debug(`[plugin] Resolved ${plugins.length} plugins (${plugins.filter(p => p.enabled).length} enabled)`);
60
+ return plugins;
61
+ }
62
+ /**
63
+ * Get project-level plugin directories
64
+ *
65
+ * Scans .codemie/plugins/ for subdirectories, each treated as a plugin root.
66
+ */
67
+ async function getProjectPluginDirs(cwd) {
68
+ const projectPluginsDir = join(cwd, '.codemie', 'plugins');
69
+ if (!existsSync(projectPluginsDir)) {
70
+ return [];
71
+ }
72
+ try {
73
+ const entries = await readdir(projectPluginsDir, { withFileTypes: true });
74
+ return entries
75
+ .filter(entry => entry.isDirectory())
76
+ .map(entry => join(projectPluginsDir, entry.name));
77
+ }
78
+ catch {
79
+ return [];
80
+ }
81
+ }
82
+ /**
83
+ * Get user-level plugin directories from cache
84
+ */
85
+ async function getUserPluginDirs() {
86
+ const cacheDir = getCodemiePath('plugins', 'cache');
87
+ if (!existsSync(cacheDir)) {
88
+ return [];
89
+ }
90
+ try {
91
+ const entries = await readdir(cacheDir, { withFileTypes: true });
92
+ return entries
93
+ .filter(entry => entry.isDirectory())
94
+ .map(entry => join(cacheDir, entry.name));
95
+ }
96
+ catch (error) {
97
+ logger.debug(`[plugin] Failed to read user plugin cache: ${error instanceof Error ? error.message : String(error)}`);
98
+ return [];
99
+ }
100
+ }
101
+ /**
102
+ * Determine if a plugin directory should be enabled
103
+ */
104
+ function determineEnabled(dir, enabledSet, disabledSet) {
105
+ // Extract plugin name from directory for matching
106
+ const dirName = basename(dir);
107
+ // Explicit disabled takes precedence
108
+ if (disabledSet.has(dirName)) {
109
+ return false;
110
+ }
111
+ // If enabledSet exists, only enable explicitly listed plugins
112
+ if (enabledSet) {
113
+ return enabledSet.has(dirName);
114
+ }
115
+ // Default: enabled
116
+ return true;
117
+ }
118
+ //# sourceMappingURL=plugin-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-resolver.js","sourceRoot":"","sources":["../../../src/plugins/core/plugin-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Plugin System Types
3
+ *
4
+ * Defines interfaces for the native plugin system following the Anthropic
5
+ * Claude Code plugin format (.claude-plugin/plugin.json, skills/, commands/, etc.)
6
+ */
7
+ import type { HooksConfiguration } from '../../hooks/types.js';
8
+ /**
9
+ * Author information for a plugin
10
+ */
11
+ export interface PluginAuthor {
12
+ name: string;
13
+ email?: string;
14
+ url?: string;
15
+ }
16
+ /**
17
+ * MCP server configuration from a plugin
18
+ */
19
+ export interface McpConfig {
20
+ mcpServers: Record<string, McpServerConfig>;
21
+ }
22
+ /**
23
+ * Individual MCP server configuration
24
+ */
25
+ export interface McpServerConfig {
26
+ command: string;
27
+ args?: string[];
28
+ env?: Record<string, string>;
29
+ cwd?: string;
30
+ }
31
+ /**
32
+ * LSP server configuration from a plugin
33
+ */
34
+ export interface LspConfig {
35
+ lspServers: Record<string, LspServerConfig>;
36
+ }
37
+ /**
38
+ * Individual LSP server configuration
39
+ */
40
+ export interface LspServerConfig {
41
+ command: string;
42
+ args?: string[];
43
+ env?: Record<string, string>;
44
+ languages?: string[];
45
+ }
46
+ /**
47
+ * Plugin manifest as defined in .claude-plugin/plugin.json
48
+ *
49
+ * Follows the Anthropic Claude Code plugin format.
50
+ */
51
+ export interface PluginManifest {
52
+ /** Plugin name (required, kebab-case) */
53
+ name: string;
54
+ /** Semantic version */
55
+ version?: string;
56
+ /** Human-readable description */
57
+ description?: string;
58
+ /** Author information */
59
+ author?: PluginAuthor;
60
+ /** Plugin homepage URL */
61
+ homepage?: string;
62
+ /** Source repository URL */
63
+ repository?: string;
64
+ /** License identifier (e.g., 'MIT', 'Apache-2.0') */
65
+ license?: string;
66
+ /** Search keywords */
67
+ keywords?: string[];
68
+ /** Commands directory path override(s) */
69
+ commands?: string | string[];
70
+ /** Agents directory path override(s) */
71
+ agents?: string | string[];
72
+ /** Skills directory path override(s) */
73
+ skills?: string | string[];
74
+ /** Hooks config path(s) or inline config */
75
+ hooks?: string | string[] | HooksConfiguration;
76
+ /** MCP servers config path(s) or inline config */
77
+ mcpServers?: string | string[] | McpConfig;
78
+ /** LSP servers config path(s) or inline config */
79
+ lspServers?: string | string[] | LspConfig;
80
+ /** Output style path overrides */
81
+ outputStyles?: string | string[];
82
+ }
83
+ /**
84
+ * A skill discovered from a plugin's skills/ or commands/ directory
85
+ */
86
+ export interface PluginSkill {
87
+ /** Name of the parent plugin */
88
+ pluginName: string;
89
+ /** Original skill name from SKILL.md frontmatter */
90
+ skillName: string;
91
+ /** Namespaced name: "plugin-name:skill-name" */
92
+ namespacedName: string;
93
+ /** Absolute path to the skill file */
94
+ filePath: string;
95
+ /** Raw file content (markdown body after frontmatter) */
96
+ content: string;
97
+ /** Parsed frontmatter metadata */
98
+ metadata: Record<string, unknown>;
99
+ }
100
+ /**
101
+ * A command discovered from a plugin's commands/ directory
102
+ */
103
+ export interface PluginCommand {
104
+ /** Name of the parent plugin */
105
+ pluginName: string;
106
+ /** Original command name */
107
+ commandName: string;
108
+ /** Namespaced name: "plugin-name:command-name" */
109
+ namespacedName: string;
110
+ /** Absolute path to the command file */
111
+ filePath: string;
112
+ /** Raw file content */
113
+ content: string;
114
+ /** Parsed frontmatter metadata */
115
+ metadata: Record<string, unknown>;
116
+ }
117
+ /**
118
+ * An agent discovered from a plugin's agents/ directory
119
+ */
120
+ export interface PluginAgent {
121
+ /** Name of the parent plugin */
122
+ pluginName: string;
123
+ /** Original agent name */
124
+ agentName: string;
125
+ /** Namespaced name: "plugin-name:agent-name" */
126
+ namespacedName: string;
127
+ /** Absolute path to the agent file */
128
+ filePath: string;
129
+ /** Raw file content */
130
+ content: string;
131
+ /** Parsed frontmatter metadata */
132
+ metadata: Record<string, unknown>;
133
+ }
134
+ /**
135
+ * Source of where a plugin was found/installed
136
+ */
137
+ export type PluginSource = 'local' | 'user' | 'project';
138
+ /**
139
+ * A fully loaded and resolved plugin with all its components
140
+ */
141
+ export interface LoadedPlugin {
142
+ /** Parsed manifest from plugin.json */
143
+ manifest: PluginManifest;
144
+ /** Absolute path to the plugin root directory */
145
+ rootDir: string;
146
+ /** Where the plugin was found/installed */
147
+ source: PluginSource;
148
+ /** Whether this plugin is enabled */
149
+ enabled: boolean;
150
+ /** Discovered skills with namespace prefix */
151
+ skills: PluginSkill[];
152
+ /** Discovered commands with namespace prefix */
153
+ commands: PluginCommand[];
154
+ /** Discovered agents with namespace prefix */
155
+ agents: PluginAgent[];
156
+ /** Merged hooks configuration (or null if none) */
157
+ hooks: HooksConfiguration | null;
158
+ /** Merged MCP server configuration (or null if none) */
159
+ mcpServers: McpConfig | null;
160
+ }
161
+ /**
162
+ * Plugin settings stored in config
163
+ */
164
+ export interface PluginSettings {
165
+ /** Explicitly enabled plugin names */
166
+ enabled?: string[];
167
+ /** Explicitly disabled plugin names */
168
+ disabled?: string[];
169
+ /** Additional plugin directories to scan */
170
+ dirs?: string[];
171
+ }
172
+ /**
173
+ * Error codes for plugin operations
174
+ */
175
+ export declare enum PluginErrorCode {
176
+ MANIFEST_NOT_FOUND = "MANIFEST_NOT_FOUND",
177
+ MANIFEST_INVALID = "MANIFEST_INVALID",
178
+ PLUGIN_NOT_FOUND = "PLUGIN_NOT_FOUND",
179
+ PLUGIN_ALREADY_INSTALLED = "PLUGIN_ALREADY_INSTALLED",
180
+ INSTALL_FAILED = "INSTALL_FAILED",
181
+ LOAD_FAILED = "LOAD_FAILED"
182
+ }
183
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Plugin System Types
3
+ *
4
+ * Defines interfaces for the native plugin system following the Anthropic
5
+ * Claude Code plugin format (.claude-plugin/plugin.json, skills/, commands/, etc.)
6
+ */
7
+ // ============================================================================
8
+ // Plugin Errors
9
+ // ============================================================================
10
+ /**
11
+ * Error codes for plugin operations
12
+ */
13
+ export var PluginErrorCode;
14
+ (function (PluginErrorCode) {
15
+ PluginErrorCode["MANIFEST_NOT_FOUND"] = "MANIFEST_NOT_FOUND";
16
+ PluginErrorCode["MANIFEST_INVALID"] = "MANIFEST_INVALID";
17
+ PluginErrorCode["PLUGIN_NOT_FOUND"] = "PLUGIN_NOT_FOUND";
18
+ PluginErrorCode["PLUGIN_ALREADY_INSTALLED"] = "PLUGIN_ALREADY_INSTALLED";
19
+ PluginErrorCode["INSTALL_FAILED"] = "INSTALL_FAILED";
20
+ PluginErrorCode["LOAD_FAILED"] = "LOAD_FAILED";
21
+ })(PluginErrorCode || (PluginErrorCode = {}));
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2OH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,4DAAyC,CAAA;IACzC,wDAAqC,CAAA;IACrC,wDAAqC,CAAA;IACrC,wEAAqD,CAAA;IACrD,oDAAiC,CAAA;IACjC,8CAA2B,CAAA;AAC7B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B"}