@songsid/agend 2.3.2 → 2.3.3-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-cli-instructions.md +2 -2
- package/dist/agent-whats-new.d.ts +21 -0
- package/dist/agent-whats-new.js +52 -23
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/authority/authority-state.js +1 -1
- package/dist/authority/authority-state.js.map +1 -1
- package/dist/authority/web-authority.d.ts +9 -4
- package/dist/authority/web-authority.js +10 -5
- package/dist/authority/web-authority.js.map +1 -1
- package/dist/backend/claude-code.d.ts +13 -1
- package/dist/backend/claude-code.js +20 -1
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-session-lookup.d.ts +16 -3
- package/dist/backend/codex-session-lookup.js +45 -11
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/backend/kiro-reconcile-store.js +8 -1
- package/dist/backend/kiro-reconcile-store.js.map +1 -1
- package/dist/backend/kiro.d.ts +0 -5
- package/dist/backend/kiro.js +0 -10
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +7 -4
- package/dist/backend/types.js.map +1 -1
- package/dist/cli.js +18 -3
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +4 -5
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-envelope.d.ts +10 -5
- package/dist/cross-instance-envelope.js +20 -17
- package/dist/cross-instance-envelope.js.map +1 -1
- package/dist/daemon.d.ts +90 -63
- package/dist/daemon.js +412 -317
- package/dist/daemon.js.map +1 -1
- package/dist/daily-summary.d.ts +8 -1
- package/dist/daily-summary.js +8 -5
- package/dist/daily-summary.js.map +1 -1
- package/dist/delivery-outbox.d.ts +31 -22
- package/dist/delivery-outbox.js +119 -161
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-outbox.test.js +10 -25
- package/dist/delivery-outbox.test.js.map +1 -1
- package/dist/fleet-level-config.js +1 -1
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +4 -21
- package/dist/fleet-manager.js +38 -159
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-service-owner.d.ts +11 -0
- package/dist/fleet-service-owner.js +3 -0
- package/dist/fleet-service-owner.js.map +1 -0
- package/dist/general-knowledge/skills/delegation-playbook/SKILL.md +1 -1
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +1 -1
- package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +4 -5
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +4 -5
- package/dist/instance-lifecycle.js +23 -5
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.js +6 -7
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-reconcile.js +3 -3
- package/dist/kiro-reconcile.js.map +1 -1
- package/dist/locale.js +8 -52
- 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-hub.js +4 -1
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you-live.d.ts +3 -1
- package/dist/needs-you-live.js +24 -2
- package/dist/needs-you-live.js.map +1 -1
- package/dist/needs-you.d.ts +6 -1
- package/dist/needs-you.js +4 -0
- package/dist/needs-you.js.map +1 -1
- package/dist/outbound-handlers.js +1 -1
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.js +1 -1
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +17 -25
- package/dist/scheduler/task-board.js +29 -39
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/sd-notify.d.ts +13 -14
- package/dist/sd-notify.js +62 -28
- package/dist/sd-notify.js.map +1 -1
- package/dist/settings-api.d.ts +0 -1
- package/dist/settings-api.js +1 -14
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-effect.js +0 -2
- package/dist/settings-effect.js.map +1 -1
- package/dist/setup-wizard.d.ts +3 -0
- package/dist/setup-wizard.js +4 -2
- package/dist/setup-wizard.js.map +1 -1
- package/dist/task-board-waker.d.ts +40 -1
- package/dist/task-board-waker.js +110 -9
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-control.d.ts +1 -1
- package/dist/tmux-control.js +3 -2
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.js +18 -16
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-read.d.ts +2 -0
- package/dist/tmux-read.js +7 -1
- package/dist/tmux-read.js.map +1 -1
- package/dist/topic-commands.d.ts +2 -0
- package/dist/topic-commands.js +2 -1
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.js +17 -0
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/types.d.ts +7 -10
- package/dist/ui/panel-log.js +2 -2
- package/dist/ui/settings-appearance.js +3 -35
- package/dist/ui/settings-registry.js +0 -1
- package/dist/ui/settings-strings.js +4 -4
- package/dist/ui/settings-web-authority.js +4 -3
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/update-check.d.ts +13 -4
- package/dist/update-check.js +17 -4
- package/dist/update-check.js.map +1 -1
- package/dist/web-experimental.d.ts +6 -2
- package/dist/web-experimental.js +8 -4
- package/dist/web-experimental.js.map +1 -1
- package/dist/web-settings-patch.d.ts +0 -1
- package/dist/web-settings-patch.js +3 -4
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/workflow-templates/default.md +2 -2
- package/dist/working-recovery.d.ts +0 -2
- package/dist/working-recovery.js +2 -23
- package/dist/working-recovery.js.map +1 -1
- package/launcher/agend-install.cjs +7 -1
- package/launcher/fleet-service-owner.cjs +138 -0
- package/package.json +1 -1
- package/dist/task-board-summary.d.ts +0 -101
- package/dist/task-board-summary.js +0 -177
- package/dist/task-board-summary.js.map +0 -1
- package/dist/upgrade-notices.d.ts +0 -17
- package/dist/upgrade-notices.js +0 -93
- package/dist/upgrade-notices.js.map +0 -1
|
@@ -13,8 +13,8 @@ Commands print JSON, except `usage`, which prints a text summary.
|
|
|
13
13
|
2. **`[from:INSTANCE-NAME] text`** — Another agent sent you a message.
|
|
14
14
|
Reply to the sending agent: `agend-agent send INSTANCE-NAME "your response"`
|
|
15
15
|
|
|
16
|
-
3. **`[from:INSTANCE-NAME]` with `
|
|
17
|
-
When done: `agend-agent report INSTANCE-NAME "summary of results" CORRELATION_ID`
|
|
16
|
+
3. **`[from:INSTANCE-NAME]` with `reply required → agend-agent report …`** in the `(…)` header line — a reply is owed.
|
|
17
|
+
When done, run that command with your summary: `agend-agent report INSTANCE-NAME "summary of results" CORRELATION_ID`
|
|
18
18
|
|
|
19
19
|
## Quick Reference
|
|
20
20
|
|
|
@@ -11,6 +11,12 @@ export interface WhatsNewEntry {
|
|
|
11
11
|
readonly text: string;
|
|
12
12
|
/** #2163: only these roles are told; the others record it as known (never pending, never shown). */
|
|
13
13
|
readonly audience?: readonly WhatsNewAudience[];
|
|
14
|
+
/**
|
|
15
|
+
* #2800: the tools the entry is about. Told only to an instance that has at least one of them in its current tool
|
|
16
|
+
* list (tool set, dashboard switches, office_pack_access, Canvas Worker); the others record it as known. None: a
|
|
17
|
+
* rule every instance in its audience lives by.
|
|
18
|
+
*/
|
|
19
|
+
readonly tools?: readonly string[];
|
|
14
20
|
}
|
|
15
21
|
export declare const AGENT_WHATS_NEW: readonly WhatsNewEntry[];
|
|
16
22
|
/** #2275: old sessions learn only the capabilities currently enabled. Keep the full
|
|
@@ -39,10 +45,23 @@ export declare function readWhatsNewRecord(instanceDir: string): WhatsNewRecord
|
|
|
39
45
|
export declare function recordWhatsNew(instanceDir: string, ids: readonly string[], version: string): void;
|
|
40
46
|
/** #2163: the line a notice adds when it names a skill — a way to read it that works on every instance. */
|
|
41
47
|
export declare const SKILL_READ_HINT = "A skill named here that you can't find among your skills: `agend-agent skill <name>` prints it (in your shell).";
|
|
48
|
+
/** #2800: the full notes, for people and agents alike; the notice links them instead of carrying them. */
|
|
49
|
+
export declare const WHATS_NEW_NOTES_URL = "https://songsid.github.io/AgEnD/docs/whats-new/";
|
|
50
|
+
/** #2800: one block in front of the instance's next real message (never a paste of its own). */
|
|
42
51
|
export declare function whatsNewNotice(version: string, entries: readonly WhatsNewEntry[]): string;
|
|
52
|
+
/**
|
|
53
|
+
* #2800: the notice attached to a delivery's text — after AgEnD's leading marker lines, before the message itself.
|
|
54
|
+
* Transcript proof and the consumed watcher accept a delivery's marker only at the very start of the CLI's user entry
|
|
55
|
+
* (delivery-reconciliation leadsWithMarker), so the marker has to stay first.
|
|
56
|
+
*/
|
|
57
|
+
export declare function withWhatsNew(formatted: string, notice: string): string;
|
|
43
58
|
/**
|
|
44
59
|
* What this instance should be told now. `fresh`: it never launched before (told nothing; everything current recorded
|
|
45
60
|
* as known). Returns the notice and the ids it covers, `{ silent: ids }` when they are only to be recorded, or null.
|
|
61
|
+
*
|
|
62
|
+
* #2800: only the running release's entries (its betas included) are told; an older one not told yet is superseded —
|
|
63
|
+
* recorded with the rest, the linked notes cover it. Of those, only entries for this instance's roles and, when an
|
|
64
|
+
* entry names tools, for a tool it has now. Nothing left to tell → recorded silently.
|
|
46
65
|
*/
|
|
47
66
|
export declare function planWhatsNew(input: {
|
|
48
67
|
record: WhatsNewRecord | null | "unreadable";
|
|
@@ -51,6 +70,8 @@ export declare function planWhatsNew(input: {
|
|
|
51
70
|
entries?: readonly WhatsNewEntry[];
|
|
52
71
|
/** #2163: this instance's roles. An entry for none of them is recorded with the others but not shown. Absent: all. */
|
|
53
72
|
roles?: readonly WhatsNewAudience[];
|
|
73
|
+
/** #2800: the instance's current tool names. An entry naming none of them is recorded but not shown. Absent: all. */
|
|
74
|
+
tools?: ReadonlySet<string>;
|
|
54
75
|
/** #2275: absent or any value other than true keeps experimental guidance hidden. */
|
|
55
76
|
canvasWorker?: boolean;
|
|
56
77
|
}): {
|
package/dist/agent-whats-new.js
CHANGED
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* - Curated entries, one line each with the exact parameter names (#1634's audit); not the changelog.
|
|
11
11
|
* - `<instanceDir>/whats-new.json` records which entry ids the instance has been told. Only entries it has not been
|
|
12
|
-
* told, and that its running version already has, are sent; none → no notice. Written
|
|
13
|
-
* so a failed delivery keeps it pending, and a restart never repeats one.
|
|
12
|
+
* told, and that its running version already has, are sent; none → no notice. Written once the notice went out
|
|
13
|
+
* with a delivery, so a failed delivery keeps it pending, and a restart never repeats one.
|
|
14
|
+
* - #2800: once per release — only the running release's entries, an older unread one is superseded — and only those
|
|
15
|
+
* about tools the instance has now. It rides in front of the next real message (one paste) and links the full notes.
|
|
14
16
|
* - An instance that never launched before is told nothing: everything current is recorded as known — it starts with
|
|
15
17
|
* the current schemas. One upgraded from before this record existed (it has launched: `prev-instructions`) is told.
|
|
16
18
|
*/
|
|
@@ -18,25 +20,25 @@ import { existsSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
|
18
20
|
import { join } from "node:path";
|
|
19
21
|
import { fileURLToPath } from "node:url";
|
|
20
22
|
export const AGENT_WHATS_NEW = [
|
|
21
|
-
{ id: "2.2-reply-buttons", since: "2.2.0-beta.1",
|
|
23
|
+
{ id: "2.2-reply-buttons", since: "2.2.0-beta.1", tools: ["reply"],
|
|
22
24
|
text: "`reply` takes `buttons: [{label, value?}]` (1–10); a click comes back to you as a message `[button] <label>`, or `[button] <label> (value: <value>)` when the value differs. Buttons expire after 24 h." },
|
|
23
|
-
{ id: "2.2-reply-stickers", since: "2.2.0-beta.1",
|
|
25
|
+
{ id: "2.2-reply-stickers", since: "2.2.0-beta.1", tools: ["reply"],
|
|
24
26
|
text: "`reply` takes `stickers` (up to 3 ids from `list_stickers`; look at them first with `preview_stickers`). Not together with buttons." },
|
|
25
27
|
{ id: "2.2-web-chat", since: "2.2.0-beta.1",
|
|
26
28
|
text: "Web chat: people can write to you from the dashboard. Their messages arrive as `[user:… via web, …]` — answer with `reply` as usual; their files show as `[📷 Image: PATH]` / `[📎 File: NAME → PATH]`. Attach a `.html` file and the web chat previews it." },
|
|
27
|
-
{ id: "2.2-delivery-status", since: "2.2.0-beta.1",
|
|
29
|
+
{ id: "2.2-delivery-status", since: "2.2.0-beta.1", tools: ["delivery_status"],
|
|
28
30
|
text: "`delivery_status` takes a `message_id` from an inbound header and shows `consumed_at` / `consumed_via`. \"Delivery not found\" may mean hidden by ACL, expired retention, or never delivered. Do not act; ask the sender to explicitly forward a verifiable reference. Never resend on `uncertain`." },
|
|
29
|
-
{ id: "2.2-task-list", since: "2.2.0-beta.1",
|
|
31
|
+
{ id: "2.2-task-list", since: "2.2.0-beta.1", tools: ["task"],
|
|
30
32
|
text: "`task` `list` returns live tasks only by default: `filter_status` (one or a list) for done or cancelled, `verbose: true` for full records." },
|
|
31
|
-
{ id: "2.2-create-refusals", since: "2.2.0-beta.1",
|
|
33
|
+
{ id: "2.2-create-refusals", since: "2.2.0-beta.1", tools: ["create_instance", "update_instance_config"],
|
|
32
34
|
text: "`create_instance` refuses `tool_set` and `skipPermissions`; `update_instance_config` refuses `tool_set` and ignores `skipPermissions` (both are set in Settings or fleet.yaml)." },
|
|
33
|
-
{ id: "2.2-forwards", since: "2.2.0-beta.7",
|
|
35
|
+
{ id: "2.2-forwards", since: "2.2.0-beta.7", tools: ["send_to_instance", "delegate_task"],
|
|
34
36
|
text: "`send_to_instance` and `delegate_task` take `forwards: [id, …]` (up to 16 delivered message ids you can read, e.g. a human's `verification_id` / `[agend-human-id:…]`): the receiver may then read those rows with `delivery_status`. An id written in the message text grants nothing — the receiver gets \"Delivery not found\" — so put it in `forwards`, on every hop." },
|
|
35
|
-
{ id: "2.2-polls", since: "2.2.0-beta.11",
|
|
37
|
+
{ id: "2.2-polls", since: "2.2.0-beta.11", tools: ["reply", "close_poll"],
|
|
36
38
|
text: "`reply` takes `poll: {seconds, multi?, reveal?: \"close\"|\"live\", show_voters?}` with 2–10 `buttons` as the options: a vote by everyone who may talk to you there, closing `seconds` (10–86400) after it is posted; the reply's result has `poll_id`. At the close the results come to you as one `[poll results]` message in the poll's chat — post the answer or scores yourself. `close_poll({poll_id})` ends one of your polls early." },
|
|
37
39
|
{ id: "2.2-web-identity", since: "2.2.0-beta.11",
|
|
38
40
|
text: "A web-chat person signed in with a `/web` code arrives as `[user:<name> via web, id:<their Discord/Telegram user id>]` — the same id as on that platform, so you can recognise them; they may change the name. What it may ask of you is the web-chat rule in your instructions." },
|
|
39
|
-
{ id: "2.2-delivery-status-evidence", since: "2.2.0",
|
|
41
|
+
{ id: "2.2-delivery-status-evidence", since: "2.2.0", tools: ["delivery_status"],
|
|
40
42
|
text: "Correction: `Delivery not found` can mean hidden by ACL, expired retention, or never delivered; it is not proof of non-delivery. Do not act; ask the sender to explicitly forward a verifiable reference. Never resend on `uncertain`." },
|
|
41
43
|
// #2012: from 2.3 on, one short topic line per area naming the skill to load; the details live in the skill. The six
|
|
42
44
|
// detailed 2.3.0-alpha.1 entries (2.3-owner-effect-policy, -web-theme, -web-card, -web-appearance, -web-mod,
|
|
@@ -47,33 +49,37 @@ export const AGENT_WHATS_NEW = [
|
|
|
47
49
|
// 2.2.5: `since` is 2.2.5, not the beta that brought it — 2.2.5 < 2.3.0-beta.N, so with a beta's `since` a 2.2.5
|
|
48
50
|
// install would never be told. The ids keep their 2.3- names: the record is by id, so an instance already told on a
|
|
49
51
|
// 2.3.0 beta is not told again. An entry added before 2.2.5 is cut takes `since: "2.2.5"` too.
|
|
50
|
-
{ id: "2.3-web-appearance-topic", since: "2.2.5",
|
|
52
|
+
{ id: "2.3-web-appearance-topic", since: "2.2.5", tools: ["get_web_appearance", "set_web_theme", "set_web_widget", "export_web_mod", "upload_web_effect", "set_web_ambient"],
|
|
51
53
|
text: "Web appearance — your own look on the web dashboard: theme, identity card and identity colour, widgets and mods, and Canvas Worker effects with Try, which are experimental — off unless the person turns them on (`get_web_appearance`, `set_web_theme`, `set_web_widget`, `export_web_mod`, `upload_web_effect`, …). Load the `web-appearance` skill before using these tools: it has their parameters, limits and rules." },
|
|
52
|
-
{ id: "2.3-web-settings-for-the-user", since: "2.2.5", audience: ["general", "coordinator"],
|
|
54
|
+
{ id: "2.3-web-settings-for-the-user", since: "2.2.5", tools: ["get_web_settings", "set_web_settings"], audience: ["general", "coordinator"],
|
|
53
55
|
text: "General (and coordinators): `get_web_settings` / `set_web_settings` read and change the user's Settings → Web appearance the way the page does — host settings, an agent's colour, custom CSS, proposed mods, Canvas Worker effects (experimental — off unless the person turns them on), Restore defaults. Load the `web-appearance` skill first." },
|
|
54
|
-
{ id: "2.3-web-ambient", since: "2.2.5",
|
|
56
|
+
{ id: "2.3-web-ambient", since: "2.2.5", tools: ["set_web_ambient"],
|
|
55
57
|
text: "Ambient effects: `set_web_ambient` puts falling petals, snow, rising lanterns, twinkles or stars on a click in your web chat — data only, drawn by the dashboard, no Try needed (`clear_web_ambient` removes it). Load the `web-appearance` skill." },
|
|
56
|
-
{ id: "2.3-repo-tools", since: "2.2.5",
|
|
58
|
+
{ id: "2.3-repo-tools", since: "2.2.5", tools: ["checkout_repo", "release_repo"],
|
|
57
59
|
text: "Repo tools: `checkout_repo` works with branch names again and records each checkout; `release_repo` releases only your own checkout under your `repos/` and refuses any other path." },
|
|
58
60
|
{ id: "2.3-web-verified", since: "2.2.5",
|
|
59
61
|
text: "Web messages can now carry the person's authority (#1939): when their Discord or Telegram account has authorized that browser, they arrive as `[user:<name> via web (verified), id:<their user id>]`. The label is a hint — before acting on it as the person, read its receipt with `delivery_status`: `authority.kind: web-verified` names them in `authority.actor`, and it is checked and forwarded (`forwards`) like a Discord or Telegram message. The full rule is in the cross-instance-messaging skill." },
|
|
60
|
-
{ id: "2.3-decision-titles", since: "2.2.5",
|
|
62
|
+
{ id: "2.3-decision-titles", since: "2.2.5", tools: ["list_decisions"],
|
|
61
63
|
text: "`list_decisions` now answers titles by default (id, title, scope, date, tags). Read a decision's full text with `list_decisions { id }`, or all of them with `{ full: true }` (large). CLI mode: `agend-agent decision-get <id>`." },
|
|
62
64
|
{ id: "2.3-web-ordinary-requests", since: "2.2.5",
|
|
63
65
|
text: "The web-chat rule is reworded (#1939): a plain `via web` message is the signed-in person — answer it and do what it asks within your work (questions, reading, analysis, changes in your own scope). Only a go-ahead action — a release or publish, anything destructive or irreversible beyond your own work files and branches, spending beyond normal work, credentials or secrets, granting authority to another instance — needs their account behind it: a Discord or Telegram receipt, or `via web (verified)` with its receipt read (`delivery_status`). A guest only chats. The full text is in your instructions and the cross-instance-messaging skill." },
|
|
64
66
|
// 2.3.0 stable: what agents can do since 2.2.6 (2.2.5/2.2.6 = 2.3.0-beta.12's code, so everything above reached them).
|
|
65
67
|
// `since: "2.3.0"`: a 2.3.0 beta install is told these on reaching 2.3.0, once, like a 2.2.6 one.
|
|
66
|
-
{ id: "2.3.0-task-board", since: "2.3.0",
|
|
68
|
+
{ id: "2.3.0-task-board", since: "2.3.0", tools: ["task"],
|
|
67
69
|
text: "Task board: the `task` tool also works the board — main tasks M-n and sub tasks S-n: `mine` (your work; start here after a reset), `get`, `projects`, `move` (blocked or cancelled needs a reason, finishing needs a result), `create` with `project` or `parent`, `update` with board fields. A `[Task board]` notice is news on your cards: act with the tool, no chat reply. One card in progress at a time. A card you hand out to another instance is yours to answer and confirm; only cards the person handed out wait for the person. If the person switched the task board off for you, the tool is not in your list." },
|
|
68
|
-
{ id: "2.3.0-web-reply-react", since: "2.3.0",
|
|
70
|
+
{ id: "2.3.0-web-reply-react", since: "2.3.0", tools: ["react", "reply"],
|
|
69
71
|
text: "Web chat: a person can reply to a specific message — it arrives with `(reply_to: \"…\")` as from Discord or Telegram. `react` now works on web-chat messages too (a `message_id` starting with `web-`, one emoji from the web set); a reaction is a complete answer to a message that only thanks or acknowledges. `reply` with `reply_to` is now a native reply on Discord and Telegram." },
|
|
70
72
|
{ id: "2.3.0-dashboard-switches", since: "2.3.0",
|
|
71
73
|
text: "The person can switch off, per agent, its dashboard tools: appearance, task board, web settings (`dashboard` in fleet.yaml). A call to a switched-off tool is refused with the reason: don't retry it or work around it; tell the person if you need it." },
|
|
72
74
|
{ id: "2.3.0-cli", since: "2.3.0", audience: ["general", "coordinator"],
|
|
73
75
|
text: "CLI: `agend restart` is the one full restart (it goes through systemd or launchd); `agend restart <instance>` restarts one. `agend fleet restart` is deprecated (removed in 2.4). Removed: `agend schedule trigger`, `agend fleet logs` (use `agend logs`), chat `/install-cli` (use `/login`), `agend install --activate`. `create_instance` reconciles by itself: no `agend reload` after it. The `fleet-restart` skill has the details." },
|
|
74
76
|
// #2692 (in 2.3.2-beta.11: beta.10 is published without it).
|
|
75
|
-
{ id: "2.3.2-office-pack-tools", since: "2.3.2-beta.11",
|
|
76
|
-
text: "Office skin packs
|
|
77
|
+
{ id: "2.3.2-office-pack-tools", since: "2.3.2-beta.11", tools: ["office_pack_check", "office_pack_upload", "office_pack_restore", "office_pack_delete", "office_pack_list", "office_set_style"],
|
|
78
|
+
text: "Office skin packs: `office_pack_check` checks a pack without storing it (`dir`, or `manifest` + `files`; several as `packs`); `office_pack_upload` adds or replaces; `office_pack_restore {id}`; `office_pack_delete {id, keep_previous?}`; `office_pack_list`; `office_set_style {office, pack}`." },
|
|
79
|
+
// #2785 (a): the reply footer under a cross-instance message is gone; an owed reply is a marker in the header line.
|
|
80
|
+
// `since` is the next stable: 2.3.2 is published without it, and a 2.3.2-beta.N sorts below 2.3.2.
|
|
81
|
+
{ id: "2.3.3-reply-required-marker", since: "2.3.3",
|
|
82
|
+
text: "A message from another agent no longer ends with a reply line. When an answer is owed, its header line ends with `reply required → report_result <correlation_id>` (CLI mode: the `agend-agent report` command) — answer with that. Without the marker, answer only if you have something to add, with `send_to_instance`; `request_kind` is no longer shown." },
|
|
77
83
|
];
|
|
78
84
|
/** #2275: old sessions learn only the capabilities currently enabled. Keep the full
|
|
79
85
|
* enabled entries above intact; ambient and all unrelated entries are unchanged. */
|
|
@@ -181,17 +187,38 @@ export function recordWhatsNew(instanceDir, ids, version) {
|
|
|
181
187
|
export const SKILL_READ_HINT = "A skill named here that you can't find among your skills: `agend-agent skill <name>` prints it (in your shell).";
|
|
182
188
|
/** "the `scheduling` skill", or a hyphenated name without backticks: "the cross-instance-messaging skill". */
|
|
183
189
|
const NAMES_A_SKILL = /`[a-z][a-z0-9-]*` skill\b|(?:^|[^a-z0-9-])[a-z][a-z0-9]*(?:-[a-z0-9]+)+ skill\b/;
|
|
190
|
+
/** #2800: the full notes, for people and agents alike; the notice links them instead of carrying them. */
|
|
191
|
+
export const WHATS_NEW_NOTES_URL = "https://songsid.github.io/AgEnD/docs/whats-new/";
|
|
192
|
+
/** #2800: one block in front of the instance's next real message (never a paste of its own). */
|
|
184
193
|
export function whatsNewNotice(version, entries) {
|
|
185
194
|
return [
|
|
186
|
-
`[system:whats-new] AgEnD is now ${version}.
|
|
195
|
+
`[system:whats-new] AgEnD is now ${version}. Changed for tools you have — a description you loaded earlier may be out of date; AgEnD's server accepts what is written here. Full notes: ${WHATS_NEW_NOTES_URL}`,
|
|
187
196
|
...entries.map(e => `- ${e.text}`),
|
|
188
197
|
...(entries.some(e => NAMES_A_SKILL.test(e.text)) ? [SKILL_READ_HINT] : []),
|
|
189
|
-
"A tool description you loaded earlier may not show these: a resumed session keeps the copy it first loaded, and reloading it does not refresh it. Use them anyway — AgEnD's server accepts them. Do not reply to this message.",
|
|
190
198
|
].join("\n");
|
|
191
199
|
}
|
|
200
|
+
/** The routing/authority lines AgEnD puts first in a delivery's text (`[agend-delivery-id:…]`, `[agend-human-id:…]`). */
|
|
201
|
+
const LEADING_MARKERS = /^(?:\[agend-(?:delivery|human)-id:[^\]\n]+\]\n)*/;
|
|
202
|
+
/**
|
|
203
|
+
* #2800: the notice attached to a delivery's text — after AgEnD's leading marker lines, before the message itself.
|
|
204
|
+
* Transcript proof and the consumed watcher accept a delivery's marker only at the very start of the CLI's user entry
|
|
205
|
+
* (delivery-reconciliation leadsWithMarker), so the marker has to stay first.
|
|
206
|
+
*/
|
|
207
|
+
export function withWhatsNew(formatted, notice) {
|
|
208
|
+
const markers = LEADING_MARKERS.exec(formatted)[0];
|
|
209
|
+
return `${markers}${notice}\n\n${formatted.slice(markers.length)}`;
|
|
210
|
+
}
|
|
211
|
+
/** "2.3.2-beta.11" → "2.3.2": the release an entry or a running version belongs to (#2800). */
|
|
212
|
+
function releaseOf(version) {
|
|
213
|
+
return /^v?(\d+\.\d+\.\d+)/.exec(version.trim())?.[1] ?? null;
|
|
214
|
+
}
|
|
192
215
|
/**
|
|
193
216
|
* What this instance should be told now. `fresh`: it never launched before (told nothing; everything current recorded
|
|
194
217
|
* as known). Returns the notice and the ids it covers, `{ silent: ids }` when they are only to be recorded, or null.
|
|
218
|
+
*
|
|
219
|
+
* #2800: only the running release's entries (its betas included) are told; an older one not told yet is superseded —
|
|
220
|
+
* recorded with the rest, the linked notes cover it. Of those, only entries for this instance's roles and, when an
|
|
221
|
+
* entry names tools, for a tool it has now. Nothing left to tell → recorded silently.
|
|
195
222
|
*/
|
|
196
223
|
export function planWhatsNew(input) {
|
|
197
224
|
const { record, fresh, version } = input;
|
|
@@ -204,8 +231,10 @@ export function planWhatsNew(input) {
|
|
|
204
231
|
return null;
|
|
205
232
|
if (fresh && !record)
|
|
206
233
|
return { silent: unseen.map(e => e.id), version };
|
|
207
|
-
const roles = input
|
|
208
|
-
const told =
|
|
234
|
+
const { roles, tools } = input, release = releaseOf(version);
|
|
235
|
+
const told = unseen.filter(e => releaseOf(e.since) === release
|
|
236
|
+
&& (!roles || !e.audience || e.audience.some(r => roles.includes(r)))
|
|
237
|
+
&& (!tools || !e.tools || e.tools.some(t => tools.has(t))));
|
|
209
238
|
if (!told.length)
|
|
210
239
|
return { silent: unseen.map(e => e.id), version };
|
|
211
240
|
return { notice: whatsNewNotice(version, told), ids: unseen.map(e => e.id), version };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-whats-new.js","sourceRoot":"","sources":["../src/agent-whats-new.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-whats-new.js","sourceRoot":"","sources":["../src/agent-whats-new.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,7 +104,7 @@ export class AuthorityStateStore {
|
|
|
104
104
|
const s = this.load();
|
|
105
105
|
const enabled = config?.enabled !== false, loopbackOnly = config?.loopback_only === true; // §0.1: on by default
|
|
106
106
|
const namedLink = config?.named_link === true; // §0.2: off by default
|
|
107
|
-
const quickLink = quickLinkEffective(config); // §0.3:
|
|
107
|
+
const quickLink = quickLinkEffective(config); // §0.3: on by default
|
|
108
108
|
const reopened = (namedLink && !s.named_link && !!s.named_link_seen) || (quickLink && !s.quick_link); // §0.3: every widening
|
|
109
109
|
const closed = !!s.named_link && !namedLink, quickClosed = !!s.quick_link && !quickLink;
|
|
110
110
|
const revokes = s.enabled !== enabled || (s.loopback_only && !loopbackOnly) || reopened;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-state.js","sourceRoot":"","sources":["../../src/authority/authority-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authority-state.js","sourceRoot":"","sources":["../../src/authority/authority-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,11 +61,16 @@ export interface WebAuthorityPolicy {
|
|
|
61
61
|
}
|
|
62
62
|
/** The policy in fleet.yaml; a value the validator refuses never loosens it (a bad number is the 48 h default, clamped). */
|
|
63
63
|
export declare function webAuthorityPolicy(web: WebConfig | undefined): WebAuthorityPolicy;
|
|
64
|
-
/** §0.3: the release default of `web.verified_authority.quick_link` — off (the user's decision, 2026-10-23). */
|
|
65
|
-
export declare const QUICK_LINK_DEFAULT = false;
|
|
66
64
|
/**
|
|
67
|
-
* §0.3: the
|
|
68
|
-
*
|
|
65
|
+
* §0.3: the release default of `web.verified_authority.quick_link` — on (the user's decision, 2026-10-28; off since
|
|
66
|
+
* 2026-10-23). A session still needs its account's Confirm in the DM; `quick_link: false` turns it off.
|
|
67
|
+
*/
|
|
68
|
+
export declare const QUICK_LINK_DEFAULT = true;
|
|
69
|
+
/**
|
|
70
|
+
* §0.3: the quick-link option as in force — its explicit value, else (unset) the release default. Every widening is
|
|
71
|
+
* judged on this (settings-change.ts, settings-effect.ts), never on the raw key: a key removed to inherit is a change of
|
|
72
|
+
* value too. #2819: a value the validator refuses ("no", 0) is off, never the default — now that the default is on, it
|
|
73
|
+
* must not open the link.
|
|
69
74
|
*/
|
|
70
75
|
export declare function quickLinkEffective(v: {
|
|
71
76
|
quick_link?: unknown;
|
|
@@ -10,14 +10,19 @@ export function webAuthorityPolicy(web) {
|
|
|
10
10
|
return { enabled: v?.enabled !== false, loopbackOnly: v?.loopback_only === true, namedLink: v?.named_link === true,
|
|
11
11
|
quickLink: quickLinkEffective(v), maxSessionMs: hours * 3_600_000 };
|
|
12
12
|
}
|
|
13
|
-
/** §0.3: the release default of `web.verified_authority.quick_link` — off (the user's decision, 2026-10-23). */
|
|
14
|
-
export const QUICK_LINK_DEFAULT = false;
|
|
15
13
|
/**
|
|
16
|
-
* §0.3: the
|
|
17
|
-
*
|
|
14
|
+
* §0.3: the release default of `web.verified_authority.quick_link` — on (the user's decision, 2026-10-28; off since
|
|
15
|
+
* 2026-10-23). A session still needs its account's Confirm in the DM; `quick_link: false` turns it off.
|
|
16
|
+
*/
|
|
17
|
+
export const QUICK_LINK_DEFAULT = true;
|
|
18
|
+
/**
|
|
19
|
+
* §0.3: the quick-link option as in force — its explicit value, else (unset) the release default. Every widening is
|
|
20
|
+
* judged on this (settings-change.ts, settings-effect.ts), never on the raw key: a key removed to inherit is a change of
|
|
21
|
+
* value too. #2819: a value the validator refuses ("no", 0) is off, never the default — now that the default is on, it
|
|
22
|
+
* must not open the link.
|
|
18
23
|
*/
|
|
19
24
|
export function quickLinkEffective(v, fallback = QUICK_LINK_DEFAULT) {
|
|
20
|
-
return
|
|
25
|
+
return v?.quick_link === undefined || v.quick_link === null ? fallback : v.quick_link === true;
|
|
21
26
|
}
|
|
22
27
|
/** Headers a proxy adds; any one of them makes a request `lan`, whatever its peer address (§3.4). */
|
|
23
28
|
const FORWARDING_HEADERS = ["forwarded", "x-forwarded-for", "x-forwarded-host", "x-real-ip", "cf-connecting-ip", "via"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-authority.js","sourceRoot":"","sources":["../../src/authority/web-authority.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiDvE,2HAA2H;AAC3H,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAW,CAAC;AAahF,4HAA4H;AAC5H,MAAM,UAAU,kBAAkB,CAAC,GAA0B;IAC3D,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,iBAAiB,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;IACrI,qHAAqH;IACrH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI;QAChH,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,SAAS,EAAE,CAAC;AACxE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"web-authority.js","sourceRoot":"","sources":["../../src/authority/web-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -204,7 +204,6 @@ export declare const CLAUDE_RESUME_STARTUP_BUDGET_MS = 60000;
|
|
|
204
204
|
export declare class ClaudeCodeBackend implements CliBackend {
|
|
205
205
|
private instanceDir;
|
|
206
206
|
readonly binaryName = "claude";
|
|
207
|
-
readonly instructionsReloadedOnResume = true;
|
|
208
207
|
readonly replyCompletionGuard = true;
|
|
209
208
|
/**
|
|
210
209
|
* Resuming needs the conversation back from the backend before anything
|
|
@@ -305,6 +304,19 @@ export declare class ClaudeCodeBackend implements CliBackend {
|
|
|
305
304
|
* an in-progress spinner — which is exactly the hang this is meant to surface.
|
|
306
305
|
*/
|
|
307
306
|
getBusyPattern(): RegExp;
|
|
307
|
+
/**
|
|
308
|
+
* #2770 (ii): while background agents run, Claude repaints their session list under the box every second (each
|
|
309
|
+
* agent's elapsed time and tokens), whether or not the main session is working. Only then is this pane one whose
|
|
310
|
+
* motion proves nothing; without the list, motion keeps meaning work, as it always has.
|
|
311
|
+
*/
|
|
312
|
+
periodicRedrawFrom(pane: string): boolean;
|
|
313
|
+
/**
|
|
314
|
+
* #2770 (ii): the main session is idle at its prompt while background agents run — the session list is on screen,
|
|
315
|
+
* the box reads and holds no queue, and no spinner or retry row is live. False for anything else, so a working
|
|
316
|
+
* main session (its spinner, a queue it holds) keeps the instance working. The daemon also holds it working while
|
|
317
|
+
* the transcript shows a turn open.
|
|
318
|
+
*/
|
|
319
|
+
isPeriodicRedrawIdlePane(pane: string): boolean;
|
|
308
320
|
getContextUsage(): number | null;
|
|
309
321
|
getSessionId(): string | null;
|
|
310
322
|
getErrorPatterns(): ErrorPattern[];
|
|
@@ -979,7 +979,6 @@ export const CLAUDE_RESUME_STARTUP_BUDGET_MS = 60_000;
|
|
|
979
979
|
export class ClaudeCodeBackend {
|
|
980
980
|
instanceDir;
|
|
981
981
|
binaryName = "claude";
|
|
982
|
-
instructionsReloadedOnResume = true;
|
|
983
982
|
replyCompletionGuard = true;
|
|
984
983
|
/**
|
|
985
984
|
* Resuming needs the conversation back from the backend before anything
|
|
@@ -1190,6 +1189,26 @@ export class ClaudeCodeBackend {
|
|
|
1190
1189
|
getBusyPattern() {
|
|
1191
1190
|
return new RegExp(`^[ \\t]*[✻✽✢·✶*][ \\t]+(?:\\p{L}+(?:-\\p{L}+)*…(?:[ \\t]+\\([^\\n]*)?|[^\\n]*?${CLAUDE_RETRY_SUFFIX}[ \\t]*$(?=${CLAUDE_LIVE_TAIL}))[ \\t]*$`, "mu");
|
|
1192
1191
|
}
|
|
1192
|
+
/**
|
|
1193
|
+
* #2770 (ii): while background agents run, Claude repaints their session list under the box every second (each
|
|
1194
|
+
* agent's elapsed time and tokens), whether or not the main session is working. Only then is this pane one whose
|
|
1195
|
+
* motion proves nothing; without the list, motion keeps meaning work, as it always has.
|
|
1196
|
+
*/
|
|
1197
|
+
periodicRedrawFrom(pane) {
|
|
1198
|
+
return claudeSessionListRows(claudeRows(pane).map(row => row.trimEnd())) > 0;
|
|
1199
|
+
}
|
|
1200
|
+
/**
|
|
1201
|
+
* #2770 (ii): the main session is idle at its prompt while background agents run — the session list is on screen,
|
|
1202
|
+
* the box reads and holds no queue, and no spinner or retry row is live. False for anything else, so a working
|
|
1203
|
+
* main session (its spinner, a queue it holds) keeps the instance working. The daemon also holds it working while
|
|
1204
|
+
* the transcript shows a turn open.
|
|
1205
|
+
*/
|
|
1206
|
+
isPeriodicRedrawIdlePane(pane) {
|
|
1207
|
+
if (!this.periodicRedrawFrom(pane))
|
|
1208
|
+
return false;
|
|
1209
|
+
const box = readClaudeInputBox(pane);
|
|
1210
|
+
return box !== null && box.queued !== true && !this.getBusyPattern().test(pane);
|
|
1211
|
+
}
|
|
1193
1212
|
getContextUsage() {
|
|
1194
1213
|
try {
|
|
1195
1214
|
const sf = join(this.instanceDir, "statusline.json");
|