@songsid/agend 2.3.2-beta.10 → 2.3.2-beta.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.
Files changed (128) hide show
  1. package/dist/agent-cli.js +48 -0
  2. package/dist/agent-cli.js.map +1 -1
  3. package/dist/agent-endpoint.js +6 -0
  4. package/dist/agent-endpoint.js.map +1 -1
  5. package/dist/agent-whats-new.js +3 -0
  6. package/dist/agent-whats-new.js.map +1 -1
  7. package/dist/backend/kiro-classic-archive.d.ts +52 -0
  8. package/dist/backend/kiro-classic-archive.js +444 -0
  9. package/dist/backend/kiro-classic-archive.js.map +1 -0
  10. package/dist/backend/kiro-identity.d.ts +19 -0
  11. package/dist/backend/kiro-identity.js +43 -0
  12. package/dist/backend/kiro-identity.js.map +1 -1
  13. package/dist/backend/kiro-migration-verify.d.ts +10 -0
  14. package/dist/backend/kiro-migration-verify.js +52 -0
  15. package/dist/backend/kiro-migration-verify.js.map +1 -0
  16. package/dist/backend/kiro-v2-store-worker.js +21 -1
  17. package/dist/backend/kiro-v2-store-worker.js.map +1 -1
  18. package/dist/backend/kiro-v2-store.d.ts +8 -0
  19. package/dist/backend/kiro-v2-store.js.map +1 -1
  20. package/dist/backend/kiro.d.ts +99 -1
  21. package/dist/backend/kiro.js +352 -18
  22. package/dist/backend/kiro.js.map +1 -1
  23. package/dist/backend/types.d.ts +49 -0
  24. package/dist/backend/types.js +9 -0
  25. package/dist/backend/types.js.map +1 -1
  26. package/dist/channel/ipc-timeouts.js +3 -0
  27. package/dist/channel/ipc-timeouts.js.map +1 -1
  28. package/dist/channel/mcp-tools.js +12 -0
  29. package/dist/channel/mcp-tools.js.map +1 -1
  30. package/dist/cli.js +33 -0
  31. package/dist/cli.js.map +1 -1
  32. package/dist/config-validator.js +2 -0
  33. package/dist/config-validator.js.map +1 -1
  34. package/dist/config.js +2 -0
  35. package/dist/config.js.map +1 -1
  36. package/dist/daemon.d.ts +45 -0
  37. package/dist/daemon.js +342 -19
  38. package/dist/daemon.js.map +1 -1
  39. package/dist/dashboard-permissions.d.ts +15 -4
  40. package/dist/dashboard-permissions.js +49 -23
  41. package/dist/dashboard-permissions.js.map +1 -1
  42. package/dist/fleet-control-audit.d.ts +1 -1
  43. package/dist/fleet-control-audit.js +3 -0
  44. package/dist/fleet-control-audit.js.map +1 -1
  45. package/dist/fleet-manager.d.ts +61 -2
  46. package/dist/fleet-manager.js +421 -28
  47. package/dist/fleet-manager.js.map +1 -1
  48. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +10 -0
  49. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +25 -0
  50. package/dist/general-knowledge/skills/web-appearance/SKILL.md +25 -0
  51. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +12 -2
  52. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +12 -2
  53. package/dist/instance-config-impact.js +2 -2
  54. package/dist/instance-config-impact.js.map +1 -1
  55. package/dist/instance-lifecycle.d.ts +4 -0
  56. package/dist/instance-lifecycle.js +7 -0
  57. package/dist/instance-lifecycle.js.map +1 -1
  58. package/dist/kiro-migrate.d.ts +11 -0
  59. package/dist/kiro-migrate.js +86 -31
  60. package/dist/kiro-migrate.js.map +1 -1
  61. package/dist/kiro-session-proof.d.ts +41 -0
  62. package/dist/kiro-session-proof.js +89 -0
  63. package/dist/kiro-session-proof.js.map +1 -0
  64. package/dist/kiro-tui-forensic.d.ts +5 -0
  65. package/dist/kiro-tui-forensic.js +3 -3
  66. package/dist/kiro-tui-forensic.js.map +1 -1
  67. package/dist/locale.js +142 -0
  68. package/dist/locale.js.map +1 -1
  69. package/dist/log-service.js +1 -1
  70. package/dist/log-service.js.map +1 -1
  71. package/dist/needs-you.d.ts +3 -1
  72. package/dist/needs-you.js +4 -2
  73. package/dist/needs-you.js.map +1 -1
  74. package/dist/office-share.d.ts +12 -2
  75. package/dist/office-share.js +27 -2
  76. package/dist/office-share.js.map +1 -1
  77. package/dist/outbound-schemas.d.ts +39 -0
  78. package/dist/outbound-schemas.js +29 -0
  79. package/dist/outbound-schemas.js.map +1 -1
  80. package/dist/remote-card-prompt.d.ts +38 -0
  81. package/dist/remote-card-prompt.js +86 -0
  82. package/dist/remote-card-prompt.js.map +1 -0
  83. package/dist/settings-change.js +8 -5
  84. package/dist/settings-change.js.map +1 -1
  85. package/dist/settings-instance-patch.js +1 -1
  86. package/dist/settings-instance-patch.js.map +1 -1
  87. package/dist/tool-permissions.js +17 -0
  88. package/dist/tool-permissions.js.map +1 -1
  89. package/dist/transcript-sources.d.ts +1 -0
  90. package/dist/transcript-sources.js +2 -1
  91. package/dist/transcript-sources.js.map +1 -1
  92. package/dist/types.d.ts +5 -0
  93. package/dist/ui/chat-store.js +3 -2
  94. package/dist/ui/chat-strings.js +2 -2
  95. package/dist/ui/fleet-office-editor.js +54 -2
  96. package/dist/ui/fleet-office-layout.js +44 -7
  97. package/dist/ui/fleet-office-pack.d.ts +6 -1
  98. package/dist/ui/fleet-office-pack.js +101 -15
  99. package/dist/ui/fleet-office-store.js +43 -0
  100. package/dist/ui/fleet-office-zones.js +64 -13
  101. package/dist/ui/fleet-office.js +5 -3
  102. package/dist/ui/panel-chat.js +14 -2
  103. package/dist/ui/panel-log.js +2 -2
  104. package/dist/ui/panel-needs.js +1 -1
  105. package/dist/ui/panel-settings.js +5 -5
  106. package/dist/ui/settings-model.js +17 -9
  107. package/dist/ui/settings-strings.js +2 -0
  108. package/dist/ui/shared/app-i18n.js +2 -2
  109. package/dist/ui/shared/app-stream.js +1 -1
  110. package/dist/ui/shared/app.css +18 -2
  111. package/dist/web-api.d.ts +5 -1
  112. package/dist/web-api.js +91 -3
  113. package/dist/web-api.js.map +1 -1
  114. package/dist/web-office-acts.js +2 -2
  115. package/dist/web-office-acts.js.map +1 -1
  116. package/dist/web-office-pack-read.d.ts +35 -0
  117. package/dist/web-office-pack-read.js +252 -0
  118. package/dist/web-office-pack-read.js.map +1 -0
  119. package/dist/web-office-pack-tools.d.ts +232 -0
  120. package/dist/web-office-pack-tools.js +754 -0
  121. package/dist/web-office-pack-tools.js.map +1 -0
  122. package/dist/web-office-skins.d.ts +68 -4
  123. package/dist/web-office-skins.js +318 -33
  124. package/dist/web-office-skins.js.map +1 -1
  125. package/dist/web-office-store.d.ts +5 -2
  126. package/dist/web-office-store.js +41 -15
  127. package/dist/web-office-store.js.map +1 -1
  128. package/package.json +1 -1
@@ -63,6 +63,16 @@ coordinator-level tool; you do not have it). It carries the conversation: the in
63
63
  resumed once under the TUI and becomes its own. A fleet admin confirms each move in this General topic: a
64
64
  "Move it / Cancel" prompt. Explain it if asked; never press it on the user's behalf.
65
65
 
66
+ The Confirm prompt warns about sudo/interactive passwords and explains both launches. AgEnD requires an idle
67
+ instance, a supported Kiro 2.34+ version and a known model. It carries once, verifies the owned V2 reader, then does
68
+ an ordinary restart: while the target CLI is stopped, it archives the exact frozen classic rows before removing
69
+ the duplicate from Kiro's index. It verifies the same conversation/model and attached V2 transcript again, and
70
+ reports the forensic verdict in General and the instance's topic. Queued work waits until this finishes. Failure
71
+ stops and error-pauses the instance; inspect the cause before an explicit retry. Never use a fresh conversation
72
+ or classic as a recovery shortcut. Archives are private and restorable with `agend kiro restore-classic` (see CLI docs).
73
+ The raw Log-history gate remains closed: the verification proves the launched/pinned reader, not ongoing pane
74
+ session identity after `/chat` or `/clear`.
75
+
66
76
  - After the move, `kiro_engine_status` shows `kiro_ui: tui` and `engine_floor: "tui"`.
67
77
  - It is one-way. AgEnD refuses to launch a moved instance on classic again, because that would resume the frozen
68
78
  classic copy and lose everything done since. A refusal that names the engine floor means someone set `kiro_ui`
@@ -288,6 +288,31 @@ are not in your list), you can direct your own character for a moment:
288
288
  { "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
289
289
  ```
290
290
 
291
+ ## Office skin packs (everyone's)
292
+
293
+ The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
294
+ **office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
295
+ tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
296
+
297
+ - `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
298
+ version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
299
+ `approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
300
+ `limits` and what is `left` of your hour.
301
+ - `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
302
+ first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
303
+ directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
304
+ files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
305
+ - `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
306
+ any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
307
+ longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
308
+ and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
309
+ them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again.
310
+ - `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
311
+ `office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
312
+ built-in style (pixel, studio, cozy).
313
+ - Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
314
+ hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
315
+
291
316
  ## Limits
292
317
 
293
318
  - At least **30 s** between changes, at most **10 changes an hour** — refused with `rate_limited` and
@@ -296,6 +296,31 @@ are not in your list), you can direct your own character for a moment:
296
296
  { "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
297
297
  ```
298
298
 
299
+ ## Office skin packs (everyone's)
300
+
301
+ The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
302
+ **office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
303
+ tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
304
+
305
+ - `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
306
+ version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
307
+ `approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
308
+ `limits` and what is `left` of your hour.
309
+ - `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
310
+ first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
311
+ directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
312
+ files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
313
+ - `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
314
+ any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
315
+ longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
316
+ and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
317
+ them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again.
318
+ - `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
319
+ `office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
320
+ built-in style (pixel, studio, cozy).
321
+ - Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
322
+ hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
323
+
299
324
  ## Mods
300
325
 
301
326
  A mod is one file, `<name>-<version>.agendmod.json`, that carries a look: a theme with its pictures, card text,
@@ -187,6 +187,9 @@ tab title. Items, grouped by instance, oldest first:
187
187
  - the instance: "Paused: sign-in needed", "Crashed";
188
188
  - deliveries from the last 24 h: "Could not confirm delivery", "Delivery failed" (source → target · kind).
189
189
 
190
+ "Asking you a question" is a kiro V3 question card, posted to the instance's chat with a button per answer and a box
191
+ for answering in words (on Discord/Telegram: reply to the post); an MCP input request offers Decline / Cancel and is
192
+ filled in at the terminal (View).
190
193
  A prompt shows its own answer buttons (first answer wins); a delivery has **Acknowledge** (clears it everywhere);
191
194
  "Paused: sign-in needed" has **Sign in** when the dashboard can run that login (#2233); every item has **Open chat**. **Notify me on this device** (Turn on / Turn off) gives desktop notifications while the
192
195
  tab is hidden — per browser, not on phones or plain-HTTP addresses. Config: `needs_you.live_message` (default on),
@@ -263,7 +266,11 @@ in each (whole teams or single instances; none = everyone) and its style, and up
263
266
  artist's pictures: `manifest.json` plus PNGs, format v1, kept in `web-office-skins/` in the AgEnD home; the host
264
267
  checks every rule — PNG only, each strip exactly frames·w × h, a 16:9 background, size caps — and never changes a
265
268
  pack; a strip may give its displayed size, `dw`/`dh`, apart from its pictures' size, and a character may walk four
266
- ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). **Style** (per browser for the whole fleet, per office for a stored one): **Desks**,
269
+ ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). #2692: an agent with **Office skin
270
+ packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
271
+ previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
272
+ **Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
273
+ buttons in General); every change is logged and told in General. **Style** (per browser for the whole fleet, per office for a stored one): **Desks**,
267
274
  **Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
268
275
  **Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
269
276
  restyle it; the default for a browser that has not picked a style and for a new office — a saved office keeps its
@@ -273,7 +280,10 @@ Cozy or a pack,
273
280
  waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
274
281
  corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
275
282
  picture faint, a moon, a line to its day place; on the day place while it sleeps in place) — drag it to give the item
276
- its own night place, **Back to the pack's night place** undoes it (#2665); **Save layout** keeps the moves as that
283
+ its own night place, **Back to the pack's night place** undoes it (#2665); a selected seat has **Reserved for** (the
284
+ office's members, several allowed) and **Lend when away** (#2691) — whoever it is for sits there first when they come
285
+ to its area, nobody else does unless it is lent while they are all away (a borrower moves off when one comes), and a
286
+ reserved seat's handle is ringed; a pack can reserve seats as well; **Save layout** keeps the moves as that
277
287
  office's overrides (the pack stays as uploaded), **Reset** goes back to the pack's own. While it is open the office picker and Edit offices wait (**Cancel** closes it); if someone
278
288
  saved the offices meanwhile, Save says so and keeps your layout — Save again puts it on the current list. A crowded area packs extra people into a tighter grid, then shows "+N" in its corner; there
279
289
  only calls and work get bubbles (a few at most) and name tags show on hover or focus. **Hide paused and stopped**
@@ -196,6 +196,9 @@ tab title. Items, grouped by instance, oldest first:
196
196
  - the instance: "Paused: sign-in needed", "Crashed";
197
197
  - deliveries from the last 24 h: "Could not confirm delivery", "Delivery failed" (source → target · kind).
198
198
 
199
+ "Asking you a question" is a kiro V3 question card, posted to the instance's chat with a button per answer and a box
200
+ for answering in words (on Discord/Telegram: reply to the post); an MCP input request offers Decline / Cancel and is
201
+ filled in at the terminal (View).
199
202
  A prompt shows its own answer buttons (first answer wins); a delivery has **Acknowledge** (clears it everywhere);
200
203
  "Paused: sign-in needed" has **Sign in** when the dashboard can run that login (#2233); every item has **Open chat**. **Notify me on this device** (Turn on / Turn off) gives desktop notifications while the
201
204
  tab is hidden — per browser, not on phones or plain-HTTP addresses. Config: `needs_you.live_message` (default on),
@@ -275,7 +278,11 @@ in each (whole teams or single instances; none = everyone) and its style, and up
275
278
  artist's pictures: `manifest.json` plus PNGs, format v1, kept in `web-office-skins/` in the AgEnD home; the host
276
279
  checks every rule — PNG only, each strip exactly frames·w × h, a 16:9 background, size caps — and never changes a
277
280
  pack; a strip may give its displayed size, `dw`/`dh`, apart from its pictures' size, and a character may walk four
278
- ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). **Style** (per browser for the whole fleet, per office for a stored one): **Desks**,
281
+ ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). #2692: an agent with **Office skin
282
+ packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
283
+ previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
284
+ **Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
285
+ buttons in General); every change is logged and told in General. **Style** (per browser for the whole fleet, per office for a stored one): **Desks**,
279
286
  **Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
280
287
  **Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
281
288
  restyle it; the default for a browser that has not picked a style and for a new office — a saved office keeps its
@@ -285,7 +292,10 @@ Cozy or a pack,
285
292
  waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
286
293
  corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
287
294
  picture faint, a moon, a line to its day place; on the day place while it sleeps in place) — drag it to give the item
288
- its own night place, **Back to the pack's night place** undoes it (#2665); **Save layout** keeps the moves as that
295
+ its own night place, **Back to the pack's night place** undoes it (#2665); a selected seat has **Reserved for** (the
296
+ office's members, several allowed) and **Lend when away** (#2691) — whoever it is for sits there first when they come
297
+ to its area, nobody else does unless it is lent while they are all away (a borrower moves off when one comes), and a
298
+ reserved seat's handle is ringed; a pack can reserve seats as well; **Save layout** keeps the moves as that
289
299
  office's overrides (the pack stays as uploaded), **Reset** goes back to the pack's own. On a screen ≥1200 px its controls sit in the right-hand panel (the canvas whole for the
290
300
  handles); narrower, or in fullscreen, they are the bar along the canvas's bottom. Esc is Cancel. While either editor
291
301
  is docked the page beside it works, Ctrl+K search included; leaving the page with unsaved changes asks first
@@ -39,7 +39,7 @@ export const HOT_INSTANCE_CONFIG_KEYS = new Set([
39
39
  // #2303: the fleet reads it at each task board claim; the daemon only keeps it current.
40
40
  "board_cards_at_once",
41
41
  // The fleet reads it at each tool call; the daemon keeps it current for the next spawn's tool menu.
42
- "dashboard", "office_access",
42
+ "dashboard", "office_access", "office_pack_access",
43
43
  ]);
44
44
  /**
45
45
  * The hot keys a ClassicBot channel edit can use.
@@ -75,7 +75,7 @@ const INSTANCE_FIELDS = [
75
75
  // #2303: read by the fleet at each task board claim.
76
76
  "board_cards_at_once",
77
77
  // Read by the fleet at each tool call (dashboard-permissions.ts).
78
- "dashboard", "office_access",
78
+ "dashboard", "office_access", "office_pack_access",
79
79
  ];
80
80
  /** ClassicBot channel fields the settings page renders. */
81
81
  const CLASSIC_FIELDS = [
@@ -1 +1 @@
1
- {"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,10 @@ export interface LifecycleContext {
108
108
  notifyInstanceTopic(name: string, text: string): boolean | void;
109
109
  /** Notify the blocked instance and offer an interactive assist action in General. */
110
110
  notifyInteractivePrompt(name: string, kind: string): Promise<void>;
111
+ /** #2675: a card the CLI shows in place of its composer: put it to the people who talk to the instance, with its answers. */
112
+ postRemoteCard?(name: string, card: import("./backend/types.js").RemoteCard): Promise<void>;
113
+ /** #2675: that card is gone from the screen: its post's buttons collapse. */
114
+ retireRemoteCard?(name: string, identity: string | null): void;
111
115
  /** #1386: an instance's interaction observation, pause or wake changed ("Needs you" recomputes at once, not at its tick). */
112
116
  onAttentionChanged?(name: string): void;
113
117
  /**
@@ -940,6 +940,13 @@ export class InstanceLifecycle {
940
940
  }
941
941
  await this.ctx.notifyInteractivePrompt(name, data.kind);
942
942
  }, this.ctx.logger, `daemon.interactive_prompt[${name}]`));
943
+ daemon.on("remote_card", safeHandler(async (data) => {
944
+ this.ctx.eventLog?.insert(name, "remote_card", { kind: data.card.kind });
945
+ await this.ctx.postRemoteCard?.(name, data.card);
946
+ }, this.ctx.logger, `daemon.remote_card[${name}]`));
947
+ daemon.on("remote_card_gone", safeHandler((data) => {
948
+ this.ctx.retireRemoteCard?.(name, data.identity);
949
+ }, this.ctx.logger, `daemon.remote_card_gone[${name}]`));
943
950
  daemon.on("pty_error", safeHandler(async (data) => {
944
951
  this.ctx.eventLog?.insert(name, "pty_error", { type: data.type, action: data.action });
945
952
  this.ctx.logger.warn({ name, errorType: data.type, action: data.action }, `PTY error: ${data.message}`);