@kangentic/protocol 0.21.0 → 0.22.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.
@@ -182,9 +182,10 @@ export interface SessionUsageWire {
182
182
  * task, which is what makes it meaningful for a completed one: a task worked
183
183
  * across five `--resume` legs has five session rows, and reporting only the
184
184
  * final leg would under-report everything. The desktop's getSummaryForTask
185
- * owns those aggregation rules (SUM cost/duration/tool calls/lines, MAX files
186
- * changed, and tokens taken as the latest row per session lineage so a
187
- * resumed session is not double-counted) - they are not re-derived here.
185
+ * owns those aggregation rules - they are not re-derived here. Cost, duration
186
+ * and tokens are each conversation's cumulative reading, so they count once per
187
+ * session lineage and add across lineages; tool calls and lines SUM; files
188
+ * changed takes the MAX.
188
189
  *
189
190
  * `sessionId` is the transcript ANCHOR, not a live session: it resolves
190
191
  * through the desktop's session records, which outlive the agent, so it reads
@@ -465,6 +466,34 @@ export interface BoardTaskWire {
465
466
  * key from every real wire response.
466
467
  */
467
468
  pausable?: boolean | null;
469
+ /**
470
+ * True when column automations are off for this task: no On task enter, On
471
+ * agent turn end or On task exit row runs for it in any column, and a move
472
+ * types no column message. Column settings, a hand's moves and the task's own
473
+ * first command are untouched. It is the fact the desktop card's "Automations
474
+ * disabled" strip reads, and the desktop menu's Enable or Disable automations
475
+ * row flips it.
476
+ *
477
+ * There is no verb for it. A phone flips it with the `board-tool-write`
478
+ * `update_task` call, whose param is camelCase: `automationsDisabled: true`
479
+ * or `false`, never `automations_disabled`. A workflow task always reads
480
+ * false, because its workflow's Pause holds it, and `update_task` refuses
481
+ * `true` for one. Hide the control while `workflow` is non-null, as the
482
+ * desktop menu does.
483
+ *
484
+ * The desktop also clears it by itself: when the task leaves Done (a rollback
485
+ * of a failed move excepted), when it is restored from the archive, and when
486
+ * it joins a workflow. Every change, by any hand, reaches the phone as a
487
+ * `task-updated` board event, after which the next snapshot carries the new
488
+ * value.
489
+ *
490
+ * Null or absent means a desktop that predates the field (pre-0.22.0). A
491
+ * client offers no control then, since it cannot read the switch's state.
492
+ *
493
+ * Declared OPTIONAL (`?`) like `pausable`; `parseBoardTaskWire` populates the
494
+ * key from every real wire response.
495
+ */
496
+ automations_disabled?: boolean | null;
468
497
  /**
469
498
  * The workflow the task belongs to (a set of linked tasks that runs through
470
499
  * its boards by itself), or null for an ordinary task. Absent from desktops
package/dist/index.cjs CHANGED
@@ -5511,6 +5511,7 @@ function parseBoardTaskWire(value) {
5511
5511
  resumable: nullableBoolean(value, "resumable"),
5512
5512
  paused: nullableBoolean(value, "paused"),
5513
5513
  pausable: nullableBoolean(value, "pausable"),
5514
+ automations_disabled: nullableBoolean(value, "automations_disabled"),
5514
5515
  workflow: parseBoardTaskWorkflowWire(value.workflow)
5515
5516
  };
5516
5517
  }
package/dist/index.mjs CHANGED
@@ -5371,6 +5371,7 @@ function parseBoardTaskWire(value) {
5371
5371
  resumable: nullableBoolean(value, "resumable"),
5372
5372
  paused: nullableBoolean(value, "paused"),
5373
5373
  pausable: nullableBoolean(value, "pausable"),
5374
+ automations_disabled: nullableBoolean(value, "automations_disabled"),
5374
5375
  workflow: parseBoardTaskWorkflowWire(value.workflow)
5375
5376
  };
5376
5377
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kangentic/protocol",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "description": "Kangentic mobile bridge wire protocol: framing, Noise-based pairing and session handshakes, signed device roster, and capability verbs shared between desktop and mobile.",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",