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.
- openhands_extensions-0.9.0/.release-please-manifest.json +3 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/PKG-INFO +1 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/README.md +3 -2
- openhands_extensions-0.9.0/automations/catalog/jira-issue-to-pr.json +14 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/index.js +2 -0
- openhands_extensions-0.9.0/integrations/catalog/atlassian.json +103 -0
- openhands_extensions-0.9.0/integrations/catalog/datadog.json +65 -0
- openhands_extensions-0.9.0/integrations/catalog/superhuman-mail.json +36 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog-index.js +45 -43
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/marketplaces/openhands-extensions.json +10 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/package.json +1 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +1 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +9 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +11 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/SKILL.md +7 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/SKILL.md +1 -0
- openhands_extensions-0.9.0/plugins/openhands/skills/openhands-api/references/windows.md +44 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/SKILL.md +1 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +20 -0
- openhands_extensions-0.9.0/plugins/openhands/skills/openhands-automation/references/windows.md +57 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/SKILL.md +1 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +1 -0
- openhands_extensions-0.9.0/plugins/pr-review/skills/github-pr-review/references/windows.md +47 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/SKILL.md +9 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +3 -1
- openhands_extensions-0.9.0/plugins/vulnerability-remediation/skills/github/references/windows.md +48 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/pyproject.toml +1 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/_version.py +1 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/build-skills-catalog.mjs +1 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/SKILL.md +12 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/SKILL.md +11 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/SKILL.md +3 -1
- openhands_extensions-0.9.0/skills/datadog/references/windows.md +45 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/SKILL.md +5 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/SKILL.md +1 -0
- openhands_extensions-0.9.0/skills/github-pr-reviewer/references/windows.md +61 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/SKILL.md +1 -0
- openhands_extensions-0.9.0/skills/github-repo-monitor/references/windows.md +61 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/SKILL.md +3 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/SKILL.md +2 -0
- openhands_extensions-0.9.0/skills/index.js +518 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/SKILL.md +1 -0
- openhands_extensions-0.9.0/skills/iterate/references/windows.md +41 -0
- openhands_extensions-0.9.0/skills/jira-issue-to-pr/.claude-plugin/plugin.json +19 -0
- openhands_extensions-0.9.0/skills/jira-issue-to-pr/README.md +56 -0
- openhands_extensions-0.9.0/skills/jira-issue-to-pr/SKILL.md +216 -0
- openhands_extensions-0.9.0/skills/jira-issue-to-pr/references/setup.md +170 -0
- openhands_extensions-0.9.0/skills/jira-issue-to-pr/scripts/main.py +341 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/SKILL.md +7 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/SKILL.md +2 -1
- openhands_extensions-0.9.0/skills/kubernetes/references/windows.md +38 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/SKILL.md +2 -0
- openhands_extensions-0.9.0/skills/linear/references/windows.md +29 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/SKILL.md +2 -0
- openhands_extensions-0.9.0/skills/notion/references/windows.md +43 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/SKILL.md +3 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/SKILL.md +1 -0
- openhands_extensions-0.9.0/skills/skill-creator/references/windows.md +30 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/SKILL.md +1 -0
- openhands_extensions-0.9.0/skills/slack-channel-monitor/references/windows.md +64 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/SKILL.md +2 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/SKILL.md +2 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/SKILL.md +2 -1
- openhands_extensions-0.9.0/skills/ssh/references/windows.md +59 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/SKILL.md +2 -1
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/SKILL.md +5 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_catalogs.py +6 -1
- openhands_extensions-0.8.0/.release-please-manifest.json +0 -3
- openhands_extensions-0.8.0/integrations/catalog/atlassian.json +0 -28
- openhands_extensions-0.8.0/integrations/catalog/datadog.json +0 -34
- openhands_extensions-0.8.0/skills/index.js +0 -512
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.agents/skills/custom-codereview-guide.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.claude-plugin/marketplace.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/pull_request_template.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/release.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/check-extensions.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/npm-publish.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/pr.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/pypi-publish.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/release.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/tests.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.github/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/.gitignore +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/AGENTS.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/LICENSE +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/MIGRATION.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/analysis_results.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/github-pr-reviewer.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/github-repo-monitor.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/incident-retrospective-drafter.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/linear-triage-assistant.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/research-brief-writer.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/slack-channel-monitor.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/catalog/slack-standup-digest.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/automations/index.d.ts +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/index.d.ts +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/index.js +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/airtable.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/apify.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/asana.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/bitbucket.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/box.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/brave-search.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/browser-mcp.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/canva.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/clickhouse.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-bindings.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-builds.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-docs.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/cloudflare-observability.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/confluence.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/deepwiki.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/discord.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/elevenlabs.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/everything.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/exa.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/fetch.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/figma.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/filesystem.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/firecrawl.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/git.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/github.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/gmail.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-calendar.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-docs.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-drive.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/google-sheets.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/hubspot.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/huggingface.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/intercom.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/jira.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/kagi.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/linear.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/memory.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/microsoft-outlook.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/microsoft-teams.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/miro.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/monday.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/mongodb.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/neon.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/netlify.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/notion.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/obsidian.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/okta.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/onedrive.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/ordinal.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/paypal.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/playwright.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/posthog.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/quickbooks.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/redis.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/resend.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/salesforce.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sentry.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sequential-thinking.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/sharepoint.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/slack.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/stripe.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/supabase.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/tavily.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/time.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/trello.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/vercel.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/webflow.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/xero.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog/zoom.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/catalog.schema.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/icons/salesforce.svg +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/icons/slack.svg +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/index.d.ts +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/integrations/index.js +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/marketplaces/large-codebase.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/city-weather/commands/now.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
- {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
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/action.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/references/criteria.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/commands/create.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/scripts/run.sh +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/action.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/agent_script.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/scripts/prompt.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/commands/codereview.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/action.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/scripts/prompt.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/action.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/prompt.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/action.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/__init__.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/python/openhands_extensions/integrations.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/release-please-config.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/build-integration-catalog.mjs +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/sync_extensions.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/scripts/sync_openhands_sdk_skill.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-javadoc/references/example.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-canvas-environment/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/commands/agent-creator.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-creator/references/fallback.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-memory/commands/remember.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/azure-devops/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-cloud/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/bitbucket-data-center/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/commands/simplify.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/datadog/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/deno/references/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/__init__.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/references/REFERENCE.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/__init__.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/_http.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/post_webhook.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/discord/scripts/send_message.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/docker/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/evidence-based-citations/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/flarglebargle/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/LICENSE.txt +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/frontend-design/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-actions/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/references/state-schema.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-pr-reviewer/scripts/main.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/references/github-api.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/gitlab/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/index.d.ts +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/babysit.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/iterate.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/commands/verify.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/references/heuristics.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/iterate/references/verification.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/jupyter/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/kubernetes/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/notion/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/npm/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/pdflatex/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/plain-english-content/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/prd/commands/prd.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/LICENSE.txt +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/references/output-patterns.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/references/workflows.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/scripts/init_skill.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-channel-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/spark-version-upgrade/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/ssh/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/swift-linux/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/LICENSE.txt +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/theme-showcase.pdf +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/desert-rose.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/golden-hour.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/SKILL.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/uv/references/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/skills/vercel/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_catalog_schema.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_code_review_risk_evaluation.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_github_pr_review_skill.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_integration_catalog_in_sync.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_issue_duplicate_checker.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_openhands_api_python.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_plugin_manifest.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_diff_payload.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_feedback.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_prompt.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_pr_review_review_context.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_qa_changes.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_qa_changes_evaluation.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_release_notes_generator.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_sdk_loading.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skill_plugin_loading.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skills_catalog.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_skills_have_readme.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_slack_channel_monitor.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_sync_extensions.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_version_alignment.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/tests/test_workflow_sync.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/README.md +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/analyze.py +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
- {openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/utils/analysis/laminar_signals/templates/pr_review.j2 +0 -0
|
@@ -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 **
|
|
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
|
-
**
|
|
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/
|
|
9
|
-
import entry4 from "./catalog/
|
|
10
|
-
import entry5 from "./catalog/
|
|
11
|
-
import entry6 from "./catalog/
|
|
12
|
-
import entry7 from "./catalog/
|
|
13
|
-
import entry8 from "./catalog/
|
|
14
|
-
import entry9 from "./catalog/
|
|
15
|
-
import entry10 from "./catalog/
|
|
16
|
-
import entry11 from "./catalog/
|
|
17
|
-
import entry12 from "./catalog/
|
|
18
|
-
import entry13 from "./catalog/
|
|
19
|
-
import entry14 from "./catalog/
|
|
20
|
-
import entry15 from "./catalog/
|
|
21
|
-
import entry16 from "./catalog/
|
|
22
|
-
import entry17 from "./catalog/
|
|
23
|
-
import entry18 from "./catalog/
|
|
24
|
-
import entry19 from "./catalog/
|
|
25
|
-
import entry20 from "./catalog/
|
|
26
|
-
import entry21 from "./catalog/
|
|
27
|
-
import entry22 from "./catalog/
|
|
28
|
-
import entry23 from "./catalog/
|
|
29
|
-
import entry24 from "./catalog/
|
|
30
|
-
import entry25 from "./catalog/
|
|
31
|
-
import entry26 from "./catalog/
|
|
32
|
-
import entry27 from "./catalog/
|
|
33
|
-
import entry28 from "./catalog/
|
|
34
|
-
import entry29 from "./catalog/microsoft-
|
|
35
|
-
import entry30 from "./catalog/
|
|
36
|
-
import entry31 from "./catalog/
|
|
37
|
-
import entry32 from "./catalog/
|
|
38
|
-
import entry33 from "./catalog/
|
|
39
|
-
import entry34 from "./catalog/
|
|
40
|
-
import entry35 from "./catalog/
|
|
41
|
-
import entry36 from "./catalog/
|
|
42
|
-
import entry37 from "./catalog/
|
|
43
|
-
import entry38 from "./catalog/
|
|
44
|
-
import entry39 from "./catalog/
|
|
45
|
-
import entry40 from "./catalog/google-
|
|
46
|
-
import entry41 from "./catalog/
|
|
47
|
-
import entry42 from "./catalog/
|
|
48
|
-
import entry43 from "./catalog/
|
|
49
|
-
import entry44 from "./catalog/
|
|
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/
|
|
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
|
];
|
{openhands_extensions-0.8.0 → openhands_extensions-0.9.0}/marketplaces/openhands-extensions.json
RENAMED
|
@@ -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
|
}
|
|
@@ -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:
|
openhands_extensions-0.9.0/plugins/openhands/skills/openhands-automation/references/windows.md
ADDED
|
@@ -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
|
+
```
|