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.
Files changed (507) hide show
  1. openhands_extensions-0.10.0/.github/workflows/deprecation-check.yml +25 -0
  2. openhands_extensions-0.10.0/.release-please-manifest.json +3 -0
  3. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/PKG-INFO +4 -1
  4. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/README.md +25 -0
  5. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/atlassian.json +13 -0
  6. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/github.json +20 -0
  7. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/microsoft-outlook.json +13 -0
  8. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/microsoft-teams.json +13 -0
  9. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/notion.json +13 -0
  10. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/onedrive.json +13 -0
  11. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sharepoint.json +13 -0
  12. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/slack.json +14 -0
  13. openhands_extensions-0.10.0/integrations/catalog/vanta.json +55 -0
  14. openhands_extensions-0.10.0/integrations/catalog-index.js +155 -0
  15. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog.schema.json +70 -3
  16. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/index.d.ts +49 -3
  17. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/package.json +1 -1
  18. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/pyproject.toml +6 -1
  19. openhands_extensions-0.10.0/python/openhands_extensions/__init__.py +62 -0
  20. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/python/openhands_extensions/_version.py +2 -2
  21. openhands_extensions-0.10.0/python/openhands_extensions/deprecation.py +159 -0
  22. openhands_extensions-0.10.0/python/openhands_extensions/integration_models.py +233 -0
  23. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/python/openhands_extensions/integrations.py +59 -4
  24. openhands_extensions-0.10.0/scripts/check_deprecations.py +488 -0
  25. openhands_extensions-0.10.0/tests/test_catalog_schema.py +105 -0
  26. openhands_extensions-0.10.0/tests/test_deprecations.py +136 -0
  27. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_integration_catalog_in_sync.py +118 -7
  28. openhands_extensions-0.9.0/.release-please-manifest.json +0 -3
  29. openhands_extensions-0.9.0/integrations/catalog-index.js +0 -153
  30. openhands_extensions-0.9.0/python/openhands_extensions/__init__.py +0 -24
  31. openhands_extensions-0.9.0/tests/test_catalog_schema.py +0 -47
  32. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.agents/skills/custom-codereview-guide.md +0 -0
  33. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.claude-plugin/marketplace.json +0 -0
  34. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/pull_request_template.md +0 -0
  35. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/release.yml +0 -0
  36. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/check-extensions.yml +0 -0
  37. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/npm-publish.yml +0 -0
  38. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/pr.yml +0 -0
  39. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/pypi-publish.yml +0 -0
  40. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/release.yml +0 -0
  41. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/tests.yml +0 -0
  42. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.github/workflows/vulnerability-scan.yml +0 -0
  43. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/.gitignore +0 -0
  44. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/AGENTS.md +0 -0
  45. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/LICENSE +0 -0
  46. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/MIGRATION.md +0 -0
  47. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/README.md +0 -0
  48. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/analysis_results.md +0 -0
  49. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/README.md +0 -0
  50. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/github-pr-reviewer.json +0 -0
  51. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/github-repo-monitor.json +0 -0
  52. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/incident-retrospective-drafter.json +0 -0
  53. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/jira-issue-to-pr.json +0 -0
  54. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/linear-triage-assistant.json +0 -0
  55. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/research-brief-writer.json +0 -0
  56. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/slack-channel-monitor.json +0 -0
  57. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/catalog/slack-standup-digest.json +0 -0
  58. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/index.d.ts +0 -0
  59. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/automations/index.js +0 -0
  60. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/index.d.ts +0 -0
  61. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/index.js +0 -0
  62. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/airtable.json +0 -0
  63. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/apify.json +0 -0
  64. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/asana.json +0 -0
  65. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/bitbucket.json +0 -0
  66. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/box.json +0 -0
  67. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/brave-search.json +0 -0
  68. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/browser-mcp.json +0 -0
  69. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/canva.json +0 -0
  70. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/clickhouse.json +0 -0
  71. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-bindings.json +0 -0
  72. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
  73. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-builds.json +0 -0
  74. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-docs.json +0 -0
  75. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/cloudflare-observability.json +0 -0
  76. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/confluence.json +0 -0
  77. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/datadog.json +0 -0
  78. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/deepwiki.json +0 -0
  79. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/discord.json +0 -0
  80. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/elevenlabs.json +0 -0
  81. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/everything.json +0 -0
  82. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/exa.json +0 -0
  83. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/fetch.json +0 -0
  84. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/figma.json +0 -0
  85. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/filesystem.json +0 -0
  86. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/firecrawl.json +0 -0
  87. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/git.json +0 -0
  88. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/gmail.json +0 -0
  89. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-calendar.json +0 -0
  90. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-docs.json +0 -0
  91. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-drive.json +0 -0
  92. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/google-sheets.json +0 -0
  93. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/hubspot.json +0 -0
  94. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/huggingface.json +0 -0
  95. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/intercom.json +0 -0
  96. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/jira.json +0 -0
  97. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/kagi.json +0 -0
  98. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/linear.json +0 -0
  99. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/memory.json +0 -0
  100. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/miro.json +0 -0
  101. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/monday.json +0 -0
  102. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/mongodb.json +0 -0
  103. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/neon.json +0 -0
  104. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/netlify.json +0 -0
  105. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/obsidian.json +0 -0
  106. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/okta.json +0 -0
  107. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/ordinal.json +0 -0
  108. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/paypal.json +0 -0
  109. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/playwright.json +0 -0
  110. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/posthog.json +0 -0
  111. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/quickbooks.json +0 -0
  112. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/redis.json +0 -0
  113. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/resend.json +0 -0
  114. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/salesforce.json +0 -0
  115. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sentry.json +0 -0
  116. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/sequential-thinking.json +0 -0
  117. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/stripe.json +0 -0
  118. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/supabase.json +0 -0
  119. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/superhuman-mail.json +0 -0
  120. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/tavily.json +0 -0
  121. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/time.json +0 -0
  122. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/trello.json +0 -0
  123. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/vercel.json +0 -0
  124. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/webflow.json +0 -0
  125. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/xero.json +0 -0
  126. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/catalog/zoom.json +0 -0
  127. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/icons/salesforce.svg +0 -0
  128. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/icons/slack.svg +0 -0
  129. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/integrations/index.js +0 -0
  130. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/marketplaces/large-codebase.json +0 -0
  131. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/marketplaces/openhands-extensions.json +0 -0
  132. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/README.md +0 -0
  133. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
  134. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/README.md +0 -0
  135. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/city-weather/commands/now.md +0 -0
  136. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
  137. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/README.md +0 -0
  138. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
  139. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +0 -0
  140. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
  141. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +0 -0
  142. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
  143. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
  144. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
  145. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
  146. {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
  147. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
  148. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
  149. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/README.md +0 -0
  150. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/action.yml +0 -0
  151. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
  152. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
  153. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
  154. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
  155. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
  156. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
  157. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
  158. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/README.md +0 -0
  159. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
  160. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
  161. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +0 -0
  162. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
  163. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
  164. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
  165. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
  166. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/README.md +0 -0
  167. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/references/criteria.md +0 -0
  168. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
  169. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +0 -0
  170. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
  171. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
  172. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
  173. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
  174. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
  175. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
  176. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
  177. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
  178. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
  179. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
  180. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
  181. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
  182. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
  183. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
  184. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
  185. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
  186. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/README.md +0 -0
  187. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/SKILL.md +0 -0
  188. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/commands/create.md +0 -0
  189. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
  190. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/scripts/run.sh +0 -0
  191. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
  192. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
  193. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/SKILL.md +0 -0
  194. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
  195. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
  196. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
  197. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/references/windows.md +0 -0
  198. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
  199. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
  200. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
  201. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
  202. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/SKILL.md +0 -0
  203. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
  204. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
  205. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +0 -0
  206. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-automation/references/windows.md +0 -0
  207. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
  208. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
  209. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +0 -0
  210. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
  211. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
  212. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/README.md +0 -0
  213. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/action.yml +0 -0
  214. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/agent_script.py +0 -0
  215. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
  216. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/scripts/prompt.py +0 -0
  217. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
  218. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/README.md +0 -0
  219. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/SKILL.md +0 -0
  220. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -0
  221. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/commands/codereview.md +0 -0
  222. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
  223. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
  224. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
  225. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
  226. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +0 -0
  227. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
  228. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/skills/github-pr-review/references/windows.md +0 -0
  229. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
  230. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
  231. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
  232. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/README.md +0 -0
  233. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/action.yml +0 -0
  234. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
  235. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
  236. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/scripts/prompt.py +0 -0
  237. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
  238. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
  239. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
  240. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
  241. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
  242. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
  243. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/README.md +0 -0
  244. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/SKILL.md +0 -0
  245. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/action.yml +0 -0
  246. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/commands/release-notes.md +0 -0
  247. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/agent_script.py +0 -0
  248. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
  249. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/prompt.py +0 -0
  250. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
  251. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
  252. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
  253. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
  254. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
  255. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
  256. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/README.md +0 -0
  257. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/action.yml +0 -0
  258. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
  259. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
  260. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
  261. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +0 -0
  262. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/github/references/windows.md +0 -0
  263. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
  264. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
  265. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
  266. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
  267. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/release-please-config.json +0 -0
  268. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/build-integration-catalog.mjs +0 -0
  269. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/build-skills-catalog.mjs +0 -0
  270. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/sync_extensions.py +0 -0
  271. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/scripts/sync_openhands_sdk_skill.py +0 -0
  272. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/README.md +0 -0
  273. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
  274. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/README.md +0 -0
  275. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/SKILL.md +0 -0
  276. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-javadoc/references/example.md +0 -0
  277. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
  278. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/README.md +0 -0
  279. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/SKILL.md +0 -0
  280. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
  281. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
  282. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/README.md +0 -0
  283. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-canvas-environment/SKILL.md +0 -0
  284. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
  285. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/README.md +0 -0
  286. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/SKILL.md +0 -0
  287. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/commands/agent-creator.md +0 -0
  288. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-creator/references/fallback.md +0 -0
  289. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
  290. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/README.md +0 -0
  291. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/SKILL.md +0 -0
  292. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-memory/commands/remember.md +0 -0
  293. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
  294. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/README.md +0 -0
  295. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/SKILL.md +0 -0
  296. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
  297. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
  298. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/README.md +0 -0
  299. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/azure-devops/SKILL.md +0 -0
  300. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
  301. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/README.md +0 -0
  302. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket/SKILL.md +0 -0
  303. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
  304. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/README.md +0 -0
  305. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-cloud/SKILL.md +0 -0
  306. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
  307. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/README.md +0 -0
  308. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/bitbucket-data-center/SKILL.md +0 -0
  309. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
  310. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/README.md +0 -0
  311. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/SKILL.md +0 -0
  312. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/commands/simplify.md +0 -0
  313. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
  314. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
  315. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
  316. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
  317. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/README.md +0 -0
  318. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/SKILL.md +0 -0
  319. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/datadog/references/windows.md +0 -0
  320. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/.claude-plugin/plugin.json +0 -0
  321. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/README.md +0 -0
  322. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/SKILL.md +0 -0
  323. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/deno/references/README.md +0 -0
  324. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/.claude-plugin/plugin.json +0 -0
  325. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/README.md +0 -0
  326. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/SKILL.md +0 -0
  327. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/__init__.py +0 -0
  328. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/references/REFERENCE.md +0 -0
  329. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/__init__.py +0 -0
  330. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/_http.py +0 -0
  331. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/post_webhook.py +0 -0
  332. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/discord/scripts/send_message.py +0 -0
  333. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/.claude-plugin/plugin.json +0 -0
  334. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/README.md +0 -0
  335. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/docker/SKILL.md +0 -0
  336. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
  337. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/README.md +0 -0
  338. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/evidence-based-citations/SKILL.md +0 -0
  339. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
  340. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/README.md +0 -0
  341. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/flarglebargle/SKILL.md +0 -0
  342. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
  343. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/LICENSE.txt +0 -0
  344. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/README.md +0 -0
  345. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/frontend-design/SKILL.md +0 -0
  346. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
  347. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/README.md +0 -0
  348. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-actions/SKILL.md +0 -0
  349. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
  350. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/README.md +0 -0
  351. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/SKILL.md +0 -0
  352. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -0
  353. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/references/state-schema.md +0 -0
  354. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/references/windows.md +0 -0
  355. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-pr-reviewer/scripts/main.py +0 -0
  356. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
  357. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/README.md +0 -0
  358. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/SKILL.md +0 -0
  359. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
  360. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/github-api.md +0 -0
  361. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
  362. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/references/windows.md +0 -0
  363. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/scripts/main.py +0 -0
  364. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
  365. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
  366. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/README.md +0 -0
  367. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/gitlab/SKILL.md +0 -0
  368. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
  369. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/README.md +0 -0
  370. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/SKILL.md +0 -0
  371. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
  372. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/index.d.ts +0 -0
  373. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/index.js +0 -0
  374. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
  375. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/README.md +0 -0
  376. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/SKILL.md +0 -0
  377. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/babysit.md +0 -0
  378. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/iterate.md +0 -0
  379. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/commands/verify.md +0 -0
  380. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/heuristics.md +0 -0
  381. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/verification.md +0 -0
  382. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/iterate/references/windows.md +0 -0
  383. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/.claude-plugin/plugin.json +0 -0
  384. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/README.md +0 -0
  385. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/SKILL.md +0 -0
  386. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/references/setup.md +0 -0
  387. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jira-issue-to-pr/scripts/main.py +0 -0
  388. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
  389. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/README.md +0 -0
  390. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/jupyter/SKILL.md +0 -0
  391. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
  392. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/README.md +0 -0
  393. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/SKILL.md +0 -0
  394. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/kubernetes/references/windows.md +0 -0
  395. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
  396. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/README.md +0 -0
  397. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/SKILL.md +0 -0
  398. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
  399. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/.claude-plugin/plugin.json +0 -0
  400. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/README.md +0 -0
  401. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/SKILL.md +0 -0
  402. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear/references/windows.md +0 -0
  403. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
  404. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/README.md +0 -0
  405. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/SKILL.md +0 -0
  406. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
  407. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/.claude-plugin/plugin.json +0 -0
  408. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/README.md +0 -0
  409. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/SKILL.md +0 -0
  410. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/notion/references/windows.md +0 -0
  411. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/.claude-plugin/plugin.json +0 -0
  412. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/README.md +0 -0
  413. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/npm/SKILL.md +0 -0
  414. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
  415. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/README.md +0 -0
  416. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/pdflatex/SKILL.md +0 -0
  417. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
  418. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/README.md +0 -0
  419. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/plain-english-content/SKILL.md +0 -0
  420. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/.claude-plugin/plugin.json +0 -0
  421. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/README.md +0 -0
  422. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/SKILL.md +0 -0
  423. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/prd/commands/prd.md +0 -0
  424. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
  425. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/README.md +0 -0
  426. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/SKILL.md +0 -0
  427. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
  428. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
  429. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/LICENSE.txt +0 -0
  430. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/README.md +0 -0
  431. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/SKILL.md +0 -0
  432. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/output-patterns.md +0 -0
  433. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/windows.md +0 -0
  434. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/references/workflows.md +0 -0
  435. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/scripts/init_skill.py +0 -0
  436. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
  437. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
  438. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/README.md +0 -0
  439. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/SKILL.md +0 -0
  440. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
  441. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
  442. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
  443. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/references/windows.md +0 -0
  444. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-channel-monitor/scripts/main.py +0 -0
  445. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
  446. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/README.md +0 -0
  447. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/SKILL.md +0 -0
  448. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
  449. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
  450. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/README.md +0 -0
  451. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/spark-version-upgrade/SKILL.md +0 -0
  452. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
  453. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/README.md +0 -0
  454. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/SKILL.md +0 -0
  455. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/ssh/references/windows.md +0 -0
  456. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
  457. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/README.md +0 -0
  458. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/swift-linux/SKILL.md +0 -0
  459. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
  460. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/LICENSE.txt +0 -0
  461. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/README.md +0 -0
  462. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/SKILL.md +0 -0
  463. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/theme-showcase.pdf +0 -0
  464. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
  465. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
  466. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/desert-rose.md +0 -0
  467. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
  468. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/golden-hour.md +0 -0
  469. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
  470. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
  471. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
  472. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
  473. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
  474. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/.claude-plugin/plugin.json +0 -0
  475. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/README.md +0 -0
  476. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/SKILL.md +0 -0
  477. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/uv/references/README.md +0 -0
  478. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
  479. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/README.md +0 -0
  480. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/skills/vercel/SKILL.md +0 -0
  481. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
  482. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_catalogs.py +0 -0
  483. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_code_review_risk_evaluation.py +0 -0
  484. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_github_pr_review_skill.py +0 -0
  485. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_issue_duplicate_checker.py +0 -0
  486. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_openhands_api_python.py +0 -0
  487. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_plugin_manifest.py +0 -0
  488. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_diff_payload.py +0 -0
  489. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_feedback.py +0 -0
  490. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_prompt.py +0 -0
  491. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_pr_review_review_context.py +0 -0
  492. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_qa_changes.py +0 -0
  493. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_qa_changes_evaluation.py +0 -0
  494. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_release_notes_generator.py +0 -0
  495. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_sdk_loading.py +0 -0
  496. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skill_plugin_loading.py +0 -0
  497. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skills_catalog.py +0 -0
  498. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_skills_have_readme.py +0 -0
  499. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_slack_channel_monitor.py +0 -0
  500. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_sync_extensions.py +0 -0
  501. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_version_alignment.py +0 -0
  502. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/tests/test_workflow_sync.py +0 -0
  503. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/README.md +0 -0
  504. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/README.md +0 -0
  505. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/analyze.py +0 -0
  506. {openhands_extensions-0.9.0 → openhands_extensions-0.10.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
  507. {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
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.10.0"
3
+ }
@@ -1,6 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openhands-extensions
3
- Version: 0.9.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
@@ -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": {
@@ -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": {
@@ -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,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?: MarketplaceFieldType;
6
+ type: MarketplaceFieldType;
7
7
  placeholder?: string;
8
8
  helperText?: string;
9
9
  helperLink?: string;
10
- required?: boolean;
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?: string;
159
+ docsUrl: string;
114
160
  notes?: string;
115
161
  iconBg?: string;
116
162
  iconColor?: string;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openhands/extensions",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Public OpenHands extension catalogs for skills, plugins, integrations, and automation templates.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,8 +1,13 @@
1
1
  [project]
2
2
  name = "openhands-extensions"
3
- version = "0.9.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"]