openhands-extensions 0.9.0__tar.gz → 0.10.0__tar.gz
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.
- openhands_extensions-0.10.0/.github/workflows/deprecation-check.yml +25 -0
- openhands_extensions-0.10.0/.release-please-manifest.json +3 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/PKG-INFO +4 -1
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/README.md +25 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/atlassian.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/github.json +20 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/microsoft-outlook.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/microsoft-teams.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/notion.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/onedrive.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sharepoint.json +13 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/slack.json +14 -0
- openhands_extensions-0.10.0/integrations/catalog/vanta.json +55 -0
- openhands_extensions-0.10.0/integrations/catalog-index.js +155 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog.schema.json +70 -3
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/index.d.ts +49 -3
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/package.json +1 -1
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/pyproject.toml +6 -1
- openhands_extensions-0.10.0/python/openhands_extensions/__init__.py +62 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/python/openhands_extensions/_version.py +2 -2
- openhands_extensions-0.10.0/python/openhands_extensions/deprecation.py +159 -0
- openhands_extensions-0.10.0/python/openhands_extensions/integration_models.py +233 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/python/openhands_extensions/integrations.py +59 -4
- openhands_extensions-0.10.0/scripts/check_deprecations.py +488 -0
- openhands_extensions-0.10.0/tests/test_catalog_schema.py +105 -0
- openhands_extensions-0.10.0/tests/test_deprecations.py +136 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_integration_catalog_in_sync.py +118 -7
- openhands_extensions-0.9.0/.release-please-manifest.json +0 -3
- openhands_extensions-0.9.0/integrations/catalog-index.js +0 -153
- openhands_extensions-0.9.0/python/openhands_extensions/__init__.py +0 -24
- openhands_extensions-0.9.0/tests/test_catalog_schema.py +0 -47
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.agents/skills/custom-codereview-guide.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.claude-plugin/marketplace.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/pull_request_template.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/release.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/check-extensions.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/npm-publish.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/pr.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/pypi-publish.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/release.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/tests.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.gitignore +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/AGENTS.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/LICENSE +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/MIGRATION.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/analysis_results.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/github-pr-reviewer.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/github-repo-monitor.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/incident-retrospective-drafter.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/jira-issue-to-pr.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/linear-triage-assistant.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/research-brief-writer.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/slack-channel-monitor.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/slack-standup-digest.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/index.d.ts +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/index.js +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/index.d.ts +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/index.js +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/airtable.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/apify.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/asana.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/bitbucket.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/box.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/brave-search.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/browser-mcp.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/canva.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/clickhouse.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-bindings.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-builds.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-docs.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-observability.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/confluence.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/datadog.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/deepwiki.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/discord.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/elevenlabs.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/everything.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/exa.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/fetch.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/figma.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/filesystem.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/firecrawl.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/git.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/gmail.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-calendar.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-docs.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-drive.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-sheets.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/hubspot.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/huggingface.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/intercom.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/jira.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/kagi.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/linear.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/memory.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/miro.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/monday.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/mongodb.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/neon.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/netlify.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/obsidian.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/okta.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/ordinal.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/paypal.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/playwright.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/posthog.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/quickbooks.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/redis.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/resend.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/salesforce.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sentry.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sequential-thinking.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/stripe.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/supabase.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/superhuman-mail.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/tavily.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/time.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/trello.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/vercel.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/webflow.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/xero.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/zoom.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/icons/salesforce.svg +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/icons/slack.svg +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/index.js +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/marketplaces/large-codebase.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/marketplaces/openhands-extensions.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/commands/now.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/action.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/references/criteria.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/commands/create.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/scripts/run.sh +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/action.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/agent_script.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/prompt.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/commands/codereview.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/action.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/prompt.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/action.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/prompt.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/action.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/release-please-config.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/build-integration-catalog.mjs +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/build-skills-catalog.mjs +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/sync_extensions.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/sync_openhands_sdk_skill.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/references/example.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/commands/agent-creator.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/references/fallback.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/commands/remember.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/commands/simplify.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/references/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/__init__.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/references/REFERENCE.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/__init__.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/_http.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/post_webhook.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/send_message.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/LICENSE.txt +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/references/state-schema.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/scripts/main.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/github-api.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/index.d.ts +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/index.js +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/babysit.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/iterate.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/verify.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/heuristics.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/verification.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/references/setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/scripts/main.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/commands/prd.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/LICENSE.txt +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/output-patterns.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/workflows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/scripts/init_skill.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/references/windows.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/LICENSE.txt +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/theme-showcase.pdf +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/desert-rose.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/golden-hour.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/references/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/SKILL.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_catalogs.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_code_review_risk_evaluation.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_github_pr_review_skill.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_issue_duplicate_checker.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_openhands_api_python.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_plugin_manifest.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_diff_payload.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_feedback.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_prompt.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_review_context.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_qa_changes.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_qa_changes_evaluation.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_release_notes_generator.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_sdk_loading.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skill_plugin_loading.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skills_catalog.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skills_have_readme.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_slack_channel_monitor.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_sync_extensions.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_version_alignment.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_workflow_sync.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/README.md +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/analyze.py +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
- {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/templates/pr_review.j2 +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Deprecation deadlines
|
|
2
|
+
|
|
3
|
+
# release-please opens its release PR with the OpenHands GitHub App token, so
|
|
4
|
+
# this pull_request workflow also runs against the generated version bump.
|
|
5
|
+
on:
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["**"]
|
|
8
|
+
push:
|
|
9
|
+
branches: ["main", "master"]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
check:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repository
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v7
|
|
20
|
+
with:
|
|
21
|
+
enable-cache: true
|
|
22
|
+
python-version: "3.12"
|
|
23
|
+
|
|
24
|
+
- name: Verify deprecation deadlines
|
|
25
|
+
run: uv run python scripts/check_deprecations.py
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openhands-extensions
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: OpenHands extensions, plugins, and skills (Python bindings for the integration catalog)
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.12
|
|
7
|
+
Requires-Dist: deprecation<3,>=2.1
|
|
8
|
+
Requires-Dist: packaging<26,>=24
|
|
9
|
+
Requires-Dist: pydantic<3,>=2.10
|
|
@@ -18,6 +18,31 @@ integrations so clients can consume one source of truth.
|
|
|
18
18
|
Each integration carries its OAuth/MCP connection data directly. Do not add a
|
|
19
19
|
separate provider catalog or per-language provider data.
|
|
20
20
|
|
|
21
|
+
Every entry must include `docsUrl`. Marketplace input fields must explicitly
|
|
22
|
+
declare both their `type` and whether they are `required`, rather than relying
|
|
23
|
+
on client defaults. When connection metadata includes an `identityMapping`, it
|
|
24
|
+
must also identify the external principal. These requirements keep catalogs
|
|
25
|
+
actionable and prevent clients from guessing security- or UX-relevant defaults.
|
|
26
|
+
|
|
27
|
+
Connection options may also carry an optional `connectionModel`. This metadata
|
|
28
|
+
lets consumers distinguish the authenticated principal from the external
|
|
29
|
+
resource the credential can reach:
|
|
30
|
+
|
|
31
|
+
- `principalType` describes who or what authenticated.
|
|
32
|
+
- `credentialScope` describes the provider boundary enforced by the credential.
|
|
33
|
+
- `resourceType` and `resourceCardinality` describe whether the grant represents
|
|
34
|
+
one workspace/site/tenant or can enumerate several.
|
|
35
|
+
- `selectionMode` tells clients whether the resource is known during auth,
|
|
36
|
+
selected immediately after auth, or supplied at runtime.
|
|
37
|
+
- `identityMapping` contains constrained dot paths for identity values returned
|
|
38
|
+
by OAuth, access-token claims, or a provider identity endpoint.
|
|
39
|
+
- `resourceDiscovery` describes a read-only endpoint used to enumerate resources
|
|
40
|
+
when one grant covers several of them.
|
|
41
|
+
|
|
42
|
+
These fields are descriptive; they never broaden the scopes enforced by the
|
|
43
|
+
provider credential. Consumers must not claim resource-level isolation when a
|
|
44
|
+
provider token is only account- or tenant-scoped.
|
|
45
|
+
|
|
21
46
|
Consumers should use the read functions exported by the package:
|
|
22
47
|
|
|
23
48
|
```js
|
{openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/atlassian.json
RENAMED
|
@@ -24,6 +24,19 @@
|
|
|
24
24
|
{
|
|
25
25
|
"id": "oauth",
|
|
26
26
|
"provider": "mcp",
|
|
27
|
+
"connectionModel": {
|
|
28
|
+
"principalType": "user",
|
|
29
|
+
"credentialScope": "account",
|
|
30
|
+
"resourceType": "site",
|
|
31
|
+
"resourceCardinality": "many",
|
|
32
|
+
"selectionMode": "post_auth",
|
|
33
|
+
"resourceDiscovery": {
|
|
34
|
+
"endpoint": "https://api.atlassian.com/oauth/token/accessible-resources",
|
|
35
|
+
"externalResourceIdPath": "id",
|
|
36
|
+
"resourceNamePath": "name",
|
|
37
|
+
"resourceUrlPath": "url"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
27
40
|
"transport": {
|
|
28
41
|
"kind": "shttp",
|
|
29
42
|
"url": "https://mcp.atlassian.com/v1/mcp"
|
|
@@ -14,6 +14,26 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "mcp",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "account",
|
|
20
|
+
"resourceType": "organization",
|
|
21
|
+
"resourceCardinality": "many",
|
|
22
|
+
"selectionMode": "post_auth",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "identity_api",
|
|
25
|
+
"endpoint": "https://api.github.com/user",
|
|
26
|
+
"externalPrincipalIdPath": "id",
|
|
27
|
+
"resourceNamePath": "login",
|
|
28
|
+
"resourceUrlPath": "html_url"
|
|
29
|
+
},
|
|
30
|
+
"resourceDiscovery": {
|
|
31
|
+
"endpoint": "https://api.github.com/user/orgs",
|
|
32
|
+
"externalResourceIdPath": "id",
|
|
33
|
+
"resourceNamePath": "login",
|
|
34
|
+
"resourceUrlPath": "html_url"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
17
37
|
"auth": {
|
|
18
38
|
"strategy": "oauth2",
|
|
19
39
|
"oauth": {
|
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "http",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "tenant",
|
|
20
|
+
"resourceType": "tenant",
|
|
21
|
+
"resourceCardinality": "one",
|
|
22
|
+
"selectionMode": "automatic",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "access_token_claims",
|
|
25
|
+
"externalPrincipalIdPath": "oid",
|
|
26
|
+
"externalTenantIdPath": "tid",
|
|
27
|
+
"externalResourceIdPath": "tid"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
17
30
|
"auth": {
|
|
18
31
|
"strategy": "oauth2",
|
|
19
32
|
"oauth": {
|
{openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/microsoft-teams.json
RENAMED
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "http",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "tenant",
|
|
20
|
+
"resourceType": "tenant",
|
|
21
|
+
"resourceCardinality": "one",
|
|
22
|
+
"selectionMode": "automatic",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "access_token_claims",
|
|
25
|
+
"externalPrincipalIdPath": "oid",
|
|
26
|
+
"externalTenantIdPath": "tid",
|
|
27
|
+
"externalResourceIdPath": "tid"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
17
30
|
"auth": {
|
|
18
31
|
"strategy": "oauth2",
|
|
19
32
|
"oauth": {
|
|
@@ -13,6 +13,19 @@
|
|
|
13
13
|
{
|
|
14
14
|
"id": "oauth",
|
|
15
15
|
"provider": "http",
|
|
16
|
+
"connectionModel": {
|
|
17
|
+
"principalType": "user",
|
|
18
|
+
"credentialScope": "resource",
|
|
19
|
+
"resourceType": "workspace",
|
|
20
|
+
"resourceCardinality": "one",
|
|
21
|
+
"selectionMode": "automatic",
|
|
22
|
+
"identityMapping": {
|
|
23
|
+
"source": "oauth_token_response",
|
|
24
|
+
"externalPrincipalIdPath": "owner.user.id",
|
|
25
|
+
"externalResourceIdPath": "workspace_id",
|
|
26
|
+
"resourceNamePath": "workspace_name"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
16
29
|
"auth": {
|
|
17
30
|
"strategy": "oauth2",
|
|
18
31
|
"oauth": {
|
{openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/onedrive.json
RENAMED
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "http",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "tenant",
|
|
20
|
+
"resourceType": "tenant",
|
|
21
|
+
"resourceCardinality": "one",
|
|
22
|
+
"selectionMode": "automatic",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "access_token_claims",
|
|
25
|
+
"externalPrincipalIdPath": "oid",
|
|
26
|
+
"externalTenantIdPath": "tid",
|
|
27
|
+
"externalResourceIdPath": "tid"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
17
30
|
"auth": {
|
|
18
31
|
"strategy": "oauth2",
|
|
19
32
|
"oauth": {
|
{openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sharepoint.json
RENAMED
|
@@ -14,6 +14,19 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "http",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "tenant",
|
|
20
|
+
"resourceType": "tenant",
|
|
21
|
+
"resourceCardinality": "one",
|
|
22
|
+
"selectionMode": "automatic",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "access_token_claims",
|
|
25
|
+
"externalPrincipalIdPath": "oid",
|
|
26
|
+
"externalTenantIdPath": "tid",
|
|
27
|
+
"externalResourceIdPath": "tid"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
17
30
|
"auth": {
|
|
18
31
|
"strategy": "oauth2",
|
|
19
32
|
"oauth": {
|
|
@@ -14,6 +14,20 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "oauth",
|
|
16
16
|
"provider": "mcp",
|
|
17
|
+
"connectionModel": {
|
|
18
|
+
"principalType": "user",
|
|
19
|
+
"credentialScope": "resource",
|
|
20
|
+
"resourceType": "workspace",
|
|
21
|
+
"resourceCardinality": "one",
|
|
22
|
+
"selectionMode": "automatic",
|
|
23
|
+
"identityMapping": {
|
|
24
|
+
"source": "oauth_token_response",
|
|
25
|
+
"externalPrincipalIdPath": "authed_user.id",
|
|
26
|
+
"externalTenantIdPath": "enterprise.id",
|
|
27
|
+
"externalResourceIdPath": "team.id",
|
|
28
|
+
"resourceNamePath": "team.name"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
17
31
|
"auth": {
|
|
18
32
|
"strategy": "oauth2",
|
|
19
33
|
"oauth": {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vanta",
|
|
3
|
+
"name": "Vanta",
|
|
4
|
+
"description": "Query Vanta compliance controls, tests, evidence, risks, and vulnerabilities from the agent.",
|
|
5
|
+
"categories": [
|
|
6
|
+
"Security",
|
|
7
|
+
"Compliance"
|
|
8
|
+
],
|
|
9
|
+
"appUrl": "https://www.vanta.com",
|
|
10
|
+
"docsUrl": "https://developer.vanta.com/docs/vanta-mcp",
|
|
11
|
+
"notes": "Vanta's hosted remote MCP server (beta, requires a Vanta Admin role). Regional endpoints: US https://mcp.vanta.com/mcp, EU https://mcp.eu.vanta.com/mcp, AUS https://mcp.aus.vanta.com/mcp. Authentication is OAuth only - no API keys.",
|
|
12
|
+
"popularityRank": 64,
|
|
13
|
+
"connectionOptions": [
|
|
14
|
+
{
|
|
15
|
+
"id": "oauth",
|
|
16
|
+
"provider": "mcp",
|
|
17
|
+
"auth": {
|
|
18
|
+
"strategy": "oauth2",
|
|
19
|
+
"oauth": {
|
|
20
|
+
"authorizationUrl": "https://app.vanta.com/oauth/authorize",
|
|
21
|
+
"tokenUrl": "https://api.vanta.com/oauth/token",
|
|
22
|
+
"registrationUrl": "https://api.vanta.com/oauth/register",
|
|
23
|
+
"scopes": [
|
|
24
|
+
"mcp-api.all:read"
|
|
25
|
+
],
|
|
26
|
+
"optionalScopes": [
|
|
27
|
+
"mcp-api.all:write"
|
|
28
|
+
],
|
|
29
|
+
"pkce": true,
|
|
30
|
+
"clientAuthentication": "none",
|
|
31
|
+
"additionalAuthorizationParams": {
|
|
32
|
+
"resource": "https://mcp.vanta.com"
|
|
33
|
+
},
|
|
34
|
+
"additionalTokenParams": {
|
|
35
|
+
"resource": "https://mcp.vanta.com"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"transport": {
|
|
40
|
+
"kind": "shttp",
|
|
41
|
+
"url": "https://mcp.vanta.com/mcp"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"iconBg": "#003D2B",
|
|
46
|
+
"keywords": [
|
|
47
|
+
"compliance",
|
|
48
|
+
"soc2",
|
|
49
|
+
"security",
|
|
50
|
+
"audit",
|
|
51
|
+
"risk",
|
|
52
|
+
"vanta"
|
|
53
|
+
],
|
|
54
|
+
"installHint": "Connect via the OAuth MCP option. After connecting, complete the OAuth flow in your browser as a Vanta Admin. EU tenants should use https://mcp.eu.vanta.com/mcp and AUS tenants https://mcp.aus.vanta.com/mcp as the transport URL. The legacy local server @vantasdk/vanta-mcp-server is deprecated - prefer the hosted remote server."
|
|
55
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// This file is auto-generated by scripts/build-integration-catalog.mjs.
|
|
2
|
+
// Do not edit it manually. To update it after changing integrations/catalog/*.json,
|
|
3
|
+
// run: npm run build:integrations
|
|
4
|
+
|
|
5
|
+
import entry0 from "./catalog/github.json" with { type: "json" };
|
|
6
|
+
import entry1 from "./catalog/slack.json" with { type: "json" };
|
|
7
|
+
import entry2 from "./catalog/tavily.json" with { type: "json" };
|
|
8
|
+
import entry3 from "./catalog/atlassian.json" with { type: "json" };
|
|
9
|
+
import entry4 from "./catalog/linear.json" with { type: "json" };
|
|
10
|
+
import entry5 from "./catalog/notion.json" with { type: "json" };
|
|
11
|
+
import entry6 from "./catalog/vanta.json" with { type: "json" };
|
|
12
|
+
import entry7 from "./catalog/ordinal.json" with { type: "json" };
|
|
13
|
+
import entry8 from "./catalog/elevenlabs.json" with { type: "json" };
|
|
14
|
+
import entry9 from "./catalog/bitbucket.json" with { type: "json" };
|
|
15
|
+
import entry10 from "./catalog/xero.json" with { type: "json" };
|
|
16
|
+
import entry11 from "./catalog/quickbooks.json" with { type: "json" };
|
|
17
|
+
import entry12 from "./catalog/okta.json" with { type: "json" };
|
|
18
|
+
import entry13 from "./catalog/netlify.json" with { type: "json" };
|
|
19
|
+
import entry14 from "./catalog/vercel.json" with { type: "json" };
|
|
20
|
+
import entry15 from "./catalog/supabase.json" with { type: "json" };
|
|
21
|
+
import entry16 from "./catalog/posthog.json" with { type: "json" };
|
|
22
|
+
import entry17 from "./catalog/sentry.json" with { type: "json" };
|
|
23
|
+
import entry18 from "./catalog/datadog.json" with { type: "json" };
|
|
24
|
+
import entry19 from "./catalog/canva.json" with { type: "json" };
|
|
25
|
+
import entry20 from "./catalog/miro.json" with { type: "json" };
|
|
26
|
+
import entry21 from "./catalog/webflow.json" with { type: "json" };
|
|
27
|
+
import entry22 from "./catalog/zoom.json" with { type: "json" };
|
|
28
|
+
import entry23 from "./catalog/discord.json" with { type: "json" };
|
|
29
|
+
import entry24 from "./catalog/stripe.json" with { type: "json" };
|
|
30
|
+
import entry25 from "./catalog/intercom.json" with { type: "json" };
|
|
31
|
+
import entry26 from "./catalog/hubspot.json" with { type: "json" };
|
|
32
|
+
import entry27 from "./catalog/salesforce.json" with { type: "json" };
|
|
33
|
+
import entry28 from "./catalog/sharepoint.json" with { type: "json" };
|
|
34
|
+
import entry29 from "./catalog/onedrive.json" with { type: "json" };
|
|
35
|
+
import entry30 from "./catalog/microsoft-teams.json" with { type: "json" };
|
|
36
|
+
import entry31 from "./catalog/microsoft-outlook.json" with { type: "json" };
|
|
37
|
+
import entry32 from "./catalog/box.json" with { type: "json" };
|
|
38
|
+
import entry33 from "./catalog/airtable.json" with { type: "json" };
|
|
39
|
+
import entry34 from "./catalog/monday.json" with { type: "json" };
|
|
40
|
+
import entry35 from "./catalog/trello.json" with { type: "json" };
|
|
41
|
+
import entry36 from "./catalog/asana.json" with { type: "json" };
|
|
42
|
+
import entry37 from "./catalog/confluence.json" with { type: "json" };
|
|
43
|
+
import entry38 from "./catalog/jira.json" with { type: "json" };
|
|
44
|
+
import entry39 from "./catalog/google-calendar.json" with { type: "json" };
|
|
45
|
+
import entry40 from "./catalog/gmail.json" with { type: "json" };
|
|
46
|
+
import entry41 from "./catalog/google-sheets.json" with { type: "json" };
|
|
47
|
+
import entry42 from "./catalog/google-drive.json" with { type: "json" };
|
|
48
|
+
import entry43 from "./catalog/figma.json" with { type: "json" };
|
|
49
|
+
import entry44 from "./catalog/google-docs.json" with { type: "json" };
|
|
50
|
+
import entry45 from "./catalog/apify.json" with { type: "json" };
|
|
51
|
+
import entry46 from "./catalog/brave-search.json" with { type: "json" };
|
|
52
|
+
import entry47 from "./catalog/browser-mcp.json" with { type: "json" };
|
|
53
|
+
import entry48 from "./catalog/clickhouse.json" with { type: "json" };
|
|
54
|
+
import entry49 from "./catalog/cloudflare-bindings.json" with { type: "json" };
|
|
55
|
+
import entry50 from "./catalog/cloudflare-browser-rendering.json" with { type: "json" };
|
|
56
|
+
import entry51 from "./catalog/cloudflare-builds.json" with { type: "json" };
|
|
57
|
+
import entry52 from "./catalog/cloudflare-docs.json" with { type: "json" };
|
|
58
|
+
import entry53 from "./catalog/cloudflare-observability.json" with { type: "json" };
|
|
59
|
+
import entry54 from "./catalog/deepwiki.json" with { type: "json" };
|
|
60
|
+
import entry55 from "./catalog/everything.json" with { type: "json" };
|
|
61
|
+
import entry56 from "./catalog/exa.json" with { type: "json" };
|
|
62
|
+
import entry57 from "./catalog/fetch.json" with { type: "json" };
|
|
63
|
+
import entry58 from "./catalog/filesystem.json" with { type: "json" };
|
|
64
|
+
import entry59 from "./catalog/firecrawl.json" with { type: "json" };
|
|
65
|
+
import entry60 from "./catalog/git.json" with { type: "json" };
|
|
66
|
+
import entry61 from "./catalog/huggingface.json" with { type: "json" };
|
|
67
|
+
import entry62 from "./catalog/kagi.json" with { type: "json" };
|
|
68
|
+
import entry63 from "./catalog/memory.json" with { type: "json" };
|
|
69
|
+
import entry64 from "./catalog/mongodb.json" with { type: "json" };
|
|
70
|
+
import entry65 from "./catalog/neon.json" with { type: "json" };
|
|
71
|
+
import entry66 from "./catalog/obsidian.json" with { type: "json" };
|
|
72
|
+
import entry67 from "./catalog/paypal.json" with { type: "json" };
|
|
73
|
+
import entry68 from "./catalog/playwright.json" with { type: "json" };
|
|
74
|
+
import entry69 from "./catalog/redis.json" with { type: "json" };
|
|
75
|
+
import entry70 from "./catalog/resend.json" with { type: "json" };
|
|
76
|
+
import entry71 from "./catalog/sequential-thinking.json" with { type: "json" };
|
|
77
|
+
import entry72 from "./catalog/superhuman-mail.json" with { type: "json" };
|
|
78
|
+
import entry73 from "./catalog/time.json" with { type: "json" };
|
|
79
|
+
|
|
80
|
+
export const INTEGRATION_CATALOG_ENTRIES = [
|
|
81
|
+
entry0,
|
|
82
|
+
entry1,
|
|
83
|
+
entry2,
|
|
84
|
+
entry3,
|
|
85
|
+
entry4,
|
|
86
|
+
entry5,
|
|
87
|
+
entry6,
|
|
88
|
+
entry7,
|
|
89
|
+
entry8,
|
|
90
|
+
entry9,
|
|
91
|
+
entry10,
|
|
92
|
+
entry11,
|
|
93
|
+
entry12,
|
|
94
|
+
entry13,
|
|
95
|
+
entry14,
|
|
96
|
+
entry15,
|
|
97
|
+
entry16,
|
|
98
|
+
entry17,
|
|
99
|
+
entry18,
|
|
100
|
+
entry19,
|
|
101
|
+
entry20,
|
|
102
|
+
entry21,
|
|
103
|
+
entry22,
|
|
104
|
+
entry23,
|
|
105
|
+
entry24,
|
|
106
|
+
entry25,
|
|
107
|
+
entry26,
|
|
108
|
+
entry27,
|
|
109
|
+
entry28,
|
|
110
|
+
entry29,
|
|
111
|
+
entry30,
|
|
112
|
+
entry31,
|
|
113
|
+
entry32,
|
|
114
|
+
entry33,
|
|
115
|
+
entry34,
|
|
116
|
+
entry35,
|
|
117
|
+
entry36,
|
|
118
|
+
entry37,
|
|
119
|
+
entry38,
|
|
120
|
+
entry39,
|
|
121
|
+
entry40,
|
|
122
|
+
entry41,
|
|
123
|
+
entry42,
|
|
124
|
+
entry43,
|
|
125
|
+
entry44,
|
|
126
|
+
entry45,
|
|
127
|
+
entry46,
|
|
128
|
+
entry47,
|
|
129
|
+
entry48,
|
|
130
|
+
entry49,
|
|
131
|
+
entry50,
|
|
132
|
+
entry51,
|
|
133
|
+
entry52,
|
|
134
|
+
entry53,
|
|
135
|
+
entry54,
|
|
136
|
+
entry55,
|
|
137
|
+
entry56,
|
|
138
|
+
entry57,
|
|
139
|
+
entry58,
|
|
140
|
+
entry59,
|
|
141
|
+
entry60,
|
|
142
|
+
entry61,
|
|
143
|
+
entry62,
|
|
144
|
+
entry63,
|
|
145
|
+
entry64,
|
|
146
|
+
entry65,
|
|
147
|
+
entry66,
|
|
148
|
+
entry67,
|
|
149
|
+
entry68,
|
|
150
|
+
entry69,
|
|
151
|
+
entry70,
|
|
152
|
+
entry71,
|
|
153
|
+
entry72,
|
|
154
|
+
entry73,
|
|
155
|
+
];
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "Strict schema for integrations/catalog/*.json. Mirrors integrations/index.d.ts and encodes the cross-field connectability rules the catalog contract depends on.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
|
-
"required": ["id", "name", "description", "connectionOptions"],
|
|
8
|
+
"required": ["id", "name", "description", "docsUrl", "connectionOptions"],
|
|
9
9
|
"properties": {
|
|
10
10
|
"id": { "type": "string", "minLength": 1 },
|
|
11
11
|
"name": { "type": "string", "minLength": 1 },
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"marketplaceField": {
|
|
40
40
|
"type": "object",
|
|
41
41
|
"additionalProperties": false,
|
|
42
|
-
"required": ["key", "label"],
|
|
42
|
+
"required": ["key", "label", "type", "required"],
|
|
43
43
|
"properties": {
|
|
44
44
|
"key": { "type": "string", "minLength": 1 },
|
|
45
45
|
"label": { "type": "string", "minLength": 1 },
|
|
@@ -91,6 +91,72 @@
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
|
+
"identityPath": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"pattern": "^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$",
|
|
97
|
+
"minLength": 1
|
|
98
|
+
},
|
|
99
|
+
"identityMapping": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"additionalProperties": false,
|
|
102
|
+
"required": ["source", "externalPrincipalIdPath"],
|
|
103
|
+
"properties": {
|
|
104
|
+
"source": {
|
|
105
|
+
"enum": ["oauth_token_response", "access_token_claims", "identity_api"]
|
|
106
|
+
},
|
|
107
|
+
"endpoint": { "type": "string", "pattern": "^https://", "minLength": 8 },
|
|
108
|
+
"externalPrincipalIdPath": { "$ref": "#/$defs/identityPath" },
|
|
109
|
+
"externalTenantIdPath": { "$ref": "#/$defs/identityPath" },
|
|
110
|
+
"externalResourceIdPath": { "$ref": "#/$defs/identityPath" },
|
|
111
|
+
"resourceNamePath": { "$ref": "#/$defs/identityPath" },
|
|
112
|
+
"resourceUrlPath": { "$ref": "#/$defs/identityPath" }
|
|
113
|
+
},
|
|
114
|
+
"allOf": [
|
|
115
|
+
{
|
|
116
|
+
"if": { "properties": { "source": { "const": "identity_api" } } },
|
|
117
|
+
"then": { "required": ["endpoint"] },
|
|
118
|
+
"else": { "not": { "required": ["endpoint"] } }
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"resourceDiscovery": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"required": ["endpoint", "externalResourceIdPath"],
|
|
126
|
+
"properties": {
|
|
127
|
+
"endpoint": { "type": "string", "pattern": "^https://", "minLength": 8 },
|
|
128
|
+
"itemsPath": { "$ref": "#/$defs/identityPath" },
|
|
129
|
+
"externalResourceIdPath": { "$ref": "#/$defs/identityPath" },
|
|
130
|
+
"resourceNamePath": { "$ref": "#/$defs/identityPath" },
|
|
131
|
+
"resourceUrlPath": { "$ref": "#/$defs/identityPath" }
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"connectionModel": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"additionalProperties": false,
|
|
137
|
+
"required": [
|
|
138
|
+
"principalType",
|
|
139
|
+
"credentialScope",
|
|
140
|
+
"resourceType",
|
|
141
|
+
"resourceCardinality",
|
|
142
|
+
"selectionMode"
|
|
143
|
+
],
|
|
144
|
+
"properties": {
|
|
145
|
+
"principalType": { "enum": ["user", "bot", "service_account", "application"] },
|
|
146
|
+
"credentialScope": { "enum": ["account", "tenant", "organization", "resource"] },
|
|
147
|
+
"resourceType": { "type": "string", "minLength": 1 },
|
|
148
|
+
"resourceCardinality": { "enum": ["one", "many"] },
|
|
149
|
+
"selectionMode": { "enum": ["automatic", "post_auth", "runtime"] },
|
|
150
|
+
"identityMapping": { "$ref": "#/$defs/identityMapping" },
|
|
151
|
+
"resourceDiscovery": { "$ref": "#/$defs/resourceDiscovery" }
|
|
152
|
+
},
|
|
153
|
+
"allOf": [
|
|
154
|
+
{
|
|
155
|
+
"if": { "properties": { "selectionMode": { "const": "post_auth" } } },
|
|
156
|
+
"then": { "required": ["resourceDiscovery"] }
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
94
160
|
"authConfig": {
|
|
95
161
|
"type": "object",
|
|
96
162
|
"additionalProperties": false,
|
|
@@ -186,7 +252,8 @@
|
|
|
186
252
|
"provider": { "enum": ["mcp", "http"] },
|
|
187
253
|
"transport": { "$ref": "#/$defs/transport" },
|
|
188
254
|
"http": { "$ref": "#/$defs/httpConfig" },
|
|
189
|
-
"auth": { "$ref": "#/$defs/authConfig" }
|
|
255
|
+
"auth": { "$ref": "#/$defs/authConfig" },
|
|
256
|
+
"connectionModel": { "$ref": "#/$defs/connectionModel" }
|
|
190
257
|
},
|
|
191
258
|
"allOf": [
|
|
192
259
|
{
|
|
@@ -3,11 +3,11 @@ export type MarketplaceFieldType = "text" | "password";
|
|
|
3
3
|
export interface MarketplaceField {
|
|
4
4
|
key: string;
|
|
5
5
|
label: string;
|
|
6
|
-
type
|
|
6
|
+
type: MarketplaceFieldType;
|
|
7
7
|
placeholder?: string;
|
|
8
8
|
helperText?: string;
|
|
9
9
|
helperLink?: string;
|
|
10
|
-
required
|
|
10
|
+
required: boolean;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export type IntegrationTransport =
|
|
@@ -95,12 +95,58 @@ export interface IntegrationHttpConfig {
|
|
|
95
95
|
openApiUrl?: string;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
export type IntegrationPrincipalType =
|
|
99
|
+
| "user"
|
|
100
|
+
| "bot"
|
|
101
|
+
| "service_account"
|
|
102
|
+
| "application";
|
|
103
|
+
|
|
104
|
+
export type IntegrationCredentialScope =
|
|
105
|
+
| "account"
|
|
106
|
+
| "tenant"
|
|
107
|
+
| "organization"
|
|
108
|
+
| "resource";
|
|
109
|
+
|
|
110
|
+
export type IntegrationIdentitySource =
|
|
111
|
+
| "oauth_token_response"
|
|
112
|
+
| "access_token_claims"
|
|
113
|
+
| "identity_api";
|
|
114
|
+
|
|
115
|
+
export interface IntegrationIdentityMapping {
|
|
116
|
+
source: IntegrationIdentitySource;
|
|
117
|
+
endpoint?: string;
|
|
118
|
+
externalPrincipalIdPath: string;
|
|
119
|
+
externalTenantIdPath?: string;
|
|
120
|
+
externalResourceIdPath?: string;
|
|
121
|
+
resourceNamePath?: string;
|
|
122
|
+
resourceUrlPath?: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface IntegrationResourceDiscovery {
|
|
126
|
+
endpoint: string;
|
|
127
|
+
itemsPath?: string;
|
|
128
|
+
externalResourceIdPath: string;
|
|
129
|
+
resourceNamePath?: string;
|
|
130
|
+
resourceUrlPath?: string;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export interface IntegrationConnectionModel {
|
|
134
|
+
principalType: IntegrationPrincipalType;
|
|
135
|
+
credentialScope: IntegrationCredentialScope;
|
|
136
|
+
resourceType: string;
|
|
137
|
+
resourceCardinality: "one" | "many";
|
|
138
|
+
selectionMode: "automatic" | "post_auth" | "runtime";
|
|
139
|
+
identityMapping?: IntegrationIdentityMapping;
|
|
140
|
+
resourceDiscovery?: IntegrationResourceDiscovery;
|
|
141
|
+
}
|
|
142
|
+
|
|
98
143
|
export interface IntegrationConnectionOption {
|
|
99
144
|
id: "oauth" | "api" | "none" | string;
|
|
100
145
|
provider: IntegrationProvider;
|
|
101
146
|
transport?: IntegrationTransport;
|
|
102
147
|
http?: IntegrationHttpConfig;
|
|
103
148
|
auth: IntegrationAuthConfig;
|
|
149
|
+
connectionModel?: IntegrationConnectionModel;
|
|
104
150
|
}
|
|
105
151
|
|
|
106
152
|
|
|
@@ -110,7 +156,7 @@ export interface IntegrationCatalogEntry {
|
|
|
110
156
|
description: string;
|
|
111
157
|
categories?: string[];
|
|
112
158
|
appUrl?: string;
|
|
113
|
-
docsUrl
|
|
159
|
+
docsUrl: string;
|
|
114
160
|
notes?: string;
|
|
115
161
|
iconBg?: string;
|
|
116
162
|
iconColor?: string;
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "openhands-extensions"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.10.0"
|
|
4
4
|
description = "OpenHands extensions, plugins, and skills (Python bindings for the integration catalog)"
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"deprecation>=2.1,<3",
|
|
8
|
+
"packaging>=24,<26",
|
|
9
|
+
"pydantic>=2.10,<3",
|
|
10
|
+
]
|
|
6
11
|
|
|
7
12
|
[build-system]
|
|
8
13
|
requires = ["hatchling>=1.21"]
|