@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/install.ps1 ADDED
@@ -0,0 +1,334 @@
1
+ # ============================================================
2
+ # Conductor Install Script (Windows PowerShell)
3
+ # ============================================================
4
+ # Usage:
5
+ # irm https://conductor.thealxlabs.ca/install.ps1 | iex
6
+ # Or locally:
7
+ # .\install.ps1
8
+ # ============================================================
9
+
10
+ $ErrorActionPreference = "Stop"
11
+
12
+ function Info($msg) { Write-Host " ▶ $msg" -ForegroundColor Cyan }
13
+ function Success($msg) { Write-Host " ✓ $msg" -ForegroundColor Green }
14
+ function Warn($msg) { Write-Host " ⚠ $msg" -ForegroundColor Yellow }
15
+ function Fail($msg) { Write-Host " ✗ FATAL: $msg" -ForegroundColor Red; exit 1 }
16
+ function Step($msg) {
17
+ Write-Host "`n ┌──────────────────────────────────────────────" -ForegroundColor Cyan
18
+ Write-Host " │ $msg" -ForegroundColor Cyan
19
+ Write-Host " └──────────────────────────────────────────────" -ForegroundColor Cyan
20
+ }
21
+
22
+ # ── Secure credential helper ──────────────────────────────────
23
+ # Reads a SecureString, encrypts with AES-256-GCM using machine ID,
24
+ # saves to keychain. Value never passed as a process argument.
25
+ function Save-Cred {
26
+ param(
27
+ [string]$ConfigDir,
28
+ [string]$Service,
29
+ [string]$Key,
30
+ [System.Security.SecureString]$SecureValue
31
+ )
32
+ $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureValue)
33
+ try {
34
+ $plain = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
35
+ if (-not $plain) { return }
36
+
37
+ # Write value to a temp file with restricted permissions instead of
38
+ # passing as process argument (prevents Task Manager / event log exposure)
39
+ $tmpFile = [System.IO.Path]::GetTempFileName()
40
+ try {
41
+ [System.IO.File]::WriteAllText($tmpFile, $plain, [System.Text.Encoding]::UTF8)
42
+
43
+ $jsCode = @"
44
+ const crypto=require('crypto'),fs=require('fs'),path=require('path'),os=require('os'),{execSync}=require('child_process');
45
+ const [,,configDir,service,key,valFile]=process.argv;
46
+ const val=fs.readFileSync(valFile,'utf8').trim();
47
+ // Securely delete temp file immediately after reading
48
+ try{fs.writeFileSync(valFile,crypto.randomBytes(val.length).toString('hex'));fs.unlinkSync(valFile);}catch{}
49
+ const kd=path.join(configDir,'keychain');
50
+ fs.mkdirSync(kd,{recursive:true,mode:0o700});
51
+ function ms(){
52
+ try{const o=execSync('reg query "HKLM\\SOFTWARE\\Microsoft\\Cryptography" /v MachineGuid',{encoding:'utf8',stdio:['pipe','pipe','pipe']});const m=o.match(/MachineGuid\s+REG_SZ\s+(.+)/);if(m&&m[1].trim())return m[1].trim()}catch{}
53
+ const f=path.join(kd,'machine_secret');
54
+ try{const d=fs.readFileSync(f,'utf8').trim();if(d)return d}catch{}
55
+ try{const s=crypto.randomUUID();fs.writeFileSync(f,s,{mode:0o600});return s}catch{}
56
+ throw new Error('Cannot derive machine ID for keychain encryption');
57
+ }
58
+ const salt=crypto.createHash('sha256').update('conductor:keychain:v1').digest();
59
+ const mk=crypto.scryptSync(ms(),salt,32,{N:16384,r:8,p:1});
60
+ const iv=crypto.randomBytes(12),c=crypto.createCipheriv('aes-256-gcm',mk,iv);
61
+ let e=c.update(val,'utf8','hex');e+=c.final('hex');
62
+ const t=c.getAuthTag().toString('hex');
63
+ const out=['v2',iv.toString('hex'),t,e].join(':');
64
+ const fp=path.join(kd,service+'.'+key+'.enc');
65
+ const tmp=fp+'.tmp';
66
+ fs.writeFileSync(tmp,out,{mode:0o600});
67
+ fs.renameSync(tmp,fp);
68
+ "@
69
+ node -e $jsCode $ConfigDir $Service $Key $tmpFile
70
+ } finally {
71
+ # Ensure temp file is wiped even if node fails
72
+ if (Test-Path $tmpFile) {
73
+ $bytes = [System.IO.File]::ReadAllBytes($tmpFile)
74
+ [System.Runtime.InteropServices.Marshal]::Copy([byte[]]::new($bytes.Length), 0, [System.IntPtr]::Zero, 0)
75
+ Remove-Item $tmpFile -Force -ErrorAction SilentlyContinue
76
+ }
77
+ }
78
+ } finally {
79
+ [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr)
80
+ }
81
+ }
82
+
83
+ function Save-CredPlain {
84
+ param([string]$ConfigDir, [string]$Service, [string]$Key, [string]$Value)
85
+ $ss = ConvertTo-SecureString $Value -AsPlainText -Force
86
+ Save-Cred -ConfigDir $ConfigDir -Service $Service -Key $Key -SecureValue $ss
87
+ }
88
+
89
+ function Update-Config {
90
+ param([string]$ConfigFile, [hashtable]$Updates)
91
+ $config = @{}
92
+ if (Test-Path $ConfigFile) {
93
+ try { $config = Get-Content $ConfigFile -Raw | ConvertFrom-Json -AsHashtable } catch {}
94
+ }
95
+ foreach ($k in $Updates.Keys) { $config[$k] = $Updates[$k] }
96
+ $config | ConvertTo-Json -Depth 10 | Set-Content $ConfigFile -Encoding UTF8
97
+ }
98
+
99
+ # ── Header ────────────────────────────────────────────────────
100
+ Write-Host ""
101
+ Write-Host " ██████╗ ██████╗ ███╗ ██╗██████╗ ██╗ ██╗ ██████╗████████╗ ██████╗ ██████╗" -ForegroundColor Cyan
102
+ Write-Host " ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗" -ForegroundColor Cyan
103
+ Write-Host " ██║ ██║ ██║██╔██╗ ██║██║ ██║██║ ██║██║ ██║ ██║ ██║██████╔╝" -ForegroundColor Cyan
104
+ Write-Host " ██║ ██║ ██║██║╚██╗██║██║ ██║██║ ██║██║ ██║ ██║ ██║██╔══██╗" -ForegroundColor Cyan
105
+ Write-Host " ╚██████╗╚██████╔╝██║ ╚████║██████╔╝╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ██║" -ForegroundColor Cyan
106
+ Write-Host " ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝" -ForegroundColor Cyan
107
+ Write-Host ""
108
+ Write-Host " your local AI integration hub · by TheAlxLabs" -ForegroundColor DarkGray
109
+ Write-Host ""
110
+
111
+ # ── Step 1: Preflight ─────────────────────────────────────────
112
+ Step "01 / Preflight Check"
113
+
114
+ try {
115
+ $nodeRaw = (node --version 2>&1).ToString().Trim()
116
+ $nodeVersion = $nodeRaw.TrimStart('v').Split('.')[0]
117
+ if ([int]$nodeVersion -lt 18) {
118
+ Fail "Node.js v18+ required. You have $nodeRaw. Update at https://nodejs.org"
119
+ }
120
+ Success "Node.js $nodeRaw"
121
+ } catch {
122
+ Fail "Node.js not found. Install from https://nodejs.org (v18+)"
123
+ }
124
+
125
+ try {
126
+ $npmVersion = (npm --version 2>&1).ToString().Trim()
127
+ Success "npm $npmVersion"
128
+ } catch {
129
+ Fail "npm not found. Reinstall Node.js"
130
+ }
131
+
132
+ $ConfigDir = "$env:USERPROFILE\.conductor"
133
+ $KeychainDir = "$ConfigDir\keychain"
134
+ $ConfigFile = "$ConfigDir\config.json"
135
+
136
+ New-Item -ItemType Directory -Path $ConfigDir -Force | Out-Null
137
+ New-Item -ItemType Directory -Path $KeychainDir -Force | Out-Null
138
+ New-Item -ItemType Directory -Path "$ConfigDir\plugins" -Force | Out-Null
139
+ New-Item -ItemType Directory -Path "$ConfigDir\logs" -Force | Out-Null
140
+ Success "Config dirs ready ($ConfigDir)"
141
+
142
+ # ── Step 2: Install & Build ───────────────────────────────────
143
+ Step "02 / Install & Build"
144
+
145
+ $ConductorDir = "$env:USERPROFILE\.conductor-src"
146
+
147
+ if (Test-Path "package.json") {
148
+ $pkg = Get-Content "package.json" -Raw
149
+ if ($pkg -match "conductor-hub") {
150
+ $ConductorDir = (Get-Location).Path
151
+ Info "Using current directory"
152
+ }
153
+ }
154
+
155
+ if (-not (Test-Path "$ConductorDir\package.json")) {
156
+ Info "Cloning from GitHub..."
157
+ git clone --quiet https://github.com/thealxlabs/conductor.git $ConductorDir
158
+ if ($LASTEXITCODE -ne 0) { Fail "Clone failed. Check your internet connection." }
159
+ }
160
+
161
+ Set-Location $ConductorDir
162
+
163
+ Info "Installing dependencies..."
164
+ npm install --no-fund --no-audit 2>$null
165
+ if ($LASTEXITCODE -ne 0) { Fail "npm install failed. Run 'npm install' in $ConductorDir to see the error." }
166
+ Success "Dependencies installed"
167
+
168
+ Info "Building TypeScript..."
169
+ npm run build 2>$null
170
+ if ($LASTEXITCODE -ne 0) { Fail "Build failed. Run 'npm run build' in $ConductorDir to see the error." }
171
+ Success "Build complete"
172
+
173
+ Info "Linking globally..."
174
+ try {
175
+ npm link --silent 2>$null
176
+ Success "conductor command available"
177
+ } catch {
178
+ Warn "npm link failed — use 'node $ConductorDir\dist\cli\index.js' instead"
179
+ }
180
+
181
+ # ── Step 3: AI Provider ───────────────────────────────────────
182
+ Step "03 / AI Provider"
183
+
184
+ Write-Host ""
185
+ Write-Host " 1 Claude · console.anthropic.com/settings/keys" -ForegroundColor White
186
+ Write-Host " 2 OpenAI · platform.openai.com/api-keys" -ForegroundColor White
187
+ Write-Host " 3 Gemini · aistudio.google.com/apikey" -ForegroundColor White
188
+ Write-Host " 4 OpenRouter · openrouter.ai/keys" -ForegroundColor White
189
+ Write-Host " 5 Ollama · local, no key needed" -ForegroundColor White
190
+ Write-Host " 6 Skip" -ForegroundColor DarkGray
191
+ Write-Host ""
192
+
193
+ $choice = Read-Host " ? Choose [6]"
194
+ if (-not $choice) { $choice = "6" }
195
+
196
+ $aiProviderSet = ""
197
+
198
+ switch ($choice) {
199
+ "1" {
200
+ $key = Read-Host " ? Anthropic API key" -AsSecureString
201
+ Save-Cred -ConfigDir $ConfigDir -Service "anthropic" -Key "api_key" -SecureValue $key
202
+ Update-Config -ConfigFile $ConfigFile -Updates @{ "ai" = @{ "provider" = "claude" } }
203
+ Success "Claude configured"
204
+ $aiProviderSet = "claude"
205
+ }
206
+ "2" {
207
+ $key = Read-Host " ? OpenAI API key" -AsSecureString
208
+ Save-Cred -ConfigDir $ConfigDir -Service "openai" -Key "api_key" -SecureValue $key
209
+ Update-Config -ConfigFile $ConfigFile -Updates @{ "ai" = @{ "provider" = "openai" } }
210
+ Success "OpenAI configured"
211
+ $aiProviderSet = "openai"
212
+ }
213
+ "3" {
214
+ $key = Read-Host " ? Gemini API key" -AsSecureString
215
+ Save-Cred -ConfigDir $ConfigDir -Service "gemini" -Key "api_key" -SecureValue $key
216
+ Update-Config -ConfigFile $ConfigFile -Updates @{ "ai" = @{ "provider" = "gemini" } }
217
+ Success "Gemini configured"
218
+ $aiProviderSet = "gemini"
219
+ }
220
+ "4" {
221
+ $key = Read-Host " ? OpenRouter API key" -AsSecureString
222
+ Save-Cred -ConfigDir $ConfigDir -Service "openrouter" -Key "api_key" -SecureValue $key
223
+ Update-Config -ConfigFile $ConfigFile -Updates @{ "ai" = @{ "provider" = "openrouter" } }
224
+ Success "OpenRouter configured"
225
+ $aiProviderSet = "openrouter"
226
+ }
227
+ "5" {
228
+ $model = Read-Host " ? Ollama model [llama3.2]"
229
+ if (-not $model) { $model = "llama3.2" }
230
+ Update-Config -ConfigFile $ConfigFile -Updates @{
231
+ "ai" = @{
232
+ "provider" = "ollama"
233
+ "model" = $model
234
+ "local_config" = @{ "endpoint" = "http://localhost:11434" }
235
+ }
236
+ }
237
+ Success "Ollama configured with $model"
238
+ Warn "Make sure Ollama is running: ollama serve"
239
+ $aiProviderSet = "ollama"
240
+ }
241
+ default {
242
+ Warn "Skipped — run later: conductor ai setup"
243
+ }
244
+ }
245
+
246
+ # ── Step 4: Google Services ───────────────────────────────────
247
+ Step "04 / Google Services (Gmail · Calendar · Drive)"
248
+
249
+ $setupGoogle = Read-Host " ? Enable Gmail, Calendar, and Drive plugins? [Y/n]"
250
+ if (-not $setupGoogle -or $setupGoogle -match "^[Yy]") {
251
+
252
+ Info "Fetching Google OAuth configuration..."
253
+ try {
254
+ $oauthResponse = Invoke-RestMethod `
255
+ -Uri "https://conductor.thealxlabs.ca/api/oauth-config" `
256
+ -Method GET `
257
+ -Headers @{
258
+ "User-Agent" = "Conductor-Installer/1.0"
259
+ "X-Conductor-Install" = "true"
260
+ } `
261
+ -TimeoutSec 10 `
262
+ -ErrorAction Stop
263
+
264
+ if ($oauthResponse.client_id -and $oauthResponse.client_secret) {
265
+ Save-CredPlain -ConfigDir $ConfigDir -Service "google_oauth" -Key "client_id" -Value $oauthResponse.client_id
266
+ Save-CredPlain -ConfigDir $ConfigDir -Service "google_oauth" -Key "client_secret" -Value $oauthResponse.client_secret
267
+ # Clear from memory immediately
268
+ $oauthResponse = $null
269
+ [System.GC]::Collect()
270
+ Success "Google OAuth app credentials saved to keychain"
271
+ } else {
272
+ Warn "Could not parse OAuth credentials — Google features may not work"
273
+ }
274
+ } catch {
275
+ Warn "Could not fetch Google OAuth config: $_"
276
+ Warn "Run later: conductor auth google"
277
+ }
278
+
279
+ # Update config to enable plugins
280
+ $config = @{}
281
+ if (Test-Path $ConfigFile) {
282
+ try { $config = Get-Content $ConfigFile -Raw | ConvertFrom-Json -AsHashtable } catch {}
283
+ }
284
+ if (-not $config.ContainsKey("plugins")) { $config["plugins"] = @{} }
285
+ $config["plugins"]["gmail"] = @{ "enabled" = $true }
286
+ $config["plugins"]["gcal"] = @{ "enabled" = $true }
287
+ $config["plugins"]["gdrive"] = @{ "enabled" = $true }
288
+ $config | ConvertTo-Json -Depth 10 | Set-Content $ConfigFile -Encoding UTF8
289
+ Success "Gmail, Calendar, and Drive plugins enabled"
290
+ Write-Host " ℹ After install, run: conductor auth google" -ForegroundColor DarkGray
291
+ } else {
292
+ Warn "Skipped — enable later: conductor plugins enable gmail gcal gdrive"
293
+ }
294
+
295
+ # ── Step 5: MCP Server ────────────────────────────────────────
296
+ Step "05 / MCP Server (Claude Desktop integration)"
297
+
298
+ $mcpConfig = "$env:APPDATA\Claude\claude_desktop_config.json"
299
+ $setupMcp = Read-Host " ? Configure for Claude Desktop? [Y/n]"
300
+ if (-not $setupMcp -or $setupMcp -match "^[Yy]") {
301
+ $mcpDir = Split-Path $mcpConfig
302
+ New-Item -ItemType Directory -Path $mcpDir -Force | Out-Null
303
+
304
+ $existing = @{}
305
+ if (Test-Path $mcpConfig) {
306
+ # Backup first
307
+ Copy-Item $mcpConfig "$mcpConfig.bak" -Force -ErrorAction SilentlyContinue
308
+ try { $existing = Get-Content $mcpConfig -Raw | ConvertFrom-Json -AsHashtable } catch {}
309
+ }
310
+ if (-not $existing.ContainsKey("mcpServers")) { $existing["mcpServers"] = @{} }
311
+ $existing["mcpServers"]["conductor"] = @{
312
+ "command" = "conductor"
313
+ "args" = @("mcp", "start")
314
+ }
315
+ $tmp = "$mcpConfig.tmp"
316
+ $existing | ConvertTo-Json -Depth 10 | Set-Content $tmp -Encoding UTF8
317
+ Move-Item $tmp $mcpConfig -Force
318
+ Success "MCP configured — restart Claude Desktop to connect"
319
+ }
320
+
321
+ # ── Done ──────────────────────────────────────────────────────
322
+ Write-Host ""
323
+ Write-Host " ┌──────────────────────────────────────────────" -ForegroundColor Cyan
324
+ Write-Host " │ ✓ Installation Complete" -ForegroundColor Green
325
+ Write-Host " └──────────────────────────────────────────────" -ForegroundColor Cyan
326
+ Write-Host ""
327
+ Write-Host " conductor status — Check your setup" -ForegroundColor White
328
+ Write-Host " conductor ai test — Test AI provider" -ForegroundColor White
329
+ Write-Host " conductor auth google — Connect Google" -ForegroundColor White
330
+ Write-Host " conductor plugins list — Browse plugins" -ForegroundColor White
331
+ Write-Host " conductor dashboard — Open web dashboard" -ForegroundColor White
332
+ Write-Host ""
333
+ Write-Host " Docs: https://conductor.thealxlabs.ca" -ForegroundColor DarkGray
334
+ Write-Host ""