@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.
@@ -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:// " + `reference \u2014 it must be answerable from its own text and anchor alone, never "see above". Question is at most 800 ` + `characters and has at most 8 options. ${OWNER_REFERENCE}`,
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "1.13.1",
3
+ "version": "1.14.0",
4
4
  "type": "module",
5
5
  "main": "dist/src/server.js",
6
6
  "exports": {
@@ -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, and an anchor whose quote later disappears becomes
131
- orphaned but stays readable against its original document version.
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 reply while your ask is still open (the delivered `comment.created` carries `ask_state: open`) is a request for
183
- clarification, not an answer: the human did not understand the question or needs more before choosing. The ask now waits on you
184
- in their Inbox. Answer in the same thread with `dispatch_comment({ reply_to_ask })`, or reword the question itself with
185
- `dispatch_edit_ask` when the wording was the problem; either puts the ask back in front of them. Do not open a second ask.
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`; omit both for a floating issue comment. A reply (`reply_to`/`reply_to_ask`)
293
- takes no `quote`; it belongs to its parent's anchor. Reply to any comment in a thread; the server
294
- keeps threads flat. A reply to a resolved thread reopens it. Use `reply_to_ask` to reply directly
295
- under a question asked with `dispatch_ask`. Comments are edited only by their author from the
296
- dashboard. A delivered `comment.created` event carries the comment `id`; reply to it with
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: