@songsid/agend 2.3.2-beta.16 → 2.3.2-beta.17
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 +2 -0
- package/README.zh-TW.md +2 -0
- package/dist/backend/claude-code.js +23 -1
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/kiro.d.ts +2 -0
- package/dist/backend/kiro.js +7 -0
- package/dist/backend/kiro.js.map +1 -1
- package/dist/channel/mcp-tools.js +2 -2
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/fleet-manager.js +3 -4
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +5 -3
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +1 -1
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +24 -0
- package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +3 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +3 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +17 -8
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +17 -8
- package/dist/kiro-reconcile.js +11 -3
- package/dist/kiro-reconcile.js.map +1 -1
- package/dist/locale.js +4 -0
- package/dist/locale.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,11 +38,13 @@ For `backend: kiro-cli` instances, `kiro_ui` selects the CLI's UI/agent profile:
|
|
|
38
38
|
instances:
|
|
39
39
|
my-kiro:
|
|
40
40
|
backend: kiro-cli
|
|
41
|
-
kiro_ui:
|
|
42
|
-
# kiro_ui:
|
|
41
|
+
kiro_ui: tui # what every new kiro instance is written with (#2598)
|
|
42
|
+
# kiro_ui: legacy # the classic engine; also what an entry with no kiro_ui runs
|
|
43
43
|
```
|
|
44
44
|
`kiro_ui: v3` is refused by validation — do not set it.
|
|
45
|
-
|
|
45
|
+
kiro-cli 3.0 drops the classic engine. Never change `kiro_ui` by hand to move an instance: that starts it on an
|
|
46
|
+
empty conversation. An existing classic instance moves with its conversation through `migrate_kiro_instance`
|
|
47
|
+
(the kiro-engine-migration skill). Ignored by other backends.
|
|
46
48
|
|
|
47
49
|
## Reply completion guard
|
|
48
50
|
|
|
@@ -35,7 +35,7 @@ agend update --yes # from a fleet session: the installed channel's la
|
|
|
35
35
|
agend update --version 2.2.0 --yes # a specific version
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
It installs the selected release, checks the install, and restarts the fleet service. `--alpha` / `--beta` / `--stable` pick a channel; details in docs/cli.md.
|
|
38
|
+
It installs the selected release, checks the install, and restarts the fleet service. `--alpha` / `--beta` / `--stable` pick a channel; details in docs/cli.md. A beta install stays on the beta channel: to move it to the stable release (for example from a 2.3.2 beta to 2.3.2), use `agend update --stable --yes`, and only when the user asked for it.
|
|
39
39
|
|
|
40
40
|
**Manual restart (if update isn't needed):**
|
|
41
41
|
```bash
|
|
@@ -43,6 +43,7 @@ The user has already been shown the plain notice in this topic. When they ask, e
|
|
|
43
43
|
- **Go back to a kiro-cli version that ran them.** `history` shows which versions launches were prepared
|
|
44
44
|
with; the user knows which of those worked. Installing such a version again is the likely way back, but
|
|
45
45
|
do not promise it. The user, or whoever administers the host, does this; you do not.
|
|
46
|
+
- **Move it to the TUI engine** with its conversation (below), if the user wants that.
|
|
46
47
|
- **Wait for AgEnD's migration to V3.** It will convert each conversation once, verify it, and switch the
|
|
47
48
|
instance, one instance at a time and only with the user's confirmation. It is not available yet: say so
|
|
48
49
|
plainly, and never promise a date.
|
|
@@ -73,11 +74,34 @@ or classic as a recovery shortcut. Archives are private and restorable with `age
|
|
|
73
74
|
The raw Log-history gate remains closed: the verification proves the launched/pinned reader, not ongoing pane
|
|
74
75
|
session identity after `/chat` or `/clear`.
|
|
75
76
|
|
|
77
|
+
- **After a `/compact`** classic kiro continues under a new conversation id. The move follows the same proven
|
|
78
|
+
compaction chain a classic restart follows and carries the newest conversation. When the chain can't be proven
|
|
79
|
+
(the store can't be read, two conversations continue the old one, or one belongs to another instance), the move
|
|
80
|
+
is refused and nothing changes: tell the user why, don't retry with `start_fresh`.
|
|
76
81
|
- After the move, `kiro_engine_status` shows `kiro_ui: tui` and `engine_floor: "tui"`.
|
|
77
82
|
- It is one-way. AgEnD refuses to launch a moved instance on classic again, because that would resume the frozen
|
|
78
83
|
classic copy and lose everything done since. A refusal that names the engine floor means someone set `kiro_ui`
|
|
79
84
|
back. The fix is to set it to `tui` again, never to remove the floor.
|
|
80
85
|
|
|
86
|
+
## Other kiro behaviour users ask about
|
|
87
|
+
|
|
88
|
+
- **kiro never updates itself under AgEnD.** Every kiro process AgEnD starts carries `KIRO_NO_AUTO_UPDATE=1`, so a
|
|
89
|
+
self-update to kiro-cli 3.0 can't break classic instances. `app.disableAutoupdates: true` in
|
|
90
|
+
`~/.kiro/settings/cli.json` also stops kiro-cli's own updates; that file is the user's to change, not yours.
|
|
91
|
+
- **Classic restarts follow a `/compact` (#2714, #2738)** to the conversation kiro kept writing, only on proof it is
|
|
92
|
+
this instance's. When it can't be proven, or the check passes its 30 s / 2 GiB limit, the instance resumes the
|
|
93
|
+
conversation on record and the Log tab says why.
|
|
94
|
+
- **Two conversations after an interrupted carry (#2753).** When a stopped TUI instance has its original carried
|
|
95
|
+
conversation and a newer one with work, recovery holds instead of choosing. `reconcile_kiro_instance` (full and
|
|
96
|
+
coordinator tool sets) asks a fleet admin to confirm, in General, keeping the original and archiving the named
|
|
97
|
+
newer one intact. Offer it only after the user chose those exact ids; docs/kiro-reconciliation.md explains it.
|
|
98
|
+
- **"Kiro's terminal is in use by another program" (#2682).** While a kiro pane runs `/editor`, `/transcript`, a
|
|
99
|
+
`!` command or a focused `/kvim` panel (legacy: `/editor`, `/reply`, `!`), AgEnD holds deliveries. Tell the user
|
|
100
|
+
to finish or close that program in the instance's pane; held messages go in once kiro's input row is back.
|
|
101
|
+
- **A retired model (#2648).** An instance with no model of its own whose saved conversation uses a model kiro no
|
|
102
|
+
longer offers resumes on kiro's default model and says so once. One configured to use that model is told once to
|
|
103
|
+
pick another; it is never switched.
|
|
104
|
+
|
|
81
105
|
## One kiro agent per instance (#906)
|
|
82
106
|
|
|
83
107
|
Since kiro-cli 2.21, each AgEnD kiro instance (tui / v2 engine) runs as its own kiro agent, holding only its own
|
|
@@ -151,7 +151,7 @@ for ts, sid in sorted(out, reverse=True):
|
|
|
151
151
|
```
|
|
152
152
|
It opens many files, but only one line each, so it stays cheap.
|
|
153
153
|
|
|
154
|
-
**Restore:** `codex exec resume <session-id> "<prompt>"` non-interactively, or `codex resume <session-id>` for the TUI (bare `codex resume` opens a picker). AgEnD launches `codex resume <id>` with the thread recorded for this exact directory; `codex resume --last` is only its fallback (an unreadable session DB, no other codex instance in the repository). The ID argument also accepts a session *name*.
|
|
154
|
+
**Restore:** `codex exec resume <session-id> "<prompt>"` non-interactively, or `codex resume <session-id>` for the TUI (bare `codex resume` opens a picker). AgEnD launches `codex resume <id>` with the thread recorded for this exact directory; `codex resume --last` is only its fallback (an unreadable session DB, no other codex instance in the repository). On a machine where Codex never ran, a missing session DB means a new conversation, with no warning (#2743). The ID argument also accepts a session *name*.
|
|
155
155
|
|
|
156
156
|
**Summary:** ❌ none available without parsing. `session_meta` carries only id/cwd/timestamp; to describe a session you must read further `event_msg` lines. Tell the user the timestamp and let them pick, rather than guessing at a topic.
|
|
157
157
|
|
|
@@ -18,7 +18,7 @@ instances:
|
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
**kiro_ui 模式差異:**
|
|
21
|
-
- `kiro_ui: tui`:Kiro v2 TUI
|
|
21
|
+
- `kiro_ui: tui`:Kiro v2 TUI(新建立的 kiro instance 都會寫入這個值;沒設定 `kiro_ui` 的既有項目仍是 `legacy`);本 skill 適用。
|
|
22
22
|
- `kiro_ui: v3`:目前會被設定驗證拒絕,不要設定。
|
|
23
23
|
- `kiro_ui: legacy`:舊 UI,互動行為不同,本 skill 不適用。
|
|
24
24
|
|
|
@@ -306,7 +306,9 @@ tools are not in your list), you can publish them yourself instead of asking a p
|
|
|
306
306
|
any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
|
|
307
307
|
longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
|
|
308
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.
|
|
309
|
+
them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again. A pending change that drops layout entries is applied
|
|
310
|
+
only if it still drops exactly the entries its notice named: if an office was edited meanwhile, the approval is
|
|
311
|
+
refused and you send the change again (#2695).
|
|
310
312
|
- `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
|
|
311
313
|
`office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
|
|
312
314
|
built-in style (pixel, studio, cozy).
|
|
@@ -314,7 +314,9 @@ tools are not in your list), you can publish them yourself instead of asking a p
|
|
|
314
314
|
any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
|
|
315
315
|
longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
|
|
316
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.
|
|
317
|
+
them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again. A pending change that drops layout entries is applied
|
|
318
|
+
only if it still drops exactly the entries its notice named: if an office was edited meanwhile, the approval is
|
|
319
|
+
refused and you send the change again (#2695).
|
|
318
320
|
- `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
|
|
319
321
|
`office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
|
|
320
322
|
built-in style (pixel, studio, cozy).
|
|
@@ -83,7 +83,7 @@ who is not a fleet admin gets a code privately, by sending `/web` or from an adm
|
|
|
83
83
|
as their own Discord or Telegram account. What a guest sees:
|
|
84
84
|
- **With explicit grants** (`web.guests.grants`, set in Settings → Access & security → Guests): exactly the agents an
|
|
85
85
|
admin granted that person, nothing else (default deny once the key exists). The admin picks the person from people
|
|
86
|
-
AgEnD has seen writing to an agent, ticks their agents, saves (giving access or more agents waits for a fleet admin in
|
|
86
|
+
AgEnD has seen writing to an agent, ticks their agents (or ClassicBot rooms, #2667), saves (giving access or more agents waits for a fleet admin in
|
|
87
87
|
General; taking away applies at once and ends their sessions), then presses **Send sign-in code**, a DM, never a post.
|
|
88
88
|
Each code sent and each change to someone's access is in the event log (`guest_code_sent`, `guest_grant_changed`),
|
|
89
89
|
shown to admins under **Recent changes** in that section (no agent's Log tab shows them).
|
|
@@ -316,8 +316,8 @@ starts with the first link and stops with the last; the token is shown once. The
|
|
|
316
316
|
says to try again in a few minutes (no retry). `web.office_share.enabled: false` turns it off and ends open links.
|
|
317
317
|
|
|
318
318
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
319
|
-
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them
|
|
320
|
-
(with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
319
|
+
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them; on a phone, outside
|
|
320
|
+
fullscreen, a row along the top of the scene) or the `+ - 0` keys (with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
321
321
|
is all in view, #2737). It takes the whole panel: the
|
|
322
322
|
Fleet area's full width, down to the window's foot. **Fit** shows the whole scene as large as the panel allows
|
|
323
323
|
(any scale, so it fills the panel's width or height); **Fill** (a toggle, kept per office) fills the panel instead,
|
|
@@ -384,7 +384,8 @@ to that instance's Log).
|
|
|
384
384
|
colours only; status colours (Needs you count, state dots, errors, focus ring) never change. The header follows the
|
|
385
385
|
page, not the chat. Off with agents' themes off or `?safe=1`.
|
|
386
386
|
|
|
387
|
-
Phone layout: bottom tabs Chat, Needs you, Fleet, Settings.
|
|
387
|
+
Phone layout: bottom tabs Chat, Needs you, Fleet, Settings. Settings opens on its list of sections (search on top);
|
|
388
|
+
each section opens on its own page with "‹ Settings", and dialogs and the setup wizard are full-screen sheets. Chat is current on any of an agent's pages and goes to its
|
|
388
389
|
chat; View, Log and Details are the switch under the header.
|
|
389
390
|
|
|
390
391
|
## Usage and the cache report
|
|
@@ -501,7 +502,10 @@ signed in? kiro logs out first; **Use a temporary public link** where allowed),
|
|
|
501
502
|
sign-in terminal** + its one-time access code (this browser only, no DM). While it runs every admin page shows
|
|
502
503
|
"Signing in to X (started on <device>)" with **Open**; another browser sees no code and may **Cancel sign-in**. Ends
|
|
503
504
|
when the browser session ends. A missing CLI is not installed here (the dialog says the install command). agy and
|
|
504
|
-
opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`).
|
|
505
|
+
opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`). Default Kiro, Claude Code and Codex
|
|
506
|
+
accounts sign in with named browser controls instead (#2599): Kiro's account method, Start URL and region and Claude's
|
|
507
|
+
code are entered in the browser, Codex shows its link and device code; credential profiles keep the dialog above. A
|
|
508
|
+
backend skipped at first setup shows in Needs you even before an agent uses it.
|
|
505
509
|
|
|
506
510
|
**Agents** — **New agent**; per agent **Settings**, **Pause / Wake**, **Start / Stop** (direct), ⋯ **Delete agent**
|
|
507
511
|
(staged; on Apply it waits for a fleet admin's confirmation in General, then the agent is stopped and removed, as
|
|
@@ -538,10 +542,12 @@ Advanced **Context lines** (these restart the room's agent); Tool progress and R
|
|
|
538
542
|
|
|
539
543
|
**Agent defaults** — **Project folders** (`project_roots`: where New agent may put an agent; empty = anywhere;
|
|
540
544
|
changing it waits for a fleet admin's OK) and the fleet defaults (`defaults.*`): **Language (bot replies)** (`locale`: Auto / en / zh-TW), default
|
|
541
|
-
backend and model, auto-pause, tool progress, bot-to-bot visibility, reply guard
|
|
545
|
+
backend and model, auto-pause, tool progress, bot-to-bot visibility, reply guard, **Native replies trigger ClassicBot**
|
|
546
|
+
(`reply_triggers`: a native reply triggers a ClassicBot bot; off by default, #2576); Advanced: tool set, agent mode, log
|
|
542
547
|
level, **Hang detector enabled** / **Stuck timeout** (`hang_detector.*`), **Startup concurrency** (1–20) and
|
|
543
548
|
**Stagger delay** (`startup.*`, restart AgEnD). ClassicBot defaults (in Chat & connections; `classicBot.yaml defaults.*`): default backend, tool
|
|
544
|
-
progress, reply guard, **ClassicBot
|
|
549
|
+
progress, reply guard, **Native replies trigger ClassicBot** (`reply_triggers`, also per room), **ClassicBot admins**,
|
|
550
|
+
**Allowed guilds**.
|
|
545
551
|
|
|
546
552
|
**Access & security** (sessions, browser terminal, public link and fixed address, guests, web authority; web echo is in Chat & connections, the Log tab and usage over the link in **Web dashboard**) — all apply at once; loosening waits for an admin; disabled over a public link.
|
|
547
553
|
| Label | Key |
|
|
@@ -568,7 +574,10 @@ connections are off (and the setup wizard); while those have unsaved changes, th
|
|
|
568
574
|
|
|
569
575
|
**Setup wizard** — agent (backend, directory, name) → platform → token and server/group, your user ID → preview →
|
|
570
576
|
**Create and start**. The directory may be left empty: the agent gets its own folder, `~/.agend/workspaces/<name>`
|
|
571
|
-
(shown under the field); one that is entered must be absolute.
|
|
577
|
+
(shown under the field); one that is entered must be absolute. On a Telegram or Discord connection the first agent
|
|
578
|
+
is named `general` by default and becomes the fleet's General, in the chat's General topic or channel, when its
|
|
579
|
+
directory is left empty; with a directory it is the worker `agent-1` and the fleet adds its General in its own folder.
|
|
580
|
+
Once a fleet has a connection or a General, a new agent can't be called `general`.
|
|
572
581
|
|
|
573
582
|
**First setup, before any fleet** (`agend setup`, the page the Windows installer opens): the same steps on its own
|
|
574
583
|
page, in English or 繁體中文 (the browser's language; the button at the top switches). The working directory may be
|
|
@@ -91,7 +91,7 @@ who is not a fleet admin gets a code privately, by sending `/web` or from an adm
|
|
|
91
91
|
as their own Discord or Telegram account. What a guest sees:
|
|
92
92
|
- **With explicit grants** (`web.guests.grants`, set in Settings → Access & security → Guests): exactly the agents an
|
|
93
93
|
admin granted that person, nothing else (default deny once the key exists). The admin picks the person from people
|
|
94
|
-
AgEnD has seen writing to an agent, ticks their agents, saves (giving access or more agents waits for a fleet admin in
|
|
94
|
+
AgEnD has seen writing to an agent, ticks their agents (or ClassicBot rooms, #2667), saves (giving access or more agents waits for a fleet admin in
|
|
95
95
|
General; taking away applies at once and ends their sessions), then presses **Send sign-in code**, a DM, never a post.
|
|
96
96
|
Each code sent and each change to someone's access is in the event log (`guest_code_sent`, `guest_grant_changed`),
|
|
97
97
|
shown to admins under **Recent changes** in that section (no agent's Log tab shows them).
|
|
@@ -331,8 +331,8 @@ starts with the first link and stops with the last; the token is shown once. The
|
|
|
331
331
|
says to try again in a few minutes (no retry). `web.office_share.enabled: false` turns it off and ends open links.
|
|
332
332
|
|
|
333
333
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
334
|
-
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them
|
|
335
|
-
(with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
334
|
+
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them; on a phone, outside
|
|
335
|
+
fullscreen, a row along the top of the scene) or the `+ - 0` keys (with the office focused), an overview at the bottom right to jump (not on a phone; hidden while a single office
|
|
336
336
|
is all in view, #2737). It takes the whole panel: the
|
|
337
337
|
Fleet area's full width, down to the window's foot. **Fit** shows the whole scene as large as the panel allows
|
|
338
338
|
(any scale, so it fills the panel's width or height); **Fill** (a toggle, kept per office) fills the panel instead,
|
|
@@ -399,7 +399,8 @@ to that instance's Log).
|
|
|
399
399
|
colours only; status colours (Needs you count, state dots, errors, focus ring) never change. The header follows the
|
|
400
400
|
page, not the chat. Off with agents' themes off or `?safe=1`.
|
|
401
401
|
|
|
402
|
-
Phone layout: bottom tabs Chat, Needs you, Fleet, Settings.
|
|
402
|
+
Phone layout: bottom tabs Chat, Needs you, Fleet, Settings. Settings opens on its list of sections (search on top);
|
|
403
|
+
each section opens on its own page with "‹ Settings", and dialogs and the setup wizard are full-screen sheets. Chat is current on any of an agent's pages and goes to its
|
|
403
404
|
chat; View, Log and Details are the switch under the header.
|
|
404
405
|
|
|
405
406
|
## Usage and the cache report
|
|
@@ -516,7 +517,10 @@ signed in? kiro logs out first; **Use a temporary public link** where allowed),
|
|
|
516
517
|
sign-in terminal** + its one-time access code (this browser only, no DM). While it runs every admin page shows
|
|
517
518
|
"Signing in to X (started on <device>)" with **Open**; another browser sees no code and may **Cancel sign-in**. Ends
|
|
518
519
|
when the browser session ends. A missing CLI is not installed here (the dialog says the install command). agy and
|
|
519
|
-
opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`).
|
|
520
|
+
opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`). Default Kiro, Claude Code and Codex
|
|
521
|
+
accounts sign in with named browser controls instead (#2599): Kiro's account method, Start URL and region and Claude's
|
|
522
|
+
code are entered in the browser, Codex shows its link and device code; credential profiles keep the dialog above. A
|
|
523
|
+
backend skipped at first setup shows in Needs you even before an agent uses it.
|
|
520
524
|
|
|
521
525
|
**Agents** — **New agent**; per agent **Settings**, **Pause / Wake**, **Start / Stop** (direct), ⋯ **Delete agent**
|
|
522
526
|
(staged; on Apply it waits for a fleet admin's confirmation in General, then the agent is stopped and removed, as
|
|
@@ -553,10 +557,12 @@ Advanced **Context lines** (these restart the room's agent); Tool progress and R
|
|
|
553
557
|
|
|
554
558
|
**Agent defaults** — **Project folders** (`project_roots`: where New agent may put an agent; empty = anywhere;
|
|
555
559
|
changing it waits for a fleet admin's OK) and the fleet defaults (`defaults.*`): **Language (bot replies)** (`locale`: Auto / en / zh-TW; read at startup: restart AgEnD), default
|
|
556
|
-
backend and model, auto-pause, tool progress, bot-to-bot visibility, reply guard
|
|
560
|
+
backend and model, auto-pause, tool progress, bot-to-bot visibility, reply guard, **Native replies trigger ClassicBot**
|
|
561
|
+
(`reply_triggers`: a native reply triggers a ClassicBot bot; off by default, #2576); Advanced: tool set, agent mode, log
|
|
557
562
|
level, **Hang detector enabled** / **Stuck timeout** (`hang_detector.*`), **Startup concurrency** (1–20) and
|
|
558
563
|
**Stagger delay** (`startup.*`, used from the next agent start, no restart). ClassicBot defaults (in Chat & connections; `classicBot.yaml defaults.*`): default backend, tool
|
|
559
|
-
progress, reply guard, **ClassicBot
|
|
564
|
+
progress, reply guard, **Native replies trigger ClassicBot** (`reply_triggers`, also per room), **ClassicBot admins**,
|
|
565
|
+
**Allowed guilds**.
|
|
560
566
|
|
|
561
567
|
**Access & security** (sessions, browser terminal, public link and fixed address, guests, web authority; web echo is in Chat & connections, the Log tab and usage over the link in **Web dashboard**) — all apply at once; loosening waits for an admin; disabled over a public link.
|
|
562
568
|
| Label | Key |
|
|
@@ -583,7 +589,10 @@ connections are off (and the setup wizard); while those have unsaved changes, th
|
|
|
583
589
|
|
|
584
590
|
**Setup wizard** — agent (backend, directory, name) → platform → token and server/group, your user ID → preview →
|
|
585
591
|
**Create and start**. The directory may be left empty: the agent gets its own folder, `~/.agend/workspaces/<name>`
|
|
586
|
-
(shown under the field); one that is entered must be absolute.
|
|
592
|
+
(shown under the field); one that is entered must be absolute. On a Telegram or Discord connection the first agent
|
|
593
|
+
is named `general` by default and becomes the fleet's General, in the chat's General topic or channel, when its
|
|
594
|
+
directory is left empty; with a directory it is the worker `agent-1` and the fleet adds its General in its own folder.
|
|
595
|
+
Once a fleet has a connection or a General, a new agent can't be called `general`.
|
|
587
596
|
|
|
588
597
|
**First setup, before any fleet** (`agend setup`, the page the Windows installer opens): the same steps on its own
|
|
589
598
|
page, in English or 繁體中文 (the browser's language; the button at the top switches). The working directory may be
|
package/dist/kiro-reconcile.js
CHANGED
|
@@ -19,15 +19,20 @@ export async function planKiroReconciliation(deps, name, keep, archive, rollback
|
|
|
19
19
|
export function kiroReconciliationPrompt(p) {
|
|
20
20
|
return t(p.plan.rollbackReceipt ? "kiro_reconcile.rollback_prompt" : "kiro_reconcile.prompt", p.name, p.input.sessionId, p.input.archiveId);
|
|
21
21
|
}
|
|
22
|
+
function failureText(name, reason, receipt) {
|
|
23
|
+
// Reasons are complete localized sentences; the outer notice owns the separator.
|
|
24
|
+
return t(receipt ? "kiro_reconcile.failed" : "kiro_reconcile.failed_no_receipt", name, reason.replace(/[.。]+\s*$/, ""));
|
|
25
|
+
}
|
|
22
26
|
export async function applyKiroReconciliation(deps, p, actor) {
|
|
23
27
|
let lease;
|
|
24
28
|
try {
|
|
25
29
|
lease = deps.reserve(p.name);
|
|
26
30
|
}
|
|
27
31
|
catch (error) {
|
|
28
|
-
return { ok: false, text:
|
|
32
|
+
return { ok: false, text: failureText(p.name, error.message) };
|
|
29
33
|
}
|
|
30
34
|
let receipt;
|
|
35
|
+
let storageStarted = false;
|
|
31
36
|
const current = () => {
|
|
32
37
|
if (!lease.current())
|
|
33
38
|
throw new Error(t("kiro_reconcile.changed"));
|
|
@@ -44,6 +49,9 @@ export async function applyKiroReconciliation(deps, p, actor) {
|
|
|
44
49
|
current();
|
|
45
50
|
if (model !== p.input.model)
|
|
46
51
|
throw new Error(t("kiro_reconcile.changed"));
|
|
52
|
+
// A rejected preflight has not touched storage or launched anything. Once the
|
|
53
|
+
// worker begins, even a failure without a returned receipt requires a stop.
|
|
54
|
+
storageStarted = true;
|
|
47
55
|
const result = await deps.store(p.input, p.plan, actor);
|
|
48
56
|
receipt = result.receipt;
|
|
49
57
|
current();
|
|
@@ -63,7 +71,7 @@ export async function applyKiroReconciliation(deps, p, actor) {
|
|
|
63
71
|
}
|
|
64
72
|
catch (error) {
|
|
65
73
|
let reason = error instanceof SyntaxError ? "Malformed reconciliation data" : error.message;
|
|
66
|
-
if (lease.current()) {
|
|
74
|
+
if (storageStarted && lease.current()) {
|
|
67
75
|
try {
|
|
68
76
|
await deps.stop(p.name);
|
|
69
77
|
}
|
|
@@ -71,7 +79,7 @@ export async function applyKiroReconciliation(deps, p, actor) {
|
|
|
71
79
|
reason += " " + t("kiro_migrate.stop_unconfirmed");
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
|
-
return { ok: false, ...(receipt ? { receipt } : {}), text:
|
|
82
|
+
return { ok: false, ...(receipt ? { receipt } : {}), text: failureText(p.name, reason, receipt) };
|
|
75
83
|
}
|
|
76
84
|
finally {
|
|
77
85
|
lease.release();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-reconcile.js","sourceRoot":"","sources":["../src/kiro-reconcile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAKhC,SAAS,MAAM,CAAC,IAAuB,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB;WACtH,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC9H,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO;QACtH,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC9H,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,eAAwB;IACzI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACzH,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC9I,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,CAAqB;IAC5D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9I,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAuB,EAAE,CAAqB,EAAE,KAAa;IACzG,IAAI,KAA+C,CAAC;IACpD,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"kiro-reconcile.js","sourceRoot":"","sources":["../src/kiro-reconcile.ts"],"names":[],"mappings":"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"}
|
package/dist/locale.js
CHANGED
|
@@ -419,10 +419,12 @@ const enMessages = {
|
|
|
419
419
|
"kiro_reconcile.audit_failed": "Reconciliation audit log is unavailable; no changes were made.",
|
|
420
420
|
"kiro_reconcile.stopped_required": "Reconciliation requires a stopped TUI fleet instance with an explicit model and directory.",
|
|
421
421
|
"kiro_reconcile.changed": "Reconciliation evidence or instance ownership changed; request confirmation again.",
|
|
422
|
+
"kiro_reconcile.applying": "Reconciling the saved conversations of {0}…",
|
|
422
423
|
"kiro_reconcile.prompt": "Reconcile {0}?\nKeep original conversation: {1}\nArchive intact (never delete): {2}\nPreserve both V2 file sets, repair the original pin, archive its frozen classic duplicate, then verify two starts with the same model. A failure stops in place. A receipt allows rollback into a stopped hold.",
|
|
423
424
|
"kiro_reconcile.rollback_prompt": "Roll back reconciliation for {0}?\nKeep ID: {1}\nArchived ID: {2}\nRestore the prior AgEnD identity and exact frozen classic index rows into a stopped hold. All V2 files and archives stay intact. Nothing is started.",
|
|
424
425
|
"kiro_reconcile.done": "{0}: original conversation restored and plain restart verified. Archive/rollback receipt: {1}. Both V2 conversations are preserved.",
|
|
425
426
|
"kiro_reconcile.rolled_back": "{0}: prior identity restored; instance stays stopped. Archives retained. Receipt: {1}.",
|
|
427
|
+
"kiro_reconcile.failed_no_receipt": "{0}: reconciliation did not complete: {1}. No fresh or classic fallback. No receipt was returned; inspect the Log before retrying.",
|
|
426
428
|
"kiro_reconcile.failed": "{0}: reconciliation did not complete: {1}. No fresh or classic fallback. Inspect the receipt before retrying.",
|
|
427
429
|
"kiro_migrate.requested": "Asked in General for a fleet admin's confirmation. Nothing changes until it is confirmed.",
|
|
428
430
|
"kiro_migrate.no_general": "There is no General topic to ask a fleet admin in, so the move cannot be confirmed.",
|
|
@@ -1836,10 +1838,12 @@ const zhTWMessages = {
|
|
|
1836
1838
|
"kiro_reconcile.audit_failed": "對話處理的稽核紀錄目前無法寫入,沒有進行任何變更。",
|
|
1837
1839
|
"kiro_reconcile.stopped_required": "接續處理需要已停止的 TUI fleet agent,並明確設定模型與目錄。",
|
|
1838
1840
|
"kiro_reconcile.changed": "接續處理的證據或 agent 擁有權已改變,請重新要求確認。",
|
|
1841
|
+
"kiro_reconcile.applying": "正在處理 {0} 的已儲存對話…",
|
|
1839
1842
|
"kiro_reconcile.prompt": "要處理 {0} 的對話嗎?\n保留原對話:{1}\n完整封存(絕不刪除):{2}\n會保留兩份 V2 檔案、修復原對話登記、備份並移出凍結的經典副本,再以相同模型驗證兩次啟動。失敗就停止;可用收據復原到停止等待的狀態。",
|
|
1840
1843
|
"kiro_reconcile.rollback_prompt": "要復原 {0} 的對話處理嗎?\n保留的對話 ID:{1}\n封存的對話 ID:{2}\n會復原先前的 AgEnD 登記與凍結的經典索引原始資料,並維持停止;所有 V2 檔與封存都保留,不啟動任何 agent。",
|
|
1841
1844
|
"kiro_reconcile.done": "{0}:已接回原對話,並驗證一般重啟。封存/復原收據:{1}。兩份 V2 對話都已保留。",
|
|
1842
1845
|
"kiro_reconcile.rolled_back": "{0}:已復原先前登記並維持停止,封存仍保留。收據:{1}。",
|
|
1846
|
+
"kiro_reconcile.failed_no_receipt": "{0}:對話處理未完成:{1}。沒有改開新對話或切回經典模式;未取得收據,重試前請先查看紀錄。",
|
|
1843
1847
|
"kiro_reconcile.failed": "{0}:對話處理未完成:{1}。沒有改開新對話或切回經典模式;重試前請先檢查收據。",
|
|
1844
1848
|
"kiro_migrate.requested": "已在 General 請 fleet admin 確認。確認前不會有任何變更。",
|
|
1845
1849
|
"kiro_migrate.no_general": "沒有 General topic 可以請 fleet admin 確認,所以無法搬移。",
|