@openhands/extensions 0.31.0 → 0.32.1

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 (34) hide show
  1. package/.claude-plugin/marketplace.json +1 -0
  2. package/.codex-plugin/marketplace.json +1 -0
  3. package/.plugin/marketplace.json +1 -0
  4. package/.release-please-manifest.json +1 -1
  5. package/automations/README.md +9 -2
  6. package/automations/bundle-index.js +3 -3
  7. package/automations/catalog/github-issue-to-pr/manifest.json +2 -2
  8. package/automations/catalog/github-issue-triage/manifest.json +2 -2
  9. package/automations/catalog/github-pr-reviewer/manifest.json +2 -2
  10. package/automations/catalog/incident-retrospective-drafter/manifest.json +4 -0
  11. package/automations/catalog/jira-issue-to-bitbucket-pr/manifest.json +3 -0
  12. package/automations/catalog/jira-issue-to-gitlab-mr/manifest.json +3 -0
  13. package/automations/catalog/jira-issue-to-pr/manifest.json +3 -0
  14. package/automations/catalog/linear-issue-to-bitbucket-pr/manifest.json +4 -0
  15. package/automations/catalog/linear-issue-to-github-pr/manifest.json +4 -0
  16. package/automations/catalog/linear-issue-to-gitlab-mr/manifest.json +4 -0
  17. package/automations/catalog/linear-triage-assistant/manifest.json +4 -0
  18. package/automations/catalog/research-brief-writer/manifest.json +3 -0
  19. package/automations/catalog/slack-channel-monitor/manifest.json +3 -0
  20. package/automations/catalog/slack-standup-digest/manifest.json +3 -0
  21. package/automations/catalog.schema.json +18 -1
  22. package/automations/index.d.ts +8 -0
  23. package/marketplaces/openhands-extensions.json +1 -0
  24. package/package.json +1 -1
  25. package/plugins/vulnerability-remediation/skills/github/scripts/agent_conversation.py +26 -11
  26. package/pyproject.toml +1 -1
  27. package/python/openhands_extensions/_version.py +1 -1
  28. package/skills/bitbucket-data-center/SKILL.md +26 -9
  29. package/skills/github/scripts/agent_conversation.py +26 -11
  30. package/skills/github-issue-to-pr/scripts/agent_conversation.py +26 -11
  31. package/skills/github-issue-triage/scripts/agent_conversation.py +26 -11
  32. package/skills/github-pr-reviewer/scripts/agent_conversation.py +26 -11
  33. package/skills/index.js +4 -3
  34. package/tests/fixtures/automations/github-pr-reviewer.json +9 -9
@@ -97,6 +97,7 @@
97
97
  "source": "./skills/software-factory",
98
98
  "description": "Set up a GitHub software factory fast: ask only for the repositories and the ticket source (GitHub issues, Jira or Linear), create a working issue-to-PR and PR-review pipeline from catalog automations with defaults, then let the user stop or extend it step by step.",
99
99
  "category": "automations",
100
+ "defaultEnabled": true,
100
101
  "keywords": [
101
102
  "onboarding",
102
103
  "software-factory",
@@ -97,6 +97,7 @@
97
97
  "source": "./skills/software-factory",
98
98
  "description": "Set up a GitHub software factory fast: ask only for the repositories and the ticket source (GitHub issues, Jira or Linear), create a working issue-to-PR and PR-review pipeline from catalog automations with defaults, then let the user stop or extend it step by step.",
99
99
  "category": "automations",
100
+ "defaultEnabled": true,
100
101
  "keywords": [
101
102
  "onboarding",
102
103
  "software-factory",
@@ -97,6 +97,7 @@
97
97
  "source": "./skills/software-factory",
98
98
  "description": "Set up a GitHub software factory fast: ask only for the repositories and the ticket source (GitHub issues, Jira or Linear), create a working issue-to-PR and PR-review pipeline from catalog automations with defaults, then let the user stop or extend it step by step.",
99
99
  "category": "automations",
100
+ "defaultEnabled": true,
100
101
  "keywords": [
101
102
  "onboarding",
102
103
  "software-factory",
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.31.0"
2
+ ".": "0.32.1"
3
3
  }
@@ -42,7 +42,7 @@ two records of the same fact from drifting apart, and it is why the file is as s
42
42
  | The setup route | `/automations/new/<id>` |
43
43
  | The integrations the card lists | `requires.integrations`, which every entry carries |
44
44
  | The capabilities endpoint | The host queries it for every automation |
45
- | The trigger variants a deployment can offer | The keys of `setup.form.triggers`; an entry with multiple keys is usable when at least one variant is supported |
45
+ | The trigger variants a deployment can offer | The keys of `setup.form.triggers`; an entry with multiple keys is usable when at least one variant is supported. An entry without a setup form states its kind in `triggers` instead |
46
46
  | Schedule limits, timezone list, event choices, and model profiles | The `cron`, `timezone`, `event-source`, `event-type`, and `llm-profile` field types |
47
47
  | Local validation rules | The `required` flag and `constraints` on each field, applied to the selected trigger variant |
48
48
  | The preflight call | `POST /v1/validate` with the entry id, the create endpoint, and the rendered payload |
@@ -101,6 +101,12 @@ That way a skill can rename its trigger without leaving a stale copy behind in t
101
101
  `setup` is optional. Entries that carry one never repeat `id`, `name`, `category`, or `description`.
102
102
  `setup.version` selects how the block is interpreted; a future format ships a new constant.
103
103
 
104
+ `triggers` is stated only by an entry whose setup does not declare `form.triggers`, which otherwise already
105
+ names the variants: `cron`, `event`, or both, describing how the automation runs once it has been set up.
106
+ An entry lists both when its skill can set up either, for example an event trigger on a deployment that can
107
+ receive events and cron polling elsewhere. Agent Canvas renders it as the card's trigger badge and filter.
108
+ The schema rejects an entry that states it both ways, so the fact stays in one place.
109
+
104
110
  ### Triggers and args
105
111
 
106
112
  `form` separates the two things a user is configuring, and both are keyed by field name:
@@ -115,7 +121,8 @@ That way a skill can rename its trigger without leaving a stale copy behind in t
115
121
  the endpoint implied by the action key: `prompt` -> `/v1/preset/prompt`, `plugin` -> `/v1/preset/plugin`,
116
122
  and `upload` -> `/v1/uploads` followed by `/v1`.
117
123
 
118
- An assisted entry declares no triggers, because the trigger is settled during the conversation.
124
+ An assisted entry declares no `form.triggers`, because the trigger is settled during the conversation. It may
125
+ still list the kinds that conversation can set up in the top-level `triggers`.
119
126
 
120
127
  ### What the form produces
121
128