@openhands/extensions 0.8.0 → 0.9.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.
- package/.release-please-manifest.json +1 -1
- package/README.md +3 -2
- package/automations/catalog/jira-issue-to-pr.json +14 -0
- package/automations/index.js +2 -0
- package/integrations/catalog/atlassian.json +78 -3
- package/integrations/catalog/datadog.json +33 -2
- package/integrations/catalog/superhuman-mail.json +36 -0
- package/integrations/catalog-index.js +45 -43
- package/marketplaces/openhands-extensions.json +10 -0
- package/package.json +1 -1
- package/plugins/cobol-modernization/skills/build-setup/SKILL.md +1 -0
- package/plugins/cobol-modernization/skills/cobol-modernization/SKILL.md +9 -0
- package/plugins/migration-scoring/skills/migration-scoring/SKILL.md +11 -0
- package/plugins/onboarding/skills/agent-readiness-report/SKILL.md +2 -0
- package/plugins/openhands/SKILL.md +7 -0
- package/plugins/release-notes/SKILL.md +9 -0
- package/pyproject.toml +1 -1
- package/python/openhands_extensions/_version.py +1 -1
- package/scripts/build-skills-catalog.mjs +1 -1
- package/skills/add-skill/SKILL.md +2 -0
- package/skills/azure-devops/SKILL.md +12 -1
- package/skills/bitbucket-cloud/SKILL.md +11 -0
- package/skills/code-review/SKILL.md +1 -0
- package/skills/datadog/SKILL.md +3 -1
- package/skills/datadog/references/windows.md +45 -0
- package/skills/discord/SKILL.md +2 -0
- package/skills/docker/SKILL.md +5 -1
- package/skills/github/SKILL.md +3 -1
- package/skills/github/references/windows.md +48 -0
- package/skills/github-pr-review/SKILL.md +1 -0
- package/skills/github-pr-review/references/windows.md +47 -0
- package/skills/github-pr-reviewer/SKILL.md +1 -0
- package/skills/github-pr-reviewer/references/windows.md +61 -0
- package/skills/github-repo-monitor/SKILL.md +1 -0
- package/skills/github-repo-monitor/references/windows.md +61 -0
- package/skills/gitlab/SKILL.md +3 -1
- package/skills/incident-retrospective/SKILL.md +2 -0
- package/skills/index.js +36 -30
- package/skills/iterate/SKILL.md +1 -0
- package/skills/iterate/references/windows.md +41 -0
- package/skills/jira-issue-to-pr/.plugin/plugin.json +19 -0
- package/skills/jira-issue-to-pr/README.md +56 -0
- package/skills/jira-issue-to-pr/SKILL.md +216 -0
- package/skills/jira-issue-to-pr/references/setup.md +170 -0
- package/skills/jira-issue-to-pr/scripts/main.py +341 -0
- package/skills/jupyter/SKILL.md +7 -1
- package/skills/kubernetes/SKILL.md +2 -1
- package/skills/kubernetes/references/windows.md +38 -0
- package/skills/linear/SKILL.md +2 -0
- package/skills/linear/references/windows.md +29 -0
- package/skills/linear-triage/SKILL.md +2 -0
- package/skills/notion/SKILL.md +2 -0
- package/skills/notion/references/windows.md +43 -0
- package/skills/openhands-api/SKILL.md +1 -0
- package/skills/openhands-api/references/windows.md +44 -0
- package/skills/openhands-automation/SKILL.md +1 -0
- package/skills/openhands-automation/references/custom-automation.md +20 -0
- package/skills/openhands-automation/references/windows.md +57 -0
- package/skills/pdflatex/SKILL.md +3 -1
- package/skills/research-brief/SKILL.md +2 -0
- package/skills/skill-creator/SKILL.md +1 -0
- package/skills/skill-creator/references/windows.md +30 -0
- package/skills/slack-channel-monitor/SKILL.md +1 -0
- package/skills/slack-channel-monitor/references/windows.md +64 -0
- package/skills/slack-standup-digest/SKILL.md +2 -0
- package/skills/spark-version-upgrade/SKILL.md +2 -1
- package/skills/ssh/SKILL.md +2 -1
- package/skills/ssh/references/windows.md +59 -0
- package/skills/swift-linux/SKILL.md +2 -1
- package/skills/vercel/SKILL.md +5 -0
- package/tests/test_catalogs.py +6 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Windows Notes for Datadog Commands
|
|
2
|
+
|
|
3
|
+
Use these PowerShell forms when running the Datadog examples natively on Windows.
|
|
4
|
+
|
|
5
|
+
## Check Required Environment Variables
|
|
6
|
+
|
|
7
|
+
```powershell
|
|
8
|
+
foreach ($name in "DD_API_KEY", "DD_APP_KEY", "DD_SITE") {
|
|
9
|
+
if ([Environment]::GetEnvironmentVariable($name)) {
|
|
10
|
+
"$name is set"
|
|
11
|
+
} else {
|
|
12
|
+
"$name is NOT set"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Run the Curl Examples
|
|
18
|
+
|
|
19
|
+
In PowerShell, call `curl.exe` so the examples use real curl rather than the `curl` alias. Replace `${DD_SITE}` with `$env:DD_SITE` and `${DD_API_KEY}` / `${DD_APP_KEY}` with `$env:DD_API_KEY` / `$env:DD_APP_KEY`.
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
curl.exe -s -X POST "https://api.$env:DD_SITE/api/v2/logs/events/search" `
|
|
23
|
+
-H "DD-API-KEY: $env:DD_API_KEY" `
|
|
24
|
+
-H "DD-APPLICATION-KEY: $env:DD_APP_KEY" `
|
|
25
|
+
-H "Content-Type: application/json" `
|
|
26
|
+
-d '{"filter":{"query":"service:my-service status:error","from":"now-1h","to":"now"},"sort":"-timestamp","page":{"limit":50}}' |
|
|
27
|
+
ConvertFrom-Json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Replace Linux Date and Jq
|
|
31
|
+
|
|
32
|
+
The metrics example uses `date -d` and `jq`. In PowerShell, compute Unix timestamps with .NET and pipe JSON to `ConvertFrom-Json`.
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
$from = [DateTimeOffset]::UtcNow.AddHours(-1).ToUnixTimeSeconds()
|
|
36
|
+
$to = [DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
|
|
37
|
+
|
|
38
|
+
curl.exe -s -G "https://api.$env:DD_SITE/api/v1/query" `
|
|
39
|
+
-H "DD-API-KEY: $env:DD_API_KEY" `
|
|
40
|
+
-H "DD-APPLICATION-KEY: $env:DD_APP_KEY" `
|
|
41
|
+
--data-urlencode "query=avg:system.cpu.user{*}" `
|
|
42
|
+
--data-urlencode "from=$from" `
|
|
43
|
+
--data-urlencode "to=$to" |
|
|
44
|
+
ConvertFrom-Json
|
|
45
|
+
```
|
package/skills/discord/SKILL.md
CHANGED
|
@@ -49,6 +49,8 @@ Use this skill when implementing or automating Discord integrations.
|
|
|
49
49
|
|
|
50
50
|
## Quick recipes
|
|
51
51
|
|
|
52
|
+
The shell snippets below use POSIX-style environment variables and line continuations. On Windows PowerShell, use `curl.exe` for the shown flags and `$env:DISCORD_WEBHOOK_URL` / `$env:DISCORD_BOT_TOKEN` for environment variables, or translate the request to `Invoke-RestMethod`.
|
|
53
|
+
|
|
52
54
|
### Post a message via an incoming webhook (recommended)
|
|
53
55
|
|
|
54
56
|
Discord requires at least one of `content`, `embeds`, `components`, `file`, or `poll`.
|
package/skills/docker/SKILL.md
CHANGED
|
@@ -20,10 +20,14 @@ sudo dockerd > /tmp/docker.log 2>&1 &
|
|
|
20
20
|
sleep 5
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
On Windows, start Docker Desktop or the Docker service instead of running `sudo dockerd`; then run Docker commands from PowerShell without `sudo`.
|
|
24
|
+
|
|
23
25
|
## Verifying Docker Installation
|
|
24
26
|
|
|
25
27
|
To verify Docker is working correctly, run the hello-world container:
|
|
26
28
|
|
|
27
29
|
```bash
|
|
28
30
|
sudo docker run hello-world
|
|
29
|
-
```
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
PowerShell equivalent after Docker Desktop is running: `docker run hello-world`.
|
package/skills/github/SKILL.md
CHANGED
|
@@ -19,6 +19,8 @@ Examples:
|
|
|
19
19
|
- `gh pr checks 200 --watch --interval 10` to check until completed.
|
|
20
20
|
</IMPORTANT>
|
|
21
21
|
|
|
22
|
+
Windows PowerShell equivalents for the multi-line shell snippets below are in `references/windows.md`.
|
|
23
|
+
|
|
22
24
|
If you encounter authentication issues when pushing to GitHub (such as password prompts or permission errors), the old token may have expired. In such case, update the remote URL to include the current token: `git remote set-url origin https://${GITHUB_TOKEN}@github.com/username/repo.git`
|
|
23
25
|
|
|
24
26
|
Here are some instructions for pushing, but ONLY do this if the user asks you to:
|
|
@@ -103,4 +105,4 @@ gh run list --repo <OWNER>/<REPO> --branch <BRANCH> --limit 5
|
|
|
103
105
|
|
|
104
106
|
# Rerun failed jobs
|
|
105
107
|
gh run rerun <RUN_ID> --repo <OWNER>/<REPO> --failed
|
|
106
|
-
```
|
|
108
|
+
```
|
|
@@ -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
|
+
```
|
package/skills/gitlab/SKILL.md
CHANGED
|
@@ -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:
|