openhands-extensions 0.28.0__tar.gz → 0.30.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.28.0 → openhands_extensions-0.30.0}/.agents/skills/custom-codereview-guide.md +44 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/build-vscode-app.yml +3 -3
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/check-extensions.yml +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/tests.yml +1 -1
- openhands_extensions-0.30.0/.release-please-manifest.json +3 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/AGENTS.md +7 -2
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/PKG-INFO +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/README.md +3 -3
- openhands_extensions-0.30.0/apps/vscode/README.md +15 -0
- openhands_extensions-0.30.0/apps/vscode/canvas-extension.json +27 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/apps/vscode/extension.js +60 -12
- openhands_extensions-0.30.0/apps/vscode/scripts/package.mjs +30 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/bundle-index.js +9 -7
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-issue-to-pr/manifest.json +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-issue-triage/manifest.json +4 -3
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-pr-reviewer/manifest.json +5 -4
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/gitlab-issue-to-mr/manifest.json +3 -3
- openhands_extensions-0.30.0/automations/catalog/jira-issue-to-bitbucket-pr/manifest.json +23 -0
- openhands_extensions-0.30.0/automations/catalog/jira-issue-to-gitlab-mr/manifest.json +23 -0
- openhands_extensions-0.30.0/automations/catalog/jira-issue-to-pr/manifest.json +19 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/atlassian-rovo.json +4 -3
- openhands_extensions-0.30.0/integrations/catalog/bitbucket.json +49 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/github.json +1 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/gitlab.json +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/marketplaces/openhands-extensions.json +7 -5
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/package.json +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/references/custom-automation.md +76 -8
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/README.md +1 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/scripts/prompt.py +44 -11
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/runtime-api-configs/SKILL.md +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/scripts/agent_conversation.py +224 -8
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/pyproject.toml +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/python/openhands_extensions/_version.py +1 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/SKILL.md +4 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/backend-safety.md +3 -3
- openhands_extensions-0.30.0/skills/canvas-extension-api/references/native-design.md +250 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/v1-contract.md +7 -4
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/scripts/validate-extension.mjs +17 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/scripts/validate-extension.test.mjs +49 -0
- openhands_extensions-0.30.0/skills/github-issue-triage/README.md +75 -0
- openhands_extensions-0.30.0/skills/github-issue-triage/SKILL.md +37 -0
- openhands_extensions-0.30.0/skills/github-issue-triage/scripts/triage_publication.py +293 -0
- openhands_extensions-0.30.0/skills/github-issue-triage/scripts/worker.py +272 -0
- openhands_extensions-0.30.0/skills/github-pr-reviewer/README.md +200 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/SKILL.md +35 -8
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/references/state-schema.md +8 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/scripts/main.py +163 -39
- openhands_extensions-0.30.0/skills/github-pr-reviewer/scripts/publication.py +193 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/scripts/worker.py +297 -8
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/tests/test_main.py +73 -5
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/README.md +10 -3
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/SKILL.md +43 -9
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/references/state-schema.md +4 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/scripts/main.py +359 -25
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/index.js +10 -10
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/.claude-plugin/plugin.json +4 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/README.md +18 -11
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/SKILL.md +72 -23
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/references/setup.md +43 -12
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/scripts/main.py +136 -26
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/README.md +6 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/SKILL.md +6 -3
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/scripts/main.py +36 -4
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ticket-to-code-change/.claude-plugin/plugin.json +1 -2
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ticket-to-code-change/SKILL.md +5 -3
- openhands_extensions-0.30.0/skills/ticket-to-code-change/commands/ticket-to-code-change-setup.md +8 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/github-pr-reviewer.json +9 -9
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_agent_conversation_dispatch.py +173 -6
- openhands_extensions-0.30.0/tests/test_automation_llm_provenance.py +1209 -0
- openhands_extensions-0.30.0/tests/test_github_review_publication.py +422 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_reviewer_delivery.py +174 -21
- openhands_extensions-0.30.0/tests/test_github_triage_delivery.py +457 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_gitlab_issue_to_mr.py +284 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_jira_issue_to_pr.py +200 -6
- openhands_extensions-0.30.0/tests/test_pr_review_prompt_injection.py +353 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_slack_channel_monitor.py +32 -1
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_vscode_app.py +8 -2
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/vscode-app.test.mjs +8 -2
- openhands_extensions-0.28.0/.release-please-manifest.json +0 -3
- openhands_extensions-0.28.0/apps/vscode/README.md +0 -13
- openhands_extensions-0.28.0/apps/vscode/canvas-extension.json +0 -19
- openhands_extensions-0.28.0/apps/vscode/scripts/package.mjs +0 -84
- openhands_extensions-0.28.0/automations/catalog/jira-issue-to-bitbucket-pr/manifest.json +0 -23
- openhands_extensions-0.28.0/automations/catalog/jira-issue-to-gitlab-mr/manifest.json +0 -23
- openhands_extensions-0.28.0/automations/catalog/jira-issue-to-pr/manifest.json +0 -19
- openhands_extensions-0.28.0/integrations/catalog/bitbucket.json +0 -34
- openhands_extensions-0.28.0/skills/github-issue-triage/README.md +0 -16
- openhands_extensions-0.28.0/skills/github-issue-triage/SKILL.md +0 -57
- openhands_extensions-0.28.0/skills/github-issue-triage/scripts/worker.py +0 -222
- openhands_extensions-0.28.0/skills/github-pr-reviewer/README.md +0 -98
- openhands_extensions-0.28.0/skills/ticket-to-code-change/commands/ticket-to-code-change-setup.md +0 -8
- openhands_extensions-0.28.0/tests/test_github_triage_delivery.py +0 -284
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.claude-plugin/marketplace.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/dependabot.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/pull_request_template.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/release.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/scripts/check_pr_description.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/scripts/markdown_sections.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/scripts/refresh_linked_pr_checks.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/deprecation-check.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/issue-readiness-check.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/npm-publish.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/pr-artifacts.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/pr-description-check.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/pr.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/pypi-publish.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/release.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.gitignore +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/LICENSE +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/MIGRATION.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/analysis_results.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/apps/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/apps/catalog.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/apps/index.d.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/apps/index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/custom-automation/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-agents-md-maintainer/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-delivery-watchdog/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-repo-monitor/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/github-stale-ci-pr-closer/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/incident-retrospective-drafter/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/linear-issue-to-bitbucket-pr/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/linear-issue-to-github-pr/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/linear-issue-to-gitlab-mr/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/linear-triage-assistant/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/news-digest/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/qa-changes/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/research-brief-writer/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/slack-channel-monitor/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/slack-github-linear-daily-organization.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/slack-standup-digest/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog/upstream-fork-sync/manifest.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog-index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/catalog.schema.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/index.d.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/interface.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/automations/interface.schema.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/index.d.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/airtable.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/apify.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/asana.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/atlassian.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/box.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/brave-search.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/browser-mcp.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/canva.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/clickhouse.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/cloudflare-bindings.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/cloudflare-browser-rendering.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/cloudflare-builds.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/cloudflare-docs.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/cloudflare-observability.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/confluence.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/datadog.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/deepwiki.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/discord.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/elevenlabs.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/everything.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/exa.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/fetch.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/figma.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/filesystem.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/firecrawl.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/git.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/gmail.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/google-calendar.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/google-docs.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/google-drive.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/google-sheets.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/granola.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/hubspot.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/huggingface.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/intercom.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/jira.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/kagi.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/linear.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/memory.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/microsoft-outlook.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/microsoft-teams.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/miro.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/monday.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/mongodb.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/neon.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/netlify.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/notion.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/obsidian.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/okta.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/onedrive.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/ordinal.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/paypal.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/playwright.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/posthog.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/quickbooks.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/redis.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/reportportal.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/resend.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/salesforce.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/sentry.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/sequential-thinking.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/sharepoint.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/slack.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/sonarqube.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/stripe.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/supabase.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/superhuman-mail.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/tavily.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/time.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/trello.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/vanta.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/vercel.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/webflow.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/xero.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog/zoom.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog-index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/catalog.schema.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/icons/salesforce.svg +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/icons/slack.svg +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/index.d.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/integrations/index.js +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/marketplaces/large-codebase.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/city-weather/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/city-weather/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/city-weather/commands/now.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/references/troubleshooting.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/build-setup/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/mainframe-removal/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/mainframe-removal/references/cics-transformation-examples.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/action.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.cjs +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.cjs +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/magic-test/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/magic-test/skills/magic-word/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/migration-mapping/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/migration-report/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/migration-scoring/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/score-quality/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/migration-scoring/skills/score-style/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/references/criteria.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/improve-agent-readiness/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-agents-md/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-agents-md/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-openhands/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-openhands/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-pr-review/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/onboarding/skills/setup-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/commands/create.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/commands/openhands-cloud.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/scripts/run.sh +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/references/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/references/example_prompt.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/commands/automation-create.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/references/ab-testing.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/references/security.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-automation/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-sdk/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-sdk/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/openhands/skills/openhands-sdk/commands/sdk.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/action.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/scripts/agent_script.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/scripts/evaluate_review.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/commands/codereview.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/references/risk-evaluation.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/code-review/references/supply-chain-security.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/github-pr-review/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/github-pr-review/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/skills/github-pr-review/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/workflows/pr-review-by-openhands.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/pr-review/workflows/pr-review-evaluation.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/action.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/scripts/evaluate_qa_changes.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/scripts/prompt.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/skills/qa-changes/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/skills/qa-changes/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/qa-changes/workflows/qa-changes-evaluation.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/action.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/scripts/agent_script.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/scripts/generate_release_notes.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/scripts/prompt.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/scripts/validate_release_notes.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/skills/release-notes/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/skills/release-notes/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/skills/release-notes/commands/release-notes.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/release-notes/workflows/release-notes.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/runtime-api-configs/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/runtime-api-configs/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/runtime-api-configs/scripts/warm_runtime_configs.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/runtime-api-configs/tests/test_warm_runtime_configs.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/action.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/github/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/security/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/skills/security/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/python/openhands_extensions/__init__.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/python/openhands_extensions/deprecation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/python/openhands_extensions/integration_models.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/python/openhands_extensions/integrations.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/release-please-config.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/build-automation-catalog.mjs +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/build-integration-catalog.mjs +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/build-skills-catalog.mjs +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/check_deprecations.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/check_plugin_resources.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/sync_extensions.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/scripts/sync_openhands_sdk_skill.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-javadoc/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-javadoc/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-javadoc/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-javadoc/references/example.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-skill/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-skill/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-skill/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/add-skill/scripts/fetch_skill.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-canvas-environment/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-canvas-environment/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-canvas-environment/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-creator/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-creator/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-creator/commands/agent-creator.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-creator/references/fallback.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-memory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-memory/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-memory/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-memory/commands/remember.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-sdk-builder/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-sdk-builder/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-sdk-builder/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/agent-sdk-builder/commands/agent-builder.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/azure-devops/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/azure-devops/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/azure-devops/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-cloud/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-cloud/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-cloud/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-data-center/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-data-center/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/bitbucket-data-center/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/acceptance-checklist.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/connections.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/packaging-recipes.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/sidecar-pattern.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/canvas-extension-api/references/testing-and-installation.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/commands/simplify.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/references/code-quality-review.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/references/code-reuse-review.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/code-simplifier/references/efficiency-review.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/datadog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/datadog/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/datadog/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/datadog/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/deno/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/deno/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/deno/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/deno/references/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/__init__.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/references/REFERENCE.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/scripts/__init__.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/scripts/_http.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/scripts/post_webhook.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/discord/scripts/send_message.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/docker/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/docker/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/docker/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/evidence-based-citations/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/evidence-based-citations/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/evidence-based-citations/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/flarglebargle/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/flarglebargle/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/flarglebargle/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/frontend-design/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/frontend-design/LICENSE.txt +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/frontend-design/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/frontend-design/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-actions/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-actions/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-actions/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/commands/agents-md-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/references/state-schema.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-agents-md-maintainer/scripts/main.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/commands/github-delivery-watchdog.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-delivery-watchdog/scripts/worker.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/commands/issue-to-pr-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/references/state-schema.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/scripts/main.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-to-pr/scripts/worker.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-triage/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-triage/commands/github-issue-triage.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-triage/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-issue-triage/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/commands/pr-reviewer-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/scripts/agent_conversation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-pr-reviewer/scripts/maintainer_handoff.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/commands/github-monitor-poll.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/references/github-api.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/scripts/github_client.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/scripts/main.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-repo-monitor/tests/test_main.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/commands/github-stale-ci-pr-closer.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/scripts/worker.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/github-stale-ci-pr-closer/tests/test_worker.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/gitlab-issue-to-mr/commands/issue-to-mr-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/incident-retrospective/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/incident-retrospective/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/incident-retrospective/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/incident-retrospective/commands/incident-retro-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/index.d.ts +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/.codex-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/.plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/commands/babysit.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/commands/iterate.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/commands/verify.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/references/heuristics.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/references/verification.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/iterate/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jira-issue-to-pr/scripts/setup_webhook.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jupyter/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jupyter/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/jupyter/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/kubernetes/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/kubernetes/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/kubernetes/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/kubernetes/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/learn-from-code-review/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/learn-from-code-review/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/learn-from-code-review/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/learn-from-code-review/commands/learn-from-reviews.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear-triage/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear-triage/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear-triage/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/linear-triage/commands/linear-triage-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/commands/news-digest-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/references/state-schema.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/news-digest/scripts/main.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/notion/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/notion/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/notion/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/notion/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/npm/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/npm/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/npm/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/references/diagnostics.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/references/support-bundle-analysis.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/openhands-enterprise-troubleshooting/scripts/bundle_triage.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/pdflatex/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/pdflatex/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/pdflatex/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/plain-english-content/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/plain-english-content/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/plain-english-content/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/prd/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/prd/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/prd/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/prd/commands/prd.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/research-brief/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/research-brief/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/research-brief/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/research-brief/commands/research-brief-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/simplified-technical-english/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/simplified-technical-english/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/simplified-technical-english/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/LICENSE.txt +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/references/output-patterns.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/references/workflows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/scripts/init_skill.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/skill-creator/scripts/quick_validate.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/commands/slack-monitor-poll.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/references/slack-api.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/references/state-schema.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-channel-monitor/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-standup-digest/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-standup-digest/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-standup-digest/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/slack-standup-digest/commands/standup-digest-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/spark-version-upgrade/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/spark-version-upgrade/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/spark-version-upgrade/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ssh/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ssh/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ssh/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ssh/references/windows.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/swift-linux/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/swift-linux/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/swift-linux/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/technical-writing/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/technical-writing/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/technical-writing/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/LICENSE.txt +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/theme-showcase.pdf +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/arctic-frost.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/botanical-garden.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/desert-rose.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/forest-canopy.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/golden-hour.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/midnight-galaxy.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/modern-minimalist.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/ocean-depths.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/sunset-boulevard.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/theme-factory/themes/tech-innovation.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/ticket-to-code-change/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/upstream-fork-sync/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/upstream-fork-sync/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/upstream-fork-sync/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/upstream-fork-sync/commands/upstream-fork-sync-setup.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/use-jev/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/use-jev/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/use-jev/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/uv/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/uv/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/uv/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/uv/references/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/vercel/.claude-plugin/plugin.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/vercel/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/skills/vercel/SKILL.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/capabilities.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/custom-automation.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/github-repo-monitor.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/incident-retrospective-drafter.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/fixtures/automations/upstream-fork-sync.json +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/github_automation_helpers.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_add_skill_installs_to_agents_dir.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_apps_catalog.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_automation_setup.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_catalog_schema.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_catalogs.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_check_pr_description.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_code_review_risk_evaluation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_deprecations.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_agents_md_maintainer.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_automation_foundation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_developer_delivery.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_issue_to_pr.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_pr_review_skill.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_repo_monitor.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_skill_installation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_stale_ci_pr_closer.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_github_watchdog_delivery.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_integration_catalog_in_sync.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_interface_manifest.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_issue_duplicate_checker.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_jira_setup_webhook.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_live_integration_smoke.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_maintainer_handoff.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_news_digest.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_openhands_api_python.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_plugin_manifest.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_pr_review_diff_payload.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_pr_review_feedback.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_pr_review_prompt.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_pr_review_review_context.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_qa_changes.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_qa_changes_evaluation.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_refresh_linked_pr_checks.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_release_notes_generator.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_sdk_loading.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_skill_plugin_loading.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_skills_catalog.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_skills_have_readme.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_sync_extensions.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_version_alignment.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/tests/test_workflow_sync.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/utils/analysis/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/utils/analysis/laminar_signals/README.md +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/utils/analysis/laminar_signals/analyze.py +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/utils/analysis/laminar_signals/templates/default.j2 +0 -0
- {openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/utils/analysis/laminar_signals/templates/pr_review.j2 +0 -0
|
@@ -27,7 +27,32 @@ Cross-repository work is acceptable when this PR contains only the
|
|
|
27
27
|
extensions-owned portion and relies on public interfaces from the owning
|
|
28
28
|
repository.
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## Issue triage
|
|
31
|
+
|
|
32
|
+
Issue readiness means the work is clear enough to start—not that the fix is
|
|
33
|
+
complete. Do not require a PR, passing implementation tests, or before-and-after
|
|
34
|
+
fix evidence. Reconsider readiness when new information leaves scope or expected
|
|
35
|
+
behavior unresolved. Read the issue, linked discussion, applicable `AGENTS.md`,
|
|
36
|
+
and adjacent source before asking questions.
|
|
37
|
+
|
|
38
|
+
For API failures, compare the extension request with the provider's reported or
|
|
39
|
+
supported version, not upstream main. Use dependency pins or deployment evidence.
|
|
40
|
+
Instructions, request arguments, response parsing, and scanner policy belong
|
|
41
|
+
here; use the ownership boundaries above for other failures. State required
|
|
42
|
+
cross-repository changes and their order. An independent upstream defect need
|
|
43
|
+
not block this work. Naming an owner does not authorize edits or duplicate tickets.
|
|
44
|
+
|
|
45
|
+
Define the smallest useful outcome and explicit non-goals. Cover only affected
|
|
46
|
+
entrypoints, environments, and permissions. For scanners, state whether discovery,
|
|
47
|
+
commenting, and dispatch are allowed for ineligible candidates or after a cap.
|
|
48
|
+
Discovery alone does not authorize unsolicited comments.
|
|
49
|
+
|
|
50
|
+
Request visual evidence only when needed; otherwise use logs, minimal
|
|
51
|
+
reproductions, or failing tests. Do not repeat answered questions. Match managed
|
|
52
|
+
criteria to current human decisions and authoritative readiness policy. Report
|
|
53
|
+
conflicts instead of repeatedly adding a label that policy removes.
|
|
54
|
+
|
|
55
|
+
## Implementation review checkpoints
|
|
31
56
|
|
|
32
57
|
### Executable instructions and runtime parity
|
|
33
58
|
|
|
@@ -42,6 +67,16 @@ in a clean environment far enough to exercise the changed behavior. Keep local
|
|
|
42
67
|
and cloud behavior identical unless the documentation names and explains a real
|
|
43
68
|
platform capability difference.
|
|
44
69
|
|
|
70
|
+
For provider changes, inspect the supported implementation; mocks and local types
|
|
71
|
+
alone do not establish an API contract. Separate static/helper tests, tests with
|
|
72
|
+
simulated services, and real integration evidence. If the version or runtime is
|
|
73
|
+
unavailable, report that limit, not an assumed defect. For packaging changes,
|
|
74
|
+
check source, shipped bundle, and deployed files separately.
|
|
75
|
+
|
|
76
|
+
For scanners, check eligibility, permissions, caps, retries, unchanged runs, and
|
|
77
|
+
recovery for each action listed under triage. A launch cap does not permit
|
|
78
|
+
unlimited gate comments.
|
|
79
|
+
|
|
45
80
|
### Untrusted triggers and credentials
|
|
46
81
|
|
|
47
82
|
Treat repository events, issue and PR comments, chat messages, catalog fields,
|
|
@@ -130,3 +165,11 @@ Do not comment on punctuation, preferred prose tone, optional DRY cleanup, or
|
|
|
130
165
|
hypothetical non-standard configurations without a supported failure mode. Before
|
|
131
166
|
raising a finding, verify that the referenced file and behavior are present in
|
|
132
167
|
the current PR head and have not already been addressed in review history.
|
|
168
|
+
|
|
169
|
+
## Review verdict
|
|
170
|
+
|
|
171
|
+
Do not approve material code defects or unmet blocking merge/evidence checks.
|
|
172
|
+
Distinguish code defects from missing merge requirements and optional follow-up.
|
|
173
|
+
If GitHub forbids self-approval of a clean PR, use COMMENT and explain why.
|
|
174
|
+
Respect accepted scope and non-goals: block on a pre-existing limitation only if
|
|
175
|
+
this change exposes it.
|
{openhands_extensions-0.28.0 → openhands_extensions-0.30.0}/.github/workflows/build-vscode-app.yml
RENAMED
|
@@ -14,15 +14,15 @@ jobs:
|
|
|
14
14
|
- uses: actions/checkout@v7
|
|
15
15
|
- uses: actions/setup-node@v7
|
|
16
16
|
with:
|
|
17
|
-
node-version: "
|
|
17
|
+
node-version: "24"
|
|
18
18
|
- name: Build installable App package
|
|
19
19
|
run: node apps/vscode/scripts/package.mjs
|
|
20
20
|
- name: Validate package files
|
|
21
21
|
run: |
|
|
22
22
|
test -f dist/apps/vscode/canvas-extension.json
|
|
23
23
|
test -f dist/apps/vscode/extension.js
|
|
24
|
-
test -f dist/apps/vscode/
|
|
25
|
-
test -
|
|
24
|
+
test -f dist/apps/vscode/README.md
|
|
25
|
+
test -z "$(find dist/apps/vscode -type f -name '*.tar.gz' -print -quit)"
|
|
26
26
|
- uses: actions/upload-artifact@v7
|
|
27
27
|
with:
|
|
28
28
|
name: vscode-app-${{ github.sha }}
|
|
@@ -6,7 +6,7 @@ It contains **shareable skills and plugins** that can be loaded by OpenHands (CL
|
|
|
6
6
|
|
|
7
7
|
## Cross-Repository Boundaries
|
|
8
8
|
|
|
9
|
-
This repository owns the public registry of reusable OpenHands skills, plugins, automations, and integrations. These extensions are consumed by OpenHands applications and SDK-based clients.
|
|
9
|
+
This repository owns the public registry of reusable OpenHands skills, plugins, Agent Canvas Apps, automations, and integrations. These extensions are consumed by OpenHands applications and SDK-based clients.
|
|
10
10
|
|
|
11
11
|
Related repositories have distinct responsibilities:
|
|
12
12
|
|
|
@@ -49,7 +49,12 @@ Before opening a PR:
|
|
|
49
49
|
- `plugins/<plugin-name>/hooks/` — lifecycle hooks (optional)
|
|
50
50
|
- `plugins/<plugin-name>/scripts/` — utility scripts (optional)
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
- `apps/` — a catalog of Agent Canvas Apps (beta), **one directory per app**.
|
|
53
|
+
- `apps/<app-name>/canvas-extension.json` — the App manifest (Canvas Extensions API v1)
|
|
54
|
+
- `apps/<app-name>/extension.js` — the browser ESM entrypoint exporting `activate(host)`
|
|
55
|
+
- `apps/catalog.json` — the registry catalog, exposed as `APPS_CATALOG` from `@openhands/extensions/apps`
|
|
56
|
+
|
|
57
|
+
Most content is Markdown skill definitions and plugin configurations; the executable parts are plugin `scripts/` and `hooks/` plus the browser ESM App packages under `apps/`, each of which may ship its own `scripts/` and build sub-directories.
|
|
53
58
|
|
|
54
59
|
## How client code uses this repo
|
|
55
60
|
|
|
@@ -154,10 +154,10 @@ Official skills and plugins for OpenHands — the open-source AI software engine
|
|
|
154
154
|
| github-repo-monitor | skill | Create a cron automation that polls a GitHub repository for issue and PR comments containing a configurable trigger p... | `/github-monitor:poll` |
|
|
155
155
|
| github-stale-ci-pr-closer | skill | Warn and close abandoned pull requests whose required CI remains failing. | `/github-stale-ci-pr-closer` |
|
|
156
156
|
| gitlab | skill | Interact with GitLab repositories, merge requests, and APIs using the GITLAB_TOKEN environment variable. Use when wor... | — |
|
|
157
|
-
| gitlab-issue-to-mr | skill | Create an automation that implements GitLab issues when a configurable trigger label is applied.
|
|
157
|
+
| gitlab-issue-to-mr | skill | Create an automation that implements GitLab issues when a configurable trigger label is applied. Polls the projects d... | `/issue-to-mr:setup` |
|
|
158
158
|
| incident-retrospective | skill | Create an automation that drafts incident retrospectives by gathering incident-channel messages from Slack, collectin... | `/incident-retro:setup` |
|
|
159
159
|
| iterate | skill | Iterate on a GitHub pull request — drive it through CI, code review, and QA until merge-ready. Monitors state, fixes ... | `/iterate`, `/verify`, `/babysit` |
|
|
160
|
-
| jira-issue-to-pr | skill | Deploy a cron-based OpenHands automation that
|
|
160
|
+
| jira-issue-to-pr | skill | Deploy a cron-based OpenHands automation that opens a GitHub pull request, a GitLab merge request or a Bitbucket pull... | — |
|
|
161
161
|
| jupyter | skill | Read, modify, execute, and convert Jupyter notebooks programmatically. Use when working with .ipynb files for data sc... | — |
|
|
162
162
|
| kubernetes | skill | Set up and manage local Kubernetes clusters using KIND (Kubernetes IN Docker). Use when testing Kubernetes applicatio... | — |
|
|
163
163
|
| learn-from-code-review | skill | Distill code review feedback from GitHub PRs into reusable skills and guidelines. Use when users ask to learn from co... | `/learn-from-reviews` |
|
|
@@ -190,7 +190,7 @@ Official skills and plugins for OpenHands — the open-source AI software engine
|
|
|
190
190
|
| swift-linux | skill | Install and configure Swift programming language on Debian Linux for server-side development. Use when building Swift... | — |
|
|
191
191
|
| technical-writing | skill | Write and revise technical explanations in flowing, direct, conversational prose that stays concise without becoming ... | — |
|
|
192
192
|
| theme-factory | skill | Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc.... | — |
|
|
193
|
-
| ticket-to-code-change | skill | Set up
|
|
193
|
+
| ticket-to-code-change | skill | Set up Linear ticket-to-code-change automations for GitHub, GitLab, and Bitbucket. | `/ticket-to-code-change:setup` |
|
|
194
194
|
| upstream-fork-sync | skill | Keep a long-lived fork in sync with its upstream. Creates a cron automation that fetches upstream changes, rebases lo... | `/upstream-fork-sync:setup` |
|
|
195
195
|
| use-jev | skill | Use Jev, a general classifier, for typed choices, scores, and yes/no probabilities in software. | — |
|
|
196
196
|
| uv | skill | Common project, dependency, and environment operations using uv. | — |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# VS Code App
|
|
2
|
+
|
|
3
|
+
Install this App in Agent Canvas by opening **Apps → Add App** and entering:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
https://github.com/OpenHands/extensions/tree/main/apps/vscode
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The App provides a full-height OpenVSCode editor. Before the backend is ready, it shows backend status, an optional workspace-folder input, and revision-bound prepare/start/stop/refresh actions. Once ready, the page contains only the editor iframe.
|
|
10
|
+
|
|
11
|
+
## Artifact delivery
|
|
12
|
+
|
|
13
|
+
The repository contains no OpenVSCode binaries. During the explicit **Prepare and start** step, Agent Server downloads only the current platform's pinned OpenVSCode Server `v1.109.5` archive from its public GitHub Release, verifies the manifest-pinned SHA-256 digest, safely extracts it into an App-owned content-addressed cache, and starts it with App-owned home, user-data, and extensions directories. It does not send Agent Server or repository credentials to the artifact host.
|
|
14
|
+
|
|
15
|
+
The optional folder is persisted in browser storage and forwarded as the editor folder. It is a user convenience, not OS sandboxing.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"name": "vscode",
|
|
4
|
+
"display_name": "VS Code",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"description": "A managed OpenVSCode editor for the selected Agent Canvas workspace.",
|
|
7
|
+
"entrypoint": "extension.js",
|
|
8
|
+
"contributes": {"pages": [{"id": "editor", "title": "VS Code", "path": "/editor"}]},
|
|
9
|
+
"backend": {
|
|
10
|
+
"schema_version": 1,
|
|
11
|
+
"artifacts": {
|
|
12
|
+
"linux-amd64": {
|
|
13
|
+
"url": "https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v1.109.5/openvscode-server-v1.109.5-linux-x64.tar.gz",
|
|
14
|
+
"sha256": "b433bf4f0227321a7014d8460d10a8f958adc0f45aa79bd889e84e65e8f88363",
|
|
15
|
+
"strip_components": 1
|
|
16
|
+
},
|
|
17
|
+
"linux-arm64": {
|
|
18
|
+
"url": "https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v1.109.5/openvscode-server-v1.109.5-linux-arm64.tar.gz",
|
|
19
|
+
"sha256": "36d9c14036489b63de84ebace837fcacf7e60e669a0dc715802c5443684ea4dc",
|
|
20
|
+
"strip_components": 1
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"argv": ["{artifact_dir}/bin/openvscode-server", "--host", "127.0.0.1", "--port", "{port}", "--without-connection-token", "--accept-server-license-terms", "--telemetry-level", "off", "--user-data-dir", "{data_dir}/user", "--extensions-dir", "{data_dir}/extensions", "--server-base-path", "/app-backends/vscode", "{data_dir}"],
|
|
24
|
+
"health": {"path": "/", "timeout_seconds": 90, "interval_seconds": 0.5},
|
|
25
|
+
"inherit_environment": ["PATH", "LANG", "LC_ALL", "TMPDIR"]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -5,14 +5,32 @@ function folderKey(host) {
|
|
|
5
5
|
return `${FOLDER_KEY_PREFIX}:${host.backend.id}:${host.backend.orgId || "local"}:${host.extension.name}`;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
function button(label, onClick) {
|
|
8
|
+
function button(label, onClick, variant = "secondary") {
|
|
9
9
|
const element = document.createElement("button");
|
|
10
10
|
element.type = "button";
|
|
11
11
|
element.textContent = label;
|
|
12
|
+
element.style.cssText = [
|
|
13
|
+
"min-height:40px",
|
|
14
|
+
"padding:0 18px",
|
|
15
|
+
"border-radius:8px",
|
|
16
|
+
"border:1px solid transparent",
|
|
17
|
+
"font:inherit",
|
|
18
|
+
"font-size:14px",
|
|
19
|
+
"font-weight:600",
|
|
20
|
+
"cursor:pointer",
|
|
21
|
+
"transition:opacity 120ms ease,background-color 120ms ease",
|
|
22
|
+
variant === "primary"
|
|
23
|
+
? "background:#f3ce49;color:#171717"
|
|
24
|
+
: "background:#262626;color:#fafafa;border-color:#525252",
|
|
25
|
+
].join(";");
|
|
12
26
|
element.addEventListener("click", onClick);
|
|
13
27
|
return element;
|
|
14
28
|
}
|
|
15
29
|
|
|
30
|
+
function statusLabel(state) {
|
|
31
|
+
return state.charAt(0).toUpperCase() + state.slice(1);
|
|
32
|
+
}
|
|
33
|
+
|
|
16
34
|
export function activate(host) {
|
|
17
35
|
return host.registerPage("editor", async ({ container }) => {
|
|
18
36
|
container.style.minHeight = "100vh";
|
|
@@ -54,26 +72,55 @@ export function activate(host) {
|
|
|
54
72
|
return;
|
|
55
73
|
}
|
|
56
74
|
|
|
75
|
+
shell.style.justifyContent = "center";
|
|
76
|
+
shell.style.alignItems = "center";
|
|
77
|
+
shell.style.padding = "32px";
|
|
78
|
+
shell.style.boxSizing = "border-box";
|
|
79
|
+
|
|
57
80
|
const panel = document.createElement("section");
|
|
58
81
|
panel.setAttribute("aria-live", "polite");
|
|
82
|
+
panel.style.cssText = "width:min(100%,520px);padding:32px;border:1px solid #262626;border-radius:12px;background:#0a0a0a;color:#fafafa;box-sizing:border-box;text-align:center";
|
|
59
83
|
const heading = document.createElement("h2");
|
|
60
|
-
heading.textContent = "VS Code
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
84
|
+
heading.textContent = "Set up VS Code";
|
|
85
|
+
heading.style.cssText = "margin:0;font-size:24px;line-height:32px;font-weight:600";
|
|
86
|
+
const description = document.createElement("p");
|
|
87
|
+
description.textContent = "Start the secure VS Code backend for this Agent Canvas session. The first launch downloads and verifies the pinned editor package.";
|
|
88
|
+
description.style.cssText = "margin:12px auto 0;max-width:440px;color:#a3a3a3;font-size:14px;line-height:21px";
|
|
89
|
+
const statusRow = document.createElement("div");
|
|
90
|
+
statusRow.style.cssText = "display:flex;align-items:center;justify-content:center;gap:8px;margin:20px 0 24px;font-size:13px;color:#a3a3a3";
|
|
91
|
+
const statusDot = document.createElement("span");
|
|
92
|
+
statusDot.setAttribute("aria-hidden", "true");
|
|
93
|
+
statusDot.style.cssText = `width:8px;height:8px;border-radius:999px;background:${status.state === "unhealthy" ? "#fda4af" : "#737373"}`;
|
|
94
|
+
const detail = document.createElement("span");
|
|
95
|
+
detail.textContent = status.detail || `Backend status: ${statusLabel(status.state)}`;
|
|
96
|
+
statusRow.append(statusDot, detail);
|
|
97
|
+
panel.append(heading, description, statusRow);
|
|
98
|
+
|
|
99
|
+
const field = document.createElement("label");
|
|
100
|
+
field.style.cssText = "display:flex;flex-direction:column;gap:8px;text-align:left";
|
|
101
|
+
const fieldLabel = document.createElement("span");
|
|
102
|
+
fieldLabel.textContent = "Workspace folder";
|
|
103
|
+
fieldLabel.style.cssText = "font-size:13px;font-weight:500;color:#fafafa";
|
|
64
104
|
const folder = document.createElement("input");
|
|
65
105
|
folder.type = "text";
|
|
66
|
-
folder.placeholder = "
|
|
106
|
+
folder.placeholder = "Optional path to open in VS Code";
|
|
67
107
|
folder.value = localStorage.getItem(storageKey) || "";
|
|
68
108
|
folder.setAttribute("aria-label", "Workspace folder path");
|
|
69
|
-
|
|
70
|
-
const
|
|
109
|
+
folder.style.cssText = "width:100%;height:42px;padding:0 12px;border:1px solid #525252;border-radius:8px;background:#1a1a1a;color:#fafafa;font:inherit;font-size:14px;box-sizing:border-box;outline:none";
|
|
110
|
+
const hint = document.createElement("span");
|
|
111
|
+
hint.textContent = "Leave blank to open the default App workspace.";
|
|
112
|
+
hint.style.cssText = "font-size:12px;color:#8c8c8c";
|
|
113
|
+
field.append(fieldLabel, folder, hint);
|
|
114
|
+
panel.append(field);
|
|
115
|
+
|
|
116
|
+
const actions = document.createElement("div");
|
|
117
|
+
actions.style.cssText = "display:flex;justify-content:center;gap:10px;margin-top:24px;flex-wrap:wrap";
|
|
71
118
|
if (status.state === "missing" || status.state === "stopped" || status.state === "unhealthy") {
|
|
72
119
|
actions.append(button("Prepare and start", async () => {
|
|
73
120
|
const selectedFolder = folder.value.trim();
|
|
74
121
|
if (selectedFolder) localStorage.setItem(storageKey, selectedFolder);
|
|
75
122
|
else localStorage.removeItem(storageKey);
|
|
76
|
-
actions.replaceChildren(document.createTextNode("Preparing..."));
|
|
123
|
+
actions.replaceChildren(document.createTextNode("Preparing and verifying VS Code..."));
|
|
77
124
|
try {
|
|
78
125
|
let approval = status;
|
|
79
126
|
if (!approval.revision) approval = await request("GET");
|
|
@@ -90,14 +137,15 @@ export function activate(host) {
|
|
|
90
137
|
render(await request("GET"));
|
|
91
138
|
} catch (error) {
|
|
92
139
|
detail.textContent = `Setup failed: ${error.message}`;
|
|
93
|
-
|
|
140
|
+
statusDot.style.background = "#fda4af";
|
|
141
|
+
actions.replaceChildren(button("Try again", () => render(status), "primary"));
|
|
94
142
|
}
|
|
95
|
-
}));
|
|
143
|
+
}, "primary"));
|
|
96
144
|
}
|
|
97
145
|
if (status.state === "ready" || status.state === "starting") {
|
|
98
146
|
actions.append(button("Stop", async () => render(await request("POST", `${BACKEND}/stop`))));
|
|
99
147
|
}
|
|
100
|
-
actions.append(button("Refresh", async () => render(await request("GET"))));
|
|
148
|
+
actions.append(button("Refresh status", async () => render(await request("GET"))));
|
|
101
149
|
panel.append(actions);
|
|
102
150
|
shell.append(panel);
|
|
103
151
|
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { cp, mkdir, readFile, rm } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
const appRoot = path.resolve(new URL("..", import.meta.url).pathname);
|
|
5
|
+
const root = path.resolve(appRoot, "../..");
|
|
6
|
+
const output = path.resolve(process.env.OUTPUT_DIR ?? path.join(root, "dist"));
|
|
7
|
+
const packageRoot = path.join(output, "apps", "vscode");
|
|
8
|
+
const manifest = JSON.parse(
|
|
9
|
+
await readFile(path.join(appRoot, "canvas-extension.json"), "utf8"),
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
for (const [platform, artifact] of Object.entries(manifest.backend.artifacts)) {
|
|
13
|
+
const url = new URL(artifact.url);
|
|
14
|
+
if (url.protocol !== "https:" || !url.pathname.endsWith(".tar.gz")) {
|
|
15
|
+
throw new Error(`${platform}: invalid HTTPS artifact URL`);
|
|
16
|
+
}
|
|
17
|
+
if (!/^[0-9a-f]{64}$/.test(artifact.sha256)) {
|
|
18
|
+
throw new Error(`${platform}: invalid SHA-256`);
|
|
19
|
+
}
|
|
20
|
+
if (!Number.isInteger(artifact.strip_components) || artifact.strip_components < 0) {
|
|
21
|
+
throw new Error(`${platform}: invalid strip_components`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
await rm(packageRoot, { recursive: true, force: true });
|
|
26
|
+
await mkdir(packageRoot, { recursive: true });
|
|
27
|
+
for (const filename of ["canvas-extension.json", "extension.js", "README.md"]) {
|
|
28
|
+
await cp(path.join(appRoot, filename), path.join(packageRoot, filename));
|
|
29
|
+
}
|
|
30
|
+
console.log(`Wrote source-installable App package to ${packageRoot}`);
|