@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.
- package/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +23 -0
- package/.eslintrc.json +23 -0
- package/.gitattributes +6 -0
- package/.github/FUNDING.yml +15 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +91 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +63 -0
- package/.github/ISSUE_TEMPLATE/plugin_request.yml +71 -0
- package/.github/README.md +13 -0
- package/.github/workflows/README.md +22 -0
- package/.github/workflows/auto-release.yml +112 -0
- package/.github/workflows/ci.yml +49 -0
- package/.github/workflows/claude-code-review.yml +44 -0
- package/.github/workflows/claude.yml +36 -0
- package/.github/workflows/sync-install.yml +47 -0
- package/.mcp.json +9 -0
- package/.prettierrc.json +7 -0
- package/C.png +0 -0
- package/CHANGELOG.md +74 -0
- package/CLAUDE.md +118 -0
- package/CONTRIBUTING.md +231 -0
- package/LICENSE +201 -0
- package/README.md +179 -0
- package/SECURITY.md +47 -0
- package/commands/conductor-setup.md +11 -0
- package/commands/conductor-status.md +7 -0
- package/dist/ai/base.d.ts +44 -0
- package/dist/ai/base.d.ts.map +1 -0
- package/dist/ai/base.js +47 -0
- package/dist/ai/base.js.map +1 -0
- package/dist/ai/claude.d.ts +11 -0
- package/dist/ai/claude.d.ts.map +1 -0
- package/dist/ai/claude.js +149 -0
- package/dist/ai/claude.js.map +1 -0
- package/dist/ai/gemini.d.ts +15 -0
- package/dist/ai/gemini.d.ts.map +1 -0
- package/dist/ai/gemini.js +156 -0
- package/dist/ai/gemini.js.map +1 -0
- package/dist/ai/maestro.d.ts +22 -0
- package/dist/ai/maestro.d.ts.map +1 -0
- package/dist/ai/maestro.js +142 -0
- package/dist/ai/maestro.js.map +1 -0
- package/dist/ai/manager.d.ts +47 -0
- package/dist/ai/manager.d.ts.map +1 -0
- package/dist/ai/manager.js +450 -0
- package/dist/ai/manager.js.map +1 -0
- package/dist/ai/ollama.d.ts +16 -0
- package/dist/ai/ollama.d.ts.map +1 -0
- package/dist/ai/ollama.js +151 -0
- package/dist/ai/ollama.js.map +1 -0
- package/dist/ai/openai.d.ts +11 -0
- package/dist/ai/openai.d.ts.map +1 -0
- package/dist/ai/openai.js +132 -0
- package/dist/ai/openai.js.map +1 -0
- package/dist/ai/openrouter.d.ts +11 -0
- package/dist/ai/openrouter.d.ts.map +1 -0
- package/dist/ai/openrouter.js +139 -0
- package/dist/ai/openrouter.js.map +1 -0
- package/dist/bot/slack.d.ts +17 -0
- package/dist/bot/slack.d.ts.map +1 -0
- package/dist/bot/slack.js +144 -0
- package/dist/bot/slack.js.map +1 -0
- package/dist/bot/telegram.d.ts +19 -0
- package/dist/bot/telegram.d.ts.map +1 -0
- package/dist/bot/telegram.js +157 -0
- package/dist/bot/telegram.js.map +1 -0
- package/dist/cli/commands/ai.d.ts +4 -0
- package/dist/cli/commands/ai.d.ts.map +1 -0
- package/dist/cli/commands/ai.js +161 -0
- package/dist/cli/commands/ai.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +18 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +213 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +15 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +281 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +16 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +750 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/lifecycle.d.ts +4 -0
- package/dist/cli/commands/lifecycle.d.ts.map +1 -0
- package/dist/cli/commands/lifecycle.js +84 -0
- package/dist/cli/commands/lifecycle.js.map +1 -0
- package/dist/cli/commands/marketplace.d.ts +13 -0
- package/dist/cli/commands/marketplace.d.ts.map +1 -0
- package/dist/cli/commands/marketplace.js +197 -0
- package/dist/cli/commands/marketplace.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +6 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +83 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/onboard.d.ts +10 -0
- package/dist/cli/commands/onboard.d.ts.map +1 -0
- package/dist/cli/commands/onboard.js +207 -0
- package/dist/cli/commands/onboard.js.map +1 -0
- package/dist/cli/commands/plugin-create.d.ts +13 -0
- package/dist/cli/commands/plugin-create.d.ts.map +1 -0
- package/dist/cli/commands/plugin-create.js +122 -0
- package/dist/cli/commands/plugin-create.js.map +1 -0
- package/dist/cli/commands/plugins.d.ts +5 -0
- package/dist/cli/commands/plugins.d.ts.map +1 -0
- package/dist/cli/commands/plugins.js +30 -0
- package/dist/cli/commands/plugins.js.map +1 -0
- package/dist/cli/commands/release.d.ts +13 -0
- package/dist/cli/commands/release.d.ts.map +1 -0
- package/dist/cli/commands/release.js +243 -0
- package/dist/cli/commands/release.js.map +1 -0
- package/dist/cli/commands/telegram.d.ts +3 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -0
- package/dist/cli/commands/telegram.js +20 -0
- package/dist/cli/commands/telegram.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +402 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/oauth.d.ts +8 -0
- package/dist/config/oauth.d.ts.map +1 -0
- package/dist/config/oauth.js +13 -0
- package/dist/config/oauth.js.map +1 -0
- package/dist/core/audit.d.ts +91 -0
- package/dist/core/audit.d.ts.map +1 -0
- package/dist/core/audit.js +233 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/circuit-breaker.d.ts +56 -0
- package/dist/core/circuit-breaker.d.ts.map +1 -0
- package/dist/core/circuit-breaker.js +107 -0
- package/dist/core/circuit-breaker.js.map +1 -0
- package/dist/core/conductor.d.ts +44 -0
- package/dist/core/conductor.d.ts.map +1 -0
- package/dist/core/conductor.js +200 -0
- package/dist/core/conductor.js.map +1 -0
- package/dist/core/config.d.ts +66 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +86 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/database.d.ts +59 -0
- package/dist/core/database.d.ts.map +1 -0
- package/dist/core/database.js +342 -0
- package/dist/core/database.js.map +1 -0
- package/dist/core/errors.d.ts +231 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +254 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/health.d.ts +72 -0
- package/dist/core/health.d.ts.map +1 -0
- package/dist/core/health.js +116 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/interfaces.d.ts +62 -0
- package/dist/core/interfaces.d.ts.map +1 -0
- package/dist/core/interfaces.js +8 -0
- package/dist/core/interfaces.js.map +1 -0
- package/dist/core/logger.d.ts +15 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +30 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/rbac.d.ts +132 -0
- package/dist/core/rbac.d.ts.map +1 -0
- package/dist/core/rbac.js +230 -0
- package/dist/core/rbac.js.map +1 -0
- package/dist/core/retry.d.ts +22 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +41 -0
- package/dist/core/retry.js.map +1 -0
- package/dist/core/webhooks.d.ts +92 -0
- package/dist/core/webhooks.d.ts.map +1 -0
- package/dist/core/webhooks.js +176 -0
- package/dist/core/webhooks.js.map +1 -0
- package/dist/core/zero-config.d.ts +22 -0
- package/dist/core/zero-config.d.ts.map +1 -0
- package/dist/core/zero-config.js +59 -0
- package/dist/core/zero-config.js.map +1 -0
- package/dist/dashboard/cli.d.ts +6 -0
- package/dist/dashboard/cli.d.ts.map +1 -0
- package/dist/dashboard/cli.js +42 -0
- package/dist/dashboard/cli.js.map +1 -0
- package/dist/dashboard/index.html +3426 -0
- package/dist/dashboard/server.d.ts +7 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +1427 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/mcp/server.d.ts +27 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +380 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/misc.d.ts +15 -0
- package/dist/mcp/tools/misc.d.ts.map +1 -0
- package/dist/mcp/tools/misc.js +49 -0
- package/dist/mcp/tools/misc.js.map +1 -0
- package/dist/plugins/builtin/calculator.d.ts +11 -0
- package/dist/plugins/builtin/calculator.d.ts.map +1 -0
- package/dist/plugins/builtin/calculator.js +166 -0
- package/dist/plugins/builtin/calculator.js.map +1 -0
- package/dist/plugins/builtin/colors.d.ts +15 -0
- package/dist/plugins/builtin/colors.d.ts.map +1 -0
- package/dist/plugins/builtin/colors.js +193 -0
- package/dist/plugins/builtin/colors.js.map +1 -0
- package/dist/plugins/builtin/cron.d.ts +40 -0
- package/dist/plugins/builtin/cron.d.ts.map +1 -0
- package/dist/plugins/builtin/cron.js +578 -0
- package/dist/plugins/builtin/cron.js.map +1 -0
- package/dist/plugins/builtin/crypto.d.ts +11 -0
- package/dist/plugins/builtin/crypto.d.ts.map +1 -0
- package/dist/plugins/builtin/crypto.js +83 -0
- package/dist/plugins/builtin/crypto.js.map +1 -0
- package/dist/plugins/builtin/database.d.ts +29 -0
- package/dist/plugins/builtin/database.d.ts.map +1 -0
- package/dist/plugins/builtin/database.js +230 -0
- package/dist/plugins/builtin/database.js.map +1 -0
- package/dist/plugins/builtin/docker.d.ts +12 -0
- package/dist/plugins/builtin/docker.d.ts.map +1 -0
- package/dist/plugins/builtin/docker.js +436 -0
- package/dist/plugins/builtin/docker.js.map +1 -0
- package/dist/plugins/builtin/fun.d.ts +11 -0
- package/dist/plugins/builtin/fun.d.ts.map +1 -0
- package/dist/plugins/builtin/fun.js +114 -0
- package/dist/plugins/builtin/fun.js.map +1 -0
- package/dist/plugins/builtin/gcal.d.ts +38 -0
- package/dist/plugins/builtin/gcal.d.ts.map +1 -0
- package/dist/plugins/builtin/gcal.js +280 -0
- package/dist/plugins/builtin/gcal.js.map +1 -0
- package/dist/plugins/builtin/gdrive.d.ts +26 -0
- package/dist/plugins/builtin/gdrive.d.ts.map +1 -0
- package/dist/plugins/builtin/gdrive.js +295 -0
- package/dist/plugins/builtin/gdrive.js.map +1 -0
- package/dist/plugins/builtin/github-actions.d.ts +38 -0
- package/dist/plugins/builtin/github-actions.d.ts.map +1 -0
- package/dist/plugins/builtin/github-actions.js +629 -0
- package/dist/plugins/builtin/github-actions.js.map +1 -0
- package/dist/plugins/builtin/github.d.ts +26 -0
- package/dist/plugins/builtin/github.d.ts.map +1 -0
- package/dist/plugins/builtin/github.js +800 -0
- package/dist/plugins/builtin/github.js.map +1 -0
- package/dist/plugins/builtin/gmail.d.ts +50 -0
- package/dist/plugins/builtin/gmail.d.ts.map +1 -0
- package/dist/plugins/builtin/gmail.js +445 -0
- package/dist/plugins/builtin/gmail.js.map +1 -0
- package/dist/plugins/builtin/hash.d.ts +11 -0
- package/dist/plugins/builtin/hash.d.ts.map +1 -0
- package/dist/plugins/builtin/hash.js +95 -0
- package/dist/plugins/builtin/hash.js.map +1 -0
- package/dist/plugins/builtin/homekit.d.ts +53 -0
- package/dist/plugins/builtin/homekit.d.ts.map +1 -0
- package/dist/plugins/builtin/homekit.js +341 -0
- package/dist/plugins/builtin/homekit.js.map +1 -0
- package/dist/plugins/builtin/index.d.ts +4 -0
- package/dist/plugins/builtin/index.d.ts.map +1 -0
- package/dist/plugins/builtin/index.js +96 -0
- package/dist/plugins/builtin/index.js.map +1 -0
- package/dist/plugins/builtin/jira.d.ts +50 -0
- package/dist/plugins/builtin/jira.d.ts.map +1 -0
- package/dist/plugins/builtin/jira.js +353 -0
- package/dist/plugins/builtin/jira.js.map +1 -0
- package/dist/plugins/builtin/linear.d.ts +35 -0
- package/dist/plugins/builtin/linear.d.ts.map +1 -0
- package/dist/plugins/builtin/linear.js +397 -0
- package/dist/plugins/builtin/linear.js.map +1 -0
- package/dist/plugins/builtin/lumen.d.ts +21 -0
- package/dist/plugins/builtin/lumen.d.ts.map +1 -0
- package/dist/plugins/builtin/lumen.js +404 -0
- package/dist/plugins/builtin/lumen.js.map +1 -0
- package/dist/plugins/builtin/memory.d.ts +22 -0
- package/dist/plugins/builtin/memory.d.ts.map +1 -0
- package/dist/plugins/builtin/memory.js +184 -0
- package/dist/plugins/builtin/memory.js.map +1 -0
- package/dist/plugins/builtin/n8n.d.ts +60 -0
- package/dist/plugins/builtin/n8n.d.ts.map +1 -0
- package/dist/plugins/builtin/n8n.js +519 -0
- package/dist/plugins/builtin/n8n.js.map +1 -0
- package/dist/plugins/builtin/network.d.ts +11 -0
- package/dist/plugins/builtin/network.d.ts.map +1 -0
- package/dist/plugins/builtin/network.js +88 -0
- package/dist/plugins/builtin/network.js.map +1 -0
- package/dist/plugins/builtin/notes.d.ts +47 -0
- package/dist/plugins/builtin/notes.d.ts.map +1 -0
- package/dist/plugins/builtin/notes.js +641 -0
- package/dist/plugins/builtin/notes.js.map +1 -0
- package/dist/plugins/builtin/notion.d.ts +47 -0
- package/dist/plugins/builtin/notion.d.ts.map +1 -0
- package/dist/plugins/builtin/notion.js +317 -0
- package/dist/plugins/builtin/notion.js.map +1 -0
- package/dist/plugins/builtin/shell.d.ts +12 -0
- package/dist/plugins/builtin/shell.d.ts.map +1 -0
- package/dist/plugins/builtin/shell.js +310 -0
- package/dist/plugins/builtin/shell.js.map +1 -0
- package/dist/plugins/builtin/slack.d.ts +31 -0
- package/dist/plugins/builtin/slack.d.ts.map +1 -0
- package/dist/plugins/builtin/slack.js +295 -0
- package/dist/plugins/builtin/slack.js.map +1 -0
- package/dist/plugins/builtin/spotify.d.ts +55 -0
- package/dist/plugins/builtin/spotify.d.ts.map +1 -0
- package/dist/plugins/builtin/spotify.js +623 -0
- package/dist/plugins/builtin/spotify.js.map +1 -0
- package/dist/plugins/builtin/stripe.d.ts +35 -0
- package/dist/plugins/builtin/stripe.d.ts.map +1 -0
- package/dist/plugins/builtin/stripe.js +376 -0
- package/dist/plugins/builtin/stripe.js.map +1 -0
- package/dist/plugins/builtin/system.d.ts +11 -0
- package/dist/plugins/builtin/system.d.ts.map +1 -0
- package/dist/plugins/builtin/system.js +91 -0
- package/dist/plugins/builtin/system.js.map +1 -0
- package/dist/plugins/builtin/text-tools.d.ts +11 -0
- package/dist/plugins/builtin/text-tools.d.ts.map +1 -0
- package/dist/plugins/builtin/text-tools.js +146 -0
- package/dist/plugins/builtin/text-tools.js.map +1 -0
- package/dist/plugins/builtin/timezone.d.ts +13 -0
- package/dist/plugins/builtin/timezone.d.ts.map +1 -0
- package/dist/plugins/builtin/timezone.js +164 -0
- package/dist/plugins/builtin/timezone.js.map +1 -0
- package/dist/plugins/builtin/todoist.d.ts +49 -0
- package/dist/plugins/builtin/todoist.d.ts.map +1 -0
- package/dist/plugins/builtin/todoist.js +540 -0
- package/dist/plugins/builtin/todoist.js.map +1 -0
- package/dist/plugins/builtin/translate.d.ts +11 -0
- package/dist/plugins/builtin/translate.d.ts.map +1 -0
- package/dist/plugins/builtin/translate.js +42 -0
- package/dist/plugins/builtin/translate.js.map +1 -0
- package/dist/plugins/builtin/url-tools.d.ts +11 -0
- package/dist/plugins/builtin/url-tools.d.ts.map +1 -0
- package/dist/plugins/builtin/url-tools.js +70 -0
- package/dist/plugins/builtin/url-tools.js.map +1 -0
- package/dist/plugins/builtin/vercel.d.ts +55 -0
- package/dist/plugins/builtin/vercel.d.ts.map +1 -0
- package/dist/plugins/builtin/vercel.js +514 -0
- package/dist/plugins/builtin/vercel.js.map +1 -0
- package/dist/plugins/builtin/weather.d.ts +13 -0
- package/dist/plugins/builtin/weather.d.ts.map +1 -0
- package/dist/plugins/builtin/weather.js +103 -0
- package/dist/plugins/builtin/weather.js.map +1 -0
- package/dist/plugins/builtin/x.d.ts +54 -0
- package/dist/plugins/builtin/x.d.ts.map +1 -0
- package/dist/plugins/builtin/x.js +402 -0
- package/dist/plugins/builtin/x.js.map +1 -0
- package/dist/plugins/manager.d.ts +77 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +141 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/validation.d.ts +18 -0
- package/dist/plugins/validation.d.ts.map +1 -0
- package/dist/plugins/validation.js +81 -0
- package/dist/plugins/validation.js.map +1 -0
- package/dist/security/auth.d.ts +23 -0
- package/dist/security/auth.d.ts.map +1 -0
- package/dist/security/auth.js +56 -0
- package/dist/security/auth.js.map +1 -0
- package/dist/security/keychain.d.ts +60 -0
- package/dist/security/keychain.d.ts.map +1 -0
- package/dist/security/keychain.js +213 -0
- package/dist/security/keychain.js.map +1 -0
- package/dist/utils/google-auth.d.ts +21 -0
- package/dist/utils/google-auth.d.ts.map +1 -0
- package/dist/utils/google-auth.js +135 -0
- package/dist/utils/google-auth.js.map +1 -0
- package/dist/utils/retry.d.ts +5 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +34 -0
- package/dist/utils/retry.js.map +1 -0
- package/docs/README.md +13 -0
- package/docs/api.md +210 -0
- package/docs/getting-started.md +100 -0
- package/docs/plugins.md +306 -0
- package/docs-site/.vitepress/config.ts +59 -0
- package/docs-site/README.md +12 -0
- package/docs-site/index.md +30 -0
- package/eslint.config.js +29 -0
- package/install.ps1 +334 -0
- package/install.sh +1119 -0
- package/local-install.sh +304 -0
- package/package.json +90 -0
- package/packages/README.md +11 -0
- package/packages/plugin-sdk/README.md +12 -0
- package/packages/plugin-sdk/package.json +22 -0
- package/packages/plugin-sdk/src/README.md +11 -0
- package/packages/plugin-sdk/src/index.ts +191 -0
- package/sdks/README.md +26 -0
- package/sdks/csharp/ConductorClient.cs +65 -0
- package/sdks/csharp/README.md +11 -0
- package/sdks/go/README.md +11 -0
- package/sdks/go/conductor.go +257 -0
- package/sdks/java/ConductorClient.java +27 -0
- package/sdks/java/README.md +11 -0
- package/sdks/php/README.md +11 -0
- package/sdks/php/src/Client.php +72 -0
- package/sdks/python/README.md +12 -0
- package/sdks/python/conductor/__init__.py +227 -0
- package/sdks/python/pyproject.toml +30 -0
- package/sdks/ruby/README.md +11 -0
- package/sdks/ruby/lib/conductor.rb +46 -0
- package/sdks/rust/Cargo.toml +14 -0
- package/sdks/rust/README.md +11 -0
- package/sdks/swift/README.md +11 -0
- package/sdks/swift/Sources/Conductor/ConductorClient.swift +65 -0
- package/skills/conductor-mcp/SKILL.md +38 -0
- package/src/README.md +20 -0
- package/src/ai/README.md +18 -0
- package/src/ai/base.ts +93 -0
- package/src/ai/claude.ts +162 -0
- package/src/ai/gemini.ts +188 -0
- package/src/ai/maestro.ts +168 -0
- package/src/ai/manager.ts +537 -0
- package/src/ai/ollama.ts +186 -0
- package/src/ai/openai.ts +147 -0
- package/src/ai/openrouter.ts +152 -0
- package/src/bot/README.md +12 -0
- package/src/bot/slack.ts +164 -0
- package/src/bot/telegram.ts +185 -0
- package/src/cli/README.md +24 -0
- package/src/cli/commands/README.md +20 -0
- package/src/cli/commands/ai.ts +170 -0
- package/src/cli/commands/doctor.ts +221 -0
- package/src/cli/commands/init.ts +348 -0
- package/src/cli/commands/install.ts +792 -0
- package/src/cli/commands/lifecycle.ts +95 -0
- package/src/cli/commands/marketplace.ts +253 -0
- package/src/cli/commands/mcp.ts +92 -0
- package/src/cli/commands/onboard.ts +248 -0
- package/src/cli/commands/plugin-create.ts +130 -0
- package/src/cli/commands/plugins.ts +36 -0
- package/src/cli/commands/release.ts +251 -0
- package/src/cli/commands/telegram.ts +25 -0
- package/src/cli/index.ts +450 -0
- package/src/config/README.md +11 -0
- package/src/config/oauth.ts +26 -0
- package/src/core/README.md +22 -0
- package/src/core/audit.ts +291 -0
- package/src/core/circuit-breaker.ts +129 -0
- package/src/core/conductor.ts +240 -0
- package/src/core/config.ts +149 -0
- package/src/core/database.ts +411 -0
- package/src/core/errors.ts +275 -0
- package/src/core/health.ts +159 -0
- package/src/core/interfaces.ts +75 -0
- package/src/core/logger.ts +33 -0
- package/src/core/rbac.ts +321 -0
- package/src/core/retry.ts +61 -0
- package/src/core/webhooks.ts +234 -0
- package/src/core/zero-config.ts +72 -0
- package/src/dashboard/README.md +15 -0
- package/src/dashboard/cli.ts +48 -0
- package/src/dashboard/index.html +3426 -0
- package/src/dashboard/server.ts +1544 -0
- package/src/mcp/README.md +20 -0
- package/src/mcp/server.ts +475 -0
- package/src/mcp/tools/README.md +11 -0
- package/src/mcp/tools/misc.ts +61 -0
- package/src/plugins/README.md +28 -0
- package/src/plugins/builtin/README.md +23 -0
- package/src/plugins/builtin/calculator.ts +178 -0
- package/src/plugins/builtin/colors.ts +201 -0
- package/src/plugins/builtin/cron.ts +649 -0
- package/src/plugins/builtin/crypto.ts +85 -0
- package/src/plugins/builtin/database.ts +235 -0
- package/src/plugins/builtin/docker.ts +426 -0
- package/src/plugins/builtin/fun.ts +118 -0
- package/src/plugins/builtin/gcal.ts +305 -0
- package/src/plugins/builtin/gdrive.ts +326 -0
- package/src/plugins/builtin/github-actions.ts +666 -0
- package/src/plugins/builtin/github.ts +912 -0
- package/src/plugins/builtin/gmail.ts +492 -0
- package/src/plugins/builtin/hash.ts +98 -0
- package/src/plugins/builtin/homekit.ts +389 -0
- package/src/plugins/builtin/index.ts +116 -0
- package/src/plugins/builtin/jira.ts +380 -0
- package/src/plugins/builtin/linear.ts +448 -0
- package/src/plugins/builtin/lumen.ts +497 -0
- package/src/plugins/builtin/memory.ts +200 -0
- package/src/plugins/builtin/n8n.ts +565 -0
- package/src/plugins/builtin/network.ts +92 -0
- package/src/plugins/builtin/notes.ts +689 -0
- package/src/plugins/builtin/notion.ts +348 -0
- package/src/plugins/builtin/shell.ts +334 -0
- package/src/plugins/builtin/slack.ts +327 -0
- package/src/plugins/builtin/spotify.ts +665 -0
- package/src/plugins/builtin/stripe.ts +388 -0
- package/src/plugins/builtin/system.ts +93 -0
- package/src/plugins/builtin/text-tools.ts +150 -0
- package/src/plugins/builtin/timezone.ts +173 -0
- package/src/plugins/builtin/todoist.ts +625 -0
- package/src/plugins/builtin/translate.ts +47 -0
- package/src/plugins/builtin/url-tools.ts +73 -0
- package/src/plugins/builtin/vercel.ts +546 -0
- package/src/plugins/builtin/weather.ts +112 -0
- package/src/plugins/builtin/x.ts +440 -0
- package/src/plugins/manager.ts +213 -0
- package/src/plugins/validation.ts +94 -0
- package/src/security/README.md +12 -0
- package/src/security/auth.ts +72 -0
- package/src/security/keychain.ts +226 -0
- package/src/utils/README.md +12 -0
- package/src/utils/google-auth.ts +159 -0
- package/src/utils/retry.ts +41 -0
- package/test-all.mjs +1256 -0
- package/test.mjs +633 -0
- package/tests/README.md +19 -0
- package/tests/calculator.test.ts +54 -0
- package/tests/docker.test.ts +42 -0
- package/tests/load.test.ts +129 -0
- package/tests/mcp.test.ts +14 -0
- package/tests/shell.test.ts +42 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +14 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "conductor",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Alexander Wondwossen",
|
|
5
|
+
"email": "alex@thealxlabs.ca",
|
|
6
|
+
"url": "https://thealxlabs.ca"
|
|
7
|
+
},
|
|
8
|
+
"metadata": {
|
|
9
|
+
"description": "Conductor — Universal AI integration hub for Claude Code. Connect to GitHub, Google, Slack, Notion, Spotify, Vercel, HomeKit, and 25+ services.",
|
|
10
|
+
"version": "0.1.0"
|
|
11
|
+
},
|
|
12
|
+
"plugins": [
|
|
13
|
+
{
|
|
14
|
+
"name": "conductor",
|
|
15
|
+
"source": ".",
|
|
16
|
+
"version": "0.1.0",
|
|
17
|
+
"description": "Universal AI integration hub — connect Claude Code to 25+ services including GitHub, Gmail, Google Calendar, Drive, Slack, Notion, Spotify, Vercel, HomeKit, weather, system info, and more.",
|
|
18
|
+
"author": {
|
|
19
|
+
"name": "Alexander Wondwossen",
|
|
20
|
+
"url": "https://thealxlabs.ca"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://github.com/thealxlabs/conductor",
|
|
23
|
+
"repository": "https://github.com/thealxlabs/conductor",
|
|
24
|
+
"license": "Apache-2.0",
|
|
25
|
+
"category": "integrations",
|
|
26
|
+
"keywords": [
|
|
27
|
+
"mcp", "github", "google", "gmail", "calendar", "drive",
|
|
28
|
+
"slack", "notion", "spotify", "vercel", "homekit",
|
|
29
|
+
"automation", "integration", "ai-hub", "weather", "n8n"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "conductor",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Universal AI integration hub — connect Claude Code to GitHub, Google, Slack, Notion, Spotify, Vercel, HomeKit, and 25+ more services.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Alexander Wondwossen",
|
|
7
|
+
"email": "alex@thealxlabs.ca",
|
|
8
|
+
"url": "https://thealxlabs.ca"
|
|
9
|
+
},
|
|
10
|
+
"repository": "https://github.com/thealxlabs/conductor",
|
|
11
|
+
"homepage": "https://github.com/thealxlabs/conductor",
|
|
12
|
+
"license": "Apache-2.0",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"integration", "mcp", "github", "google", "slack",
|
|
15
|
+
"notion", "spotify", "vercel", "homekit", "automation", "ai-hub"
|
|
16
|
+
],
|
|
17
|
+
"category": "integrations",
|
|
18
|
+
"components": {
|
|
19
|
+
"skills": ["skills/"],
|
|
20
|
+
"commands": ["commands/"],
|
|
21
|
+
"mcpServers": ".mcp.json"
|
|
22
|
+
}
|
|
23
|
+
}
|
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"parser": "@typescript-eslint/parser",
|
|
4
|
+
"parserOptions": {
|
|
5
|
+
"ecmaVersion": 2022,
|
|
6
|
+
"sourceType": "module",
|
|
7
|
+
"project": "./tsconfig.json"
|
|
8
|
+
},
|
|
9
|
+
"plugins": ["@typescript-eslint"],
|
|
10
|
+
"extends": [
|
|
11
|
+
"eslint:recommended",
|
|
12
|
+
"plugin:@typescript-eslint/recommended",
|
|
13
|
+
"prettier"
|
|
14
|
+
],
|
|
15
|
+
"rules": {
|
|
16
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
17
|
+
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
|
|
18
|
+
"@typescript-eslint/consistent-type-imports": "error",
|
|
19
|
+
"no-console": "off",
|
|
20
|
+
"prefer-const": "error"
|
|
21
|
+
},
|
|
22
|
+
"ignorePatterns": ["dist/", "node_modules/", "*.js", "*.mjs"]
|
|
23
|
+
}
|
package/.gitattributes
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# These are supported funding model platforms
|
|
2
|
+
|
|
3
|
+
github: thealxlabs
|
|
4
|
+
patreon: # Replace with a single Patreon username
|
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
|
6
|
+
ko_fi: thealxlabs
|
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
12
|
+
polar: # Replace with a single Polar username
|
|
13
|
+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
|
14
|
+
thanks_dev: # Replace with a single thanks.dev username
|
|
15
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Something isn't working right
|
|
3
|
+
labels: ["bug", "needs triage"]
|
|
4
|
+
assignees: ["thealxlabs"]
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for reporting a bug. Fill out as much as you can — it helps a lot.
|
|
11
|
+
|
|
12
|
+
- type: dropdown
|
|
13
|
+
id: area
|
|
14
|
+
attributes:
|
|
15
|
+
label: Where is the bug?
|
|
16
|
+
options:
|
|
17
|
+
- Plugin (specify below)
|
|
18
|
+
- Installer (install.sh)
|
|
19
|
+
- CLI (conductor command)
|
|
20
|
+
- Telegram bot
|
|
21
|
+
- MCP server
|
|
22
|
+
- AI provider
|
|
23
|
+
- Authentication / OAuth
|
|
24
|
+
- Other
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- type: input
|
|
29
|
+
id: plugin
|
|
30
|
+
attributes:
|
|
31
|
+
label: Plugin name
|
|
32
|
+
description: If the bug is in a plugin, which one?
|
|
33
|
+
placeholder: e.g. spotify, gmail, github_actions
|
|
34
|
+
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: description
|
|
37
|
+
attributes:
|
|
38
|
+
label: What happened?
|
|
39
|
+
description: Clear description of the bug.
|
|
40
|
+
placeholder: When I run X, Y happens instead of Z.
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: repro
|
|
46
|
+
attributes:
|
|
47
|
+
label: Steps to reproduce
|
|
48
|
+
placeholder: |
|
|
49
|
+
1. Run `conductor ...`
|
|
50
|
+
2. See error
|
|
51
|
+
validations:
|
|
52
|
+
required: true
|
|
53
|
+
|
|
54
|
+
- type: textarea
|
|
55
|
+
id: expected
|
|
56
|
+
attributes:
|
|
57
|
+
label: What did you expect?
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: logs
|
|
63
|
+
attributes:
|
|
64
|
+
label: Error output / logs
|
|
65
|
+
description: Paste any relevant terminal output here.
|
|
66
|
+
render: shell
|
|
67
|
+
|
|
68
|
+
- type: dropdown
|
|
69
|
+
id: os
|
|
70
|
+
attributes:
|
|
71
|
+
label: OS
|
|
72
|
+
options:
|
|
73
|
+
- macOS
|
|
74
|
+
- Linux
|
|
75
|
+
- Windows
|
|
76
|
+
validations:
|
|
77
|
+
required: true
|
|
78
|
+
|
|
79
|
+
- type: input
|
|
80
|
+
id: node
|
|
81
|
+
attributes:
|
|
82
|
+
label: Node.js version
|
|
83
|
+
placeholder: e.g. 20.11.0 (run `node --version`)
|
|
84
|
+
validations:
|
|
85
|
+
required: true
|
|
86
|
+
|
|
87
|
+
- type: input
|
|
88
|
+
id: conductor
|
|
89
|
+
attributes:
|
|
90
|
+
label: Conductor version
|
|
91
|
+
placeholder: e.g. 0.1.0 (run `conductor version`)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Documentation
|
|
4
|
+
url: https://github.com/thealxlabs/conductor#readme
|
|
5
|
+
about: Read the README before opening an issue
|
|
6
|
+
- name: Security vulnerability
|
|
7
|
+
url: https://github.com/thealxlabs/conductor/security/advisories/new
|
|
8
|
+
about: Report security issues privately — do not open a public issue
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new plugin, tool, or improvement
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
assignees: ["thealxlabs"]
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Got an idea? Lay it out below.
|
|
11
|
+
|
|
12
|
+
- type: dropdown
|
|
13
|
+
id: type
|
|
14
|
+
attributes:
|
|
15
|
+
label: What kind of feature?
|
|
16
|
+
options:
|
|
17
|
+
- New plugin
|
|
18
|
+
- New tool in existing plugin
|
|
19
|
+
- CLI improvement
|
|
20
|
+
- Installer improvement
|
|
21
|
+
- MCP / Telegram improvement
|
|
22
|
+
- Performance
|
|
23
|
+
- Developer experience
|
|
24
|
+
- Other
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- type: input
|
|
29
|
+
id: plugin_name
|
|
30
|
+
attributes:
|
|
31
|
+
label: Plugin / service name
|
|
32
|
+
description: If this is about a new plugin or service integration, which one?
|
|
33
|
+
placeholder: e.g. Linear, Airtable, Slack, HomeKit
|
|
34
|
+
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: problem
|
|
37
|
+
attributes:
|
|
38
|
+
label: What problem does this solve?
|
|
39
|
+
description: What are you trying to do that you can't do today?
|
|
40
|
+
placeholder: I want to be able to...
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: solution
|
|
46
|
+
attributes:
|
|
47
|
+
label: What would the solution look like?
|
|
48
|
+
description: Describe the feature. What tools would it expose? What would the output look like?
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: alternatives
|
|
54
|
+
attributes:
|
|
55
|
+
label: Alternatives you've considered
|
|
56
|
+
description: Any workarounds or other approaches you've tried?
|
|
57
|
+
|
|
58
|
+
- type: checkboxes
|
|
59
|
+
id: willing
|
|
60
|
+
attributes:
|
|
61
|
+
label: Are you willing to contribute this?
|
|
62
|
+
options:
|
|
63
|
+
- label: I'd like to open a PR for this
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
name: Plugin Request
|
|
2
|
+
description: Request a new service integration
|
|
3
|
+
labels: ["plugin-request"]
|
|
4
|
+
assignees: ["thealxlabs"]
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Conductor has 25 plugins and counting. Request the next one here.
|
|
11
|
+
|
|
12
|
+
- type: input
|
|
13
|
+
id: service
|
|
14
|
+
attributes:
|
|
15
|
+
label: Service / platform name
|
|
16
|
+
placeholder: e.g. Linear, Airtable, Discord, Stripe, Shopify
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: input
|
|
21
|
+
id: api_docs
|
|
22
|
+
attributes:
|
|
23
|
+
label: API documentation URL
|
|
24
|
+
placeholder: https://developers.example.com/docs
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: tools
|
|
28
|
+
attributes:
|
|
29
|
+
label: What tools should it expose?
|
|
30
|
+
description: List the specific things the AI should be able to do with this service.
|
|
31
|
+
placeholder: |
|
|
32
|
+
- List tasks
|
|
33
|
+
- Create and assign issues
|
|
34
|
+
- Update task status
|
|
35
|
+
- Search projects
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
|
|
39
|
+
- type: textarea
|
|
40
|
+
id: use_case
|
|
41
|
+
attributes:
|
|
42
|
+
label: Your use case
|
|
43
|
+
description: How would you actually use this in Conductor / Telegram / Claude Desktop?
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: dropdown
|
|
48
|
+
id: auth
|
|
49
|
+
attributes:
|
|
50
|
+
label: How does the API authenticate?
|
|
51
|
+
options:
|
|
52
|
+
- API key
|
|
53
|
+
- OAuth 2.0
|
|
54
|
+
- OAuth 1.0a
|
|
55
|
+
- Bearer token
|
|
56
|
+
- Basic auth
|
|
57
|
+
- Other / not sure
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: dropdown
|
|
62
|
+
id: free_tier
|
|
63
|
+
attributes:
|
|
64
|
+
label: Does it have a free tier?
|
|
65
|
+
options:
|
|
66
|
+
- "Yes — fully free"
|
|
67
|
+
- "Yes — free tier with limits"
|
|
68
|
+
- "No — paid only"
|
|
69
|
+
- "Not sure"
|
|
70
|
+
validations:
|
|
71
|
+
required: true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# .github
|
|
2
|
+
|
|
3
|
+
GitHub configuration for the Conductor repository.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- `workflows/` - GitHub Actions CI/CD workflows
|
|
8
|
+
- `ISSUE_TEMPLATE/` - Issue templates for bug reports and feature requests
|
|
9
|
+
- `FUNDING.yml` - Sponsorship configuration
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
This directory contains GitHub-specific repository configuration. Workflows handle CI, releases, and automated tasks. Issue templates standardize how contributors report bugs and request features.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# .github/workflows
|
|
2
|
+
|
|
3
|
+
GitHub Actions CI/CD workflows for Conductor.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- `ci.yml` - Continuous integration: lint, typecheck, test, build
|
|
8
|
+
- `auto-release.yml` - Automated release creation
|
|
9
|
+
- `claude-code-review.yml` - AI-assisted code review
|
|
10
|
+
- `claude.yml` - Claude Code automation
|
|
11
|
+
- `sync-install.yml` - Install script synchronization
|
|
12
|
+
|
|
13
|
+
## Architecture
|
|
14
|
+
|
|
15
|
+
These workflows automate the development lifecycle:
|
|
16
|
+
|
|
17
|
+
- **CI** runs on every push/PR to ensure code quality
|
|
18
|
+
- **Auto-release** publishes new versions on tag creation
|
|
19
|
+
- **Claude workflows** provide AI-assisted review and automation
|
|
20
|
+
- **Sync-install** keeps installation scripts up to date
|
|
21
|
+
|
|
22
|
+
All workflows run on GitHub's infrastructure and are triggered by push, pull request, or schedule events.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
name: Auto Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
fetch-depth: 0
|
|
19
|
+
|
|
20
|
+
- name: Get version from commit
|
|
21
|
+
id: version
|
|
22
|
+
run: |
|
|
23
|
+
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
24
|
+
DATE=$(date +'%Y.%m.%d')
|
|
25
|
+
echo "version=v${DATE}-${SHORT_SHA}" >> $GITHUB_OUTPUT
|
|
26
|
+
|
|
27
|
+
- name: Generate changelog
|
|
28
|
+
id: changelog
|
|
29
|
+
run: |
|
|
30
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
31
|
+
|
|
32
|
+
if [ -z "$LAST_TAG" ]; then
|
|
33
|
+
echo "No previous tags — using full commit history."
|
|
34
|
+
COMMITS=$(git log --pretty=format:"%s|%h|%an" --no-merges | head -50)
|
|
35
|
+
else
|
|
36
|
+
echo "Generating changelog since $LAST_TAG"
|
|
37
|
+
COMMITS=$(git log "${LAST_TAG}..HEAD" --pretty=format:"%s|%h|%an" --no-merges)
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
if [ -z "$COMMITS" ]; then
|
|
41
|
+
echo "_No changes recorded._" > release_notes.md
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
FEATS=""
|
|
46
|
+
FIXES=""
|
|
47
|
+
PERF=""
|
|
48
|
+
CHORE=""
|
|
49
|
+
OTHER=""
|
|
50
|
+
|
|
51
|
+
while IFS='|' read -r subject hash author; do
|
|
52
|
+
ENTRY="- ${subject} (\`${hash}\`) — ${author}"
|
|
53
|
+
case "$subject" in
|
|
54
|
+
feat*|add*|new*) FEATS="$FEATS\n$ENTRY" ;;
|
|
55
|
+
fix*|bug*|patch*) FIXES="$FIXES\n$ENTRY" ;;
|
|
56
|
+
perf*|optim*) PERF="$PERF\n$ENTRY" ;;
|
|
57
|
+
chore*|ci*|build*|docs*|refactor*|test*|style*) CHORE="$CHORE\n$ENTRY" ;;
|
|
58
|
+
*) OTHER="$OTHER\n$ENTRY" ;;
|
|
59
|
+
esac
|
|
60
|
+
done <<< "$COMMITS"
|
|
61
|
+
|
|
62
|
+
{
|
|
63
|
+
echo "## What's Changed"
|
|
64
|
+
echo ""
|
|
65
|
+
echo "> Commit: \`${{ github.sha }}\`"
|
|
66
|
+
echo "> Branch: \`${{ github.ref_name }}\`"
|
|
67
|
+
echo "> Author: ${{ github.actor }}"
|
|
68
|
+
echo ""
|
|
69
|
+
|
|
70
|
+
if [ -n "$FEATS" ]; then
|
|
71
|
+
echo "### ✨ New Features"
|
|
72
|
+
printf "%b\n\n" "$FEATS"
|
|
73
|
+
fi
|
|
74
|
+
if [ -n "$FIXES" ]; then
|
|
75
|
+
echo "### 🐛 Bug Fixes"
|
|
76
|
+
printf "%b\n\n" "$FIXES"
|
|
77
|
+
fi
|
|
78
|
+
if [ -n "$PERF" ]; then
|
|
79
|
+
echo "### ⚡ Performance"
|
|
80
|
+
printf "%b\n\n" "$PERF"
|
|
81
|
+
fi
|
|
82
|
+
if [ -n "$OTHER" ]; then
|
|
83
|
+
echo "### 🔀 Other Changes"
|
|
84
|
+
printf "%b\n\n" "$OTHER"
|
|
85
|
+
fi
|
|
86
|
+
if [ -n "$CHORE" ]; then
|
|
87
|
+
echo "### 🔧 Maintenance"
|
|
88
|
+
printf "%b\n\n" "$CHORE"
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
if [ -n "$LAST_TAG" ]; then
|
|
92
|
+
echo "---"
|
|
93
|
+
echo "**Full diff:** https://github.com/${{ github.repository }}/compare/${LAST_TAG}...${{ steps.version.outputs.version }}"
|
|
94
|
+
fi
|
|
95
|
+
} > release_notes.md
|
|
96
|
+
|
|
97
|
+
- name: Create GitHub Release
|
|
98
|
+
run: |
|
|
99
|
+
gh release create "${{ steps.version.outputs.version }}" \
|
|
100
|
+
--title "Conductor ${{ steps.version.outputs.version }}" \
|
|
101
|
+
--notes-file release_notes.md \
|
|
102
|
+
--latest
|
|
103
|
+
env:
|
|
104
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
105
|
+
|
|
106
|
+
- name: Summary
|
|
107
|
+
if: always()
|
|
108
|
+
run: |
|
|
109
|
+
echo "### ✅ Released" >> $GITHUB_STEP_SUMMARY
|
|
110
|
+
echo "**Conductor \`${{ steps.version.outputs.version }}\`** has been published." >> $GITHUB_STEP_SUMMARY
|
|
111
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
112
|
+
cat release_notes.md >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
node-version: [18, 20, 22]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Setup Node.js ${{ matrix.node-version }}
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: ${{ matrix.node-version }}
|
|
24
|
+
cache: 'npm'
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
|
|
29
|
+
- name: Type check
|
|
30
|
+
run: npm run typecheck
|
|
31
|
+
|
|
32
|
+
- name: Lint
|
|
33
|
+
run: npm run lint
|
|
34
|
+
|
|
35
|
+
- name: Format check
|
|
36
|
+
run: npm run format:check
|
|
37
|
+
|
|
38
|
+
- name: Build
|
|
39
|
+
run: npm run build
|
|
40
|
+
|
|
41
|
+
- name: Test
|
|
42
|
+
run: npm test
|
|
43
|
+
|
|
44
|
+
- name: Upload coverage
|
|
45
|
+
uses: codecov/codecov-action@v4
|
|
46
|
+
if: matrix.node-version == 22
|
|
47
|
+
with:
|
|
48
|
+
files: ./coverage/lcov.info
|
|
49
|
+
fail_ci_if_error: false
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Claude Code Review
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize, ready_for_review, reopened]
|
|
6
|
+
# Optional: Only run on specific file changes
|
|
7
|
+
# paths:
|
|
8
|
+
# - "src/**/*.ts"
|
|
9
|
+
# - "src/**/*.tsx"
|
|
10
|
+
# - "src/**/*.js"
|
|
11
|
+
# - "src/**/*.jsx"
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
claude-review:
|
|
15
|
+
# Optional: Filter by PR author
|
|
16
|
+
# if: |
|
|
17
|
+
# github.event.pull_request.user.login == 'external-contributor' ||
|
|
18
|
+
# github.event.pull_request.user.login == 'new-developer' ||
|
|
19
|
+
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
|
|
20
|
+
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
pull-requests: read
|
|
25
|
+
issues: read
|
|
26
|
+
id-token: write
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout repository
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
with:
|
|
32
|
+
fetch-depth: 1
|
|
33
|
+
|
|
34
|
+
- name: Run Claude Code Review
|
|
35
|
+
id: claude-review
|
|
36
|
+
uses: anthropics/claude-code-action@v1
|
|
37
|
+
with:
|
|
38
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
39
|
+
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
|
|
40
|
+
plugins: 'code-review@claude-code-plugins'
|
|
41
|
+
prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
|
|
42
|
+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
|
43
|
+
# or https://code.claude.com/docs/en/cli-reference for available options
|
|
44
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Claude Code
|
|
2
|
+
on:
|
|
3
|
+
issue_comment:
|
|
4
|
+
types: [created]
|
|
5
|
+
pull_request_review_comment:
|
|
6
|
+
types: [created]
|
|
7
|
+
issues:
|
|
8
|
+
types: [opened, assigned]
|
|
9
|
+
pull_request_review:
|
|
10
|
+
types: [submitted]
|
|
11
|
+
jobs:
|
|
12
|
+
claude:
|
|
13
|
+
if: |
|
|
14
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
15
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
16
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
17
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
permissions:
|
|
20
|
+
contents: write
|
|
21
|
+
pull-requests: write
|
|
22
|
+
issues: write
|
|
23
|
+
id-token: write
|
|
24
|
+
actions: read
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout repository
|
|
27
|
+
uses: actions/checkout@v4
|
|
28
|
+
with:
|
|
29
|
+
fetch-depth: 1
|
|
30
|
+
- name: Run Claude Code
|
|
31
|
+
id: claude
|
|
32
|
+
uses: anthropics/claude-code-action@v1
|
|
33
|
+
with:
|
|
34
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
35
|
+
additional_permissions: |
|
|
36
|
+
actions: read
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Sync install.sh to website
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'install.sh'
|
|
9
|
+
- 'install.ps1'
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
sync:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout conductor repo
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Push install scripts to website repo
|
|
23
|
+
env:
|
|
24
|
+
TOKEN: ${{ secrets.WEBSITE_REPO_TOKEN }}
|
|
25
|
+
run: |
|
|
26
|
+
WEBSITE_REPO="thealxlabs/conductor-website"
|
|
27
|
+
|
|
28
|
+
git config --global user.name "github-actions[bot]"
|
|
29
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
30
|
+
|
|
31
|
+
git clone https://x-access-token:${TOKEN}@github.com/${WEBSITE_REPO}.git website-repo
|
|
32
|
+
|
|
33
|
+
cp install.sh website-repo/install.sh
|
|
34
|
+
cp install.ps1 website-repo/install.ps1
|
|
35
|
+
|
|
36
|
+
cd website-repo
|
|
37
|
+
|
|
38
|
+
git add install.sh install.ps1
|
|
39
|
+
|
|
40
|
+
# Only commit if there are staged changes
|
|
41
|
+
if git diff --cached --quiet; then
|
|
42
|
+
echo "No changes, skipping commit."
|
|
43
|
+
exit 0
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
git commit -m "sync: update install scripts from conductor@${{ github.sha }}"
|
|
47
|
+
git push
|
package/.mcp.json
ADDED