@camstack/addon-terminal 0.1.21 → 0.1.22

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/addon.js CHANGED
@@ -19493,6 +19493,39 @@ var snapshotCapability = {
19493
19493
  etag: string().nullable()
19494
19494
  }))),
19495
19495
  /**
19496
+ * The full decision chain for ONE device, for the viewer's debug readout —
19497
+ * the answer to "why does this tile show what it shows" in a single poll:
19498
+ * the battery slice the state was derived from, the resolved state + its
19499
+ * reason, the cached frame's identity/age, whether a wake window is open,
19500
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19501
+ * a debug read must never wake a battery camera.
19502
+ */
19503
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19504
+ /** The battery slice as read, or null when the device has none. */
19505
+ battery: object({
19506
+ sleeping: boolean(),
19507
+ lastUpdated: number(),
19508
+ lastContactAt: number().optional()
19509
+ }).nullable(),
19510
+ /** The resolved snapshot state (what the overlay decision used). */
19511
+ state: object({
19512
+ isBattery: boolean(),
19513
+ reason: _enum([
19514
+ "disabled",
19515
+ "sleeping",
19516
+ "unreachable",
19517
+ "waking"
19518
+ ]).nullable()
19519
+ }),
19520
+ /** The cached frame behind the next paint. */
19521
+ frame: object({
19522
+ capturedAt: number().nullable(),
19523
+ ageMs: number().nullable()
19524
+ }),
19525
+ /** A wake window is currently open (the Waking overlay's source). */
19526
+ waking: boolean()
19527
+ })),
19528
+ /**
19496
19529
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19497
19530
  * that makes those frames current.
19498
19531
  *
@@ -34154,6 +34187,12 @@ Object.freeze({
34154
34187
  addonId: null,
34155
34188
  access: "view"
34156
34189
  },
34190
+ "snapshot.getDebugState": {
34191
+ capName: "snapshot",
34192
+ capScope: "device",
34193
+ addonId: null,
34194
+ access: "view"
34195
+ },
34157
34196
  "snapshot.getSnapshot": {
34158
34197
  capName: "snapshot",
34159
34198
  capScope: "device",
@@ -36751,6 +36790,11 @@ Object.freeze({
36751
36790
  form: "single",
36752
36791
  optional: false
36753
36792
  }],
36793
+ "snapshot.getDebugState": [{
36794
+ name: "deviceId",
36795
+ form: "single",
36796
+ optional: false
36797
+ }],
36754
36798
  "snapshot.getSnapshot": [{
36755
36799
  name: "deviceId",
36756
36800
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19470,6 +19470,39 @@ var snapshotCapability = {
19470
19470
  etag: string().nullable()
19471
19471
  }))),
19472
19472
  /**
19473
+ * The full decision chain for ONE device, for the viewer's debug readout —
19474
+ * the answer to "why does this tile show what it shows" in a single poll:
19475
+ * the battery slice the state was derived from, the resolved state + its
19476
+ * reason, the cached frame's identity/age, whether a wake window is open,
19477
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19478
+ * a debug read must never wake a battery camera.
19479
+ */
19480
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19481
+ /** The battery slice as read, or null when the device has none. */
19482
+ battery: object({
19483
+ sleeping: boolean(),
19484
+ lastUpdated: number(),
19485
+ lastContactAt: number().optional()
19486
+ }).nullable(),
19487
+ /** The resolved snapshot state (what the overlay decision used). */
19488
+ state: object({
19489
+ isBattery: boolean(),
19490
+ reason: _enum([
19491
+ "disabled",
19492
+ "sleeping",
19493
+ "unreachable",
19494
+ "waking"
19495
+ ]).nullable()
19496
+ }),
19497
+ /** The cached frame behind the next paint. */
19498
+ frame: object({
19499
+ capturedAt: number().nullable(),
19500
+ ageMs: number().nullable()
19501
+ }),
19502
+ /** A wake window is currently open (the Waking overlay's source). */
19503
+ waking: boolean()
19504
+ })),
19505
+ /**
19473
19506
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19474
19507
  * that makes those frames current.
19475
19508
  *
@@ -34131,6 +34164,12 @@ Object.freeze({
34131
34164
  addonId: null,
34132
34165
  access: "view"
34133
34166
  },
34167
+ "snapshot.getDebugState": {
34168
+ capName: "snapshot",
34169
+ capScope: "device",
34170
+ addonId: null,
34171
+ access: "view"
34172
+ },
34134
34173
  "snapshot.getSnapshot": {
34135
34174
  capName: "snapshot",
34136
34175
  capScope: "device",
@@ -36728,6 +36767,11 @@ Object.freeze({
36728
36767
  form: "single",
36729
36768
  optional: false
36730
36769
  }],
36770
+ "snapshot.getDebugState": [{
36771
+ name: "deviceId",
36772
+ form: "single",
36773
+ optional: false
36774
+ }],
36731
36775
  "snapshot.getSnapshot": [{
36732
36776
  name: "deviceId",
36733
36777
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-terminal",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "Interactive terminal sessions (pty + xterm) as a CamStack addon",
5
5
  "keywords": [
6
6
  "camstack",