@sjawhar/pi-legion-envoy 1.44.0 → 1.46.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/envoy.js CHANGED
@@ -29906,21 +29906,22 @@ var dispatchToolSpecs = [
29906
29906
  },
29907
29907
  {
29908
29908
  name: "dispatch_issue_update",
29909
- 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 route. 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}`,
29909
+ 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}`,
29910
29910
  arguments: (z) => ({
29911
29911
  issue: z.string().describe(ISSUE_REFERENCE),
29912
29912
  status: z.enum(ISSUE_STATUSES).describe("New lifecycle status.").optional(),
29913
29913
  title: z.string({ min: 1 }).describe("Replacement title.").optional(),
29914
29914
  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(),
29915
29915
  external_links: z.array(z.string({ min: 1 })).describe("URLs to link; merged into the issue's existing external links by URL.").optional(),
29916
- route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional()
29916
+ route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional(),
29917
+ parent: z.string().describe("Parent issue key in the same project; an empty string clears the parent.").optional()
29917
29918
  }),
29918
29919
  validation: {
29919
29920
  check: (value) => {
29920
29921
  const input = value;
29921
- return typeof input.status === "string" || typeof input.title === "string" || Array.isArray(input.labels) || Array.isArray(input.external_links) || typeof input.route === "string";
29922
+ 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";
29922
29923
  },
29923
- message: "Issue update requires at least one field besides issue: status, title, labels, external_links, or route."
29924
+ message: "Issue update requires at least one field besides issue: status, title, labels, external_links, route, or parent."
29924
29925
  },
29925
29926
  strict: true
29926
29927
  },
@@ -33083,6 +33084,7 @@ async function executeDispatchTool(input) {
33083
33084
  const status = optionalString(args, "status");
33084
33085
  const title = optionalString(args, "title");
33085
33086
  const route = optionalString(args, "route");
33087
+ const parent = optionalString(args, "parent");
33086
33088
  const labels = Array.isArray(args.labels) ? args.labels : undefined;
33087
33089
  const requestedLinks = Array.isArray(args.external_links) ? [...new Set(args.external_links)] : undefined;
33088
33090
  let newLinks = [];
@@ -33095,6 +33097,7 @@ async function executeDispatchTool(input) {
33095
33097
  ...title === undefined ? {} : { title },
33096
33098
  ...labels === undefined ? {} : { labels },
33097
33099
  ...route === undefined ? {} : { route },
33100
+ ...parent === undefined ? {} : { parent: parent === "" ? null : parent },
33098
33101
  ...requestedLinks === undefined ? {} : { external_links: [...before.external_links, ...newLinks.map((url) => ({ url }))] },
33099
33102
  actor
33100
33103
  });
@@ -33106,7 +33109,8 @@ async function executeDispatchTool(input) {
33106
33109
  ...requestedLinks === undefined ? [] : [
33107
33110
  newLinks.length === 0 ? `already linked ${requestedLinks.join(", ")} ${linkCount}` : `linked ${newLinks.join(", ")} ${linkCount}`
33108
33111
  ],
33109
- ...route === undefined ? [] : [after.route === null ? "route cleared" : `route ${after.route}`]
33112
+ ...route === undefined ? [] : [after.route === null ? "route cleared" : `route ${after.route}`],
33113
+ ...parent === undefined ? [] : [after.parent === null ? "parent cleared" : `parent -> ${after.parent}`]
33110
33114
  ];
33111
33115
  return {
33112
33116
  text: `${after.key}: ${changes.join("; ")} ${notSubscribed(issueTopic(after.key))}`,
package/dist/legion.js CHANGED
@@ -29180,21 +29180,22 @@ var dispatchToolSpecs = [
29180
29180
  },
29181
29181
  {
29182
29182
  name: "dispatch_issue_update",
29183
- 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 route. 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}`,
29183
+ 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}`,
29184
29184
  arguments: (z) => ({
29185
29185
  issue: z.string().describe(ISSUE_REFERENCE),
29186
29186
  status: z.enum(ISSUE_STATUSES).describe("New lifecycle status.").optional(),
29187
29187
  title: z.string({ min: 1 }).describe("Replacement title.").optional(),
29188
29188
  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(),
29189
29189
  external_links: z.array(z.string({ min: 1 })).describe("URLs to link; merged into the issue's existing external links by URL.").optional(),
29190
- route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional()
29190
+ route: z.string().describe("Route the issue to role:<name> or session:<id>; an empty string clears it.").optional(),
29191
+ parent: z.string().describe("Parent issue key in the same project; an empty string clears the parent.").optional()
29191
29192
  }),
29192
29193
  validation: {
29193
29194
  check: (value) => {
29194
29195
  const input = value;
29195
- return typeof input.status === "string" || typeof input.title === "string" || Array.isArray(input.labels) || Array.isArray(input.external_links) || typeof input.route === "string";
29196
+ 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";
29196
29197
  },
29197
- message: "Issue update requires at least one field besides issue: status, title, labels, external_links, or route."
29198
+ message: "Issue update requires at least one field besides issue: status, title, labels, external_links, route, or parent."
29198
29199
  },
29199
29200
  strict: true
29200
29201
  },
@@ -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/pi-legion-envoy",
3
- "version": "1.44.0",
3
+ "version": "1.46.0",
4
4
  "type": "module",
5
5
  "omp": {
6
6
  "extensions": [