@sjawhar/opencode-legion-envoy 1.13.1 → 1.14.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 +8 -3
- package/package.json +1 -1
- package/skills/dispatch/SKILL.md +15 -11
package/dist/src/server.js
CHANGED
|
@@ -13594,6 +13594,11 @@ var askEventPayloadFields = {
|
|
|
13594
13594
|
question: string2().optional(),
|
|
13595
13595
|
options: array(object({ label: string2().optional() })).nullish(),
|
|
13596
13596
|
answer: object({ selected: array(string2()).nullish(), text: string2().nullish() }).nullish(),
|
|
13597
|
+
anchor: object({
|
|
13598
|
+
quote: string2().optional(),
|
|
13599
|
+
mark_id: string2().optional(),
|
|
13600
|
+
block_id: string2().nullable().optional()
|
|
13601
|
+
}).passthrough().nullish(),
|
|
13597
13602
|
resolution: object({
|
|
13598
13603
|
kind: _enum2(["retracted", "resolved"]).optional(),
|
|
13599
13604
|
reason: string2().optional(),
|
|
@@ -13628,7 +13633,7 @@ var CommentEventPayloadSchema = object({
|
|
|
13628
13633
|
ask_id: string2().nullish(),
|
|
13629
13634
|
ask_question: string2().optional(),
|
|
13630
13635
|
ask_state: _enum2(["open", "answered", "resolved"]).optional(),
|
|
13631
|
-
anchor: object({ quote: string2().optional() }).nullish(),
|
|
13636
|
+
anchor: object({ block_id: string2().nullable().optional(), quote: string2().optional() }).nullish(),
|
|
13632
13637
|
suggestion: object({ replace_with: string2().optional() }).nullish(),
|
|
13633
13638
|
author: object({ kind: string2(), id: string2() }).optional(),
|
|
13634
13639
|
created_at: string2().optional()
|
|
@@ -13760,7 +13765,7 @@ var dispatchToolSpecs = [
|
|
|
13760
13765
|
},
|
|
13761
13766
|
{
|
|
13762
13767
|
name: "dispatch_ask",
|
|
13763
|
-
description: "Open a durable, answerable decision or human to-do on an issue or project document. Do not use it for a status update or discussion; " + "use dispatch_message instead. Use kind: action for a to-do a human must complete; it has fixed Done / Can't answers. " + "Anchor a document question, thread reply_to/reply_to_ask, or cite a dispatch:// " +
|
|
13768
|
+
description: "Open a durable, answerable decision or human to-do on an issue or project document. Do not use it for a status update or discussion; " + "use dispatch_message instead. Use kind: action for a to-do a human must complete; it has fixed Done / Can't answers. " + "Anchor a document question, thread reply_to/reply_to_ask, or cite a dispatch:// " + 'reference \u2014 it must be answerable from its own text and anchor alone, never "see above". A quote anchor is pinned to its block. Question is at most 800 ' + `characters and has at most 8 options. ${OWNER_REFERENCE}`,
|
|
13764
13769
|
arguments: (z) => ({
|
|
13765
13770
|
issue: z.string().describe(ISSUE_REFERENCE).optional(),
|
|
13766
13771
|
project: z.string().describe("Project key owning the document.").optional(),
|
|
@@ -13814,7 +13819,7 @@ var dispatchToolSpecs = [
|
|
|
13814
13819
|
},
|
|
13815
13820
|
{
|
|
13816
13821
|
name: "dispatch_comment",
|
|
13817
|
-
description: "Add review feedback to an issue or project document quote, or reply to a question asked with dispatch_ask. " + "Do not use it for an exact replacement; use " + `dispatch_suggest instead. Body is at most 2,000 characters. ${OWNER_REFERENCE}`,
|
|
13822
|
+
description: "Add review feedback to an issue or project document quote, or reply to a question asked with dispatch_ask. " + "Do not use it for an exact replacement; use " + `dispatch_suggest instead. A quote anchor is pinned to its block. Body is at most 2,000 characters. ${OWNER_REFERENCE}`,
|
|
13818
13823
|
arguments: (z) => ({
|
|
13819
13824
|
issue: z.string().describe(ISSUE_REFERENCE).optional(),
|
|
13820
13825
|
project: z.string().describe("Project key owning the document.").optional(),
|
package/package.json
CHANGED
package/skills/dispatch/SKILL.md
CHANGED
|
@@ -127,8 +127,10 @@ recommendation and its reason last, in `question`. Never put file paths, line nu
|
|
|
127
127
|
numbers, document versions, or role tokens in the question; if the human needs that detail, anchor
|
|
128
128
|
the ask to the document passage instead. Apply the phone test from "Writing for the human" before
|
|
129
129
|
posting. Anchor a document question with `anchor: { artifact, quote, occurrence? }`; `occurrence`
|
|
130
|
-
is zero-based and selects a repeated quote
|
|
131
|
-
|
|
130
|
+
is zero-based and selects a repeated quote. A quote anchor is pinned to its lowest complete
|
|
131
|
+
containing block while retaining its quote as display text, so rewording the passage keeps it
|
|
132
|
+
attached; a quote spanning top-level blocks, and existing anchors without a block, stay readable
|
|
133
|
+
against their original document version if their quote disappears.
|
|
132
134
|
|
|
133
135
|
An ask must be answerable from its own text and its anchor alone. Anchor a question about a document passage with `anchor`; thread one
|
|
134
136
|
about a comment with `reply_to`; thread a follow-up on your own ask with `reply_to_ask`; cite anything else with a `dispatch://`
|
|
@@ -179,10 +181,11 @@ in its Conversation card and reply thread. Resolution is not an answer: it never
|
|
|
179
181
|
resolved. A human may reply to an open or answered ask; so may you, e.g. after finding the answer — use `reply_to_ask` on
|
|
180
182
|
`dispatch_comment` (mutually exclusive with `reply_to`).
|
|
181
183
|
|
|
182
|
-
A human
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
A human answers or asks back from the same field; a question-shaped free-text answer is offered as a clarification first. A human
|
|
185
|
+
reply while your ask is still open (the delivered `comment.created` carries `ask_state: open`) is a request for clarification, not
|
|
186
|
+
an answer: the human did not understand the question or needs more before choosing. The ask now waits on you in their Inbox. Answer
|
|
187
|
+
in the same thread with `dispatch_comment({ reply_to_ask })`, or reword the question itself with `dispatch_edit_ask` when the wording
|
|
188
|
+
was the problem; either puts the ask back in front of them. Do not open a second ask.
|
|
186
189
|
|
|
187
190
|
## Approval of a spec
|
|
188
191
|
|
|
@@ -289,11 +292,12 @@ dispatch_comment({ issue?, project?, artifact?, ref?, quote?, occurrence?, body,
|
|
|
289
292
|
|
|
290
293
|
It returns issue or project-document owner details plus `comment` and, for writes, `topic`.
|
|
291
294
|
`ref` names the owner (an issue or project-document reference) in place of `issue`/`project`.
|
|
292
|
-
`quote` requires `artifact`;
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
`quote` requires `artifact`; its anchor is pinned to the containing block while retaining the quote
|
|
296
|
+
for display. Omit both for a floating issue comment. A reply (`reply_to`/`reply_to_ask`) takes no
|
|
297
|
+
`quote`; it belongs to its parent's anchor. Reply to any comment in a thread; the server keeps
|
|
298
|
+
threads flat. A reply to a resolved thread reopens it. Use `reply_to_ask` to reply directly under a
|
|
299
|
+
question asked with `dispatch_ask`. Comments are edited only by their author from the dashboard. A
|
|
300
|
+
delivered `comment.created` event carries the comment `id`; reply to it with
|
|
297
301
|
`dispatch_comment({ reply_to: <id> })`.
|
|
298
302
|
|
|
299
303
|
Propose an exact replacement instead of describing it:
|