openhands-extensions 0.8.0__tar.gz → 0.9.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 (501) hide show
  1. openhands_extensions-0.9.0/.release-please-manifest.json +3 -0
  2. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/PKG-INFO +1 -1
  3. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/README.md +3 -2
  4. openhands_extensions-0.9.0/automations/catalog/jira-issue-to-pr.json +14 -0
  5. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/index.js +2 -0
  6. openhands_extensions-0.9.0/integrations/catalog/atlassian.json +103 -0
  7. openhands_extensions-0.9.0/integrations/catalog/datadog.json +65 -0
  8. openhands_extensions-0.9.0/integrations/catalog/superhuman-mail.json +36 -0
  9. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog-index.js +45 -43
  10. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/marketplaces/openhands-extensions.json +10 -0
  11. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/package.json +1 -1
  12. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +1 -0
  13. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +9 -0
  14. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +11 -0
  15. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +2 -0
  16. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/SKILL.md +7 -0
  17. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/SKILL.md +1 -0
  18. openhands_extensions-0.9.0/plugins/openhands/skills/openhands-api/references/windows.md +44 -0
  19. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/SKILL.md +1 -0
  20. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +20 -0
  21. openhands_extensions-0.9.0/plugins/openhands/skills/openhands-automation/references/windows.md +57 -0
  22. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/SKILL.md +1 -0
  23. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +1 -0
  24. openhands_extensions-0.9.0/plugins/pr-review/skills/github-pr-review/references/windows.md +47 -0
  25. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/SKILL.md +9 -0
  26. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +3 -1
  27. openhands_extensions-0.9.0/plugins/vulnerability-remediation/skills/github/references/windows.md +48 -0
  28. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/pyproject.toml +1 -1
  29. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/_version.py +1 -1
  30. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/build-skills-catalog.mjs +1 -1
  31. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/SKILL.md +2 -0
  32. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/SKILL.md +12 -1
  33. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/SKILL.md +11 -0
  34. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/SKILL.md +3 -1
  35. openhands_extensions-0.9.0/skills/datadog/references/windows.md +45 -0
  36. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/SKILL.md +2 -0
  37. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/SKILL.md +5 -1
  38. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/SKILL.md +1 -0
  39. openhands_extensions-0.9.0/skills/github-pr-reviewer/references/windows.md +61 -0
  40. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/SKILL.md +1 -0
  41. openhands_extensions-0.9.0/skills/github-repo-monitor/references/windows.md +61 -0
  42. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/SKILL.md +3 -1
  43. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/SKILL.md +2 -0
  44. openhands_extensions-0.9.0/skills/index.js +518 -0
  45. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/SKILL.md +1 -0
  46. openhands_extensions-0.9.0/skills/iterate/references/windows.md +41 -0
  47. openhands_extensions-0.9.0/skills/jira-issue-to-pr/.claude-plugin/plugin.json +19 -0
  48. openhands_extensions-0.9.0/skills/jira-issue-to-pr/README.md +56 -0
  49. openhands_extensions-0.9.0/skills/jira-issue-to-pr/SKILL.md +216 -0
  50. openhands_extensions-0.9.0/skills/jira-issue-to-pr/references/setup.md +170 -0
  51. openhands_extensions-0.9.0/skills/jira-issue-to-pr/scripts/main.py +341 -0
  52. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/SKILL.md +7 -1
  53. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/SKILL.md +2 -1
  54. openhands_extensions-0.9.0/skills/kubernetes/references/windows.md +38 -0
  55. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/SKILL.md +2 -0
  56. openhands_extensions-0.9.0/skills/linear/references/windows.md +29 -0
  57. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/SKILL.md +2 -0
  58. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/SKILL.md +2 -0
  59. openhands_extensions-0.9.0/skills/notion/references/windows.md +43 -0
  60. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/SKILL.md +3 -1
  61. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/SKILL.md +2 -0
  62. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/SKILL.md +1 -0
  63. openhands_extensions-0.9.0/skills/skill-creator/references/windows.md +30 -0
  64. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/SKILL.md +1 -0
  65. openhands_extensions-0.9.0/skills/slack-channel-monitor/references/windows.md +64 -0
  66. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/SKILL.md +2 -0
  67. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/SKILL.md +2 -1
  68. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/SKILL.md +2 -1
  69. openhands_extensions-0.9.0/skills/ssh/references/windows.md +59 -0
  70. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/SKILL.md +2 -1
  71. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/SKILL.md +5 -0
  72. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_catalogs.py +6 -1
  73. openhands_extensions-0.8.0/.release-please-manifest.json +0 -3
  74. openhands_extensions-0.8.0/integrations/catalog/atlassian.json +0 -28
  75. openhands_extensions-0.8.0/integrations/catalog/datadog.json +0 -34
  76. openhands_extensions-0.8.0/skills/index.js +0 -512
  77. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.agents/skills/custom-codereview-guide.md +0 -0
  78. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.claude-plugin/marketplace.json +0 -0
  79. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/pull_request_template.md +0 -0
  80. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/release.yml +0 -0
  81. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/check-extensions.yml +0 -0
  82. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/npm-publish.yml +0 -0
  83. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/pr.yml +0 -0
  84. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/pypi-publish.yml +0 -0
  85. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/release.yml +0 -0
  86. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/tests.yml +0 -0
  87. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/vulnerability-scan.yml +0 -0
  88. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.gitignore +0 -0
  89. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/AGENTS.md +0 -0
  90. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/LICENSE +0 -0
  91. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/MIGRATION.md +0 -0
  92. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/analysis_results.md +0 -0
  93. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/README.md +0 -0
  94. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/github-pr-reviewer.json +0 -0
  95. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/github-repo-monitor.json +0 -0
  96. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/incident-retrospective-drafter.json +0 -0
  97. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/linear-triage-assistant.json +0 -0
  98. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/research-brief-writer.json +0 -0
  99. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/slack-channel-monitor.json +0 -0
  100. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/slack-standup-digest.json +0 -0
  101. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/index.d.ts +0 -0
  102. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/index.d.ts +0 -0
  103. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/index.js +0 -0
  104. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/README.md +0 -0
  105. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/airtable.json +0 -0
  106. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/apify.json +0 -0
  107. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/asana.json +0 -0
  108. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/bitbucket.json +0 -0
  109. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/box.json +0 -0
  110. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/brave-search.json +0 -0
  111. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/browser-mcp.json +0 -0
  112. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/canva.json +0 -0
  113. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/clickhouse.json +0 -0
  114. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-bindings.json +0 -0
  115. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
  116. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-builds.json +0 -0
  117. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-docs.json +0 -0
  118. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-observability.json +0 -0
  119. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/confluence.json +0 -0
  120. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/deepwiki.json +0 -0
  121. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/discord.json +0 -0
  122. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/elevenlabs.json +0 -0
  123. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/everything.json +0 -0
  124. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/exa.json +0 -0
  125. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/fetch.json +0 -0
  126. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/figma.json +0 -0
  127. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/filesystem.json +0 -0
  128. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/firecrawl.json +0 -0
  129. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/git.json +0 -0
  130. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/github.json +0 -0
  131. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/gmail.json +0 -0
  132. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-calendar.json +0 -0
  133. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-docs.json +0 -0
  134. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-drive.json +0 -0
  135. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-sheets.json +0 -0
  136. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/hubspot.json +0 -0
  137. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/huggingface.json +0 -0
  138. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/intercom.json +0 -0
  139. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/jira.json +0 -0
  140. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/kagi.json +0 -0
  141. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/linear.json +0 -0
  142. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/memory.json +0 -0
  143. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/microsoft-outlook.json +0 -0
  144. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/microsoft-teams.json +0 -0
  145. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/miro.json +0 -0
  146. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/monday.json +0 -0
  147. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/mongodb.json +0 -0
  148. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/neon.json +0 -0
  149. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/netlify.json +0 -0
  150. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/notion.json +0 -0
  151. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/obsidian.json +0 -0
  152. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/okta.json +0 -0
  153. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/onedrive.json +0 -0
  154. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/ordinal.json +0 -0
  155. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/paypal.json +0 -0
  156. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/playwright.json +0 -0
  157. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/posthog.json +0 -0
  158. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/quickbooks.json +0 -0
  159. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/redis.json +0 -0
  160. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/resend.json +0 -0
  161. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/salesforce.json +0 -0
  162. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sentry.json +0 -0
  163. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sequential-thinking.json +0 -0
  164. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sharepoint.json +0 -0
  165. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/slack.json +0 -0
  166. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/stripe.json +0 -0
  167. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/supabase.json +0 -0
  168. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/tavily.json +0 -0
  169. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/time.json +0 -0
  170. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/trello.json +0 -0
  171. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/vercel.json +0 -0
  172. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/webflow.json +0 -0
  173. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/xero.json +0 -0
  174. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/zoom.json +0 -0
  175. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog.schema.json +0 -0
  176. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/icons/salesforce.svg +0 -0
  177. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/icons/slack.svg +0 -0
  178. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/index.d.ts +0 -0
  179. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/index.js +0 -0
  180. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/marketplaces/large-codebase.json +0 -0
  181. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/README.md +0 -0
  182. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
  183. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/README.md +0 -0
  184. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/commands/now.md +0 -0
  185. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
  186. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/README.md +0 -0
  187. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
  188. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
  189. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
  190. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
  191. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
  192. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
  193. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +0 -0
  194. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
  195. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
  196. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/README.md +0 -0
  197. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/action.yml +0 -0
  198. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
  199. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
  200. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
  201. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
  202. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
  203. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
  204. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
  205. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/README.md +0 -0
  206. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
  207. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
  208. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
  209. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
  210. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
  211. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
  212. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/README.md +0 -0
  213. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/references/criteria.md +0 -0
  214. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
  215. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
  216. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
  217. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
  218. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
  219. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
  220. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
  221. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
  222. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
  223. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
  224. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
  225. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
  226. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
  227. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
  228. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
  229. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
  230. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
  231. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/README.md +0 -0
  232. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/commands/create.md +0 -0
  233. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
  234. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/scripts/run.sh +0 -0
  235. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
  236. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
  237. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
  238. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
  239. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
  240. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
  241. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
  242. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
  243. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
  244. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
  245. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
  246. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
  247. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
  248. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +0 -0
  249. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
  250. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
  251. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/README.md +0 -0
  252. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/action.yml +0 -0
  253. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/agent_script.py +0 -0
  254. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
  255. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/prompt.py +0 -0
  256. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
  257. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/README.md +0 -0
  258. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -0
  259. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/commands/codereview.md +0 -0
  260. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
  261. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
  262. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
  263. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
  264. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
  265. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
  266. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
  267. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
  268. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/README.md +0 -0
  269. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/action.yml +0 -0
  270. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
  271. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
  272. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/prompt.py +0 -0
  273. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
  274. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
  275. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
  276. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
  277. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
  278. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
  279. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/README.md +0 -0
  280. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/action.yml +0 -0
  281. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/commands/release-notes.md +0 -0
  282. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/agent_script.py +0 -0
  283. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
  284. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/prompt.py +0 -0
  285. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
  286. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
  287. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
  288. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
  289. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
  290. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
  291. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/README.md +0 -0
  292. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/action.yml +0 -0
  293. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
  294. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
  295. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
  296. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
  297. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
  298. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
  299. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
  300. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/__init__.py +0 -0
  301. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/integrations.py +0 -0
  302. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/release-please-config.json +0 -0
  303. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/build-integration-catalog.mjs +0 -0
  304. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/sync_extensions.py +0 -0
  305. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/sync_openhands_sdk_skill.py +0 -0
  306. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/README.md +0 -0
  307. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
  308. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/README.md +0 -0
  309. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/SKILL.md +0 -0
  310. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/references/example.md +0 -0
  311. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
  312. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/README.md +0 -0
  313. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
  314. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
  315. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/README.md +0 -0
  316. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/SKILL.md +0 -0
  317. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
  318. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/README.md +0 -0
  319. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/SKILL.md +0 -0
  320. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/commands/agent-creator.md +0 -0
  321. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/references/fallback.md +0 -0
  322. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
  323. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/README.md +0 -0
  324. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/SKILL.md +0 -0
  325. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/commands/remember.md +0 -0
  326. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
  327. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/README.md +0 -0
  328. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/SKILL.md +0 -0
  329. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
  330. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
  331. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/README.md +0 -0
  332. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
  333. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/README.md +0 -0
  334. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/SKILL.md +0 -0
  335. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
  336. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/README.md +0 -0
  337. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
  338. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/README.md +0 -0
  339. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/SKILL.md +0 -0
  340. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
  341. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/README.md +0 -0
  342. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/SKILL.md +0 -0
  343. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/commands/simplify.md +0 -0
  344. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
  345. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
  346. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
  347. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
  348. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/README.md +0 -0
  349. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/.claude-plugin/plugin.json +0 -0
  350. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/README.md +0 -0
  351. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/SKILL.md +0 -0
  352. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/references/README.md +0 -0
  353. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/.claude-plugin/plugin.json +0 -0
  354. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/README.md +0 -0
  355. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/__init__.py +0 -0
  356. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/references/REFERENCE.md +0 -0
  357. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/__init__.py +0 -0
  358. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/_http.py +0 -0
  359. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/post_webhook.py +0 -0
  360. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/send_message.py +0 -0
  361. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/.claude-plugin/plugin.json +0 -0
  362. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/README.md +0 -0
  363. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
  364. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/README.md +0 -0
  365. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/SKILL.md +0 -0
  366. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
  367. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/README.md +0 -0
  368. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/SKILL.md +0 -0
  369. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
  370. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/LICENSE.txt +0 -0
  371. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/README.md +0 -0
  372. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/SKILL.md +0 -0
  373. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
  374. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/README.md +0 -0
  375. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/SKILL.md +0 -0
  376. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
  377. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/README.md +0 -0
  378. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -0
  379. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/references/state-schema.md +0 -0
  380. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/scripts/main.py +0 -0
  381. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
  382. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/README.md +0 -0
  383. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
  384. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/references/github-api.md +0 -0
  385. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
  386. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/scripts/main.py +0 -0
  387. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
  388. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
  389. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/README.md +0 -0
  390. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
  391. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/README.md +0 -0
  392. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
  393. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/index.d.ts +0 -0
  394. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
  395. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/README.md +0 -0
  396. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/babysit.md +0 -0
  397. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/iterate.md +0 -0
  398. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/verify.md +0 -0
  399. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/references/heuristics.md +0 -0
  400. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/references/verification.md +0 -0
  401. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
  402. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/README.md +0 -0
  403. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
  404. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/README.md +0 -0
  405. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
  406. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/README.md +0 -0
  407. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/SKILL.md +0 -0
  408. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
  409. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/.claude-plugin/plugin.json +0 -0
  410. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/README.md +0 -0
  411. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
  412. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/README.md +0 -0
  413. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
  414. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/.claude-plugin/plugin.json +0 -0
  415. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/README.md +0 -0
  416. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/.claude-plugin/plugin.json +0 -0
  417. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/README.md +0 -0
  418. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/SKILL.md +0 -0
  419. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
  420. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/README.md +0 -0
  421. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
  422. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/README.md +0 -0
  423. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/SKILL.md +0 -0
  424. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/.claude-plugin/plugin.json +0 -0
  425. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/README.md +0 -0
  426. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/SKILL.md +0 -0
  427. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/commands/prd.md +0 -0
  428. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
  429. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/README.md +0 -0
  430. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
  431. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
  432. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/LICENSE.txt +0 -0
  433. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/README.md +0 -0
  434. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/references/output-patterns.md +0 -0
  435. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/references/workflows.md +0 -0
  436. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/scripts/init_skill.py +0 -0
  437. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
  438. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
  439. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/README.md +0 -0
  440. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
  441. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
  442. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
  443. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/scripts/main.py +0 -0
  444. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
  445. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/README.md +0 -0
  446. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
  447. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
  448. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/README.md +0 -0
  449. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
  450. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/README.md +0 -0
  451. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
  452. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/README.md +0 -0
  453. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
  454. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/LICENSE.txt +0 -0
  455. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/README.md +0 -0
  456. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/SKILL.md +0 -0
  457. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/theme-showcase.pdf +0 -0
  458. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
  459. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
  460. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/desert-rose.md +0 -0
  461. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
  462. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/golden-hour.md +0 -0
  463. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
  464. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
  465. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
  466. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
  467. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
  468. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/.claude-plugin/plugin.json +0 -0
  469. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/README.md +0 -0
  470. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/SKILL.md +0 -0
  471. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/references/README.md +0 -0
  472. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
  473. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/README.md +0 -0
  474. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
  475. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_catalog_schema.py +0 -0
  476. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_code_review_risk_evaluation.py +0 -0
  477. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_github_pr_review_skill.py +0 -0
  478. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_integration_catalog_in_sync.py +0 -0
  479. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_issue_duplicate_checker.py +0 -0
  480. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_openhands_api_python.py +0 -0
  481. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_plugin_manifest.py +0 -0
  482. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_diff_payload.py +0 -0
  483. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_feedback.py +0 -0
  484. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_prompt.py +0 -0
  485. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_review_context.py +0 -0
  486. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_qa_changes.py +0 -0
  487. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_qa_changes_evaluation.py +0 -0
  488. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_release_notes_generator.py +0 -0
  489. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_sdk_loading.py +0 -0
  490. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skill_plugin_loading.py +0 -0
  491. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skills_catalog.py +0 -0
  492. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skills_have_readme.py +0 -0
  493. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_slack_channel_monitor.py +0 -0
  494. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_sync_extensions.py +0 -0
  495. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_version_alignment.py +0 -0
  496. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_workflow_sync.py +0 -0
  497. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/README.md +0 -0
  498. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/README.md +0 -0
  499. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/analyze.py +0 -0
  500. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
  501. {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/templates/pr_review.j2 +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.9.0"
3
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openhands-extensions
3
- Version: 0.8.0
3
+ Version: 0.9.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
@@ -87,7 +87,7 @@ The JS and Python versions are kept in lock-step by `release-please` and guarded
87
87
  ## Extensions Catalog
88
88
 
89
89
  <!-- BEGIN AUTO-GENERATED CATALOG -->
90
- This repository contains **2 marketplace(s)** with **61 extensions** (51 skills, 10 plugins).
90
+ This repository contains **2 marketplace(s)** with **62 extensions** (52 skills, 10 plugins).
91
91
 
92
92
  ### large-codebase
93
93
 
@@ -106,7 +106,7 @@ OpenHands skills for interacting, improving, and refactoring large codebases
106
106
 
107
107
  Official skills and plugins for OpenHands — the open-source AI software engineer.
108
108
 
109
- **57 extensions** (49 skills, 8 plugins)
109
+ **58 extensions** (50 skills, 8 plugins)
110
110
 
111
111
  | Name | Type | Description | Commands |
112
112
  |------|------|-------------|----------|
@@ -137,6 +137,7 @@ Official skills and plugins for OpenHands — the open-source AI software engine
137
137
  | gitlab | skill | Interact with GitLab repositories, merge requests, and APIs using the GITLAB_TOKEN environment variable. Use when wor... | — |
138
138
  | incident-retrospective | skill | Create an automation that drafts incident retrospectives by gathering incident-channel messages from Slack, collectin... | `/incident-retro:setup` |
139
139
  | iterate | skill | Iterate on a GitHub pull request — drive it through CI, code review, and QA until merge-ready. Monitors state, fixes ... | `/iterate`, `/verify`, `/babysit` |
140
+ | jira-issue-to-pr | skill | Deploy a cron-based OpenHands automation that watches a Jira Cloud project for issues labeled with a configurable lab... | — |
140
141
  | jupyter | skill | Read, modify, execute, and convert Jupyter notebooks programmatically. Use when working with .ipynb files for data sc... | — |
141
142
  | kubernetes | skill | Set up and manage local Kubernetes clusters using KIND (Kubernetes IN Docker). Use when testing Kubernetes applicatio... | — |
142
143
  | learn-from-code-review | skill | Distill code review feedback from GitHub PRs into reusable skills and guidelines. Use when users ask to learn from co... | `/learn-from-reviews` |
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "jira-issue-to-pr",
3
+ "name": "Jira issue to GitHub PR",
4
+ "category": "Project management",
5
+ "description": "Watch a Jira Cloud project for issues with a configurable label and automatically open a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.",
6
+ "requiredIntegrationIds": [
7
+ "jira",
8
+ "github"
9
+ ],
10
+ "popularityRank": 85,
11
+ "estimatedSetupMinutes": 5,
12
+ "prompt": "Set up a Jira automation to create pull requests",
13
+ "exampleImplementation": "Trigger: cron polling (e.g. every 5 minutes)\nRequired secrets: Jira API token, GitHub personal access token (repo + workflow scope)\n\n1. Collect Jira base URL, email, API token secret name, label to watch, and cron schedule from the user. No GitHub repo is needed at deploy time - each ticket must include the target repo (owner/repo) in its body.\n2. Poll POST /rest/api/3/search/jql on the Jira Cloud instance to find open issues carrying the configured label.\n3. Deduplicate against a KV-store-backed set of already-processed issue keys so re-runs never create duplicate PRs.\n4. For each new issue, start an independent OpenHands agent conversation that extracts the GitHub repo from the ticket body, clones it, creates a branch named after the Jira key, implements or scaffolds the requested change, and opens a pull request.\n5. Immediately after the conversation is created, post a Jira comment on the issue: 'I'm on it: <conversation URL>'.\n6. Persist the processed issue key immediately after dispatching so the next poll skips it."
14
+ }
@@ -5,6 +5,7 @@ import slack_channel_monitor from "./catalog/slack-channel-monitor.json" with {
5
5
  import linear_triage_assistant from "./catalog/linear-triage-assistant.json" with { type: "json" };
6
6
  import research_brief_writer from "./catalog/research-brief-writer.json" with { type: "json" };
7
7
  import incident_retrospective_drafter from "./catalog/incident-retrospective-drafter.json" with { type: "json" };
8
+ import jira_issue_to_pr from "./catalog/jira-issue-to-pr.json" with { type: "json" };
8
9
 
9
10
  export const AUTOMATION_CATALOG = [
10
11
  github_pr_reviewer,
@@ -14,5 +15,6 @@ export const AUTOMATION_CATALOG = [
14
15
  linear_triage_assistant,
15
16
  research_brief_writer,
16
17
  incident_retrospective_drafter,
18
+ jira_issue_to_pr,
17
19
  ];
18
20
  export default AUTOMATION_CATALOG;
@@ -0,0 +1,103 @@
1
+ {
2
+ "id": "atlassian",
3
+ "name": "Atlassian (Jira & Confluence)",
4
+ "description": "Search Jira issues, manage tickets, and read Confluence pages from your agent.",
5
+ "categories": [
6
+ "Project management",
7
+ "Documentation"
8
+ ],
9
+ "appUrl": "https://www.atlassian.com",
10
+ "docsUrl": "https://mcp-atlassian.soomiles.com/docs/installation",
11
+ "iconBg": "#0052CC",
12
+ "logoUrl": "https://cdn.simpleicons.org/atlassian/FFFFFF",
13
+ "keywords": [
14
+ "jira",
15
+ "confluence",
16
+ "tickets",
17
+ "wiki",
18
+ "issues",
19
+ "sprint"
20
+ ],
21
+ "popularityRank": 88,
22
+ "installHint": "Paste your Jira and/or Confluence URL and API token. The mcp-atlassian package runs via uvx - no install needed.",
23
+ "connectionOptions": [
24
+ {
25
+ "id": "oauth",
26
+ "provider": "mcp",
27
+ "transport": {
28
+ "kind": "shttp",
29
+ "url": "https://mcp.atlassian.com/v1/mcp"
30
+ },
31
+ "auth": {
32
+ "strategy": "oauth2"
33
+ }
34
+ },
35
+ {
36
+ "id": "api",
37
+ "provider": "mcp",
38
+ "transport": {
39
+ "kind": "stdio",
40
+ "serverName": "mcp-atlassian",
41
+ "command": "uvx",
42
+ "args": [
43
+ "mcp-atlassian"
44
+ ],
45
+ "envFields": [
46
+ {
47
+ "key": "JIRA_URL",
48
+ "label": "Jira URL",
49
+ "type": "text",
50
+ "placeholder": "https://your-company.atlassian.net",
51
+ "required": false,
52
+ "helperText": "Your Atlassian Jira base URL. Omit if using Confluence only."
53
+ },
54
+ {
55
+ "key": "JIRA_USERNAME",
56
+ "label": "Jira username (email)",
57
+ "type": "text",
58
+ "placeholder": "your.email@company.com",
59
+ "required": false,
60
+ "helperText": "Email address linked to your Atlassian account."
61
+ },
62
+ {
63
+ "key": "JIRA_API_TOKEN",
64
+ "label": "Jira API token",
65
+ "type": "password",
66
+ "placeholder": "ATATT...",
67
+ "required": false,
68
+ "helperText": "Atlassian API token for Jira. Required when JIRA_URL is set.",
69
+ "helperLink": "https://id.atlassian.com/manage-profile/security/api-tokens"
70
+ },
71
+ {
72
+ "key": "CONFLUENCE_URL",
73
+ "label": "Confluence URL",
74
+ "type": "text",
75
+ "placeholder": "https://your-company.atlassian.net/wiki",
76
+ "required": false,
77
+ "helperText": "Your Atlassian Confluence base URL. Omit if using Jira only."
78
+ },
79
+ {
80
+ "key": "CONFLUENCE_USERNAME",
81
+ "label": "Confluence username (email)",
82
+ "type": "text",
83
+ "placeholder": "your.email@company.com",
84
+ "required": false,
85
+ "helperText": "Email address linked to your Atlassian account."
86
+ },
87
+ {
88
+ "key": "CONFLUENCE_API_TOKEN",
89
+ "label": "Confluence API token",
90
+ "type": "password",
91
+ "placeholder": "ATATT...",
92
+ "required": false,
93
+ "helperText": "Atlassian API token for Confluence. Required when CONFLUENCE_URL is set.",
94
+ "helperLink": "https://id.atlassian.com/manage-profile/security/api-tokens"
95
+ }
96
+ ]
97
+ },
98
+ "auth": {
99
+ "strategy": "api_key"
100
+ }
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "id": "datadog",
3
+ "name": "Datadog",
4
+ "description": "Logs, metrics, monitors, incidents, and observability workflows.",
5
+ "categories": [
6
+ "Observability",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://www.datadoghq.com",
10
+ "docsUrl": "https://docs.datadoghq.com/bits_ai/mcp_server/setup/",
11
+ "notes": "Uses Datadog's official hosted MCP server. The MCP endpoint host is site-specific: use https://mcp.<site>.datadoghq.com/v1/mcp for your Datadog site (e.g. mcp.us5.datadoghq.com for US5). The default URL below targets US1 and can be edited in the install dialog.",
12
+ "popularityRank": 35,
13
+ "installHint": "The Datadog MCP URL is site-specific. Edit the URL to https://mcp.<site>.datadoghq.com/v1/mcp for your Datadog site (for example https://mcp.us5.datadoghq.com/v1/mcp for US5, https://mcp.eu.datadoghq.com/v1/mcp for EU). Find your site at Organization Settings → Site in Datadog.",
14
+ "connectionOptions": [
15
+ {
16
+ "id": "oauth",
17
+ "provider": "mcp",
18
+ "auth": {
19
+ "strategy": "oauth2",
20
+ "oauth": {
21
+ "authorizationUrl": "https://app.datadoghq.com/oauth2/v1/authorize",
22
+ "tokenUrl": "https://api.datadoghq.com/oauth2/v1/token",
23
+ "scopes": [
24
+ "dashboards_read",
25
+ "monitors_read"
26
+ ]
27
+ }
28
+ },
29
+ "transport": {
30
+ "kind": "shttp",
31
+ "url": "https://mcp.datadoghq.com/v1/mcp"
32
+ }
33
+ },
34
+ {
35
+ "id": "api",
36
+ "provider": "mcp",
37
+ "auth": {
38
+ "strategy": "none"
39
+ },
40
+ "transport": {
41
+ "kind": "shttp",
42
+ "url": "https://mcp.datadoghq.com/v1/mcp",
43
+ "urlEditable": true,
44
+ "headerFields": [
45
+ {
46
+ "key": "DD-API-KEY",
47
+ "label": "Datadog API key",
48
+ "type": "password",
49
+ "required": true,
50
+ "placeholder": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
51
+ "helperText": "Created in Datadog under Organization Settings → API Keys. Used to authenticate to the Datadog MCP server. See the [setup docs](https://docs.datadoghq.com/mcp_server/setup/?tab=other#authentication)."
52
+ },
53
+ {
54
+ "key": "DD-APPLICATION-KEY",
55
+ "label": "Datadog Application key",
56
+ "type": "password",
57
+ "required": true,
58
+ "placeholder": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
59
+ "helperText": "Created in Datadog under Organization Settings → Application Keys. Grants the MCP server access to your Datadog data. See the [setup docs](https://docs.datadoghq.com/mcp_server/setup/?tab=other#authentication)."
60
+ }
61
+ ]
62
+ }
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "superhuman-mail",
3
+ "name": "Superhuman Mail",
4
+ "description": "Search, read, draft, and send email via Superhuman's hosted MCP server.",
5
+ "categories": [
6
+ "Communication",
7
+ "Email"
8
+ ],
9
+ "appUrl": "https://superhuman.com",
10
+ "docsUrl": "https://github.com/superhuman/mcp-mail",
11
+ "notes": "OAuth is handled by the Superhuman MCP server itself (mcp-remote). No client credentials required.",
12
+ "connectionOptions": [
13
+ {
14
+ "id": "oauth",
15
+ "provider": "mcp",
16
+ "transport": {
17
+ "kind": "shttp",
18
+ "url": "https://mcp.mail.superhuman.com/mcp"
19
+ },
20
+ "auth": {
21
+ "strategy": "oauth2",
22
+ "oauth": {
23
+ "clientAuthentication": "none"
24
+ }
25
+ }
26
+ }
27
+ ],
28
+ "iconBg": "#FF5C28",
29
+ "logoUrl": "https://cdn.simpleicons.org/superhuman/FFFFFF",
30
+ "keywords": [
31
+ "email",
32
+ "mail",
33
+ "superhuman",
34
+ "inbox"
35
+ ]
36
+ }
@@ -5,48 +5,48 @@
5
5
  import entry0 from "./catalog/github.json" with { type: "json" };
6
6
  import entry1 from "./catalog/slack.json" with { type: "json" };
7
7
  import entry2 from "./catalog/tavily.json" with { type: "json" };
8
- import entry3 from "./catalog/linear.json" with { type: "json" };
9
- import entry4 from "./catalog/notion.json" with { type: "json" };
10
- import entry5 from "./catalog/ordinal.json" with { type: "json" };
11
- import entry6 from "./catalog/elevenlabs.json" with { type: "json" };
12
- import entry7 from "./catalog/bitbucket.json" with { type: "json" };
13
- import entry8 from "./catalog/xero.json" with { type: "json" };
14
- import entry9 from "./catalog/quickbooks.json" with { type: "json" };
15
- import entry10 from "./catalog/okta.json" with { type: "json" };
16
- import entry11 from "./catalog/netlify.json" with { type: "json" };
17
- import entry12 from "./catalog/vercel.json" with { type: "json" };
18
- import entry13 from "./catalog/supabase.json" with { type: "json" };
19
- import entry14 from "./catalog/posthog.json" with { type: "json" };
20
- import entry15 from "./catalog/sentry.json" with { type: "json" };
21
- import entry16 from "./catalog/datadog.json" with { type: "json" };
22
- import entry17 from "./catalog/canva.json" with { type: "json" };
23
- import entry18 from "./catalog/miro.json" with { type: "json" };
24
- import entry19 from "./catalog/webflow.json" with { type: "json" };
25
- import entry20 from "./catalog/zoom.json" with { type: "json" };
26
- import entry21 from "./catalog/discord.json" with { type: "json" };
27
- import entry22 from "./catalog/stripe.json" with { type: "json" };
28
- import entry23 from "./catalog/intercom.json" with { type: "json" };
29
- import entry24 from "./catalog/hubspot.json" with { type: "json" };
30
- import entry25 from "./catalog/salesforce.json" with { type: "json" };
31
- import entry26 from "./catalog/sharepoint.json" with { type: "json" };
32
- import entry27 from "./catalog/onedrive.json" with { type: "json" };
33
- import entry28 from "./catalog/microsoft-teams.json" with { type: "json" };
34
- import entry29 from "./catalog/microsoft-outlook.json" with { type: "json" };
35
- import entry30 from "./catalog/box.json" with { type: "json" };
36
- import entry31 from "./catalog/airtable.json" with { type: "json" };
37
- import entry32 from "./catalog/monday.json" with { type: "json" };
38
- import entry33 from "./catalog/trello.json" with { type: "json" };
39
- import entry34 from "./catalog/asana.json" with { type: "json" };
40
- import entry35 from "./catalog/confluence.json" with { type: "json" };
41
- import entry36 from "./catalog/jira.json" with { type: "json" };
42
- import entry37 from "./catalog/google-calendar.json" with { type: "json" };
43
- import entry38 from "./catalog/gmail.json" with { type: "json" };
44
- import entry39 from "./catalog/google-sheets.json" with { type: "json" };
45
- import entry40 from "./catalog/google-drive.json" with { type: "json" };
46
- import entry41 from "./catalog/figma.json" with { type: "json" };
47
- import entry42 from "./catalog/google-docs.json" with { type: "json" };
48
- import entry43 from "./catalog/apify.json" with { type: "json" };
49
- import entry44 from "./catalog/atlassian.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/ordinal.json" with { type: "json" };
12
+ import entry7 from "./catalog/elevenlabs.json" with { type: "json" };
13
+ import entry8 from "./catalog/bitbucket.json" with { type: "json" };
14
+ import entry9 from "./catalog/xero.json" with { type: "json" };
15
+ import entry10 from "./catalog/quickbooks.json" with { type: "json" };
16
+ import entry11 from "./catalog/okta.json" with { type: "json" };
17
+ import entry12 from "./catalog/netlify.json" with { type: "json" };
18
+ import entry13 from "./catalog/vercel.json" with { type: "json" };
19
+ import entry14 from "./catalog/supabase.json" with { type: "json" };
20
+ import entry15 from "./catalog/posthog.json" with { type: "json" };
21
+ import entry16 from "./catalog/sentry.json" with { type: "json" };
22
+ import entry17 from "./catalog/datadog.json" with { type: "json" };
23
+ import entry18 from "./catalog/canva.json" with { type: "json" };
24
+ import entry19 from "./catalog/miro.json" with { type: "json" };
25
+ import entry20 from "./catalog/webflow.json" with { type: "json" };
26
+ import entry21 from "./catalog/zoom.json" with { type: "json" };
27
+ import entry22 from "./catalog/discord.json" with { type: "json" };
28
+ import entry23 from "./catalog/stripe.json" with { type: "json" };
29
+ import entry24 from "./catalog/intercom.json" with { type: "json" };
30
+ import entry25 from "./catalog/hubspot.json" with { type: "json" };
31
+ import entry26 from "./catalog/salesforce.json" with { type: "json" };
32
+ import entry27 from "./catalog/sharepoint.json" with { type: "json" };
33
+ import entry28 from "./catalog/onedrive.json" with { type: "json" };
34
+ import entry29 from "./catalog/microsoft-teams.json" with { type: "json" };
35
+ import entry30 from "./catalog/microsoft-outlook.json" with { type: "json" };
36
+ import entry31 from "./catalog/box.json" with { type: "json" };
37
+ import entry32 from "./catalog/airtable.json" with { type: "json" };
38
+ import entry33 from "./catalog/monday.json" with { type: "json" };
39
+ import entry34 from "./catalog/trello.json" with { type: "json" };
40
+ import entry35 from "./catalog/asana.json" with { type: "json" };
41
+ import entry36 from "./catalog/confluence.json" with { type: "json" };
42
+ import entry37 from "./catalog/jira.json" with { type: "json" };
43
+ import entry38 from "./catalog/google-calendar.json" with { type: "json" };
44
+ import entry39 from "./catalog/gmail.json" with { type: "json" };
45
+ import entry40 from "./catalog/google-sheets.json" with { type: "json" };
46
+ import entry41 from "./catalog/google-drive.json" with { type: "json" };
47
+ import entry42 from "./catalog/figma.json" with { type: "json" };
48
+ import entry43 from "./catalog/google-docs.json" with { type: "json" };
49
+ import entry44 from "./catalog/apify.json" with { type: "json" };
50
50
  import entry45 from "./catalog/brave-search.json" with { type: "json" };
51
51
  import entry46 from "./catalog/browser-mcp.json" with { type: "json" };
52
52
  import entry47 from "./catalog/clickhouse.json" with { type: "json" };
@@ -73,7 +73,8 @@ import entry67 from "./catalog/playwright.json" with { type: "json" };
73
73
  import entry68 from "./catalog/redis.json" with { type: "json" };
74
74
  import entry69 from "./catalog/resend.json" with { type: "json" };
75
75
  import entry70 from "./catalog/sequential-thinking.json" with { type: "json" };
76
- import entry71 from "./catalog/time.json" with { type: "json" };
76
+ import entry71 from "./catalog/superhuman-mail.json" with { type: "json" };
77
+ import entry72 from "./catalog/time.json" with { type: "json" };
77
78
 
78
79
  export const INTEGRATION_CATALOG_ENTRIES = [
79
80
  entry0,
@@ -148,4 +149,5 @@ export const INTEGRATION_CATALOG_ENTRIES = [
148
149
  entry69,
149
150
  entry70,
150
151
  entry71,
152
+ entry72,
151
153
  ];
@@ -737,6 +737,16 @@
737
737
  "keywords": [
738
738
  "plain-english"
739
739
  ]
740
+ },
741
+ {
742
+ "name": "jira-issue-to-pr",
743
+ "source": "./skills/jira-issue-to-pr",
744
+ "description": "Deploy a cron-based OpenHands automation that watches a Jira Cloud project for issues labeled with a configurable label (default: create-pr) and spawns an agent conversation to create a GitHub pull request for each new issue found. The target GitHub repo is read from the ticket body - no repo parameter required at deploy time.",
745
+ "category": "productivity",
746
+ "keywords": [
747
+ "jira",
748
+ "atlassian"
749
+ ]
740
750
  }
741
751
  ]
742
752
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openhands/extensions",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Public OpenHands extension catalogs for skills, plugins, integrations, and automation templates.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,6 +13,7 @@ triggers:
13
13
  Set up a build environment and create test fixtures for validating COBOL-to-Java migrations.
14
14
 
15
15
  To install GnuCOBOL, run: `./scripts/install-gnucobol.sh`
16
+ On Windows, run that shell script from Git Bash/WSL (`bash scripts/install-gnucobol.sh`) or install GnuCOBOL with a Windows package manager and document the chosen command in `build_notes.md`.
16
17
 
17
18
  ## Phase 1: Build Setup
18
19
 
@@ -37,6 +37,15 @@ export LLM_MODEL="anthropic/claude-3-5-sonnet-20241022"
37
37
  uv run python -m lc_sdk_examples.cobol_modernization --src-path /path/to/cobol/project
38
38
  ```
39
39
 
40
+ PowerShell equivalent for the environment setup:
41
+
42
+ ```powershell
43
+ $env:LLM_API_KEY = "your-api-key"
44
+ $env:LLM_MODEL = "anthropic/claude-3-5-sonnet-20241022"
45
+
46
+ uv run python -m lc_sdk_examples.cobol_modernization --src-path C:\path\to\cobol\project
47
+ ```
48
+
40
49
  ## Workflow Phases
41
50
 
42
51
  ### Phase 1: Build Setup
@@ -39,6 +39,17 @@ uv run python -m lc_sdk_examples.migration_scoring \
39
39
  --rubric-path /path/to/style_rubric.txt
40
40
  ```
41
41
 
42
+ PowerShell equivalent for the environment setup:
43
+
44
+ ```powershell
45
+ $env:LLM_API_KEY = "your-api-key"
46
+ $env:LLM_MODEL = "anthropic/claude-3-5-sonnet-20241022"
47
+
48
+ uv run python -m lc_sdk_examples.migration_scoring `
49
+ --src-path C:\path\to\migration\project `
50
+ --rubric-path C:\path\to\style_rubric.txt
51
+ ```
52
+
42
53
  ## Workflow Phases
43
54
 
44
55
  ### Phase 1: Migration Mapping
@@ -51,6 +51,8 @@ Or scan all five at once:
51
51
  for s in scripts/scan_*.sh; do bash "$s" /path/to/repo; echo; done
52
52
  ```
53
53
 
54
+ On Windows, run these `.sh` helpers from Git Bash or WSL and pass a path that environment can read. Native PowerShell cannot execute the shell scripts directly.
55
+
54
56
  **Important**: The scripts are helpers, not scorers. They find files and
55
57
  patterns but do not evaluate quality. Many features require judgment that only
56
58
  reading the actual files can provide — for example, whether a README includes
@@ -31,6 +31,12 @@ This plugin provides a unified entry point and the CLI integration script.
31
31
  command -v openhands &>/dev/null && echo "CLI available" || echo "CLI not found"
32
32
  ```
33
33
 
34
+ PowerShell check:
35
+
36
+ ```powershell
37
+ if (Get-Command openhands -ErrorAction SilentlyContinue) { "CLI available" } else { "CLI not found" }
38
+ ```
39
+
34
40
  2. **If CLI is available**, use it — it manages auth and API keys automatically.
35
41
  3. **If CLI is not available**, check for an API key:
36
42
  - Preferred env var: `OPENHANDS_CLOUD_API_KEY`
@@ -49,6 +55,7 @@ command -v openhands &>/dev/null && echo "CLI available" || echo "CLI not found"
49
55
  ```
50
56
 
51
57
  The script checks for the CLI, installs it if needed, sends the task, and opens the resulting conversation URL.
58
+ On Windows, run this POSIX shell script from Git Bash or WSL (`bash scripts/run.sh "Investigate flaky tests in tests/test_api.py"`) unless a native PowerShell launcher is available.
52
59
 
53
60
  If the script exits with code `2` (`AUTH_REQUIRED`), ask the user to complete authentication in the browser, then re-run.
54
61
 
@@ -11,6 +11,7 @@ triggers:
11
11
  ---
12
12
 
13
13
  This skill documents the **OpenHands Cloud API** (V1), commonly used **agent-server APIs**, and small, easy-to-copy clients.
14
+ Windows PowerShell equivalents for the shell examples in this skill are in `references/windows.md`.
14
15
 
15
16
  It is intentionally focused on common OpenHands API workflows:
16
17
 
@@ -0,0 +1,44 @@
1
+ # Windows Notes for OpenHands API Commands
2
+
3
+ Use these PowerShell forms when running this skill's shell examples natively on Windows.
4
+
5
+ ## Environment Variables
6
+
7
+ ```powershell
8
+ $env:OPENHANDS_CLOUD_API_KEY = "..."
9
+ ```
10
+
11
+ ## Curl Examples
12
+
13
+ Call `curl.exe` and use PowerShell backticks for line continuation:
14
+
15
+ ```powershell
16
+ curl.exe -X POST "https://app.all-hands.dev/api/v1/app-conversations" `
17
+ -H "Authorization: Bearer $env:OPENHANDS_CLOUD_API_KEY" `
18
+ -H "Content-Type: application/json" `
19
+ -d '{
20
+ "initial_message": {
21
+ "content": [{"type": "text", "text": "Investigate flaky tests in tests/test_api.py."}]
22
+ },
23
+ "selected_repository": "owner/repo"
24
+ }'
25
+ ```
26
+
27
+ ## Python Here-doc Debugging Examples
28
+
29
+ PowerShell does not support Bash here-docs like `python3 - <<'PY'`. Save the script to a temp file and pipe the API response into it.
30
+
31
+ ```powershell
32
+ $script = Join-Path $env:TEMP "openhands-events.py"
33
+ @'
34
+ import json, sys
35
+ items = (json.load(sys.stdin) or {}).get("items", [])
36
+ for i, e in enumerate(items):
37
+ print(f"{i:04d} {e.get('timestamp','')} {e.get('source','')} {e.get('kind','')}")
38
+ '@ | Set-Content -LiteralPath $script -Encoding utf8
39
+
40
+ curl.exe -s "https://app.all-hands.dev/api/v1/conversation/$env:APP_CONVERSATION_ID/events/search?limit=100" `
41
+ -H "Authorization: Bearer $env:OPENHANDS_CLOUD_API_KEY" `
42
+ -H "Accept: application/json" |
43
+ python $script
44
+ ```
@@ -19,6 +19,7 @@ triggers:
19
19
  # OpenHands Automations
20
20
 
21
21
  Create and manage automations that run inside an OpenHands agent server — triggered by cron schedules or webhook events (GitHub, custom services).
22
+ Windows PowerShell equivalents for the automation API `curl` examples and shell-variable conventions are in `references/windows.md`.
22
23
 
23
24
  ## Automation Creation Process
24
25
  The agent must follow these steps when creating an automation:
@@ -272,6 +272,26 @@ with OpenHandsCloudWorkspace(
272
272
  # OpenHandsCloudWorkspace.__exit__ fires the completion callback here.
273
273
  ```
274
274
 
275
+ ### Selecting an LLM profile
276
+
277
+ The automation service injects an `AUTOMATION_MODEL` environment variable holding the **LLM profile name** the automation should run with. This is the profile a user selects when editing the automation, or — when none is selected — a snapshot of the user's active profile taken when the automation was created. To honor it on every run, read `AUTOMATION_MODEL` and pass it to `workspace.get_llm(profile_name=...)`:
278
+
279
+ ```python
280
+ # AUTOMATION_MODEL is the selected profile name (absent when none was chosen).
281
+ model_profile = os.environ.get("AUTOMATION_MODEL") or None
282
+ try:
283
+ llm = workspace.get_llm(profile_name=model_profile)
284
+ except FileNotFoundError:
285
+ # The profile was renamed or deleted after the automation was created;
286
+ # fall back to the user's default LLM rather than failing the run.
287
+ if not model_profile:
288
+ raise
289
+ print(f"profile {model_profile!r} not found; falling back to default profile")
290
+ llm = workspace.get_llm()
291
+ ```
292
+
293
+ Calling `workspace.get_llm()` with no `profile_name` always uses the user's default LLM. The built-in prompt and plugin presets already follow the pattern above; custom scripts should too so the selected profile is honored regardless of trigger type or execution backend.
294
+
275
295
  ### Conversation Persistence
276
296
 
277
297
  Conversations started during a run remain accessible in the OpenHands UI after the run completes — users can view the history and continue interacting. By default, `Conversation` does not delete the conversation on close:
@@ -0,0 +1,57 @@
1
+ # Windows Notes for OpenHands Automation Commands
2
+
3
+ Use these PowerShell forms when running the automation API examples natively on Windows.
4
+
5
+ ## Set the API Host
6
+
7
+ `OPENHANDS_HOST` is a shell convention in this skill. In PowerShell, set it as:
8
+
9
+ ```powershell
10
+ $env:OPENHANDS_HOST = "https://app.all-hands.dev"
11
+ ```
12
+
13
+ ## Authentication Header
14
+
15
+ ```powershell
16
+ $headers = @{
17
+ Authorization = "Bearer $env:OPENHANDS_API_KEY"
18
+ "Content-Type" = "application/json"
19
+ }
20
+ ```
21
+
22
+ ## Prompt Preset Request
23
+
24
+ ```powershell
25
+ $body = @{
26
+ name = "My Automation Name"
27
+ prompt = "What the automation should do"
28
+ trigger = @{
29
+ type = "cron"
30
+ schedule = "0 9 * * *"
31
+ timezone = "UTC"
32
+ }
33
+ } | ConvertTo-Json -Depth 20
34
+
35
+ Invoke-RestMethod `
36
+ -Uri "$env:OPENHANDS_HOST/api/automation/v1/preset/prompt" `
37
+ -Method Post `
38
+ -Headers $headers `
39
+ -Body $body
40
+ ```
41
+
42
+ ## Curl Examples
43
+
44
+ If copying an existing `curl` snippet, call `curl.exe`, replace `${OPENHANDS_HOST}` with `$env:OPENHANDS_HOST`, and replace `${OPENHANDS_API_KEY}` with `$env:OPENHANDS_API_KEY`.
45
+
46
+ ```powershell
47
+ curl.exe "$env:OPENHANDS_HOST/api/automation/v1?limit=20" `
48
+ -H "Authorization: Bearer $env:OPENHANDS_API_KEY"
49
+ ```
50
+
51
+ ## Packaging Custom Automations
52
+
53
+ Modern Windows includes `tar.exe`, which can create the `.tar.gz` files expected by the upload API:
54
+
55
+ ```powershell
56
+ tar.exe -czf $tarball -C $buildDir .
57
+ ```