@songsid/agend 2.3.2-beta.10 → 2.3.2-beta.12
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/README.md +4 -0
- package/README.zh-TW.md +4 -0
- package/dist/agent-cli.js +48 -0
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +6 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.js +3 -0
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/backend/kiro-classic-archive.d.ts +52 -0
- package/dist/backend/kiro-classic-archive.js +444 -0
- package/dist/backend/kiro-classic-archive.js.map +1 -0
- package/dist/backend/kiro-identity.d.ts +19 -0
- package/dist/backend/kiro-identity.js +43 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-migration-verify.d.ts +10 -0
- package/dist/backend/kiro-migration-verify.js +52 -0
- package/dist/backend/kiro-migration-verify.js.map +1 -0
- package/dist/backend/kiro-v2-store-worker.js +21 -1
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +8 -0
- package/dist/backend/kiro-v2-store.js.map +1 -1
- package/dist/backend/kiro.d.ts +99 -1
- package/dist/backend/kiro.js +352 -18
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +49 -0
- package/dist/backend/types.js +9 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/ipc-timeouts.js +3 -0
- package/dist/channel/ipc-timeouts.js.map +1 -1
- package/dist/channel/mcp-tools.js +12 -0
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/cli.js +33 -0
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +2 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +45 -0
- package/dist/daemon.js +342 -19
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +15 -4
- package/dist/dashboard-permissions.js +49 -23
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/fleet-control-audit.d.ts +1 -1
- package/dist/fleet-control-audit.js +3 -0
- package/dist/fleet-control-audit.js.map +1 -1
- package/dist/fleet-manager.d.ts +61 -2
- package/dist/fleet-manager.js +421 -28
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/docker-install/SKILL.md +25 -0
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +10 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +28 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +28 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +20 -2
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +20 -2
- package/dist/instance-config-impact.js +2 -2
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +4 -0
- package/dist/instance-lifecycle.js +7 -0
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/kiro-migrate.d.ts +11 -0
- package/dist/kiro-migrate.js +86 -31
- package/dist/kiro-migrate.js.map +1 -1
- package/dist/kiro-session-proof.d.ts +41 -0
- package/dist/kiro-session-proof.js +89 -0
- package/dist/kiro-session-proof.js.map +1 -0
- package/dist/kiro-tui-forensic.d.ts +5 -0
- package/dist/kiro-tui-forensic.js +3 -3
- package/dist/kiro-tui-forensic.js.map +1 -1
- package/dist/locale.js +142 -0
- package/dist/locale.js.map +1 -1
- package/dist/log-service.js +1 -1
- package/dist/log-service.js.map +1 -1
- package/dist/needs-you.d.ts +3 -1
- package/dist/needs-you.js +4 -2
- package/dist/needs-you.js.map +1 -1
- package/dist/office-share.d.ts +12 -2
- package/dist/office-share.js +27 -2
- package/dist/office-share.js.map +1 -1
- package/dist/outbound-schemas.d.ts +39 -0
- package/dist/outbound-schemas.js +29 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/remote-card-prompt.d.ts +38 -0
- package/dist/remote-card-prompt.js +86 -0
- package/dist/remote-card-prompt.js.map +1 -0
- package/dist/settings-change.js +8 -5
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-instance-patch.js +1 -1
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/tool-permissions.js +17 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/transcript-sources.d.ts +1 -0
- package/dist/transcript-sources.js +2 -1
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/ui/chat-store.js +3 -2
- package/dist/ui/chat-strings.js +2 -2
- package/dist/ui/fleet-office-editor.js +54 -2
- package/dist/ui/fleet-office-layout.js +44 -7
- package/dist/ui/fleet-office-pack.d.ts +9 -3
- package/dist/ui/fleet-office-pack.js +117 -19
- package/dist/ui/fleet-office-store.js +43 -0
- package/dist/ui/fleet-office-zones.js +92 -17
- package/dist/ui/fleet-office.js +102 -16
- package/dist/ui/panel-chat.js +14 -2
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/panel-needs.js +1 -1
- package/dist/ui/panel-settings.js +5 -5
- package/dist/ui/settings-model.js +17 -9
- package/dist/ui/settings-strings.js +2 -0
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-stream.js +1 -1
- package/dist/ui/shared/app.css +18 -2
- package/dist/web-api.d.ts +5 -1
- package/dist/web-api.js +91 -3
- package/dist/web-api.js.map +1 -1
- package/dist/web-office-acts.js +2 -2
- package/dist/web-office-acts.js.map +1 -1
- package/dist/web-office-pack-read.d.ts +35 -0
- package/dist/web-office-pack-read.js +252 -0
- package/dist/web-office-pack-read.js.map +1 -0
- package/dist/web-office-pack-tools.d.ts +232 -0
- package/dist/web-office-pack-tools.js +754 -0
- package/dist/web-office-pack-tools.js.map +1 -0
- package/dist/web-office-skins.d.ts +68 -4
- package/dist/web-office-skins.js +318 -33
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-office-store.d.ts +21 -2
- package/dist/web-office-store.js +78 -18
- package/dist/web-office-store.js.map +1 -1
- package/package.json +1 -1
- package/templates/windows-shortcuts.ps1 +16 -15
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-install
|
|
3
|
+
description: Set up AgEnD in Docker for a person, or maintain one — follow the Docker runbook step by step
|
|
4
|
+
roles: [general]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## AgEnD in Docker
|
|
8
|
+
|
|
9
|
+
When a person wants AgEnD in Docker (a trial, a demo, a machine without Node.js), or asks you to maintain an existing
|
|
10
|
+
Docker install, follow the runbook exactly. It has the Dockerfile, entrypoint, compose file, CLI installs, first
|
|
11
|
+
fleet.yaml, verification, updates, backups and troubleshooting:
|
|
12
|
+
|
|
13
|
+
- English: https://github.com/songsid/AgEnD/blob/main/docs/docker.md
|
|
14
|
+
- 繁體中文: https://github.com/songsid/AgEnD/blob/main/docs/docker.zh-TW.md
|
|
15
|
+
|
|
16
|
+
Read the raw file (`https://raw.githubusercontent.com/songsid/AgEnD/main/docs/docker.md`) before you start, and run
|
|
17
|
+
every check it gives.
|
|
18
|
+
|
|
19
|
+
**Rules that hold even without the runbook at hand:**
|
|
20
|
+
- Never run `agend update`, `agend restart`, `agend stop` or `agend install` inside the container, and never `/update`
|
|
21
|
+
in that fleet's chat. Update by rebuilding the image (`docker compose build --pull --no-cache && docker compose up -d`);
|
|
22
|
+
restart with `docker compose restart`.
|
|
23
|
+
- Tokens and API keys go in the compose folder's `.env`, never in fleet.yaml or a chat.
|
|
24
|
+
- The dashboard stays published on `127.0.0.1` unless the person asks otherwise.
|
|
25
|
+
- AgEnD's data, the CLIs and their logins live in the `agend-home` volume: back it up before anything destructive.
|
|
@@ -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,34 @@ 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
|
+
|
|
316
|
+
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
317
|
+
[docs/office.md → Make a skin pack](https://github.com/songsid/AgEnD/blob/main/docs/office.md#make-a-skin-pack). Point people there too when they ask how the Office works.
|
|
318
|
+
|
|
291
319
|
## Limits
|
|
292
320
|
|
|
293
321
|
- At least **30 s** between changes, at most **10 changes an hour** — refused with `rate_limited` and
|
|
@@ -296,6 +296,34 @@ 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
|
+
|
|
324
|
+
The skin-pack manifest format — every key, its ranges, a minimal example — and the limits are in the Office guide:
|
|
325
|
+
[docs/office.md → Make a skin pack](https://github.com/songsid/AgEnD/blob/main/docs/office.md#make-a-skin-pack). Point people there too when they ask how the Office works.
|
|
326
|
+
|
|
299
327
|
## Mods
|
|
300
328
|
|
|
301
329
|
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),
|
|
@@ -250,6 +253,10 @@ Click a team header to fold it. **Find** dims everything that doesn't match. A c
|
|
|
250
253
|
and backend; clicking it opens the chat. List mode adds the description, model, a link to the Discord thread or
|
|
251
254
|
Telegram topic, and **Open chat**.
|
|
252
255
|
|
|
256
|
+
**The Office guide** (`docs/office.md` in the AgEnD repository; `docs/office.zh-TW.md` in Traditional Chinese) is the one page for people: setting up offices, the
|
|
257
|
+
skin-pack manifest format and its limits, Edit layout and seat reservations, bedtime, share links, agents' office and
|
|
258
|
+
pack tools, and rolling back. Point people there for more than the summary below; it marks what is not released yet.
|
|
259
|
+
|
|
253
260
|
**Office** (the third view, remembered per device) draws the same fleet as a pixel office: a room per team, a desk
|
|
254
261
|
per instance with a name tag, General and "Not in a team" in the **Lobby**. Each little person is its state: typing
|
|
255
262
|
with the lamp on (working), tea break (idle), asleep behind a **Closed** sign (paused/stopped), a hand up under a
|
|
@@ -263,7 +270,11 @@ in each (whole teams or single instances; none = everyone) and its style, and up
|
|
|
263
270
|
artist's pictures: `manifest.json` plus PNGs, format v1, kept in `web-office-skins/` in the AgEnD home; the host
|
|
264
271
|
checks every rule — PNG only, each strip exactly frames·w × h, a 16:9 background, size caps — and never changes a
|
|
265
272
|
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).
|
|
273
|
+
ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). #2692: an agent with **Office skin
|
|
274
|
+
packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
|
|
275
|
+
previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
|
|
276
|
+
**Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
|
|
277
|
+
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
278
|
**Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
|
|
268
279
|
**Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
|
|
269
280
|
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 +284,10 @@ Cozy or a pack,
|
|
|
273
284
|
waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
|
|
274
285
|
corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
|
|
275
286
|
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);
|
|
287
|
+
its own night place, **Back to the pack's night place** undoes it (#2665); a selected seat has **Reserved for** (the
|
|
288
|
+
office's members, several allowed) and **Lend when away** (#2691) — whoever it is for sits there first when they come
|
|
289
|
+
to its area, nobody else does unless it is lent while they are all away (a borrower moves off when one comes), and a
|
|
290
|
+
reserved seat's handle is ringed; a pack can reserve seats as well; **Save layout** keeps the moves as that
|
|
277
291
|
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
292
|
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
293
|
only calls and work get bubbles (a few at most) and name tags show on hover or focus. **Hide paused and stopped**
|
|
@@ -314,6 +328,10 @@ A pack may add a `foreground` (a 16:9 PNG over the whole scene, zones packs only
|
|
|
314
328
|
and items in the air, below name tags, bubbles and "+N" — door frames, pillars, table fronts that hide whoever walks
|
|
315
329
|
behind them. A furniture item's `depth` may be `"y"`: drawn among the people by base y (whoever stands lower is in
|
|
316
330
|
front). Numeric depths keep their meaning (under 1000 under the people, 1000 and up over them).
|
|
331
|
+
An item with `activeWhen` may wait for its person (#2698): `"activeOn": "seated"` turns it active only once one of its
|
|
332
|
+
`activeFor` people in that state has arrived at their seat, and back as they walk off (default `"state"`: as the state
|
|
333
|
+
changes); `"hides": true` (needs `activeFor`) stops drawing those people while it is active (walking, they are drawn),
|
|
334
|
+
puts their name tags (one row at the item's tag point) and bubbles on it, and makes hovering or clicking it hit them.
|
|
317
335
|
A pack may set `"straight": true` (#2634): each diagonal leg of a walk becomes an L (across, then up or down), so the
|
|
318
336
|
three walking strips always fit; lay its graph out with horizontal and vertical edges and the corners land on the aisles.
|
|
319
337
|
|
|
@@ -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),
|
|
@@ -261,6 +264,10 @@ Click a team header to fold it. **Find** dims everything that doesn't match. A c
|
|
|
261
264
|
and backend; clicking it opens the chat. List mode adds the description, model, a link to the Discord thread or
|
|
262
265
|
Telegram topic, and **Open chat**.
|
|
263
266
|
|
|
267
|
+
**The Office guide** (`docs/office.md` in the AgEnD repository; `docs/office.zh-TW.md` in Traditional Chinese) is the one page for people: setting up offices, the
|
|
268
|
+
skin-pack manifest format and its limits, Edit layout and seat reservations, bedtime, share links, agents' office and
|
|
269
|
+
pack tools, and rolling back. Point people there for more than the summary below; it marks what is not released yet.
|
|
270
|
+
|
|
264
271
|
**Office** (the third view, remembered per device) draws the same fleet as a pixel office: a room per team, a desk
|
|
265
272
|
per instance with a name tag, General and "Not in a team" in the **Lobby**. Each little person is its state: typing
|
|
266
273
|
with the lamp on (working), tea break (idle), asleep behind a **Closed** sign (paused/stopped), a hand up under a
|
|
@@ -275,7 +282,11 @@ in each (whole teams or single instances; none = everyone) and its style, and up
|
|
|
275
282
|
artist's pictures: `manifest.json` plus PNGs, format v1, kept in `web-office-skins/` in the AgEnD home; the host
|
|
276
283
|
checks every rule — PNG only, each strip exactly frames·w × h, a 16:9 background, size caps — and never changes a
|
|
277
284
|
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).
|
|
285
|
+
ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). #2692: an agent with **Office skin
|
|
286
|
+
packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
|
|
287
|
+
previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
|
|
288
|
+
**Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
|
|
289
|
+
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
290
|
**Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
|
|
280
291
|
**Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
|
|
281
292
|
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 +296,10 @@ Cozy or a pack,
|
|
|
285
296
|
waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
|
|
286
297
|
corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
|
|
287
298
|
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);
|
|
299
|
+
its own night place, **Back to the pack's night place** undoes it (#2665); a selected seat has **Reserved for** (the
|
|
300
|
+
office's members, several allowed) and **Lend when away** (#2691) — whoever it is for sits there first when they come
|
|
301
|
+
to its area, nobody else does unless it is lent while they are all away (a borrower moves off when one comes), and a
|
|
302
|
+
reserved seat's handle is ringed; a pack can reserve seats as well; **Save layout** keeps the moves as that
|
|
289
303
|
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
304
|
handles); narrower, or in fullscreen, they are the bar along the canvas's bottom. Esc is Cancel. While either editor
|
|
291
305
|
is docked the page beside it works, Ctrl+K search included; leaving the page with unsaved changes asks first
|
|
@@ -329,6 +343,10 @@ A pack may add a `foreground` (a 16:9 PNG over the whole scene, zones packs only
|
|
|
329
343
|
and items in the air, below name tags, bubbles and "+N" — door frames, pillars, table fronts that hide whoever walks
|
|
330
344
|
behind them. A furniture item's `depth` may be `"y"`: drawn among the people by base y (whoever stands lower is in
|
|
331
345
|
front). Numeric depths keep their meaning (under 1000 under the people, 1000 and up over them).
|
|
346
|
+
An item with `activeWhen` may wait for its person (#2698): `"activeOn": "seated"` turns it active only once one of its
|
|
347
|
+
`activeFor` people in that state has arrived at their seat, and back as they walk off (default `"state"`: as the state
|
|
348
|
+
changes); `"hides": true` (needs `activeFor`) stops drawing those people while it is active (walking, they are drawn),
|
|
349
|
+
puts their name tags (one row at the item's tag point) and bubbles on it, and makes hovering or clicking it hit them.
|
|
332
350
|
A pack may set `"straight": true` (#2634): each diagonal leg of a walk becomes an L (across, then up or down), so the
|
|
333
351
|
three walking strips always fit; lay its graph out with horizontal and vertical edges and the corners land on the aisles.
|
|
334
352
|
|
|
@@ -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":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC,IAAI,GAAG,CAAuB;IACvG,eAAe;IACf,wBAAwB;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,WAAW;IACX,sFAAsF;IACtF,2BAA2B;IAC3B,wFAAwF;IACxF,qBAAqB;IACrB,oGAAoG;IACpG,WAAW,EAAE,eAAe;
|
|
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}`);
|