@sjawhar/opencode-legion-envoy 1.33.0 → 1.35.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/dist/src/server.js +9 -5
- package/package.json +1 -1
- package/skills/dispatch/SKILL.md +2 -1
package/dist/src/server.js
CHANGED
|
@@ -13809,21 +13809,22 @@ var dispatchToolSpecs = [
|
|
|
13809
13809
|
},
|
|
13810
13810
|
{
|
|
13811
13811
|
name: "dispatch_issue_update",
|
|
13812
|
-
description: "Update an existing issue: move its lifecycle status, retitle it, replace its labels, link a URL " + "(the pull request that delivers it, a run, a document), or set its
|
|
13812
|
+
description: "Update an existing issue: move its lifecycle status, retitle it, replace its labels, link a URL " + "(the pull request that delivers it, a run, a document), set its route, or set or clear its parent. " + "Status is one of " + `${ISSUE_STATUSES.join(", ")}; outside Legion, move it yourself as the work advances; inside ` + "Legion the daemon moves it. external_links are " + "merged into the issue's existing links by URL, so linking the pull request you just opened " + "keeps every earlier link. Priority is the human's and is not settable here. At least one " + `field besides issue is required. ${ISSUE_REFERENCE}`,
|
|
13813
13813
|
arguments: (z) => ({
|
|
13814
13814
|
issue: z.string().describe(ISSUE_REFERENCE),
|
|
13815
13815
|
status: z.enum(ISSUE_STATUSES).describe("New lifecycle status.").optional(),
|
|
13816
13816
|
title: z.string({ min: 1 }).describe("Replacement title.").optional(),
|
|
13817
13817
|
labels: z.array(z.string({ min: 1, max: 40 }), { max: 20 }).describe("Replacement label set, at most 20 labels of up to 40 characters; replaces every existing label.").optional(),
|
|
13818
13818
|
external_links: z.array(z.string({ min: 1 })).describe("URLs to link; merged into the issue's existing external links by URL.").optional(),
|
|
13819
|
-
route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional()
|
|
13819
|
+
route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional(),
|
|
13820
|
+
parent: z.string().describe("Parent issue key in the same project; an empty string clears the parent.").optional()
|
|
13820
13821
|
}),
|
|
13821
13822
|
validation: {
|
|
13822
13823
|
check: (value) => {
|
|
13823
13824
|
const input = value;
|
|
13824
|
-
return typeof input.status === "string" || typeof input.title === "string" || Array.isArray(input.labels) || Array.isArray(input.external_links) || typeof input.route === "string";
|
|
13825
|
+
return typeof input.status === "string" || typeof input.title === "string" || Array.isArray(input.labels) || Array.isArray(input.external_links) || typeof input.route === "string" || typeof input.parent === "string";
|
|
13825
13826
|
},
|
|
13826
|
-
message: "Issue update requires at least one field besides issue: status, title, labels, external_links, or
|
|
13827
|
+
message: "Issue update requires at least one field besides issue: status, title, labels, external_links, route, or parent."
|
|
13827
13828
|
},
|
|
13828
13829
|
strict: true
|
|
13829
13830
|
},
|
|
@@ -16020,6 +16021,7 @@ async function executeDispatchTool(input) {
|
|
|
16020
16021
|
const status = optionalString(args, "status");
|
|
16021
16022
|
const title = optionalString(args, "title");
|
|
16022
16023
|
const route = optionalString(args, "route");
|
|
16024
|
+
const parent = optionalString(args, "parent");
|
|
16023
16025
|
const labels = Array.isArray(args.labels) ? args.labels : undefined;
|
|
16024
16026
|
const requestedLinks = Array.isArray(args.external_links) ? [...new Set(args.external_links)] : undefined;
|
|
16025
16027
|
let newLinks = [];
|
|
@@ -16032,6 +16034,7 @@ async function executeDispatchTool(input) {
|
|
|
16032
16034
|
...title === undefined ? {} : { title },
|
|
16033
16035
|
...labels === undefined ? {} : { labels },
|
|
16034
16036
|
...route === undefined ? {} : { route },
|
|
16037
|
+
...parent === undefined ? {} : { parent: parent === "" ? null : parent },
|
|
16035
16038
|
...requestedLinks === undefined ? {} : { external_links: [...before.external_links, ...newLinks.map((url) => ({ url }))] },
|
|
16036
16039
|
actor
|
|
16037
16040
|
});
|
|
@@ -16043,7 +16046,8 @@ async function executeDispatchTool(input) {
|
|
|
16043
16046
|
...requestedLinks === undefined ? [] : [
|
|
16044
16047
|
newLinks.length === 0 ? `already linked ${requestedLinks.join(", ")} ${linkCount}` : `linked ${newLinks.join(", ")} ${linkCount}`
|
|
16045
16048
|
],
|
|
16046
|
-
...route === undefined ? [] : [after.route === null ? "route cleared" : `route ${after.route}`]
|
|
16049
|
+
...route === undefined ? [] : [after.route === null ? "route cleared" : `route ${after.route}`],
|
|
16050
|
+
...parent === undefined ? [] : [after.parent === null ? "parent cleared" : `parent -> ${after.parent}`]
|
|
16047
16051
|
];
|
|
16048
16052
|
return {
|
|
16049
16053
|
text: `${after.key}: ${changes.join("; ")} ${notSubscribed(issueTopic(after.key))}`,
|
package/package.json
CHANGED
package/skills/dispatch/SKILL.md
CHANGED
|
@@ -122,9 +122,10 @@ status is." Waiting for the deploy lane is not a status and is never announced.
|
|
|
122
122
|
human's: set it on creation only when their intent is clear, and change it only on their word.
|
|
123
123
|
|
|
124
124
|
```ts
|
|
125
|
-
// PATCH /api/v1/issues/{key} — status, title, labels, external_links (merged by URL), route
|
|
125
|
+
// PATCH /api/v1/issues/{key} — status, title, labels, external_links (merged by URL), route, parent
|
|
126
126
|
dispatch_issue_update({ issue: "AGENTC-175", status: "testing" })
|
|
127
127
|
dispatch_issue_update({ issue: "AGENTC-175", external_links: ["https://github.com/owner/repo/pull/7"] })
|
|
128
|
+
dispatch_issue_update({ issue: "AGENTC-175", parent: "AGENTC-170" }) // same-project key; "" clears the parent
|
|
128
129
|
```
|
|
129
130
|
|
|
130
131
|
Link the pull request that delivers the issue in `external_links` when you open it; the issue page
|