openhands-extensions 0.22.1__tar.gz → 0.24.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.24.0/.agents/skills/custom-codereview-guide.md +101 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/check-extensions.yml +6 -6
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/deprecation-check.yml +1 -1
- openhands_extensions-0.24.0/.github/workflows/issue-readiness-check.yml +73 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/npm-publish.yml +2 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/pr-description-check.yml +1 -1
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/pypi-publish.yml +3 -3
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/tests.yml +2 -2
- openhands_extensions-0.24.0/.release-please-manifest.json +3 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/AGENTS.md +32 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/PKG-INFO +2 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/README.md +4 -3
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/bundle-index.js +12 -11
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-issue-triage/manifest.json +2 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-pr-reviewer/manifest.json +42 -5
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog.schema.json +0 -4
- openhands_extensions-0.24.0/integrations/catalog/granola.json +38 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog-index.js +16 -14
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/marketplaces/openhands-extensions.json +14 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/package.json +1 -1
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +3 -1
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/README.md +2 -1
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/scripts/agent_script.py +198 -81
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/scripts/prompt.py +35 -11
- openhands_extensions-0.24.0/plugins/pr-review/skills/code-review/SKILL.md +174 -0
- openhands_extensions-0.24.0/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +8 -0
- openhands_extensions-0.24.0/plugins/pr-review/skills/code-review/commands/codereview.md +8 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/scripts/agent_conversation.py +8 -3
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/scripts/github_client.py +4 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/pyproject.toml +2 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/python/openhands_extensions/_version.py +1 -1
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-skill/SKILL.md +5 -2
- openhands_extensions-0.24.0/skills/canvas-extension-api/.claude-plugin/plugin.json +19 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/README.md +33 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/SKILL.md +254 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/acceptance-checklist.md +20 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/backend-safety.md +9 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/connections.md +126 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/packaging-recipes.md +43 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/sidecar-pattern.md +49 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/testing-and-installation.md +286 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/references/v1-contract.md +250 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/scripts/validate-extension.mjs +92 -0
- openhands_extensions-0.24.0/skills/canvas-extension-api/scripts/validate-extension.test.mjs +60 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-triage/.claude-plugin/plugin.json +1 -1
- openhands_extensions-0.24.0/skills/github-issue-triage/README.md +16 -0
- openhands_extensions-0.24.0/skills/github-issue-triage/SKILL.md +57 -0
- openhands_extensions-0.24.0/skills/github-issue-triage/scripts/worker.py +222 -0
- openhands_extensions-0.24.0/skills/github-pr-reviewer/README.md +57 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/SKILL.md +36 -10
- openhands_extensions-0.24.0/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +8 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/scripts/main.py +63 -16
- openhands_extensions-0.24.0/skills/github-pr-reviewer/scripts/maintainer_handoff.py +151 -0
- openhands_extensions-0.24.0/skills/github-pr-reviewer/scripts/worker.py +291 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/tests/test_main.py +85 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/index.js +16 -8
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/github-pr-reviewer.json +120 -26
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/github_automation_helpers.py +1 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_agent_conversation_dispatch.py +19 -4
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_automation_setup.py +15 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_code_review_risk_evaluation.py +2 -2
- openhands_extensions-0.24.0/tests/test_github_reviewer_delivery.py +553 -0
- openhands_extensions-0.24.0/tests/test_github_triage_delivery.py +284 -0
- openhands_extensions-0.24.0/tests/test_maintainer_handoff.py +198 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_pr_review_prompt.py +6 -2
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_pr_review_review_context.py +144 -0
- openhands_extensions-0.22.1/.agents/skills/custom-codereview-guide.md +0 -32
- openhands_extensions-0.22.1/.github/scripts/check_issue_readiness.py +0 -272
- openhands_extensions-0.22.1/.github/scripts/post-readiness-comment.mjs +0 -184
- openhands_extensions-0.22.1/.github/workflows/issue-readiness-check.yml +0 -142
- openhands_extensions-0.22.1/.release-please-manifest.json +0 -3
- openhands_extensions-0.22.1/plugins/pr-review/skills/code-review/SKILL.md +0 -209
- openhands_extensions-0.22.1/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -8
- openhands_extensions-0.22.1/plugins/pr-review/skills/code-review/commands/codereview.md +0 -8
- openhands_extensions-0.22.1/skills/github-issue-triage/README.md +0 -9
- openhands_extensions-0.22.1/skills/github-issue-triage/SKILL.md +0 -34
- openhands_extensions-0.22.1/skills/github-issue-triage/scripts/worker.py +0 -106
- openhands_extensions-0.22.1/skills/github-pr-reviewer/README.md +0 -46
- openhands_extensions-0.22.1/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -8
- openhands_extensions-0.22.1/skills/github-pr-reviewer/scripts/worker.py +0 -94
- openhands_extensions-0.22.1/tests/test_check_issue_readiness.py +0 -135
- openhands_extensions-0.22.1/tests/test_github_reviewer_delivery.py +0 -110
- openhands_extensions-0.22.1/tests/test_github_triage_delivery.py +0 -90
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.claude-plugin/marketplace.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/dependabot.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/pull_request_template.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/release.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/scripts/check_pr_description.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/scripts/refresh_linked_pr_checks.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/pr-artifacts.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/pr.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/release.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.gitignore +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/LICENSE +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/MIGRATION.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/analysis_results.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/custom-automation/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-agents-md-maintainer/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-delivery-watchdog/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-issue-to-pr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/github-repo-monitor/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/gitlab-issue-to-mr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/incident-retrospective-drafter/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/jira-issue-to-bitbucket-pr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/jira-issue-to-gitlab-mr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/jira-issue-to-pr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/linear-issue-to-bitbucket-pr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/linear-issue-to-github-pr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/linear-issue-to-gitlab-mr/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/linear-triage-assistant/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/news-digest/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/qa-changes/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/research-brief-writer/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/slack-channel-monitor/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/slack-github-linear-daily-organization.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/slack-standup-digest/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog/upstream-fork-sync/manifest.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/catalog-index.js +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/index.d.ts +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/index.js +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/interface.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/automations/interface.schema.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/index.d.ts +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/index.js +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/airtable.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/apify.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/asana.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/atlassian-rovo.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/atlassian.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/bitbucket.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/box.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/brave-search.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/browser-mcp.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/canva.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/clickhouse.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/cloudflare-bindings.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/cloudflare-builds.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/cloudflare-docs.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/cloudflare-observability.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/confluence.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/datadog.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/deepwiki.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/discord.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/elevenlabs.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/everything.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/exa.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/fetch.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/figma.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/filesystem.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/firecrawl.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/git.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/github.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/gitlab.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/gmail.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/google-calendar.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/google-docs.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/google-drive.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/google-sheets.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/hubspot.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/huggingface.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/intercom.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/jira.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/kagi.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/linear.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/memory.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/microsoft-outlook.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/microsoft-teams.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/miro.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/monday.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/mongodb.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/neon.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/netlify.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/notion.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/obsidian.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/okta.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/onedrive.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/ordinal.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/paypal.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/playwright.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/posthog.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/quickbooks.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/redis.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/reportportal.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/resend.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/salesforce.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/sentry.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/sequential-thinking.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/sharepoint.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/slack.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/sonarqube.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/stripe.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/supabase.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/superhuman-mail.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/tavily.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/time.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/trello.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/vanta.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/vercel.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/webflow.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/xero.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog/zoom.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/catalog.schema.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/icons/salesforce.svg +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/icons/slack.svg +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/index.d.ts +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/integrations/index.js +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/marketplaces/large-codebase.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/city-weather/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/city-weather/commands/now.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/action.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/references/criteria.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/commands/create.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/scripts/run.sh +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/references/security.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-automation/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/action.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/code-review/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/skills/github-pr-review/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/action.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/scripts/prompt.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/action.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/scripts/prompt.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/action.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/github/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/python/openhands_extensions/__init__.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/python/openhands_extensions/deprecation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/python/openhands_extensions/integration_models.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/python/openhands_extensions/integrations.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/release-please-config.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/build-automation-catalog.mjs +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/build-integration-catalog.mjs +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/build-skills-catalog.mjs +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/check_deprecations.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/sync_extensions.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/scripts/sync_openhands_sdk_skill.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-javadoc/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-javadoc/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-javadoc/references/example.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-skill/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-canvas-environment/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-canvas-environment/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-creator/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-creator/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-creator/commands/agent-creator.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-creator/references/fallback.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-memory/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-memory/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-memory/commands/remember.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-sdk-builder/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-sdk-builder/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/azure-devops/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/azure-devops/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-cloud/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-cloud/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-data-center/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/bitbucket-data-center/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/commands/simplify.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/datadog/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/datadog/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/datadog/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/deno/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/deno/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/deno/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/deno/references/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/__init__.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/references/REFERENCE.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/scripts/__init__.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/scripts/_http.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/scripts/post_webhook.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/discord/scripts/send_message.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/docker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/docker/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/docker/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/evidence-based-citations/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/evidence-based-citations/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/flarglebargle/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/flarglebargle/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/frontend-design/LICENSE.txt +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/frontend-design/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/frontend-design/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-actions/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-actions/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/commands/agents-md-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-agents-md-maintainer/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/commands/github-delivery-watchdog.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-delivery-watchdog/scripts/worker.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/commands/issue-to-pr-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-to-pr/scripts/worker.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-triage/commands/github-issue-triage.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-triage/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-issue-triage/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-pr-reviewer/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/references/github-api.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/scripts/github_client.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/commands/issue-to-mr-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/gitlab-issue-to-mr/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/incident-retrospective/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/incident-retrospective/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/index.d.ts +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/commands/babysit.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/commands/iterate.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/commands/verify.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/references/heuristics.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/references/verification.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/iterate/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jira-issue-to-pr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jira-issue-to-pr/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jira-issue-to-pr/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jira-issue-to-pr/references/setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jira-issue-to-pr/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jupyter/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/jupyter/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/kubernetes/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/kubernetes/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/kubernetes/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/learn-from-code-review/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/learn-from-code-review/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear-triage/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear-triage/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/commands/news-digest-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/news-digest/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/notion/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/notion/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/notion/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/notion/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/npm/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/npm/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/npm/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/references/diagnostics.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/references/support-bundle-analysis.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/openhands-enterprise-troubleshooting/scripts/bundle_triage.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/pdflatex/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/pdflatex/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/plain-english-content/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/plain-english-content/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/prd/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/prd/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/prd/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/prd/commands/prd.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/research-brief/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/research-brief/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/LICENSE.txt +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/references/output-patterns.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/references/workflows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/scripts/init_skill.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-channel-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-standup-digest/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-standup-digest/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/spark-version-upgrade/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/spark-version-upgrade/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ssh/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ssh/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ssh/references/windows.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/swift-linux/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/swift-linux/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/technical-writing/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/technical-writing/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/technical-writing/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/LICENSE.txt +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/theme-showcase.pdf +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/desert-rose.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/golden-hour.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ticket-to-code-change/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ticket-to-code-change/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ticket-to-code-change/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/ticket-to-code-change/commands/ticket-to-code-change-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/upstream-fork-sync/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/upstream-fork-sync/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/upstream-fork-sync/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/upstream-fork-sync/commands/upstream-fork-sync-setup.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/uv/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/uv/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/uv/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/uv/references/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/vercel/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/skills/vercel/SKILL.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/capabilities.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/custom-automation.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/github-repo-monitor.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/incident-retrospective-drafter.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/fixtures/automations/upstream-fork-sync.json +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_catalog_schema.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_catalogs.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_check_pr_description.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_deprecations.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_agents_md_maintainer.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_automation_foundation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_developer_delivery.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_issue_to_pr.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_pr_review_skill.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_skill_installation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_github_watchdog_delivery.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_gitlab_issue_to_mr.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_integration_catalog_in_sync.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_interface_manifest.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_issue_duplicate_checker.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_live_integration_smoke.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_news_digest.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_openhands_api_python.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_plugin_manifest.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_pr_review_diff_payload.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_pr_review_feedback.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_qa_changes.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_qa_changes_evaluation.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_refresh_linked_pr_checks.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_release_notes_generator.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_sdk_loading.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_skill_plugin_loading.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_skills_catalog.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_skills_have_readme.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_slack_channel_monitor.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_sync_extensions.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_version_alignment.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/tests/test_workflow_sync.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/utils/analysis/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/utils/analysis/laminar_signals/README.md +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/utils/analysis/laminar_signals/analyze.py +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
- {openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/utils/analysis/laminar_signals/templates/pr_review.j2 +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: custom-codereview-guide
|
|
3
|
+
description: Repository-specific review guidance for OpenHands/extensions.
|
|
4
|
+
triggers:
|
|
5
|
+
- /codereview
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenHands/extensions review guide
|
|
9
|
+
|
|
10
|
+
Apply this guide with the general code-review skill and `AGENTS.md`. Approve the
|
|
11
|
+
current head when it has no material correctness, security, compatibility, or
|
|
12
|
+
acceptance-criterion defect. Comment only on concrete failures; do not withhold
|
|
13
|
+
approval for optional refactors, tone, style, or speculative improvements.
|
|
14
|
+
|
|
15
|
+
## Repository scope
|
|
16
|
+
|
|
17
|
+
This repository owns reusable extensions: skills, plugins, and automation
|
|
18
|
+
bundles that use existing public host and runtime interfaces. Out of scope here,
|
|
19
|
+
because another repository owns the contract or machinery:
|
|
20
|
+
|
|
21
|
+
- SDK, agent-server, and client contracts — `OpenHands/software-agent-sdk`;
|
|
22
|
+
- generic automation scheduling, state, dispatch, and profile machinery —
|
|
23
|
+
`OpenHands/automation`;
|
|
24
|
+
- Canvas product and UI integration — `OpenHands/OpenHands`.
|
|
25
|
+
|
|
26
|
+
Cross-repository work is acceptable when this PR contains only the
|
|
27
|
+
extensions-owned portion and relies on public interfaces from the owning
|
|
28
|
+
repository.
|
|
29
|
+
|
|
30
|
+
## Blocking checkpoints
|
|
31
|
+
|
|
32
|
+
### Executable instructions and runtime parity
|
|
33
|
+
|
|
34
|
+
Commands, imports, environment variables, endpoints, and setup steps in extension
|
|
35
|
+
content are executable contracts. Verify them against the released packages and
|
|
36
|
+
the actual local and cloud environments that claim support. Do not approve an
|
|
37
|
+
example that relies on an unreleased API, a developer-only dependency, a private
|
|
38
|
+
path, or a variable that the production runtime does not provide.
|
|
39
|
+
|
|
40
|
+
For a changed skill, plugin, hook, or automation, follow its documented entrypoint
|
|
41
|
+
in a clean environment far enough to exercise the changed behavior. Keep local
|
|
42
|
+
and cloud behavior identical unless the documentation names and explains a real
|
|
43
|
+
platform capability difference.
|
|
44
|
+
|
|
45
|
+
### Untrusted triggers and credentials
|
|
46
|
+
|
|
47
|
+
Treat repository events, issue and PR comments, chat messages, catalog fields,
|
|
48
|
+
and extension-provided arguments as untrusted. Verify who may trigger the action,
|
|
49
|
+
whose identity it runs as, which repository or organization it can affect, and
|
|
50
|
+
which secrets it receives. A trigger phrase alone is not authorization. Require
|
|
51
|
+
an explicit allowlist, permission check, or repository policy before performing
|
|
52
|
+
mutating or credentialed work.
|
|
53
|
+
|
|
54
|
+
Use only the minimum documented credential set. Never place secret values in
|
|
55
|
+
prompts, logs, generated files, examples, or persisted state.
|
|
56
|
+
|
|
57
|
+
### Sources of truth and generated artifacts
|
|
58
|
+
|
|
59
|
+
Identify the hand-authored source before reviewing a catalog or generated file.
|
|
60
|
+
A change should update that source once and regenerate every derived artifact
|
|
61
|
+
with the repository's existing sync/build command. Documentation must describe
|
|
62
|
+
the real direction of generation; do not call a generated asset the source of
|
|
63
|
+
truth or claim two runtimes read one asset when they do not.
|
|
64
|
+
|
|
65
|
+
Check the marketplace entry and generated command/catalog coverage required by
|
|
66
|
+
`AGENTS.md`. Do not add a parallel catalog, provider-specific copy, or manual
|
|
67
|
+
compatibility layer when the repository already has a generator or schema.
|
|
68
|
+
|
|
69
|
+
### Documentation claims
|
|
70
|
+
|
|
71
|
+
Test copy-paste commands and verify named tools, flags, package exports, URLs, and
|
|
72
|
+
installation mechanisms from authoritative sources. A plausible command is not
|
|
73
|
+
evidence. Documentation that teaches the wrong data flow or setup is a material
|
|
74
|
+
finding because agents execute it directly.
|
|
75
|
+
|
|
76
|
+
SDK documentation belongs in `docs.openhands.dev/sdk`; the generated
|
|
77
|
+
`skills/openhands-sdk/SKILL.md` remains a thin synchronized entrypoint. The
|
|
78
|
+
former `@openhands/extensions/mcps` catalog was experimental and pre-release, so
|
|
79
|
+
an explicitly coordinated replacement with the `integrations` catalog needs
|
|
80
|
+
consumer migration documentation but not compatibility aliases or a deprecation
|
|
81
|
+
window.
|
|
82
|
+
|
|
83
|
+
### Dependencies and supply chain
|
|
84
|
+
|
|
85
|
+
Apply the general seven-day release-recency guard to the exact dependency version,
|
|
86
|
+
regardless of the package's age or popularity. Validate installation with the
|
|
87
|
+
package manager and runtime used by the extension. Temporary git pins and
|
|
88
|
+
unreleased package APIs are blockers for merge unless the PR is an explicit,
|
|
89
|
+
coordinated stack that will replace them before release.
|
|
90
|
+
|
|
91
|
+
## Evidence and comment discipline
|
|
92
|
+
|
|
93
|
+
Evidence should exercise the extension as users invoke it: run the command, hook,
|
|
94
|
+
plugin, or automation entrypoint and show the relevant result. Static text checks
|
|
95
|
+
alone do not validate executable instructions. Require only the environments and
|
|
96
|
+
paths the change affects.
|
|
97
|
+
|
|
98
|
+
Do not comment on punctuation, preferred prose tone, optional DRY cleanup, or
|
|
99
|
+
hypothetical non-standard configurations without a supported failure mode. Before
|
|
100
|
+
raising a finding, verify that the referenced file and behavior are present in
|
|
101
|
+
the current PR head and have not already been addressed in review history.
|
{openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/check-extensions.yml
RENAMED
|
@@ -11,10 +11,10 @@ jobs:
|
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
steps:
|
|
13
13
|
- name: Checkout repository
|
|
14
|
-
uses: actions/checkout@
|
|
14
|
+
uses: actions/checkout@v7
|
|
15
15
|
|
|
16
16
|
- name: Setup Node.js
|
|
17
|
-
uses: actions/setup-node@
|
|
17
|
+
uses: actions/setup-node@v7
|
|
18
18
|
with:
|
|
19
19
|
node-version: "20"
|
|
20
20
|
|
|
@@ -44,10 +44,10 @@ jobs:
|
|
|
44
44
|
runs-on: ubuntu-latest
|
|
45
45
|
steps:
|
|
46
46
|
- name: Checkout repository
|
|
47
|
-
uses: actions/checkout@
|
|
47
|
+
uses: actions/checkout@v7
|
|
48
48
|
|
|
49
49
|
- name: Setup Python
|
|
50
|
-
uses: actions/setup-python@
|
|
50
|
+
uses: actions/setup-python@v7
|
|
51
51
|
with:
|
|
52
52
|
python-version: "3.12"
|
|
53
53
|
|
|
@@ -63,10 +63,10 @@ jobs:
|
|
|
63
63
|
runs-on: ubuntu-latest
|
|
64
64
|
steps:
|
|
65
65
|
- name: Checkout repository
|
|
66
|
-
uses: actions/checkout@
|
|
66
|
+
uses: actions/checkout@v7
|
|
67
67
|
|
|
68
68
|
- name: Setup Python
|
|
69
|
-
uses: actions/setup-python@
|
|
69
|
+
uses: actions/setup-python@v7
|
|
70
70
|
with:
|
|
71
71
|
python-version: "3.12"
|
|
72
72
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Ready-for-dev Label Policy
|
|
3
|
+
|
|
4
|
+
# The issue-triage automation and repository writers may grant ready-for-dev.
|
|
5
|
+
# Labels from any other actor are removed.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
issues:
|
|
9
|
+
types: [labeled, unlabeled]
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: ready-for-dev-policy-${{ github.event.issue.number }}
|
|
13
|
+
cancel-in-progress: false
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
enforce-label-policy:
|
|
17
|
+
name: Enforce ready-for-dev label policy
|
|
18
|
+
if: >-
|
|
19
|
+
github.event.issue.state == 'open'
|
|
20
|
+
&& github.event.issue.pull_request == null
|
|
21
|
+
&& github.event.label.name == 'ready-for-dev'
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
timeout-minutes: 5
|
|
24
|
+
permissions:
|
|
25
|
+
issues: write
|
|
26
|
+
outputs:
|
|
27
|
+
refresh-linked-prs: ${{ steps.policy.outputs.refresh-linked-prs }}
|
|
28
|
+
steps:
|
|
29
|
+
- name: Check label actor
|
|
30
|
+
id: policy
|
|
31
|
+
env:
|
|
32
|
+
GH_TOKEN: ${{ github.token }}
|
|
33
|
+
ACTION: ${{ github.event.action }}
|
|
34
|
+
ACTOR: ${{ github.event.sender.login }}
|
|
35
|
+
REPOSITORY: ${{ github.repository }}
|
|
36
|
+
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
37
|
+
run: |
|
|
38
|
+
set -euo pipefail
|
|
39
|
+
|
|
40
|
+
if [ "$ACTION" = "unlabeled" ]; then
|
|
41
|
+
echo "refresh-linked-prs=true" >> "$GITHUB_OUTPUT"
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
permission="$(gh api "repos/$REPOSITORY/collaborators/$ACTOR/permission" --jq .permission 2>/dev/null || true)"
|
|
46
|
+
case "$permission" in
|
|
47
|
+
write|maintain|admin)
|
|
48
|
+
echo "refresh-linked-prs=true" >> "$GITHUB_OUTPUT"
|
|
49
|
+
;;
|
|
50
|
+
*)
|
|
51
|
+
gh issue edit "$ISSUE_NUMBER" --repo "$REPOSITORY" --remove-label ready-for-dev
|
|
52
|
+
echo "refresh-linked-prs=false" >> "$GITHUB_OUTPUT"
|
|
53
|
+
;;
|
|
54
|
+
esac
|
|
55
|
+
|
|
56
|
+
refresh-linked-pr-gates:
|
|
57
|
+
name: Refresh PR gates for linked issues
|
|
58
|
+
needs: enforce-label-policy
|
|
59
|
+
if: needs.enforce-label-policy.outputs.refresh-linked-prs == 'true'
|
|
60
|
+
runs-on: ubuntu-latest
|
|
61
|
+
timeout-minutes: 10
|
|
62
|
+
permissions:
|
|
63
|
+
contents: read
|
|
64
|
+
pull-requests: read
|
|
65
|
+
actions: write
|
|
66
|
+
steps:
|
|
67
|
+
- name: Checkout trusted workflow scripts
|
|
68
|
+
uses: actions/checkout@v7
|
|
69
|
+
|
|
70
|
+
- name: Re-run PR description checks for linked open PRs
|
|
71
|
+
env:
|
|
72
|
+
GH_TOKEN: ${{ github.token }}
|
|
73
|
+
run: python .github/scripts/refresh_linked_pr_checks.py
|
{openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/npm-publish.yml
RENAMED
|
@@ -31,14 +31,14 @@ jobs:
|
|
|
31
31
|
|
|
32
32
|
steps:
|
|
33
33
|
- name: Check out repository
|
|
34
|
-
uses: actions/checkout@
|
|
34
|
+
uses: actions/checkout@v7
|
|
35
35
|
with:
|
|
36
36
|
ref: ${{ inputs.tag || github.ref }}
|
|
37
37
|
|
|
38
38
|
# Trusted publishing requires Node 22.14.0+ and npm 11.5.1+
|
|
39
39
|
# See: https://docs.npmjs.com/trusted-publishers/
|
|
40
40
|
- name: Set up Node.js for npm trusted publishing
|
|
41
|
-
uses: actions/setup-node@
|
|
41
|
+
uses: actions/setup-node@v7
|
|
42
42
|
with:
|
|
43
43
|
node-version: '24'
|
|
44
44
|
registry-url: https://registry.npmjs.org
|
{openhands_extensions-0.22.1 → openhands_extensions-0.24.0}/.github/workflows/pypi-publish.yml
RENAMED
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
22
|
- name: Check out repository
|
|
23
|
-
uses: actions/checkout@
|
|
23
|
+
uses: actions/checkout@v7
|
|
24
24
|
|
|
25
25
|
- name: Extract version
|
|
26
26
|
id: extract_version
|
|
@@ -72,7 +72,7 @@ jobs:
|
|
|
72
72
|
run: uv build
|
|
73
73
|
|
|
74
74
|
- name: Upload distributions
|
|
75
|
-
uses: actions/upload-artifact@
|
|
75
|
+
uses: actions/upload-artifact@v7
|
|
76
76
|
with:
|
|
77
77
|
name: python-package-distributions
|
|
78
78
|
path: dist/
|
|
@@ -95,7 +95,7 @@ jobs:
|
|
|
95
95
|
|
|
96
96
|
steps:
|
|
97
97
|
- name: Download distributions
|
|
98
|
-
uses: actions/download-artifact@
|
|
98
|
+
uses: actions/download-artifact@v8
|
|
99
99
|
with:
|
|
100
100
|
name: python-package-distributions
|
|
101
101
|
path: dist/
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
steps:
|
|
14
14
|
- name: Checkout repository
|
|
15
|
-
uses: actions/checkout@
|
|
15
|
+
uses: actions/checkout@v7
|
|
16
16
|
|
|
17
17
|
- name: Install uv
|
|
18
18
|
uses: astral-sh/setup-uv@v7
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
python-version: "3.12"
|
|
22
22
|
|
|
23
23
|
- name: Setup Node.js
|
|
24
|
-
uses: actions/setup-node@
|
|
24
|
+
uses: actions/setup-node@v7
|
|
25
25
|
with:
|
|
26
26
|
node-version: "20"
|
|
27
27
|
|
|
@@ -16,6 +16,27 @@ Related repositories have distinct responsibilities:
|
|
|
16
16
|
|
|
17
17
|
Put reusable skills, plugins, automations, and integrations here; put backend execution behavior and typed API access in the SDK, application UI in Agent Canvas, and scheduling/dispatch lifecycle code in `automation`. If a PR is opened in the wrong repository, explicitly recommend closing and moving it to the owning repository. PRs must follow this repository's applicable contribution and code-review guidance.
|
|
18
18
|
|
|
19
|
+
## Review-Facing Extension Checklist
|
|
20
|
+
|
|
21
|
+
Before opening a PR:
|
|
22
|
+
|
|
23
|
+
- Keep a content change focused on one skill, plugin, automation bundle, or
|
|
24
|
+
integration. Put shared product runtime behavior in the repository that owns
|
|
25
|
+
it instead of copying machinery into extension content.
|
|
26
|
+
- Treat every command, import, environment variable, endpoint, setup step, and
|
|
27
|
+
package name as an executable contract. Test the documented entrypoint with
|
|
28
|
+
released packages in each local or cloud environment the extension claims to
|
|
29
|
+
support; do not rely on developer-only variables or private paths.
|
|
30
|
+
- For event-, comment-, or message-triggered work, define who may trigger it,
|
|
31
|
+
whose identity executes it, what scope it may mutate, and which minimal secrets
|
|
32
|
+
it receives. A trigger phrase is not authorization.
|
|
33
|
+
- Edit the hand-authored source once and regenerate derived catalogs, commands,
|
|
34
|
+
indexes, and package assets with the existing sync/build command. Document the
|
|
35
|
+
true generation direction and do not introduce a parallel source of truth.
|
|
36
|
+
- Verify copy-paste commands and factual documentation claims against the actual
|
|
37
|
+
tool or authoritative source. Extension instructions are executed by agents,
|
|
38
|
+
so incorrect setup or data-flow documentation is a functional defect.
|
|
39
|
+
|
|
19
40
|
## What this repo contains
|
|
20
41
|
|
|
21
42
|
- `skills/` — a catalog of skills, **one directory per skill**.
|
|
@@ -110,7 +131,7 @@ When editing or adding skills in this repo, follow these rules (and add new skil
|
|
|
110
131
|
- Agent-driven plugins (for example `plugins/pr-review` and `plugins/release-notes`) use `uv run --with openhands-sdk --with openhands-tools ...` and require an `LLM_API_KEY` in addition to `GITHUB_TOKEN`.
|
|
111
132
|
- For OpenHands Cloud API guidance, automations, and CLI integration, use `plugins/openhands`. It is the canonical unified OpenHands plugin covering the V1 Cloud API, Automations API, and CLI. The individual skills (`skills/openhands-api`, `skills/openhands-automation`) are also available standalone.
|
|
112
133
|
- When reviewing or editing `skills/openhands-sdk`, validate copy-paste imports against the released packages with `uv run --with openhands-tools --with openhands-workspace --with openhands-agent-server python ...`. In the current released workspace package, the exported remote workspace classes are `APIRemoteWorkspace` / `OpenHandsCloudWorkspace`; `RemoteAPIWorkspace` is not available.
|
|
113
|
-
- For agent-driven plugin scripts, prefer `from openhands.sdk.plugin import PluginSource` and pass `plugins=[PluginSource(source=...)]` into `Conversation`.
|
|
134
|
+
- For agent-driven plugin scripts, prefer `from openhands.sdk.plugin import PluginSource` and pass `plugins=[PluginSource(source=...)]` into `Conversation`. The current released SDK (`openhands-sdk` 1.49.x) exports both `PluginSource` and `Plugin` from `openhands.sdk.plugin`, so `Plugin.load(...)` imports also work (used by `tests/test_skill_plugin_loading.py`).
|
|
114
135
|
- `plugins/qa-changes/action.yml` now has a preflight guard for fork PRs in `pull_request` context: if the PR comes from a fork and `LLM_API_KEY` is unavailable (normal for forks), the action exits successfully with a clear skip notice instead of failing.
|
|
115
136
|
- `skills/bitbucket` should not tell agents to rewrite remotes proactively. In OpenHands, `BITBUCKET_TOKEN` is commonly kept in unencoded `user:token` form for API calls like `curl --user "$BITBUCKET_TOKEN" ...`; only split and URL-encode it when constructing a non-interactive HTTPS Git remote URL.
|
|
116
137
|
|
|
@@ -148,7 +169,16 @@ Important notes:
|
|
|
148
169
|
- `scripts/sync_extensions.py` keeps generated artifacts in sync: Claude Code command files, README catalog section, coverage checks, and vendor symlinks. Run `python scripts/sync_extensions.py --check` (or just push — CI runs it) to verify everything is consistent. Run without `--check` to auto-fix. The "Quick Start" section in `README.md` (OpenHands SDK, Claude Code, and Codex setup instructions) is **manually maintained** above the auto-generated catalog markers and is intentionally not generated by the sync script.
|
|
149
170
|
- The sync script uses PyYAML to parse SKILL.md frontmatter. If you add a skill with a slash trigger (e.g., `triggers: ["/mycommand"]`), the script auto-generates `commands/mycommand.md`. **Note:** Slash triggers in SKILL.md frontmatter are deprecated — prefer adding a `commands/command-name.md` file to the plugin's `commands/` directory instead. Keyword triggers (non-slash) remain the recommended way to activate skills by topic.
|
|
150
171
|
|
|
151
|
-
- The
|
|
172
|
+
- The GitHub issue-triage automation and repository writers may grant
|
|
173
|
+
`ready-for-dev`.
|
|
174
|
+
`.github/workflows/issue-readiness-check.yml` removes a newly applied label
|
|
175
|
+
unless a user with `write`, `maintain`, or `admin` permission applied it. An
|
|
176
|
+
`unlabeled` event then lets triage reassess the issue.
|
|
177
|
+
`.github/workflows/pr-description-check.yml` still requires linked issues to
|
|
178
|
+
be ready, and label transitions refresh that check through
|
|
179
|
+
`.github/scripts/refresh_linked_pr_checks.py`. Tests for the PR gates live in
|
|
180
|
+
`tests/test_check_pr_description.py` and
|
|
181
|
+
`tests/test_refresh_linked_pr_checks.py`.
|
|
152
182
|
|
|
153
183
|
## OpenHands SDK documentation policy
|
|
154
184
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: openhands-extensions
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.24.0
|
|
4
4
|
Summary: OpenHands extensions, plugins, and skills (Python bindings for the integration catalog)
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.12
|
|
7
7
|
Requires-Dist: deprecation<3,>=2.1
|
|
8
|
-
Requires-Dist: packaging<
|
|
8
|
+
Requires-Dist: packaging<27,>=24
|
|
9
9
|
Requires-Dist: pydantic<3,>=2.10
|
|
@@ -9,7 +9,7 @@ It contains reusable, shareable skills and plugins that customize agent behavior
|
|
|
9
9
|
|
|
10
10
|
## Repository boundaries
|
|
11
11
|
|
|
12
|
-
`OpenHands/extensions` is the public registry for reusable skills, plugins, automations, and integrations. [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) owns Agent Server execution
|
|
12
|
+
`OpenHands/extensions` is the public registry for reusable skills, plugins, automations, and integrations. [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) owns Agent Server execution, the canonical API, and typed browser access to it under `clients/typescript/`, [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) owns Agent Canvas UI, and [`OpenHands/automation`](https://github.com/OpenHands/automation) owns scheduling, webhooks, run history, dispatch, and sandbox lifecycle orchestration.
|
|
13
13
|
|
|
14
14
|
Put reusable extension artifacts here rather than in application repositories. If a PR is opened in the wrong repository, close and move it to the repository that owns the change.
|
|
15
15
|
|
|
@@ -96,7 +96,7 @@ The JS and Python versions are kept in lock-step by `release-please` and guarded
|
|
|
96
96
|
## Extensions Catalog
|
|
97
97
|
|
|
98
98
|
<!-- BEGIN AUTO-GENERATED CATALOG -->
|
|
99
|
-
This repository contains **2 marketplace(s)** with **
|
|
99
|
+
This repository contains **2 marketplace(s)** with **73 extensions** (63 skills, 10 plugins).
|
|
100
100
|
|
|
101
101
|
### large-codebase
|
|
102
102
|
|
|
@@ -115,7 +115,7 @@ OpenHands skills for interacting, improving, and refactoring large codebases
|
|
|
115
115
|
|
|
116
116
|
Official skills and plugins for OpenHands — the open-source AI software engineer.
|
|
117
117
|
|
|
118
|
-
**
|
|
118
|
+
**69 extensions** (61 skills, 8 plugins)
|
|
119
119
|
|
|
120
120
|
| Name | Type | Description | Commands |
|
|
121
121
|
|------|------|-------------|----------|
|
|
@@ -128,6 +128,7 @@ Official skills and plugins for OpenHands — the open-source AI software engine
|
|
|
128
128
|
| bitbucket | skill | Bitbucket integration hub. Detects whether the repository is on Bitbucket Cloud or Bitbucket Data Center and directs ... | — |
|
|
129
129
|
| bitbucket-cloud | skill | Bitbucket Cloud (bitbucket.org) specifics — authenticate with BITBUCKET_TOKEN, use the REST API v2, workspace/repo_sl... | — |
|
|
130
130
|
| bitbucket-data-center | skill | Bitbucket Data Center (self-hosted Bitbucket Server) specifics — authenticate with BITBUCKET_DATA_CENTER_TOKEN, use t... | — |
|
|
131
|
+
| canvas-extension-api | skill | Build and validate Apps for Agent Canvas using the supported Canvas Extensions API v1 routed-page contract. | — |
|
|
131
132
|
| city-weather | plugin | Get current weather, time, and precipitation forecast for any city using the free Open-Meteo API. Provides slash comm... | — |
|
|
132
133
|
| code-review | skill | Rigorous code review focusing on data structures, simplicity, security, pragmatism, and risk/safety evaluation. Provi... | `/codereview`, `/codereview-roasted` |
|
|
133
134
|
| code-simplifier | skill | Simplifies and refines code across three dimensions - code reuse, code quality, and efficiency - while preserving all... | `/simplify` |
|