@useconductor/conductor 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/.claude-plugin/marketplace.json +33 -0
  2. package/.claude-plugin/plugin.json +23 -0
  3. package/.eslintrc.json +23 -0
  4. package/.gitattributes +6 -0
  5. package/.github/FUNDING.yml +15 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.yml +91 -0
  7. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.yml +63 -0
  9. package/.github/ISSUE_TEMPLATE/plugin_request.yml +71 -0
  10. package/.github/README.md +13 -0
  11. package/.github/workflows/README.md +22 -0
  12. package/.github/workflows/auto-release.yml +112 -0
  13. package/.github/workflows/ci.yml +49 -0
  14. package/.github/workflows/claude-code-review.yml +44 -0
  15. package/.github/workflows/claude.yml +36 -0
  16. package/.github/workflows/sync-install.yml +47 -0
  17. package/.mcp.json +9 -0
  18. package/.prettierrc.json +7 -0
  19. package/C.png +0 -0
  20. package/CHANGELOG.md +74 -0
  21. package/CLAUDE.md +118 -0
  22. package/CONTRIBUTING.md +231 -0
  23. package/LICENSE +201 -0
  24. package/README.md +179 -0
  25. package/SECURITY.md +47 -0
  26. package/commands/conductor-setup.md +11 -0
  27. package/commands/conductor-status.md +7 -0
  28. package/dist/ai/base.d.ts +44 -0
  29. package/dist/ai/base.d.ts.map +1 -0
  30. package/dist/ai/base.js +47 -0
  31. package/dist/ai/base.js.map +1 -0
  32. package/dist/ai/claude.d.ts +11 -0
  33. package/dist/ai/claude.d.ts.map +1 -0
  34. package/dist/ai/claude.js +149 -0
  35. package/dist/ai/claude.js.map +1 -0
  36. package/dist/ai/gemini.d.ts +15 -0
  37. package/dist/ai/gemini.d.ts.map +1 -0
  38. package/dist/ai/gemini.js +156 -0
  39. package/dist/ai/gemini.js.map +1 -0
  40. package/dist/ai/maestro.d.ts +22 -0
  41. package/dist/ai/maestro.d.ts.map +1 -0
  42. package/dist/ai/maestro.js +142 -0
  43. package/dist/ai/maestro.js.map +1 -0
  44. package/dist/ai/manager.d.ts +47 -0
  45. package/dist/ai/manager.d.ts.map +1 -0
  46. package/dist/ai/manager.js +450 -0
  47. package/dist/ai/manager.js.map +1 -0
  48. package/dist/ai/ollama.d.ts +16 -0
  49. package/dist/ai/ollama.d.ts.map +1 -0
  50. package/dist/ai/ollama.js +151 -0
  51. package/dist/ai/ollama.js.map +1 -0
  52. package/dist/ai/openai.d.ts +11 -0
  53. package/dist/ai/openai.d.ts.map +1 -0
  54. package/dist/ai/openai.js +132 -0
  55. package/dist/ai/openai.js.map +1 -0
  56. package/dist/ai/openrouter.d.ts +11 -0
  57. package/dist/ai/openrouter.d.ts.map +1 -0
  58. package/dist/ai/openrouter.js +139 -0
  59. package/dist/ai/openrouter.js.map +1 -0
  60. package/dist/bot/slack.d.ts +17 -0
  61. package/dist/bot/slack.d.ts.map +1 -0
  62. package/dist/bot/slack.js +144 -0
  63. package/dist/bot/slack.js.map +1 -0
  64. package/dist/bot/telegram.d.ts +19 -0
  65. package/dist/bot/telegram.d.ts.map +1 -0
  66. package/dist/bot/telegram.js +157 -0
  67. package/dist/bot/telegram.js.map +1 -0
  68. package/dist/cli/commands/ai.d.ts +4 -0
  69. package/dist/cli/commands/ai.d.ts.map +1 -0
  70. package/dist/cli/commands/ai.js +161 -0
  71. package/dist/cli/commands/ai.js.map +1 -0
  72. package/dist/cli/commands/doctor.d.ts +18 -0
  73. package/dist/cli/commands/doctor.d.ts.map +1 -0
  74. package/dist/cli/commands/doctor.js +213 -0
  75. package/dist/cli/commands/doctor.js.map +1 -0
  76. package/dist/cli/commands/init.d.ts +15 -0
  77. package/dist/cli/commands/init.d.ts.map +1 -0
  78. package/dist/cli/commands/init.js +281 -0
  79. package/dist/cli/commands/init.js.map +1 -0
  80. package/dist/cli/commands/install.d.ts +16 -0
  81. package/dist/cli/commands/install.d.ts.map +1 -0
  82. package/dist/cli/commands/install.js +750 -0
  83. package/dist/cli/commands/install.js.map +1 -0
  84. package/dist/cli/commands/lifecycle.d.ts +4 -0
  85. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  86. package/dist/cli/commands/lifecycle.js +84 -0
  87. package/dist/cli/commands/lifecycle.js.map +1 -0
  88. package/dist/cli/commands/marketplace.d.ts +13 -0
  89. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  90. package/dist/cli/commands/marketplace.js +197 -0
  91. package/dist/cli/commands/marketplace.js.map +1 -0
  92. package/dist/cli/commands/mcp.d.ts +6 -0
  93. package/dist/cli/commands/mcp.d.ts.map +1 -0
  94. package/dist/cli/commands/mcp.js +83 -0
  95. package/dist/cli/commands/mcp.js.map +1 -0
  96. package/dist/cli/commands/onboard.d.ts +10 -0
  97. package/dist/cli/commands/onboard.d.ts.map +1 -0
  98. package/dist/cli/commands/onboard.js +207 -0
  99. package/dist/cli/commands/onboard.js.map +1 -0
  100. package/dist/cli/commands/plugin-create.d.ts +13 -0
  101. package/dist/cli/commands/plugin-create.d.ts.map +1 -0
  102. package/dist/cli/commands/plugin-create.js +122 -0
  103. package/dist/cli/commands/plugin-create.js.map +1 -0
  104. package/dist/cli/commands/plugins.d.ts +5 -0
  105. package/dist/cli/commands/plugins.d.ts.map +1 -0
  106. package/dist/cli/commands/plugins.js +30 -0
  107. package/dist/cli/commands/plugins.js.map +1 -0
  108. package/dist/cli/commands/release.d.ts +13 -0
  109. package/dist/cli/commands/release.d.ts.map +1 -0
  110. package/dist/cli/commands/release.js +243 -0
  111. package/dist/cli/commands/release.js.map +1 -0
  112. package/dist/cli/commands/telegram.d.ts +3 -0
  113. package/dist/cli/commands/telegram.d.ts.map +1 -0
  114. package/dist/cli/commands/telegram.js +20 -0
  115. package/dist/cli/commands/telegram.js.map +1 -0
  116. package/dist/cli/index.d.ts +3 -0
  117. package/dist/cli/index.d.ts.map +1 -0
  118. package/dist/cli/index.js +402 -0
  119. package/dist/cli/index.js.map +1 -0
  120. package/dist/config/oauth.d.ts +8 -0
  121. package/dist/config/oauth.d.ts.map +1 -0
  122. package/dist/config/oauth.js +13 -0
  123. package/dist/config/oauth.js.map +1 -0
  124. package/dist/core/audit.d.ts +91 -0
  125. package/dist/core/audit.d.ts.map +1 -0
  126. package/dist/core/audit.js +233 -0
  127. package/dist/core/audit.js.map +1 -0
  128. package/dist/core/circuit-breaker.d.ts +56 -0
  129. package/dist/core/circuit-breaker.d.ts.map +1 -0
  130. package/dist/core/circuit-breaker.js +107 -0
  131. package/dist/core/circuit-breaker.js.map +1 -0
  132. package/dist/core/conductor.d.ts +44 -0
  133. package/dist/core/conductor.d.ts.map +1 -0
  134. package/dist/core/conductor.js +200 -0
  135. package/dist/core/conductor.js.map +1 -0
  136. package/dist/core/config.d.ts +66 -0
  137. package/dist/core/config.d.ts.map +1 -0
  138. package/dist/core/config.js +86 -0
  139. package/dist/core/config.js.map +1 -0
  140. package/dist/core/database.d.ts +59 -0
  141. package/dist/core/database.d.ts.map +1 -0
  142. package/dist/core/database.js +342 -0
  143. package/dist/core/database.js.map +1 -0
  144. package/dist/core/errors.d.ts +231 -0
  145. package/dist/core/errors.d.ts.map +1 -0
  146. package/dist/core/errors.js +254 -0
  147. package/dist/core/errors.js.map +1 -0
  148. package/dist/core/health.d.ts +72 -0
  149. package/dist/core/health.d.ts.map +1 -0
  150. package/dist/core/health.js +116 -0
  151. package/dist/core/health.js.map +1 -0
  152. package/dist/core/interfaces.d.ts +62 -0
  153. package/dist/core/interfaces.d.ts.map +1 -0
  154. package/dist/core/interfaces.js +8 -0
  155. package/dist/core/interfaces.js.map +1 -0
  156. package/dist/core/logger.d.ts +15 -0
  157. package/dist/core/logger.d.ts.map +1 -0
  158. package/dist/core/logger.js +30 -0
  159. package/dist/core/logger.js.map +1 -0
  160. package/dist/core/rbac.d.ts +132 -0
  161. package/dist/core/rbac.d.ts.map +1 -0
  162. package/dist/core/rbac.js +230 -0
  163. package/dist/core/rbac.js.map +1 -0
  164. package/dist/core/retry.d.ts +22 -0
  165. package/dist/core/retry.d.ts.map +1 -0
  166. package/dist/core/retry.js +41 -0
  167. package/dist/core/retry.js.map +1 -0
  168. package/dist/core/webhooks.d.ts +92 -0
  169. package/dist/core/webhooks.d.ts.map +1 -0
  170. package/dist/core/webhooks.js +176 -0
  171. package/dist/core/webhooks.js.map +1 -0
  172. package/dist/core/zero-config.d.ts +22 -0
  173. package/dist/core/zero-config.d.ts.map +1 -0
  174. package/dist/core/zero-config.js +59 -0
  175. package/dist/core/zero-config.js.map +1 -0
  176. package/dist/dashboard/cli.d.ts +6 -0
  177. package/dist/dashboard/cli.d.ts.map +1 -0
  178. package/dist/dashboard/cli.js +42 -0
  179. package/dist/dashboard/cli.js.map +1 -0
  180. package/dist/dashboard/index.html +3426 -0
  181. package/dist/dashboard/server.d.ts +7 -0
  182. package/dist/dashboard/server.d.ts.map +1 -0
  183. package/dist/dashboard/server.js +1427 -0
  184. package/dist/dashboard/server.js.map +1 -0
  185. package/dist/mcp/server.d.ts +27 -0
  186. package/dist/mcp/server.d.ts.map +1 -0
  187. package/dist/mcp/server.js +380 -0
  188. package/dist/mcp/server.js.map +1 -0
  189. package/dist/mcp/tools/misc.d.ts +15 -0
  190. package/dist/mcp/tools/misc.d.ts.map +1 -0
  191. package/dist/mcp/tools/misc.js +49 -0
  192. package/dist/mcp/tools/misc.js.map +1 -0
  193. package/dist/plugins/builtin/calculator.d.ts +11 -0
  194. package/dist/plugins/builtin/calculator.d.ts.map +1 -0
  195. package/dist/plugins/builtin/calculator.js +166 -0
  196. package/dist/plugins/builtin/calculator.js.map +1 -0
  197. package/dist/plugins/builtin/colors.d.ts +15 -0
  198. package/dist/plugins/builtin/colors.d.ts.map +1 -0
  199. package/dist/plugins/builtin/colors.js +193 -0
  200. package/dist/plugins/builtin/colors.js.map +1 -0
  201. package/dist/plugins/builtin/cron.d.ts +40 -0
  202. package/dist/plugins/builtin/cron.d.ts.map +1 -0
  203. package/dist/plugins/builtin/cron.js +578 -0
  204. package/dist/plugins/builtin/cron.js.map +1 -0
  205. package/dist/plugins/builtin/crypto.d.ts +11 -0
  206. package/dist/plugins/builtin/crypto.d.ts.map +1 -0
  207. package/dist/plugins/builtin/crypto.js +83 -0
  208. package/dist/plugins/builtin/crypto.js.map +1 -0
  209. package/dist/plugins/builtin/database.d.ts +29 -0
  210. package/dist/plugins/builtin/database.d.ts.map +1 -0
  211. package/dist/plugins/builtin/database.js +230 -0
  212. package/dist/plugins/builtin/database.js.map +1 -0
  213. package/dist/plugins/builtin/docker.d.ts +12 -0
  214. package/dist/plugins/builtin/docker.d.ts.map +1 -0
  215. package/dist/plugins/builtin/docker.js +436 -0
  216. package/dist/plugins/builtin/docker.js.map +1 -0
  217. package/dist/plugins/builtin/fun.d.ts +11 -0
  218. package/dist/plugins/builtin/fun.d.ts.map +1 -0
  219. package/dist/plugins/builtin/fun.js +114 -0
  220. package/dist/plugins/builtin/fun.js.map +1 -0
  221. package/dist/plugins/builtin/gcal.d.ts +38 -0
  222. package/dist/plugins/builtin/gcal.d.ts.map +1 -0
  223. package/dist/plugins/builtin/gcal.js +280 -0
  224. package/dist/plugins/builtin/gcal.js.map +1 -0
  225. package/dist/plugins/builtin/gdrive.d.ts +26 -0
  226. package/dist/plugins/builtin/gdrive.d.ts.map +1 -0
  227. package/dist/plugins/builtin/gdrive.js +295 -0
  228. package/dist/plugins/builtin/gdrive.js.map +1 -0
  229. package/dist/plugins/builtin/github-actions.d.ts +38 -0
  230. package/dist/plugins/builtin/github-actions.d.ts.map +1 -0
  231. package/dist/plugins/builtin/github-actions.js +629 -0
  232. package/dist/plugins/builtin/github-actions.js.map +1 -0
  233. package/dist/plugins/builtin/github.d.ts +26 -0
  234. package/dist/plugins/builtin/github.d.ts.map +1 -0
  235. package/dist/plugins/builtin/github.js +800 -0
  236. package/dist/plugins/builtin/github.js.map +1 -0
  237. package/dist/plugins/builtin/gmail.d.ts +50 -0
  238. package/dist/plugins/builtin/gmail.d.ts.map +1 -0
  239. package/dist/plugins/builtin/gmail.js +445 -0
  240. package/dist/plugins/builtin/gmail.js.map +1 -0
  241. package/dist/plugins/builtin/hash.d.ts +11 -0
  242. package/dist/plugins/builtin/hash.d.ts.map +1 -0
  243. package/dist/plugins/builtin/hash.js +95 -0
  244. package/dist/plugins/builtin/hash.js.map +1 -0
  245. package/dist/plugins/builtin/homekit.d.ts +53 -0
  246. package/dist/plugins/builtin/homekit.d.ts.map +1 -0
  247. package/dist/plugins/builtin/homekit.js +341 -0
  248. package/dist/plugins/builtin/homekit.js.map +1 -0
  249. package/dist/plugins/builtin/index.d.ts +4 -0
  250. package/dist/plugins/builtin/index.d.ts.map +1 -0
  251. package/dist/plugins/builtin/index.js +96 -0
  252. package/dist/plugins/builtin/index.js.map +1 -0
  253. package/dist/plugins/builtin/jira.d.ts +50 -0
  254. package/dist/plugins/builtin/jira.d.ts.map +1 -0
  255. package/dist/plugins/builtin/jira.js +353 -0
  256. package/dist/plugins/builtin/jira.js.map +1 -0
  257. package/dist/plugins/builtin/linear.d.ts +35 -0
  258. package/dist/plugins/builtin/linear.d.ts.map +1 -0
  259. package/dist/plugins/builtin/linear.js +397 -0
  260. package/dist/plugins/builtin/linear.js.map +1 -0
  261. package/dist/plugins/builtin/lumen.d.ts +21 -0
  262. package/dist/plugins/builtin/lumen.d.ts.map +1 -0
  263. package/dist/plugins/builtin/lumen.js +404 -0
  264. package/dist/plugins/builtin/lumen.js.map +1 -0
  265. package/dist/plugins/builtin/memory.d.ts +22 -0
  266. package/dist/plugins/builtin/memory.d.ts.map +1 -0
  267. package/dist/plugins/builtin/memory.js +184 -0
  268. package/dist/plugins/builtin/memory.js.map +1 -0
  269. package/dist/plugins/builtin/n8n.d.ts +60 -0
  270. package/dist/plugins/builtin/n8n.d.ts.map +1 -0
  271. package/dist/plugins/builtin/n8n.js +519 -0
  272. package/dist/plugins/builtin/n8n.js.map +1 -0
  273. package/dist/plugins/builtin/network.d.ts +11 -0
  274. package/dist/plugins/builtin/network.d.ts.map +1 -0
  275. package/dist/plugins/builtin/network.js +88 -0
  276. package/dist/plugins/builtin/network.js.map +1 -0
  277. package/dist/plugins/builtin/notes.d.ts +47 -0
  278. package/dist/plugins/builtin/notes.d.ts.map +1 -0
  279. package/dist/plugins/builtin/notes.js +641 -0
  280. package/dist/plugins/builtin/notes.js.map +1 -0
  281. package/dist/plugins/builtin/notion.d.ts +47 -0
  282. package/dist/plugins/builtin/notion.d.ts.map +1 -0
  283. package/dist/plugins/builtin/notion.js +317 -0
  284. package/dist/plugins/builtin/notion.js.map +1 -0
  285. package/dist/plugins/builtin/shell.d.ts +12 -0
  286. package/dist/plugins/builtin/shell.d.ts.map +1 -0
  287. package/dist/plugins/builtin/shell.js +310 -0
  288. package/dist/plugins/builtin/shell.js.map +1 -0
  289. package/dist/plugins/builtin/slack.d.ts +31 -0
  290. package/dist/plugins/builtin/slack.d.ts.map +1 -0
  291. package/dist/plugins/builtin/slack.js +295 -0
  292. package/dist/plugins/builtin/slack.js.map +1 -0
  293. package/dist/plugins/builtin/spotify.d.ts +55 -0
  294. package/dist/plugins/builtin/spotify.d.ts.map +1 -0
  295. package/dist/plugins/builtin/spotify.js +623 -0
  296. package/dist/plugins/builtin/spotify.js.map +1 -0
  297. package/dist/plugins/builtin/stripe.d.ts +35 -0
  298. package/dist/plugins/builtin/stripe.d.ts.map +1 -0
  299. package/dist/plugins/builtin/stripe.js +376 -0
  300. package/dist/plugins/builtin/stripe.js.map +1 -0
  301. package/dist/plugins/builtin/system.d.ts +11 -0
  302. package/dist/plugins/builtin/system.d.ts.map +1 -0
  303. package/dist/plugins/builtin/system.js +91 -0
  304. package/dist/plugins/builtin/system.js.map +1 -0
  305. package/dist/plugins/builtin/text-tools.d.ts +11 -0
  306. package/dist/plugins/builtin/text-tools.d.ts.map +1 -0
  307. package/dist/plugins/builtin/text-tools.js +146 -0
  308. package/dist/plugins/builtin/text-tools.js.map +1 -0
  309. package/dist/plugins/builtin/timezone.d.ts +13 -0
  310. package/dist/plugins/builtin/timezone.d.ts.map +1 -0
  311. package/dist/plugins/builtin/timezone.js +164 -0
  312. package/dist/plugins/builtin/timezone.js.map +1 -0
  313. package/dist/plugins/builtin/todoist.d.ts +49 -0
  314. package/dist/plugins/builtin/todoist.d.ts.map +1 -0
  315. package/dist/plugins/builtin/todoist.js +540 -0
  316. package/dist/plugins/builtin/todoist.js.map +1 -0
  317. package/dist/plugins/builtin/translate.d.ts +11 -0
  318. package/dist/plugins/builtin/translate.d.ts.map +1 -0
  319. package/dist/plugins/builtin/translate.js +42 -0
  320. package/dist/plugins/builtin/translate.js.map +1 -0
  321. package/dist/plugins/builtin/url-tools.d.ts +11 -0
  322. package/dist/plugins/builtin/url-tools.d.ts.map +1 -0
  323. package/dist/plugins/builtin/url-tools.js +70 -0
  324. package/dist/plugins/builtin/url-tools.js.map +1 -0
  325. package/dist/plugins/builtin/vercel.d.ts +55 -0
  326. package/dist/plugins/builtin/vercel.d.ts.map +1 -0
  327. package/dist/plugins/builtin/vercel.js +514 -0
  328. package/dist/plugins/builtin/vercel.js.map +1 -0
  329. package/dist/plugins/builtin/weather.d.ts +13 -0
  330. package/dist/plugins/builtin/weather.d.ts.map +1 -0
  331. package/dist/plugins/builtin/weather.js +103 -0
  332. package/dist/plugins/builtin/weather.js.map +1 -0
  333. package/dist/plugins/builtin/x.d.ts +54 -0
  334. package/dist/plugins/builtin/x.d.ts.map +1 -0
  335. package/dist/plugins/builtin/x.js +402 -0
  336. package/dist/plugins/builtin/x.js.map +1 -0
  337. package/dist/plugins/manager.d.ts +77 -0
  338. package/dist/plugins/manager.d.ts.map +1 -0
  339. package/dist/plugins/manager.js +141 -0
  340. package/dist/plugins/manager.js.map +1 -0
  341. package/dist/plugins/validation.d.ts +18 -0
  342. package/dist/plugins/validation.d.ts.map +1 -0
  343. package/dist/plugins/validation.js +81 -0
  344. package/dist/plugins/validation.js.map +1 -0
  345. package/dist/security/auth.d.ts +23 -0
  346. package/dist/security/auth.d.ts.map +1 -0
  347. package/dist/security/auth.js +56 -0
  348. package/dist/security/auth.js.map +1 -0
  349. package/dist/security/keychain.d.ts +60 -0
  350. package/dist/security/keychain.d.ts.map +1 -0
  351. package/dist/security/keychain.js +213 -0
  352. package/dist/security/keychain.js.map +1 -0
  353. package/dist/utils/google-auth.d.ts +21 -0
  354. package/dist/utils/google-auth.d.ts.map +1 -0
  355. package/dist/utils/google-auth.js +135 -0
  356. package/dist/utils/google-auth.js.map +1 -0
  357. package/dist/utils/retry.d.ts +5 -0
  358. package/dist/utils/retry.d.ts.map +1 -0
  359. package/dist/utils/retry.js +34 -0
  360. package/dist/utils/retry.js.map +1 -0
  361. package/docs/README.md +13 -0
  362. package/docs/api.md +210 -0
  363. package/docs/getting-started.md +100 -0
  364. package/docs/plugins.md +306 -0
  365. package/docs-site/.vitepress/config.ts +59 -0
  366. package/docs-site/README.md +12 -0
  367. package/docs-site/index.md +30 -0
  368. package/eslint.config.js +29 -0
  369. package/install.ps1 +334 -0
  370. package/install.sh +1119 -0
  371. package/local-install.sh +304 -0
  372. package/package.json +90 -0
  373. package/packages/README.md +11 -0
  374. package/packages/plugin-sdk/README.md +12 -0
  375. package/packages/plugin-sdk/package.json +22 -0
  376. package/packages/plugin-sdk/src/README.md +11 -0
  377. package/packages/plugin-sdk/src/index.ts +191 -0
  378. package/sdks/README.md +26 -0
  379. package/sdks/csharp/ConductorClient.cs +65 -0
  380. package/sdks/csharp/README.md +11 -0
  381. package/sdks/go/README.md +11 -0
  382. package/sdks/go/conductor.go +257 -0
  383. package/sdks/java/ConductorClient.java +27 -0
  384. package/sdks/java/README.md +11 -0
  385. package/sdks/php/README.md +11 -0
  386. package/sdks/php/src/Client.php +72 -0
  387. package/sdks/python/README.md +12 -0
  388. package/sdks/python/conductor/__init__.py +227 -0
  389. package/sdks/python/pyproject.toml +30 -0
  390. package/sdks/ruby/README.md +11 -0
  391. package/sdks/ruby/lib/conductor.rb +46 -0
  392. package/sdks/rust/Cargo.toml +14 -0
  393. package/sdks/rust/README.md +11 -0
  394. package/sdks/swift/README.md +11 -0
  395. package/sdks/swift/Sources/Conductor/ConductorClient.swift +65 -0
  396. package/skills/conductor-mcp/SKILL.md +38 -0
  397. package/src/README.md +20 -0
  398. package/src/ai/README.md +18 -0
  399. package/src/ai/base.ts +93 -0
  400. package/src/ai/claude.ts +162 -0
  401. package/src/ai/gemini.ts +188 -0
  402. package/src/ai/maestro.ts +168 -0
  403. package/src/ai/manager.ts +537 -0
  404. package/src/ai/ollama.ts +186 -0
  405. package/src/ai/openai.ts +147 -0
  406. package/src/ai/openrouter.ts +152 -0
  407. package/src/bot/README.md +12 -0
  408. package/src/bot/slack.ts +164 -0
  409. package/src/bot/telegram.ts +185 -0
  410. package/src/cli/README.md +24 -0
  411. package/src/cli/commands/README.md +20 -0
  412. package/src/cli/commands/ai.ts +170 -0
  413. package/src/cli/commands/doctor.ts +221 -0
  414. package/src/cli/commands/init.ts +348 -0
  415. package/src/cli/commands/install.ts +792 -0
  416. package/src/cli/commands/lifecycle.ts +95 -0
  417. package/src/cli/commands/marketplace.ts +253 -0
  418. package/src/cli/commands/mcp.ts +92 -0
  419. package/src/cli/commands/onboard.ts +248 -0
  420. package/src/cli/commands/plugin-create.ts +130 -0
  421. package/src/cli/commands/plugins.ts +36 -0
  422. package/src/cli/commands/release.ts +251 -0
  423. package/src/cli/commands/telegram.ts +25 -0
  424. package/src/cli/index.ts +450 -0
  425. package/src/config/README.md +11 -0
  426. package/src/config/oauth.ts +26 -0
  427. package/src/core/README.md +22 -0
  428. package/src/core/audit.ts +291 -0
  429. package/src/core/circuit-breaker.ts +129 -0
  430. package/src/core/conductor.ts +240 -0
  431. package/src/core/config.ts +149 -0
  432. package/src/core/database.ts +411 -0
  433. package/src/core/errors.ts +275 -0
  434. package/src/core/health.ts +159 -0
  435. package/src/core/interfaces.ts +75 -0
  436. package/src/core/logger.ts +33 -0
  437. package/src/core/rbac.ts +321 -0
  438. package/src/core/retry.ts +61 -0
  439. package/src/core/webhooks.ts +234 -0
  440. package/src/core/zero-config.ts +72 -0
  441. package/src/dashboard/README.md +15 -0
  442. package/src/dashboard/cli.ts +48 -0
  443. package/src/dashboard/index.html +3426 -0
  444. package/src/dashboard/server.ts +1544 -0
  445. package/src/mcp/README.md +20 -0
  446. package/src/mcp/server.ts +475 -0
  447. package/src/mcp/tools/README.md +11 -0
  448. package/src/mcp/tools/misc.ts +61 -0
  449. package/src/plugins/README.md +28 -0
  450. package/src/plugins/builtin/README.md +23 -0
  451. package/src/plugins/builtin/calculator.ts +178 -0
  452. package/src/plugins/builtin/colors.ts +201 -0
  453. package/src/plugins/builtin/cron.ts +649 -0
  454. package/src/plugins/builtin/crypto.ts +85 -0
  455. package/src/plugins/builtin/database.ts +235 -0
  456. package/src/plugins/builtin/docker.ts +426 -0
  457. package/src/plugins/builtin/fun.ts +118 -0
  458. package/src/plugins/builtin/gcal.ts +305 -0
  459. package/src/plugins/builtin/gdrive.ts +326 -0
  460. package/src/plugins/builtin/github-actions.ts +666 -0
  461. package/src/plugins/builtin/github.ts +912 -0
  462. package/src/plugins/builtin/gmail.ts +492 -0
  463. package/src/plugins/builtin/hash.ts +98 -0
  464. package/src/plugins/builtin/homekit.ts +389 -0
  465. package/src/plugins/builtin/index.ts +116 -0
  466. package/src/plugins/builtin/jira.ts +380 -0
  467. package/src/plugins/builtin/linear.ts +448 -0
  468. package/src/plugins/builtin/lumen.ts +497 -0
  469. package/src/plugins/builtin/memory.ts +200 -0
  470. package/src/plugins/builtin/n8n.ts +565 -0
  471. package/src/plugins/builtin/network.ts +92 -0
  472. package/src/plugins/builtin/notes.ts +689 -0
  473. package/src/plugins/builtin/notion.ts +348 -0
  474. package/src/plugins/builtin/shell.ts +334 -0
  475. package/src/plugins/builtin/slack.ts +327 -0
  476. package/src/plugins/builtin/spotify.ts +665 -0
  477. package/src/plugins/builtin/stripe.ts +388 -0
  478. package/src/plugins/builtin/system.ts +93 -0
  479. package/src/plugins/builtin/text-tools.ts +150 -0
  480. package/src/plugins/builtin/timezone.ts +173 -0
  481. package/src/plugins/builtin/todoist.ts +625 -0
  482. package/src/plugins/builtin/translate.ts +47 -0
  483. package/src/plugins/builtin/url-tools.ts +73 -0
  484. package/src/plugins/builtin/vercel.ts +546 -0
  485. package/src/plugins/builtin/weather.ts +112 -0
  486. package/src/plugins/builtin/x.ts +440 -0
  487. package/src/plugins/manager.ts +213 -0
  488. package/src/plugins/validation.ts +94 -0
  489. package/src/security/README.md +12 -0
  490. package/src/security/auth.ts +72 -0
  491. package/src/security/keychain.ts +226 -0
  492. package/src/utils/README.md +12 -0
  493. package/src/utils/google-auth.ts +159 -0
  494. package/src/utils/retry.ts +41 -0
  495. package/test-all.mjs +1256 -0
  496. package/test.mjs +633 -0
  497. package/tests/README.md +19 -0
  498. package/tests/calculator.test.ts +54 -0
  499. package/tests/docker.test.ts +42 -0
  500. package/tests/load.test.ts +129 -0
  501. package/tests/mcp.test.ts +14 -0
  502. package/tests/shell.test.ts +42 -0
  503. package/tsconfig.json +21 -0
  504. package/vitest.config.ts +14 -0
package/README.md ADDED
@@ -0,0 +1,179 @@
1
+ # Conductor
2
+
3
+ **The AI Tool Hub.** One MCP server. 100+ tools. Every AI agent.
4
+
5
+ [![CI](https://github.com/conductor/conductor/actions/workflows/ci.yml/badge.svg)](https://github.com/conductor/conductor/actions/workflows/ci.yml)
6
+ [![npm](https://img.shields.io/npm/v/@conductor/cli)](https://www.npmjs.com/package/@conductor/cli)
7
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
8
+
9
+ ## One Connection. Every Tool.
10
+
11
+ Conductor is the single MCP server that gives **any AI agent** access to 100+ real-world tools. No more configuring 10 different MCP servers. No more managing 10 different auth flows. One line of config, everything works.
12
+
13
+ Add this to your AI agent's MCP config:
14
+
15
+ ```json
16
+ {
17
+ "mcpServers": {
18
+ "conductor": {
19
+ "command": "conductor",
20
+ "args": ["mcp", "start"]
21
+ }
22
+ }
23
+ }
24
+ ```
25
+
26
+ Now **Claude Code**, **Cursor**, **Cline**, **Aider**, and every other MCP-compatible AI agent instantly gets access to:
27
+
28
+ | Category | Tools |
29
+ |----------|-------|
30
+ | **GitHub** | repos, issues, PRs, stars, trending, actions |
31
+ | **Docker** | containers, images, volumes, networks, stats, run |
32
+ | **Databases** | PostgreSQL, MySQL, MongoDB, Redis queries |
33
+ | **File System** | read, write, list, search, grep |
34
+ | **Shell** | safe command execution with approval workflow |
35
+ | **Git** | status, diff, log, branch operations |
36
+ | **Calculator** | math expressions, unit conversions, date math |
37
+ | **Web** | search, scrape, URL tools, translate |
38
+ | **System** | info, network, crypto, hash, colors |
39
+ | **Google** | Gmail, Calendar, Drive |
40
+ | **Productivity** | Notion, Todoist, Slack, notes, cron |
41
+ | **And more** | Vercel, n8n, weather, timezone, memory |
42
+
43
+ ## Install
44
+
45
+ ```bash
46
+ npm install -g @conductor/cli
47
+ ```
48
+
49
+ ## Quick Start
50
+
51
+ ```bash
52
+ # Start the MCP server
53
+ conductor mcp start
54
+
55
+ # Enable plugins
56
+ conductor plugins enable github
57
+ conductor plugins enable docker
58
+ conductor plugins enable shell
59
+
60
+ # Configure credentials
61
+ conductor config set github.token ghp_your_token_here
62
+
63
+ # Check status
64
+ conductor plugins list
65
+ ```
66
+
67
+ ## Works With Every AI Agent
68
+
69
+ Conductor connects to any MCP-compatible client:
70
+
71
+ - **Claude Desktop** — `conductor mcp setup`
72
+ - **Claude Code** — add to `claude.json` MCP config
73
+ - **Cursor** — add to Cursor MCP settings
74
+ - **Cline** — add to Cline MCP servers
75
+ - **Aider** — configure as external tool
76
+ - **Any MCP client** — stdio or HTTP transport
77
+
78
+ ## Architecture
79
+
80
+ ```
81
+ ┌─────────────────────────────────────────────────┐
82
+ │ AI Agent (any MCP client) │
83
+ │ Claude Code │ Cursor │ Cline │ Aider │
84
+ └──────────────────────┬──────────────────────────┘
85
+ │ MCP Protocol (stdio/HTTP)
86
+
87
+ ┌─────────────────────────────────────────────────┐
88
+ │ Conductor MCP Server │
89
+ │ │
90
+ │ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
91
+ │ │ GitHub │ │ Docker │ │ Databases │ │
92
+ │ │ Plugin │ │ Plugin │ │ Plugin │ │
93
+ │ └──────────┘ └──────────┘ └───────────────┘ │
94
+ │ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
95
+ │ │ Shell │ │ Git │ │ Calculator │ │
96
+ │ │ Plugin │ │ Plugin │ │ Plugin │ │
97
+ │ └──────────┘ └──────────┘ └───────────────┘ │
98
+ │ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
99
+ │ │ Google │ │ Slack │ │ + 90 more │ │
100
+ │ │ Plugin │ │ Plugin │ │ plugins │ │
101
+ │ └──────────┘ └──────────┘ └───────────────┘ │
102
+ │ │
103
+ │ Encrypted Keychain │ Zod Validation │ Metrics │
104
+ └─────────────────────────────────────────────────┘
105
+ ```
106
+
107
+ ## Security
108
+
109
+ - **Encrypted keychain** — AES-256-GCM with machine-bound key derivation
110
+ - **Zod validation** — every plugin input is validated before execution
111
+ - **Safe shell** — whitelist-based command filtering, no `eval()`, no `exec()`
112
+ - **Plugin sandboxing** — plugins run with minimal permissions
113
+ - **Approval workflow** — dangerous operations require explicit user approval
114
+ - **Rate limiting** — all endpoints protected against abuse
115
+
116
+ ## Plugin System
117
+
118
+ Build your own plugins. Drop a `.js` file in `~/.conductor/plugins/` and it's available via MCP.
119
+
120
+ ```typescript
121
+ import { Plugin, PluginTool } from '@conductor/cli';
122
+
123
+ export class MyPlugin implements Plugin {
124
+ name = 'my-plugin';
125
+ description = 'My awesome plugin';
126
+ version = '1.0.0';
127
+
128
+ async initialize() {}
129
+ isConfigured() { return true; }
130
+
131
+ getTools(): PluginTool[] {
132
+ return [{
133
+ name: 'my_tool',
134
+ description: 'Does something awesome',
135
+ inputSchema: {
136
+ type: 'object',
137
+ properties: {
138
+ input: { type: 'string', description: 'Your input' },
139
+ },
140
+ required: ['input'],
141
+ },
142
+ handler: async (input: { input: string }) => {
143
+ return { result: `You said: ${input.input}` };
144
+ },
145
+ }];
146
+ }
147
+ }
148
+ ```
149
+
150
+ ## Development
151
+
152
+ ```bash
153
+ git clone https://github.com/conductor/conductor.git
154
+ cd conductor
155
+ npm install
156
+ npm run build
157
+ npm run dev # Watch mode
158
+ npm test # Run tests
159
+ npm run test:coverage # With coverage
160
+ npm run lint # ESLint
161
+ npm run format # Prettier
162
+ ```
163
+
164
+ ## CLI Commands
165
+
166
+ | Command | Description |
167
+ |---------|-------------|
168
+ | `conductor mcp start` | Start MCP server (stdio) |
169
+ | `conductor mcp setup` | Configure for Claude Desktop |
170
+ | `conductor mcp status` | Show MCP status |
171
+ | `conductor plugins list` | List all plugins |
172
+ | `conductor plugins enable <name>` | Enable a plugin |
173
+ | `conductor plugins disable <name>` | Disable a plugin |
174
+ | `conductor ai setup` | Configure AI providers |
175
+ | `conductor ai test` | Test AI provider |
176
+
177
+ ## License
178
+
179
+ Apache-2.0
package/SECURITY.md ADDED
@@ -0,0 +1,47 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ | ------- | --------- |
7
+ | 1.0.x | Yes |
8
+
9
+ ## Reporting a Vulnerability
10
+
11
+ **Please do not report security vulnerabilities through public GitHub issues.**
12
+
13
+ Instead, email us at **security@conductor.dev** with:
14
+
15
+ - A description of the vulnerability
16
+ - Steps to reproduce
17
+ - Potential impact
18
+ - Suggested fix (if any)
19
+
20
+ We will acknowledge receipt within 24 hours and provide a detailed response within 72 hours.
21
+
22
+ ## Security Best Practices
23
+
24
+ ### For Users
25
+
26
+ 1. **Keep Conductor updated** — always run the latest version
27
+ 2. **Use strong API keys** — rotate credentials regularly
28
+ 3. **Enable plugin approval** — don't run with `full-auto` mode in production
29
+ 4. **Review tool calls** — audit what tools the AI is calling
30
+ 5. **Use the encrypted keychain** — never store credentials in plaintext config files
31
+
32
+ ### For Plugin Developers
33
+
34
+ 1. **Validate all inputs** — use Zod schemas, never trust AI-generated arguments
35
+ 2. **Use `execFile` not `exec`** — never pass user input through a shell
36
+ 3. **Principle of least privilege** — request only the permissions you need
37
+ 4. **No `eval()` or `new Function()`** — use safe parsers like `mathjs`
38
+ 5. **Rate limit your endpoints** — protect against abuse
39
+
40
+ ### Architecture
41
+
42
+ - **Encrypted keychain** — AES-256-GCM with machine-bound key derivation
43
+ - **Zod validation** — every tool input is validated before execution
44
+ - **Safe shell** — whitelist-based command filtering, no shell interpretation
45
+ - **Plugin sandboxing** — plugins run with minimal permissions
46
+ - **Approval workflow** — dangerous operations require explicit user approval
47
+ - **Rate limiting** — all endpoints protected against abuse
@@ -0,0 +1,11 @@
1
+ # /conductor-setup
2
+
3
+ Set up Conductor integration hub for this project.
4
+
5
+ 1. Check if Conductor is installed: `which conductor || npm list -g @thealxlabs/conductor`
6
+ 2. If not installed: `npm install && npm run build` from the conductor repo root
7
+ 3. Configure the MCP server: `conductor mcp setup`
8
+ 4. Check status: `conductor mcp status`
9
+ 5. List available plugins: `conductor plugins list`
10
+
11
+ Tell the user which services are configured and suggest running `conductor google` for Google services or `conductor slack setup` for Slack.
@@ -0,0 +1,7 @@
1
+ # /conductor-status
2
+
3
+ Check the current status of all Conductor integrations.
4
+
5
+ Use the `conductor_status` MCP tool to get active plugins, configured AI provider, and current user settings.
6
+
7
+ Then list what each active plugin can do and suggest any plugins the user might want to enable based on the current project context.
@@ -0,0 +1,44 @@
1
+ import { PluginTool } from '../plugins/manager.js';
2
+ export interface AIToolCall {
3
+ id: string;
4
+ name: string;
5
+ arguments: Record<string, any>;
6
+ }
7
+ export interface AIMessage {
8
+ role: 'user' | 'assistant' | 'system' | 'tool';
9
+ content: string;
10
+ tool_calls?: AIToolCall[];
11
+ tool_call_id?: string;
12
+ name?: string;
13
+ }
14
+ export interface AIResponse {
15
+ content: string;
16
+ model: string;
17
+ tokens_used?: number;
18
+ finish_reason?: string;
19
+ tool_calls?: AIToolCall[];
20
+ }
21
+ export interface AIProviderConfig {
22
+ apiKey?: string;
23
+ endpoint?: string;
24
+ model?: string;
25
+ maxTokens?: number;
26
+ }
27
+ export declare abstract class AIProvider {
28
+ protected config: AIProviderConfig;
29
+ constructor(config: AIProviderConfig);
30
+ /** Send a message and get a response. */
31
+ abstract complete(messages: AIMessage[], tools?: PluginTool[]): Promise<AIResponse>;
32
+ /** Stream a response (for real-time output). */
33
+ abstract stream(messages: AIMessage[], tools?: PluginTool[]): AsyncGenerator<string>;
34
+ /** Test if the provider is configured correctly. */
35
+ abstract test(): Promise<boolean>;
36
+ /** Get provider display name. */
37
+ abstract getName(): string;
38
+ /**
39
+ * Parse user intent from a natural-language message.
40
+ * Used by the Telegram bot to route commands to plugins.
41
+ */
42
+ parseIntent(userMessage: string): Promise<any>;
43
+ }
44
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/ai/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8BAAsB,UAAU;IAC9B,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,MAAM,EAAE,gBAAgB;IAIpC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAEnF,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC;IAEpF,oDAAoD;IACpD,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAqCrD"}
@@ -0,0 +1,47 @@
1
+ export class AIProvider {
2
+ config;
3
+ constructor(config) {
4
+ this.config = config;
5
+ }
6
+ /**
7
+ * Parse user intent from a natural-language message.
8
+ * Used by the Telegram bot to route commands to plugins.
9
+ */
10
+ async parseIntent(userMessage) {
11
+ const systemPrompt = `You are a command parser for Conductor, an integration hub.
12
+ Parse user messages into structured intents.
13
+
14
+ Available intents:
15
+ - install_plugin: { plugin: string }
16
+ - list_plugins: {}
17
+ - enable_plugin: { plugin: string }
18
+ - disable_plugin: { plugin: string }
19
+ - execute_action: { plugin: string, action: string, params: object }
20
+ - get_status: {}
21
+ - help: {}
22
+ - chat: { message: string }
23
+
24
+ Examples:
25
+ "install github" → { "type": "install_plugin", "plugin": "github" }
26
+ "list my repos" → { "type": "execute_action", "plugin": "github", "action": "list_repos" }
27
+ "show status" → { "type": "get_status" }
28
+ "hello" → { "type": "chat", "message": "hello" }
29
+
30
+ Respond with JSON only. If unclear, use type "chat". Always use English for any string values.`;
31
+ const response = await this.complete([
32
+ { role: 'system', content: systemPrompt },
33
+ { role: 'user', content: userMessage },
34
+ ]);
35
+ try {
36
+ const jsonMatch = response.content.match(/\{[\s\S]*\}/);
37
+ if (jsonMatch) {
38
+ return JSON.parse(jsonMatch[0]);
39
+ }
40
+ return { type: 'chat', message: userMessage };
41
+ }
42
+ catch {
43
+ return { type: 'chat', message: userMessage };
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ai/base.ts"],"names":[],"mappings":"AAgCA,MAAM,OAAgB,UAAU;IACpB,MAAM,CAAmB;IAEnC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAcD;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;+FAmBsE,CAAC;QAE5F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { AIProvider, AIMessage, AIResponse } from './base.js';
2
+ import { PluginTool } from '../plugins/manager.js';
3
+ export declare class ClaudeProvider extends AIProvider {
4
+ private client;
5
+ initialize(apiKey: string): Promise<void>;
6
+ getName(): string;
7
+ complete(messages: AIMessage[], tools?: PluginTool[]): Promise<AIResponse>;
8
+ stream(messages: AIMessage[], tools?: PluginTool[]): AsyncGenerator<string>;
9
+ test(): Promise<boolean>;
10
+ }
11
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/ai/claude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,MAAM,CAA0B;IAElC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,IAAI,MAAM;IAIX,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA6EzE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC;IA6D5E,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAQ/B"}
@@ -0,0 +1,149 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { AIProvider } from './base.js';
3
+ export class ClaudeProvider extends AIProvider {
4
+ client = null;
5
+ async initialize(apiKey) {
6
+ this.client = new Anthropic({ apiKey });
7
+ }
8
+ getName() {
9
+ return 'Claude';
10
+ }
11
+ async complete(messages, tools) {
12
+ if (!this.client)
13
+ throw new Error('Claude not initialized. Call initialize() first.');
14
+ const model = this.config.model || 'claude-3-5-sonnet-20241022';
15
+ const requestTools = tools?.map((t) => ({
16
+ name: t.name,
17
+ description: t.description,
18
+ input_schema: t.inputSchema,
19
+ }));
20
+ // Separate system message from conversation messages
21
+ const anthropicMessages = messages
22
+ .filter((m) => m.role !== 'system')
23
+ .map((m) => {
24
+ if (m.role === 'tool') {
25
+ return {
26
+ role: 'user',
27
+ content: [
28
+ {
29
+ type: 'tool_result',
30
+ tool_use_id: m.tool_call_id,
31
+ content: m.content,
32
+ },
33
+ ],
34
+ };
35
+ }
36
+ else if (m.role === 'assistant' && m.tool_calls) {
37
+ const content = [];
38
+ if (m.content)
39
+ content.push({ type: 'text', text: m.content });
40
+ m.tool_calls.forEach((tc) => {
41
+ content.push({
42
+ type: 'tool_use',
43
+ id: tc.id,
44
+ name: tc.name,
45
+ input: tc.arguments,
46
+ });
47
+ });
48
+ return { role: 'assistant', content };
49
+ }
50
+ return {
51
+ role: m.role,
52
+ content: m.content,
53
+ };
54
+ });
55
+ const systemMessage = messages.find((m) => m.role === 'system');
56
+ const response = await this.client.messages.create({
57
+ model,
58
+ max_tokens: this.config.maxTokens || 4096,
59
+ system: systemMessage?.content,
60
+ messages: anthropicMessages,
61
+ tools: requestTools,
62
+ });
63
+ const toolCalls = response.content
64
+ .filter((c) => c.type === 'tool_use')
65
+ .map((c) => ({
66
+ id: c.id,
67
+ name: c.name,
68
+ arguments: c.input,
69
+ }));
70
+ const textContent = response.content
71
+ .filter((c) => c.type === 'text')
72
+ .map((c) => c.text)
73
+ .join('\n');
74
+ return {
75
+ content: textContent,
76
+ model: response.model,
77
+ tokens_used: response.usage.input_tokens + response.usage.output_tokens,
78
+ finish_reason: response.stop_reason || undefined,
79
+ tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
80
+ };
81
+ }
82
+ async *stream(messages, tools) {
83
+ if (!this.client)
84
+ throw new Error('Claude not initialized');
85
+ const model = this.config.model || 'claude-3-5-sonnet-20241022';
86
+ const requestTools = tools?.map((t) => ({
87
+ name: t.name,
88
+ description: t.description,
89
+ input_schema: t.inputSchema,
90
+ }));
91
+ const anthropicMessages = messages
92
+ .filter((m) => m.role !== 'system')
93
+ .map((m) => {
94
+ if (m.role === 'tool') {
95
+ return {
96
+ role: 'user',
97
+ content: [
98
+ {
99
+ type: 'tool_result',
100
+ tool_use_id: m.tool_call_id,
101
+ content: m.content,
102
+ },
103
+ ],
104
+ };
105
+ }
106
+ else if (m.role === 'assistant' && m.tool_calls) {
107
+ const content = [];
108
+ if (m.content)
109
+ content.push({ type: 'text', text: m.content });
110
+ m.tool_calls.forEach((tc) => {
111
+ content.push({
112
+ type: 'tool_use',
113
+ id: tc.id,
114
+ name: tc.name,
115
+ input: tc.arguments,
116
+ });
117
+ });
118
+ return { role: 'assistant', content };
119
+ }
120
+ return {
121
+ role: m.role,
122
+ content: m.content,
123
+ };
124
+ });
125
+ const systemMessage = messages.find((m) => m.role === 'system');
126
+ const stream = await this.client.messages.stream({
127
+ model,
128
+ max_tokens: this.config.maxTokens || 4096,
129
+ system: systemMessage?.content,
130
+ messages: anthropicMessages,
131
+ tools: requestTools,
132
+ });
133
+ for await (const chunk of stream) {
134
+ if (chunk.type === 'content_block_delta' && chunk.delta.type === 'text_delta') {
135
+ yield chunk.delta.text;
136
+ }
137
+ }
138
+ }
139
+ async test() {
140
+ try {
141
+ await this.complete([{ role: 'user', content: 'Say "OK" if you can hear me.' }]);
142
+ return true;
143
+ }
144
+ catch {
145
+ return false;
146
+ }
147
+ }
148
+ }
149
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/ai/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { AIProvider, AIMessage, AIResponse } from './base.js';
2
+ import { PluginTool } from '../plugins/manager.js';
3
+ export declare class GeminiProvider extends AIProvider {
4
+ private client;
5
+ private oauth2Client;
6
+ getName(): string;
7
+ initialize(apiKey: string): Promise<void>;
8
+ initializeWithOAuth(clientId: string, clientSecret: string, redirectUri?: string): Promise<string>;
9
+ completeOAuthFlow(code: string): Promise<void>;
10
+ loginWithBrowser(): Promise<void>;
11
+ complete(messages: AIMessage[], tools?: PluginTool[]): Promise<AIResponse>;
12
+ stream(messages: AIMessage[], tools?: PluginTool[]): AsyncGenerator<string>;
13
+ test(): Promise<boolean>;
14
+ }
15
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/ai/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAkBnD,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,IAAI,MAAM;IAIX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,SAA0C,GACpD,OAAO,CAAC,MAAM,CAAC;IAWZ,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAoDzE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC;IA2B5E,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAQ/B"}