@sjawhar/opencode-legion-envoy 5.6.5 → 5.7.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 +32 -2
- package/package.json +1 -1
- package/skills/dispatch-first/SKILL.md +4 -0
package/dist/src/server.js
CHANGED
|
@@ -15449,6 +15449,32 @@ function renderAdvice(tool, key, advice, opts) {
|
|
|
15449
15449
|
}
|
|
15450
15450
|
return lines;
|
|
15451
15451
|
}
|
|
15452
|
+
function renderSuggestions(suggestions, configUrl) {
|
|
15453
|
+
if (suggestions === undefined)
|
|
15454
|
+
return [];
|
|
15455
|
+
if (suggestions.missing !== undefined) {
|
|
15456
|
+
return [`Related-item search was skipped: ${suggestions.missing}.`];
|
|
15457
|
+
}
|
|
15458
|
+
const lines = [];
|
|
15459
|
+
if (suggestions.related.length > 0) {
|
|
15460
|
+
lines.push("Possibly related, found by search:");
|
|
15461
|
+
for (const item of suggestions.related) {
|
|
15462
|
+
lines.push(`- ${suggestionLabel(item)} \u2192 ${new URL(item.href, configUrl).toString()}`);
|
|
15463
|
+
}
|
|
15464
|
+
}
|
|
15465
|
+
if (suggestions.decision !== undefined) {
|
|
15466
|
+
const item = suggestions.decision;
|
|
15467
|
+
const when = item.answered_at === undefined ? "" : ` on ${item.answered_at}`;
|
|
15468
|
+
lines.push(`A past decision may already answer this: ${suggestionLabel(item)}, answered by ${item.answered_by}${when} \u2192 ${new URL(item.href, configUrl).toString()}`);
|
|
15469
|
+
}
|
|
15470
|
+
return lines;
|
|
15471
|
+
}
|
|
15472
|
+
function suggestionLabel(item) {
|
|
15473
|
+
if (item.owner.kind === "issue") {
|
|
15474
|
+
return `${item.owner.key} [${item.owner.status}] ${item.owner.title}`;
|
|
15475
|
+
}
|
|
15476
|
+
return `${item.owner.name} (${item.owner.project}/${item.owner.slug})`;
|
|
15477
|
+
}
|
|
15452
15478
|
function documentResultDetails(artifact) {
|
|
15453
15479
|
return {
|
|
15454
15480
|
project: artifact.project,
|
|
@@ -16626,7 +16652,8 @@ async function executeDispatchTool(input) {
|
|
|
16626
16652
|
...renderAdvice(input.tool, created.key, created.advice, {
|
|
16627
16653
|
isPrimarySpec: spec !== undefined
|
|
16628
16654
|
}),
|
|
16629
|
-
...componentGuidance === undefined ? [] : [componentGuidance]
|
|
16655
|
+
...componentGuidance === undefined ? [] : [componentGuidance],
|
|
16656
|
+
...renderSuggestions(created.advice?.suggestions, configUrl)
|
|
16630
16657
|
];
|
|
16631
16658
|
return {
|
|
16632
16659
|
text: [
|
|
@@ -16906,7 +16933,10 @@ async function executeDispatchTool(input) {
|
|
|
16906
16933
|
};
|
|
16907
16934
|
const ask = resolved?.owner.kind === "project" ? await client.artifactAsk(resolved.artifact.id, askInput) : await client.ask(issue2(), askInput);
|
|
16908
16935
|
const askOwner = ask.issue_key !== null ? issueTopic(ask.issue_key) : resolved === undefined ? issueTopic(issue2()) : documentTopic(resolved.artifact);
|
|
16909
|
-
const adviceLines =
|
|
16936
|
+
const adviceLines = [
|
|
16937
|
+
...renderAdvice(input.tool, askOwner.label, ask.advice, {}),
|
|
16938
|
+
...renderSuggestions(ask.advice?.suggestions, configUrl)
|
|
16939
|
+
];
|
|
16910
16940
|
return {
|
|
16911
16941
|
text: [
|
|
16912
16942
|
`Asked ${ask.id} on ${askOwner.label} (urgency ${ask.urgency}): ${ask.question}
|
package/package.json
CHANGED
|
@@ -27,6 +27,10 @@ parent's children and the issue's `Components:` line show where the rest of that
|
|
|
27
27
|
|
|
28
28
|
## What to do with what you find
|
|
29
29
|
|
|
30
|
+
Filing an issue or opening an ask also searches for you: the result's `advice.suggestions` names
|
|
31
|
+
likely duplicates or a decision that may already settle it. Treat a hit there the same as one you
|
|
32
|
+
found yourself.
|
|
33
|
+
|
|
30
34
|
- **The work is already tracked: extend that issue.** Put the finding on it (a comment, a message,
|
|
31
35
|
or an edit to its spec) instead of filing another. File a new issue only when no hit covers the
|
|
32
36
|
work, and cite the nearest one you ruled out (`dispatch://KEY`).
|