@sjawhar/pi-legion-envoy 5.30.9 → 5.30.11

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
@@ -30352,7 +30352,7 @@ var dispatchToolSpecs = [
30352
30352
  name: "dispatch_artifact",
30353
30353
  example: { issue: "DSP-1", name: "design.md", content: `# Design
30354
30354
  ` },
30355
- description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; artifacts are limited to 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
30355
+ description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; a markdown document is at most 1 MiB and any other file at most 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
30356
30356
  arguments: (z2) => ({
30357
30357
  issue: z2.string().describe(ISSUE_REFERENCE).optional(),
30358
30358
  project: z2.string().describe("Project key for an unlinked document.").optional(),
package/dist/legion.js CHANGED
@@ -30521,7 +30521,7 @@ var dispatchToolSpecs = [
30521
30521
  name: "dispatch_artifact",
30522
30522
  example: { issue: "DSP-1", name: "design.md", content: `# Design
30523
30523
  ` },
30524
- description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; artifacts are limited to 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
30524
+ description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; a markdown document is at most 1 MiB and any other file at most 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
30525
30525
  arguments: (z2) => ({
30526
30526
  issue: z2.string().describe(ISSUE_REFERENCE).optional(),
30527
30527
  project: z2.string().describe("Project key for an unlinked document.").optional(),
@@ -33834,7 +33834,7 @@ import { logger } from "@oh-my-pi/pi-utils";
33834
33834
  // package.json
33835
33835
  var package_default = {
33836
33836
  name: "@sjawhar/pi-legion-envoy",
33837
- version: "5.30.9",
33837
+ version: "5.30.11",
33838
33838
  type: "module",
33839
33839
  omp: {
33840
33840
  extensions: [
@@ -10,9 +10,9 @@ decide, never a log of your work. The transcript is your scratch pad; progress a
10
10
  goes through a `dispatch_*` tool.
11
11
 
12
12
  The server enforces high signal: an ask question is at most 800 characters with at most eight options; comment and message bodies are at
13
- most 2,000 characters; an artifact is at most 25 MiB. It refuses over-limit input with the number to trim (`question is 50 characters over
14
- the 800-character limit (850/800)`); it never truncates it. A tool call with several problems is refused once, every problem listed
15
- (`<tool> was not called: N problems`), so one corrected call lands. GitHub threads and markers no
13
+ most 2,000 characters; a markdown document is at most 1 MiB and any other file at most 25 MiB. It refuses over-limit input with the number
14
+ to trim (`question is 50 characters over the 800-character limit (850/800)`); it never truncates it. A tool call with several problems is
15
+ refused once, every problem listed (`<tool> was not called: N problems`), so one corrected call lands. GitHub threads and markers no
16
16
  longer exist.
17
17
 
18
18
  ## Where the detail lives
@@ -84,7 +84,7 @@ a new version that keeps the human's own text, never a second "spec" artifact be
84
84
  versions keep the history.
85
85
  - **No placeholders.** No TBD, TODO, or hedging ("might", "could consider"): an open item is a
86
86
  decision block, a technical decision your lane makes and records in the text, or, for a
87
- contract between two lanes, a question for the platform PO (see
87
+ contract between two lanes, a question you settle with the other lane over Envoy (see
88
88
  [Before you ask](#before-you-ask) under Asking).
89
89
  - **No progress.** The spec records the design and its decisions, never status, timestamps, an
90
90
  "Update HH:MMZ" section, a pull-request list, or handoff notes. Progress is not a Dispatch
@@ -208,11 +208,10 @@ Every `dispatch_ask` passes four gates first:
208
208
  1. **Does it need his authority, taste, or risk appetite?** This is the bar for a decision
209
209
  written as an `:::ask` block in context ([Decision blocks](#decision-blocks)). Technical
210
210
  decisions inside your outcome do not: schema shapes, table layouts, field names, and migration
211
- internals are your lane's to decide and record in the spec. A contract between two lanes still
212
- goes to the platform PO over Envoy, and you open no ask for it. A halt condition (a change to
213
- IAM, deletion or exposure of production data, anything that reaches a customer) passes this
214
- gate: it is your own `dispatch_ask` to Sami on your own issue, never routed through the
215
- platform PO.
211
+ internals are your lane's to decide and record in the spec. A contract between two lanes is
212
+ settled by those two lanes over Envoy, and you open no ask for it. A halt condition (a change
213
+ to IAM, deletion or exposure of production data, anything that reaches a customer) passes this
214
+ gate: it is your own `dispatch_ask` to Sami on your own issue.
216
215
  2. **Is there genuine uncertainty, and have you measured what you can?** If there is none, it is
217
216
  a plan you execute. The one legitimate ask without uncertainty is permission for an action
218
217
  only a human can authorise — a production write, an external send, a console action — and then
@@ -247,8 +246,8 @@ Every `dispatch_ask` passes four gates first:
247
246
  (further down) lists that the delivery waits on — including a conflict between what he asked
248
247
  for and another of his rules, which this gate would otherwise bury as settled.
249
248
 
250
- The platform PO audits open asks. One that fails a gate — or that points at another message in
251
- prose instead of carrying its content (below) — is retracted, with the PO's answer as the record.
249
+ Nobody audits or retracts another session's asks: passing every gate, and carrying the content
250
+ instead of pointing at another message in prose (below), is the asking session's own check.
252
251
 
253
252
  Open a decision with:
254
253
  ```ts
@@ -289,11 +288,11 @@ message above", or "as attached".
289
288
  issue's comments. The rules:
290
289
 
291
290
  - An ask that names another message in prose — "my comment above", "the procedure I posted",
292
- "see the earlier message" — is retracted by the PO as failing the gates. Put the content IN the
293
- ask. If it does not fit the 800-character budget, the step is too big: split the step, never
294
- point elsewhere. The only pointers an ask may carry are a `dispatch://` reference or a document
295
- `anchor`, and they cite — the ask still says in one line what the reader will find there and can
296
- be answered without following them.
291
+ "see the earlier message" — fails the gates. Put the content IN the ask. If it does not fit the
292
+ 800-character budget, the step is too big: split the step, never point elsewhere. The only
293
+ pointers an ask may carry are a `dispatch://` reference or a document `anchor`, and they cite —
294
+ the ask still says in one line what the reader will find there and can be answered without
295
+ following them.
297
296
  - Expand every term the reader has not used first. A product name, an internal setting, an
298
297
  acronym, a value you coined this session — write what it is in the ask, in his words.
299
298
  - A runbook the human must execute is one ask per step, each self-contained: what to do, where,
@@ -308,9 +307,9 @@ they must read to decide belongs in the spec in the first place — see [Artifac
308
307
 
309
308
  ### When you need a human
310
309
 
311
- Before saying you are waiting for human input, call `dispatch_open_asks`. With no arguments it lists this session's active asks across open issues and project documents, including whether the human or agent owes the next reply. With `dispatch_open_asks({ project })` it lists every open ask in that project — on its issues and on its documents, whoever authored them — which is how you audit what a whole project is waiting on rather than just your own asks.
310
+ Before saying you are waiting for human input, call `dispatch_open_asks`. With no arguments it lists this session's active asks across open issues and project documents, including whether the human or agent owes the next reply. With `dispatch_open_asks({ project })` it lists every open ask in that project — on its issues and on its documents, whoever authored them — which is how you see what a whole project is waiting on rather than just your own asks.
312
311
 
313
- **Unsettled product shape needs a decision before implementation.** When a page, navigation entry, table key, customer-scoping rule, or persisted sidecar would set product shape that Sami has not already settled, send a one-line ask before the first implementation commit. A lane's schema decision or a platform-PO contract ruling does not settle product shape. This does not turn a user-specified decision or routine implementation into an approval request. A control or behaviour the human asked for in words is settled by those words, together with every choice inside it that his words do not make (where it sits, its defaults, its options): build it without an ask, as gate 4 of [Before you ask](#before-you-ask) says. This rule covers only product shape outside what he asked for, and its ask comes before the commit that sets that shape.
312
+ **Unsettled product shape needs a decision before implementation.** When a page, navigation entry, table key, customer-scoping rule, or persisted sidecar would set product shape that Sami has not already settled, send a one-line ask before the first implementation commit. A lane's schema decision or a contract two lanes agree does not settle product shape. This does not turn a user-specified decision or routine implementation into an approval request. A control or behaviour the human asked for in words is settled by those words, together with every choice inside it that his words do not make (where it sits, its defaults, its options): build it without an ask, as gate 4 of [Before you ask](#before-you-ask) says. This rule covers only product shape outside what he asked for, and its ask comes before the commit that sets that shape.
314
313
 
315
314
  **Anything you are blocked on a human for is an open ask.** An agent waits on a human only through
316
315
  an open ask. An approval, a credential or grant to renew, a setting only they can change, a review
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/pi-legion-envoy",
3
- "version": "5.30.9",
3
+ "version": "5.30.11",
4
4
  "type": "module",
5
5
  "omp": {
6
6
  "extensions": [