@sjawhar/opencode-legion-envoy 3.11.5 → 3.12.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.
- package/README.md +2 -2
- package/dist/src/server.js +12 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,10 +61,10 @@ Do not use workspace slugs like `acme` in the topic path.
|
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
63
|
# From the repo root:
|
|
64
|
-
./packages/envoy-plugin/scripts/sync-host.sh sami@
|
|
64
|
+
./packages/envoy-plugin/scripts/sync-host.sh sami@example-host-laptop
|
|
65
65
|
|
|
66
66
|
# Or via the combined envoy sync:
|
|
67
|
-
./scripts/sync-envoy-host.sh sami@
|
|
67
|
+
./scripts/sync-envoy-host.sh sami@example-host-laptop
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
The sync script downloads the latest envoy-plugin release tarball from GitHub,
|
package/dist/src/server.js
CHANGED
|
@@ -14267,8 +14267,8 @@ var dispatchToolSpecs = [
|
|
|
14267
14267
|
},
|
|
14268
14268
|
{
|
|
14269
14269
|
name: "dispatch_issues",
|
|
14270
|
-
example: { project: "AGENTC",
|
|
14271
|
-
description: "List a project's issues for a roadmap or backlog pass: every issue in one project, each carrying " + "its status, priority, parent, labels, open-ask count, and route with whether it reaches anyone, " + "so you can see backlog shape without opening every issue. Optionally filter by status, parent, " + "label, priority, route status, or how recently it changed; priority takes one or more of 0-3 " + "(P0-P3) and null for an issue with no priority, so an owner's P0/P1 audit is priority [0, 1]. " + 'route_status "no_holder" lists every open issue whose route names a role nobody holds or a ' + "session that is not running at the moment of the read, whatever its priority. A restarting " + "session is absent for minutes, so an issue is unowned only when a read ten minutes later agrees. " + "Do not use it to search by keyword or phrase; dispatch_search remains the keyword surface. " + "Rows are
|
|
14270
|
+
example: { project: "AGENTC", limit: 250, offset: 250 },
|
|
14271
|
+
description: "List a project's issues for a roadmap or backlog pass: every issue in one project, each carrying " + "its status, priority, parent, labels, open-ask count, and route with whether it reaches anyone, " + "so you can see backlog shape without opening every issue. Optionally filter by status, parent, " + "label, priority, route status, or how recently it changed; priority takes one or more of 0-3 " + "(P0-P3) and null for an issue with no priority, so an owner's P0/P1 audit is priority [0, 1]. " + 'route_status "no_holder" lists every open issue whose route names a role nobody holds or a ' + "session that is not running at the moment of the read, whatever its priority. A restarting " + "session is absent for minutes, so an issue is unowned only when a read ten minutes later agrees. " + "Do not use it to search by keyword or phrase; dispatch_search remains the keyword surface. " + "Rows are paged after the server returns the full response: limit sets the page size (default 50, " + "max 250) and offset selects where it starts (default 0), so repeat with the next offset to " + "enumerate every matching issue.",
|
|
14272
14272
|
arguments: (z2) => ({
|
|
14273
14273
|
project: z2.string().describe("Project key to list issues from."),
|
|
14274
14274
|
status: z2.enum(ISSUE_STATUSES).describe("Optional lifecycle status filter.").optional(),
|
|
@@ -14277,7 +14277,8 @@ var dispatchToolSpecs = [
|
|
|
14277
14277
|
priority: z2.array(z2.number({ int: true, min: 0, max: 3 }).nullable(), { min: 1, max: 5 }).describe("Optional priority filter: one or more of 0 (P0, highest) through 3 (P3, lowest), and null " + "for an issue with no priority; an issue matching any listed value is returned.").optional(),
|
|
14278
14278
|
updated_since: z2.string().describe("Optional RFC3339 timestamp; only issues updated at or after it.").optional(),
|
|
14279
14279
|
route_status: z2.enum(ISSUE_ROUTE_STATUSES).describe("Optional: only open issues whose route is in this state. live: a running session holds " + "the role or is the routed session. no_holder: nobody running holds the role, or the " + "session is not running, right now. unknown: the Envoy listener did not answer.").optional(),
|
|
14280
|
-
limit: z2.number({ int: true, min: 1, max: 250 }).describe("Maximum rows, 1-250; default 50.").optional()
|
|
14280
|
+
limit: z2.number({ int: true, min: 1, max: 250 }).describe("Maximum rows, 1-250; default 50.").optional(),
|
|
14281
|
+
offset: z2.number({ int: true, min: 0 }).describe("Rows to skip before the page; nonnegative integer; default 0.").optional()
|
|
14281
14282
|
})
|
|
14282
14283
|
},
|
|
14283
14284
|
{
|
|
@@ -16765,6 +16766,7 @@ async function executeDispatchTool(input) {
|
|
|
16765
16766
|
const updatedSince = optionalString(args, "updated_since");
|
|
16766
16767
|
const routeStatus = optionalString(args, "route_status");
|
|
16767
16768
|
const limit = Math.min(Math.max(optionalNumber(args, "limit") ?? 50, 1), 250);
|
|
16769
|
+
const offset = Math.max(optionalNumber(args, "offset") ?? 0, 0);
|
|
16768
16770
|
const issues = await client.listIssues({
|
|
16769
16771
|
project,
|
|
16770
16772
|
...status === undefined ? {} : { status },
|
|
@@ -16774,7 +16776,8 @@ async function executeDispatchTool(input) {
|
|
|
16774
16776
|
...updatedSince === undefined ? {} : { updated_since: updatedSince },
|
|
16775
16777
|
...routeStatus === undefined ? {} : { route_status: routeStatus }
|
|
16776
16778
|
});
|
|
16777
|
-
const
|
|
16779
|
+
const total = issues.length;
|
|
16780
|
+
const rows = issues.slice(offset, offset + limit).map((row) => ({
|
|
16778
16781
|
key: row.key,
|
|
16779
16782
|
title: row.title,
|
|
16780
16783
|
status: row.status,
|
|
@@ -16789,13 +16792,15 @@ async function executeDispatchTool(input) {
|
|
|
16789
16792
|
updated_at: row.updated_at
|
|
16790
16793
|
}));
|
|
16791
16794
|
const titles = await liveSessionTitles(client, rows.some((row) => holdsSession(row.claim)));
|
|
16795
|
+
const isPartial = offset !== 0 || rows.length !== total;
|
|
16796
|
+
const showing = !isPartial ? "" : rows.length === 0 ? `showing 0-0 of ${total}` : `showing ${offset + 1}-${offset + rows.length} of ${total}`;
|
|
16792
16797
|
return {
|
|
16793
|
-
text: rows.length === 0 ? `No issues in ${project}
|
|
16794
|
-
`${rows.length} ${rows.length === 1 ? "issue" : "issues"} in ${project}` + (
|
|
16798
|
+
text: rows.length === 0 ? `No issues in ${project}.${isPartial ? ` (${showing})` : ""}` : [
|
|
16799
|
+
`${rows.length} ${rows.length === 1 ? "issue" : "issues"} in ${project}` + (isPartial ? ` (${showing})` : ""),
|
|
16795
16800
|
...rows.map((row) => `${row.key} [${row.status}]${row.priority === null ? "" : ` P${row.priority}`} ${row.title}` + (row.open_asks === 0 ? "" : ` \xB7 ${row.open_asks} open ${row.open_asks === 1 ? "ask" : "asks"}`) + (row.claim === null ? "" : ` \xB7 claimed by ${claimText(row.claim, titles)}`) + (row.route === null || row.route_status === "live" || row.route_status === null ? "" : ` \xB7 route ${routeText(row)}`))
|
|
16796
16801
|
].join(`
|
|
16797
16802
|
`),
|
|
16798
|
-
details: { issues: rows }
|
|
16803
|
+
details: { issues: rows, total, offset, limit }
|
|
16799
16804
|
};
|
|
16800
16805
|
}
|
|
16801
16806
|
case "dispatch_architecture_sync": {
|