@openhands/extensions 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.github/workflows/deprecation-check.yml +25 -0
  2. package/.release-please-manifest.json +1 -1
  3. package/README.md +3 -2
  4. package/automations/catalog/jira-issue-to-pr.json +14 -0
  5. package/automations/index.js +2 -0
  6. package/integrations/README.md +25 -0
  7. package/integrations/catalog/atlassian.json +91 -3
  8. package/integrations/catalog/datadog.json +33 -2
  9. package/integrations/catalog/github.json +20 -0
  10. package/integrations/catalog/microsoft-outlook.json +13 -0
  11. package/integrations/catalog/microsoft-teams.json +13 -0
  12. package/integrations/catalog/notion.json +13 -0
  13. package/integrations/catalog/onedrive.json +13 -0
  14. package/integrations/catalog/sharepoint.json +13 -0
  15. package/integrations/catalog/slack.json +14 -0
  16. package/integrations/catalog/superhuman-mail.json +36 -0
  17. package/integrations/catalog/vanta.json +55 -0
  18. package/integrations/catalog-index.js +73 -69
  19. package/integrations/catalog.schema.json +70 -3
  20. package/integrations/index.d.ts +49 -3
  21. package/marketplaces/openhands-extensions.json +10 -0
  22. package/package.json +1 -1
  23. package/plugins/cobol-modernization/skills/build-setup/SKILL.md +1 -0
  24. package/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +9 -0
  25. package/plugins/migration-scoring/skills/migration-scoring/SKILL.md +11 -0
  26. package/plugins/onboarding/skills/agent-readiness-report/SKILL.md +2 -0
  27. package/plugins/openhands/SKILL.md +7 -0
  28. package/plugins/release-notes/SKILL.md +9 -0
  29. package/pyproject.toml +6 -1
  30. package/python/openhands_extensions/__init__.py +38 -0
  31. package/python/openhands_extensions/_version.py +2 -2
  32. package/python/openhands_extensions/deprecation.py +159 -0
  33. package/python/openhands_extensions/integration_models.py +233 -0
  34. package/python/openhands_extensions/integrations.py +59 -4
  35. package/scripts/build-skills-catalog.mjs +1 -1
  36. package/scripts/check_deprecations.py +488 -0
  37. package/skills/add-skill/SKILL.md +2 -0
  38. package/skills/azure-devops/SKILL.md +12 -1
  39. package/skills/bitbucket-cloud/SKILL.md +11 -0
  40. package/skills/code-review/SKILL.md +1 -0
  41. package/skills/datadog/SKILL.md +3 -1
  42. package/skills/datadog/references/windows.md +45 -0
  43. package/skills/discord/SKILL.md +2 -0
  44. package/skills/docker/SKILL.md +5 -1
  45. package/skills/github/SKILL.md +3 -1
  46. package/skills/github/references/windows.md +48 -0
  47. package/skills/github-pr-review/SKILL.md +1 -0
  48. package/skills/github-pr-review/references/windows.md +47 -0
  49. package/skills/github-pr-reviewer/SKILL.md +1 -0
  50. package/skills/github-pr-reviewer/references/windows.md +61 -0
  51. package/skills/github-repo-monitor/SKILL.md +1 -0
  52. package/skills/github-repo-monitor/references/windows.md +61 -0
  53. package/skills/gitlab/SKILL.md +3 -1
  54. package/skills/incident-retrospective/SKILL.md +2 -0
  55. package/skills/index.js +36 -30
  56. package/skills/iterate/SKILL.md +1 -0
  57. package/skills/iterate/references/windows.md +41 -0
  58. package/skills/jira-issue-to-pr/.plugin/plugin.json +19 -0
  59. package/skills/jira-issue-to-pr/README.md +56 -0
  60. package/skills/jira-issue-to-pr/SKILL.md +216 -0
  61. package/skills/jira-issue-to-pr/references/setup.md +170 -0
  62. package/skills/jira-issue-to-pr/scripts/main.py +341 -0
  63. package/skills/jupyter/SKILL.md +7 -1
  64. package/skills/kubernetes/SKILL.md +2 -1
  65. package/skills/kubernetes/references/windows.md +38 -0
  66. package/skills/linear/SKILL.md +2 -0
  67. package/skills/linear/references/windows.md +29 -0
  68. package/skills/linear-triage/SKILL.md +2 -0
  69. package/skills/notion/SKILL.md +2 -0
  70. package/skills/notion/references/windows.md +43 -0
  71. package/skills/openhands-api/SKILL.md +1 -0
  72. package/skills/openhands-api/references/windows.md +44 -0
  73. package/skills/openhands-automation/SKILL.md +1 -0
  74. package/skills/openhands-automation/references/custom-automation.md +20 -0
  75. package/skills/openhands-automation/references/windows.md +57 -0
  76. package/skills/pdflatex/SKILL.md +3 -1
  77. package/skills/research-brief/SKILL.md +2 -0
  78. package/skills/skill-creator/SKILL.md +1 -0
  79. package/skills/skill-creator/references/windows.md +30 -0
  80. package/skills/slack-channel-monitor/SKILL.md +1 -0
  81. package/skills/slack-channel-monitor/references/windows.md +64 -0
  82. package/skills/slack-standup-digest/SKILL.md +2 -0
  83. package/skills/spark-version-upgrade/SKILL.md +2 -1
  84. package/skills/ssh/SKILL.md +2 -1
  85. package/skills/ssh/references/windows.md +59 -0
  86. package/skills/swift-linux/SKILL.md +2 -1
  87. package/skills/vercel/SKILL.md +5 -0
  88. package/tests/test_catalog_schema.py +58 -0
  89. package/tests/test_catalogs.py +6 -1
  90. package/tests/test_deprecations.py +136 -0
  91. package/tests/test_integration_catalog_in_sync.py +118 -7
@@ -0,0 +1,48 @@
1
+ # Windows Notes for GitHub Commands
2
+
3
+ Use these PowerShell forms when running this skill's GitHub commands natively on Windows.
4
+
5
+ ## Environment Variables
6
+
7
+ PowerShell environment variables use `$env:NAME`:
8
+
9
+ ```powershell
10
+ git remote set-url origin "https://$($env:GITHUB_TOKEN)@github.com/username/repo.git"
11
+ ```
12
+
13
+ ## Chained Git Commands
14
+
15
+ If the installed shell does not support `&&`, run the commands separately and stop if one fails:
16
+
17
+ ```powershell
18
+ git remote -v
19
+ git branch
20
+ git checkout -b create-widget
21
+ git add .
22
+ git commit -m "Create widget"
23
+ git push -u origin create-widget
24
+ ```
25
+
26
+ ## GraphQL Requests with gh
27
+
28
+ For multi-line GraphQL queries, use a PowerShell here-string and pass it to `gh api`.
29
+
30
+ ```powershell
31
+ $query = @'
32
+ {
33
+ repository(owner: "<OWNER>", name: "<REPO>") {
34
+ pullRequest(number: <PR_NUMBER>) {
35
+ reviewThreads(first: 20) {
36
+ nodes { id isResolved }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ '@
42
+
43
+ gh api graphql -f query="$query"
44
+ ```
45
+
46
+ ## Redirects
47
+
48
+ Replace POSIX redirects such as `2>/dev/null` with PowerShell redirects such as `2>$null`.
@@ -8,6 +8,7 @@ triggers:
8
8
  # GitHub PR Review
9
9
 
10
10
  Post structured code review feedback using the GitHub API with inline comments on specific lines.
11
+ Windows PowerShell equivalents for JSON file creation, temp paths, line lookup, and fallback `curl` are in `references/windows.md`.
11
12
 
12
13
  ## Key Rule: One API Call
13
14
 
@@ -0,0 +1,47 @@
1
+ # Windows Notes for GitHub PR Review Commands
2
+
3
+ Use these PowerShell forms for the JSON-file, line-check, and fallback API snippets.
4
+
5
+ ## Create the Review JSON File
6
+
7
+ ```powershell
8
+ $reviewJson = Join-Path $env:TEMP "review.json"
9
+ @'
10
+ {
11
+ "commit_id": "{commit_sha}",
12
+ "event": "COMMENT",
13
+ "body": "Brief 1-3 sentence summary.",
14
+ "comments": []
15
+ }
16
+ '@ | Set-Content -LiteralPath $reviewJson -Encoding utf8
17
+ ```
18
+
19
+ Then pass the file to `gh`:
20
+
21
+ ```powershell
22
+ gh api -X POST repos/{owner}/{repo}/pulls/{pr_number}/reviews --input $reviewJson
23
+ ```
24
+
25
+ ## Verify File Lines
26
+
27
+ Use `Select-String` for pattern lookup and `Get-Content` for exact ranges.
28
+
29
+ ```powershell
30
+ Select-String -Path filename -Pattern "pattern"
31
+
32
+ $lines = Get-Content -LiteralPath filename
33
+ $lines[41] # line 42, because arrays are zero-based
34
+ $lines[($start - 1)..($end - 1)]
35
+ ```
36
+
37
+ ## Fallback Curl
38
+
39
+ Use `curl.exe` so PowerShell does not resolve `curl` to its alias.
40
+
41
+ ```powershell
42
+ curl.exe -X POST `
43
+ -H "Authorization: token $env:GITHUB_TOKEN" `
44
+ -H "Accept: application/vnd.github+json" `
45
+ "https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/reviews" `
46
+ --data-binary "@$reviewJson"
47
+ ```
@@ -14,6 +14,7 @@ triggers:
14
14
  Create a cron automation that watches a GitHub repository for pull requests
15
15
  with a review trigger label, starts an OpenHands review conversation once per
16
16
  label event, and posts the AI review as a GitHub comment.
17
+ Windows PowerShell equivalents for the setup, packaging, upload, and API-check shell snippets are in `references/windows.md`.
17
18
 
18
19
  The automation script is deterministic: PR discovery, label-event tracking,
19
20
  state persistence, stale-result suppression, and GitHub comment posting are
@@ -0,0 +1,61 @@
1
+ # Windows Notes for GitHub PR Reviewer Setup
2
+
3
+ Use these PowerShell forms when creating the reviewer automation from Windows.
4
+
5
+ ## Validate the GitHub Token
6
+
7
+ ```powershell
8
+ Invoke-RestMethod `
9
+ -Uri "https://api.github.com/user" `
10
+ -Headers @{ Authorization = "Bearer $env:GITHUB_PERSONAL_ACCESS_TOKEN" }
11
+ ```
12
+
13
+ ## Build Directory and Syntax Check
14
+
15
+ ```powershell
16
+ $buildDir = Join-Path $env:TEMP "pr-reviewer-build"
17
+ New-Item -ItemType Directory -Force $buildDir | Out-Null
18
+ # write the customised main.py to (Join-Path $buildDir "main.py")
19
+
20
+ python -m py_compile (Join-Path $buildDir "main.py")
21
+ if ($LASTEXITCODE -eq 0) { "Syntax OK" }
22
+ ```
23
+
24
+ ## Package and Upload
25
+
26
+ Modern Windows includes `tar.exe`. Use it to create the `.tar.gz` expected by the automation API.
27
+
28
+ ```powershell
29
+ $tarball = Join-Path $env:TEMP "pr-reviewer.tar.gz"
30
+ tar.exe -czf $tarball -C $buildDir .
31
+
32
+ $upload = curl.exe -s -X POST `
33
+ "$env:OPENHANDS_HOST/api/automation/v1/uploads?name=github-pr-reviewer" `
34
+ -H "X-Session-API-Key: $env:OPENHANDS_AUTOMATION_API_KEY" `
35
+ -H "Content-Type: application/gzip" `
36
+ --data-binary "@$tarball" | ConvertFrom-Json
37
+
38
+ $tarballPath = $upload.tarball_path
39
+ "Uploaded: $tarballPath"
40
+ ```
41
+
42
+ ## Register the Automation
43
+
44
+ Use a double-quoted here-string when the body needs PowerShell variable interpolation.
45
+
46
+ ```powershell
47
+ $body = @"
48
+ {
49
+ "name": "GitHub PR Reviewer: {owner}/{repo}",
50
+ "trigger": {"type": "cron", "schedule": "{cron_schedule}"},
51
+ "tarball_path": "$tarballPath",
52
+ "entrypoint": "python3 main.py",
53
+ "timeout": 300
54
+ }
55
+ "@
56
+
57
+ curl.exe -s -X POST "$env:OPENHANDS_HOST/api/automation/v1" `
58
+ -H "X-Session-API-Key: $env:OPENHANDS_AUTOMATION_API_KEY" `
59
+ -H "Content-Type: application/json" `
60
+ -d $body
61
+ ```
@@ -16,6 +16,7 @@ triggers:
16
16
 
17
17
  Create a cron automation that polls a single GitHub repository on a
18
18
  configurable schedule (default: every minute).
19
+ Windows PowerShell equivalents for the setup, packaging, upload, and API-check shell snippets are in `references/windows.md`.
19
20
 
20
21
  When a comment on an issue or PR contains the **trigger phrase**
21
22
  (default: `@OpenHands`) it:
@@ -0,0 +1,61 @@
1
+ # Windows Notes for GitHub Repository Monitor Setup
2
+
3
+ Use these PowerShell forms when creating the monitor automation from Windows.
4
+
5
+ ## Validate the GitHub Token and Repo
6
+
7
+ ```powershell
8
+ Invoke-RestMethod `
9
+ -Uri "https://api.github.com/user" `
10
+ -Headers @{ Authorization = "Bearer $env:GITHUB_PERSONAL_ACCESS_TOKEN"; Accept = "application/vnd.github+json" }
11
+
12
+ Invoke-RestMethod `
13
+ -Uri "https://api.github.com/repos/{owner}/{repo}" `
14
+ -Headers @{ Authorization = "Bearer $env:GITHUB_PERSONAL_ACCESS_TOKEN"; Accept = "application/vnd.github+json" }
15
+ ```
16
+
17
+ ## Build Directory and Syntax Check
18
+
19
+ ```powershell
20
+ $buildDir = Join-Path $env:TEMP "github-monitor-build"
21
+ New-Item -ItemType Directory -Force $buildDir | Out-Null
22
+ # write the customised main.py to (Join-Path $buildDir "main.py")
23
+
24
+ python -m py_compile (Join-Path $buildDir "main.py")
25
+ if ($LASTEXITCODE -eq 0) { "Syntax OK" }
26
+ ```
27
+
28
+ ## Package and Upload
29
+
30
+ ```powershell
31
+ $tarball = Join-Path $env:TEMP "github-monitor.tar.gz"
32
+ tar.exe -czf $tarball -C $buildDir .
33
+
34
+ $upload = curl.exe -s -X POST `
35
+ "$env:OPENHANDS_HOST/api/automation/v1/uploads?name=github-repo-monitor" `
36
+ -H "X-Session-API-Key: $env:OPENHANDS_AUTOMATION_API_KEY" `
37
+ -H "Content-Type: application/gzip" `
38
+ --data-binary "@$tarball" | ConvertFrom-Json
39
+
40
+ $tarballPath = $upload.tarball_path
41
+ "Uploaded: $tarballPath"
42
+ ```
43
+
44
+ ## Create the Automation
45
+
46
+ ```powershell
47
+ $body = @"
48
+ {
49
+ "name": "GitHub Monitor: {owner}/{repo}",
50
+ "trigger": {"type": "cron", "schedule": "{cron_schedule}"},
51
+ "tarball_path": "$tarballPath",
52
+ "entrypoint": "python3 main.py",
53
+ "timeout": 55
54
+ }
55
+ "@
56
+
57
+ curl.exe -s -X POST "$env:OPENHANDS_HOST/api/automation/v1" `
58
+ -H "X-Session-API-Key: $env:OPENHANDS_AUTOMATION_API_KEY" `
59
+ -H "Content-Type: application/json" `
60
+ -d $body
61
+ ```
@@ -29,4 +29,6 @@ Here are some instructions for pushing, but ONLY do this if the user asks you to
29
29
  ```bash
30
30
  git remote -v && git branch # to find the current org, repo and branch
31
31
  git checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget
32
- ```
32
+ ```
33
+
34
+ On Windows PowerShell, use `$env:GITLAB_TOKEN` in remote URLs and run the `git` commands as separate commands if `&&` is not supported by the installed shell.
@@ -85,6 +85,8 @@ curl -s -X POST "${OPENHANDS_HOST}/api/automation/v1/preset/prompt" \
85
85
  }'
86
86
  ```
87
87
 
88
+ PowerShell note: use `curl.exe` for this exact flag syntax, and replace `${OPENHANDS_HOST}` / `$OPENHANDS_AUTOMATION_API_KEY` with `$env:OPENHANDS_HOST` / `$env:OPENHANDS_AUTOMATION_API_KEY` if running it natively.
89
+
88
90
  ### Step 5 — Confirm
89
91
 
90
92
  Tell the user: