@songsid/agend 2.3.0-beta.3 → 2.3.0-beta.5
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-file-read.d.ts +4 -1
- package/dist/agent-file-read.js +129 -16
- package/dist/agent-file-read.js.map +1 -1
- package/dist/auth-api.d.ts +30 -1
- package/dist/auth-api.js +32 -7
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/web-authority.d.ts +100 -0
- package/dist/authority/web-authority.js +130 -0
- package/dist/authority/web-authority.js.map +1 -0
- package/dist/backend/types.d.ts +1 -0
- package/dist/backend/types.js +15 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-availability.d.ts +120 -0
- package/dist/backend-availability.js +396 -0
- package/dist/backend-availability.js.map +1 -0
- package/dist/backend-command.d.ts +21 -3
- package/dist/backend-command.js +23 -4
- package/dist/backend-command.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +7 -0
- package/dist/channel/adapters/discord.js +35 -0
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +5 -5
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/types.d.ts +6 -0
- package/dist/config-validator.js +91 -2
- package/dist/config-validator.js.map +1 -1
- package/dist/daemon.js +5 -5
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-outbox.d.ts +2 -0
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/fleet-context.d.ts +10 -0
- package/dist/fleet-manager.d.ts +230 -6
- package/dist/fleet-manager.js +719 -42
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +45 -18
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +7 -3
- package/dist/human-delivery-receipts.d.ts +10 -1
- package/dist/human-delivery-receipts.js +26 -9
- package/dist/human-delivery-receipts.js.map +1 -1
- package/dist/locale.js +42 -4
- package/dist/locale.js.map +1 -1
- package/dist/outbound-schemas.d.ts +7 -3
- package/dist/outbound-schemas.js +5 -1
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-link.d.ts +9 -0
- package/dist/public-web-link.js +8 -0
- package/dist/public-web-link.js.map +1 -1
- package/dist/quickstart-api.d.ts +10 -1
- package/dist/quickstart-api.js +12 -4
- package/dist/quickstart-api.js.map +1 -1
- package/dist/reply-buttons-controller.d.ts +4 -0
- package/dist/reply-buttons-controller.js +2 -2
- package/dist/reply-buttons-controller.js.map +1 -1
- package/dist/settings-api.d.ts +9 -0
- package/dist/settings-api.js +76 -2
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +66 -0
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +8 -1
- package/dist/settings-effect.js.map +1 -1
- package/dist/topic-commands.d.ts +5 -0
- package/dist/topic-commands.js +16 -0
- package/dist/topic-commands.js.map +1 -1
- package/dist/types.d.ts +36 -0
- package/dist/ui/chat-strings.js +4 -2
- package/dist/ui/chat-thread.js +4 -1
- package/dist/ui/panel-chat.js +19 -9
- package/dist/ui/panel-fleet.js +18 -6
- package/dist/ui/panel-settings.js +5 -2
- package/dist/ui/settings-catalog.js +92 -0
- package/dist/ui/settings-dialogs.js +37 -6
- package/dist/ui/settings-guests.js +117 -0
- package/dist/ui/settings-strings.js +28 -0
- package/dist/ui/shared/app-i18n.js +2 -0
- package/dist/ui/shared/app-prefs.js +3 -3
- package/dist/ui/shared/app-shell.js +36 -6
- package/dist/ui/shared/app-store.js +14 -0
- package/dist/ui/shared/app.css +54 -3
- package/dist/ui/shared/app.js +21 -14
- package/dist/ui/shared/card-strings.js +4 -0
- package/dist/ui/shared/effect-stock-trust.js +23 -2
- package/dist/ui/shared/identity-card.js +70 -2
- package/dist/ui/shared/instance-nav.js +8 -5
- package/dist/ui/shared/panel-view.js +22 -2
- package/dist/ui/shared/view-strings.js +6 -0
- package/dist/view-api.d.ts +11 -0
- package/dist/view-api.js +27 -4
- package/dist/view-api.js.map +1 -1
- package/dist/web-api.d.ts +32 -1
- package/dist/web-api.js +166 -28
- package/dist/web-api.js.map +1 -1
- package/dist/web-appearance-policy.d.ts +4 -6
- package/dist/web-appearance-policy.js +5 -12
- package/dist/web-appearance-policy.js.map +1 -1
- package/dist/web-appearance-tools.js +5 -1
- package/dist/web-appearance-tools.js.map +1 -1
- package/dist/web-appearance-view.d.ts +4 -1
- package/dist/web-appearance-view.js +21 -2
- package/dist/web-appearance-view.js.map +1 -1
- package/dist/web-appearance.d.ts +2 -2
- package/dist/web-appearance.js +5 -6
- package/dist/web-appearance.js.map +1 -1
- package/dist/web-card.d.ts +14 -0
- package/dist/web-card.js +40 -6
- package/dist/web-card.js.map +1 -1
- package/dist/web-channel-echo.d.ts +7 -1
- package/dist/web-channel-echo.js +6 -2
- package/dist/web-channel-echo.js.map +1 -1
- package/dist/web-chat-history.d.ts +40 -0
- package/dist/web-chat-history.js +66 -3
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-commands.d.ts +1 -0
- package/dist/web-effect-tools.js +2 -3
- package/dist/web-effect-tools.js.map +1 -1
- package/dist/web-effect-upload.js +1 -1
- package/dist/web-effect-upload.js.map +1 -1
- package/dist/web-guest-access.d.ts +65 -7
- package/dist/web-guest-access.js +124 -18
- package/dist/web-guest-access.js.map +1 -1
- package/dist/web-guest-rooms.d.ts +82 -0
- package/dist/web-guest-rooms.js +135 -0
- package/dist/web-guest-rooms.js.map +1 -0
- package/dist/web-identity-color.d.ts +1 -1
- package/dist/web-identity-color.js +2 -2
- package/dist/web-identity-color.js.map +1 -1
- package/dist/web-login.d.ts +47 -0
- package/dist/web-login.js +115 -0
- package/dist/web-login.js.map +1 -1
- package/dist/web-mod-agent.d.ts +1 -1
- package/dist/web-mod-agent.js +2 -4
- package/dist/web-mod-agent.js.map +1 -1
- package/dist/web-prefs.js +1 -1
- package/dist/web-prefs.js.map +1 -1
- package/dist/web-returning-device.d.ts +41 -0
- package/dist/web-returning-device.js +57 -5
- package/dist/web-returning-device.js.map +1 -1
- package/dist/web-session.d.ts +50 -3
- package/dist/web-session.js +96 -14
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +25 -2
- package/dist/web-settings-patch.js +96 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-settings-tools.d.ts +12 -0
- package/dist/web-settings-tools.js +10 -0
- package/dist/web-settings-tools.js.map +1 -1
- package/dist/web-theme.d.ts +2 -0
- package/dist/web-theme.js +10 -1
- package/dist/web-theme.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,7 @@ of this skill).
|
|
|
41
41
|
|---|---|---|
|
|
42
42
|
| `host` | `themes_shown`, `card_size` (s/m/l), `card_sizes` ({instance: s/m/l}), `colour_places` (name/bar/ring), `colours_off`, `sidebar_widget` ({spec, data}) — null puts one back to its default | `{ what: "host", set: { colour_places: ["name","ring"] } }` |
|
|
43
43
|
| `agent_colour` | one agent's colour (`preset:<name>` or `#rrggbb`) and places; null resets each | `{ what: "agent_colour", instance: "atlas", colour: "preset:teal" }` |
|
|
44
|
+
| `banner_focus` | which part of one agent's cropped card banner stays in view: `focus` 0 (top) … 100 (bottom), 50 the centre; it wins over the agent's own `card.bannerFocus`; null follows the agent's again | `{ what: "banner_focus", instance: "atlas", focus: 20 }` |
|
|
44
45
|
| `custom_css` | `save` (with `text`): goes **on trial** on their screens (it goes back by itself unless kept); `keep` (the trial), `revert` (the trial), `use` (with `version`: an earlier saved one, at once), `off` | `{ what: "custom_css", action: "save", text: "…" }`; ask how it looks, then `keep` only when they say so |
|
|
45
46
|
| `mod` | an agent's proposal: `review` (instance → `stage`, `plan`, `plan_hash`), then `install` (stage, plan_hash, `include`: the parts, `target`: the agent); `cancel`, `dismiss`, `uninstall` (id) | review, show the user the plan, install only what they asked for — never custom CSS unasked. A person has one review open at a time: while theirs is open (`mod_review_open`) ask them to finish it; a mod they imported from a file is theirs to install (`mod_not_from_an_agent`) |
|
|
46
47
|
| `effect` | `apply` (instance, id, params?) or `remove` (instance, id?) an effect on a chat | |
|
|
@@ -71,7 +72,7 @@ of this skill).
|
|
|
71
72
|
(`avatar.png`, `portrait.png`, …), and returns both lists of paths. Read the SVGs for exact colours, geometry and
|
|
72
73
|
text, and the pictures as images. Only your own pictures are there.
|
|
73
74
|
- `get_web_theme` — your stored theme, the token defaults it is drawn over, your uploaded pictures (`id`, `slot`), and
|
|
74
|
-
`limits` (changes
|
|
75
|
+
`limits` (changes left, each picture slot's size limits, your picture quota).
|
|
75
76
|
|
|
76
77
|
## What wins over what
|
|
77
78
|
|
|
@@ -101,7 +102,7 @@ Typed values only; anything else is refused with `{ errors: [{ path, problem }]
|
|
|
101
102
|
- `identity`: `{ color?, show? }`: your identity colour and where it shows.
|
|
102
103
|
- `color` is a preset (`red`, `orange`, `amber`, `lime`, `green`, `teal`, `cyan`, `blue`, `indigo`, `violet`, `pink`,
|
|
103
104
|
`slate`, each readable in light and dark) or `#rrggbb`.
|
|
104
|
-
- `show` is a list of `name`, `bar` and `ring` (`[]` for nowhere). Left out, the host's default applies (
|
|
105
|
+
- `show` is a list of `name`, `bar` and `ring` (`[]` for nowhere). Left out, the host's default applies (name, bar and ring).
|
|
105
106
|
- A person's choice for you in the dashboard always wins, field by field, and their Reset brings yours back.
|
|
106
107
|
`get_web_appearance` says which is in force.
|
|
107
108
|
- `bubble`: `{ radius: 0..24, border: "none" | "thin" | "accent" }`.
|
|
@@ -109,7 +110,7 @@ Typed values only; anything else is refused with `{ errors: [{ path, problem }]
|
|
|
109
110
|
- `background`: `{ image: <asset id>, fit: "cover" | "contain", opacity: 0.05..1 }`.
|
|
110
111
|
- `avatar`: an asset id — your face (below a person's upload).
|
|
111
112
|
- `workingLabel`: 1..24 characters on one line, shown while you work instead of "is working…".
|
|
112
|
-
- `card`: `{ portrait?, banner?, tagline?, bio? }` — see below.
|
|
113
|
+
- `card`: `{ portrait?, banner?, tagline?, bio?, bannerFocus? }` — see below.
|
|
113
114
|
|
|
114
115
|
Example:
|
|
115
116
|
|
|
@@ -146,6 +147,13 @@ their own version of any field; theirs is shown instead of yours.
|
|
|
146
147
|
The card goes **inside `set`**: `set_web_theme({ set: { card: { tagline, bio, portrait, banner } } })` (a top-level
|
|
147
148
|
`card` argument is refused).
|
|
148
149
|
|
|
150
|
+
**Your banner is cropped: never drawn wider than 5 : 1** (on a wider screen it is centred over a blurred copy) **nor
|
|
151
|
+
narrower than 9 : 4** (which crops the sides). Make it **1600×600** (the default limit) and keep faces and text
|
|
152
|
+
inside the **safe area: the middle 84% of the width × 53% of the height — 1350×320** — which every card shows on every
|
|
153
|
+
screen and layout. `card.bannerFocus` (0 top … 100 bottom; default 50, the centre) moves that area up or down: put a face
|
|
154
|
+
near the top at `bannerFocus: 0`. A person's focus (Edit profile, or General's `set_web_settings { what: "banner_focus" }`)
|
|
155
|
+
wins over yours. `preview_web_appearance` draws the banner cropped at its focus, as the page does (an M card).
|
|
156
|
+
|
|
149
157
|
## Your identity colour
|
|
150
158
|
|
|
151
159
|
The colour people find you by in the sidebar, drawn on your name, a bar at your row's left edge and/or the ring around
|
|
@@ -156,7 +164,7 @@ your picture. Set yours with `set_web_theme({ set: { identity: { color, show } }
|
|
|
156
164
|
themes) > your own bot's Discord **role** colour > an **automatic** soft colour chosen from your name (two instances
|
|
157
165
|
may share one).
|
|
158
166
|
- **Where it shows**: a person's choice for you > yours (`identity.show`; again only while themes are shown) > the
|
|
159
|
-
host's default (Settings → Web appearance;
|
|
167
|
+
host's default (Settings → Web appearance; name, bar and ring unless changed).
|
|
160
168
|
- The host can **turn colours off** for everyone: nothing is drawn, and every pick, yours included, is kept for when
|
|
161
169
|
they come back.
|
|
162
170
|
- `get_web_appearance`'s `identity_color` shows what is in force: `color`, `source` (`person`, `agent`, `role`, `auto`),
|
|
@@ -221,7 +229,7 @@ everything in a mod and ticks what to apply.
|
|
|
221
229
|
- `propose_web_mod { file }` sends a mod file from your working directory (at most 8 MiB) for a person to review. It
|
|
222
230
|
is checked whole and answers with its problems if it isn't valid. **A mod carrying custom CSS is refused**
|
|
223
231
|
(`owner_css_not_from_agent`). A muted line in your chat says it was proposed. Nothing changes until a person
|
|
224
|
-
installs it. One proposal at a time: a new one replaces yours.
|
|
232
|
+
installs it. One proposal at a time: a new one replaces yours.
|
|
225
233
|
- A widget a person placed from a mod is theirs: you may give it values (`set_web_widget` with `data`), but not replace
|
|
226
234
|
or remove it (`person_placed`).
|
|
227
235
|
|
|
@@ -233,11 +241,14 @@ with the tools above, then `export_web_mod`.
|
|
|
233
241
|
|
|
234
242
|
## Limits
|
|
235
243
|
|
|
236
|
-
- At least **30 s** between changes, at most **10 changes an hour
|
|
237
|
-
|
|
244
|
+
- At least **30 s** between changes, at most **10 changes an hour** — refused with `rate_limited` and
|
|
245
|
+
`retry_after_s`. Only an accepted change counts; a refused or invalid one costs nothing.
|
|
246
|
+
- Uploads (pictures, effects, proposed mods) are not counted. Each picture slot's size limits, your picture quota and
|
|
247
|
+
each file's own caps still apply; using a picture in your theme is a change.
|
|
238
248
|
- Widget values (`set_web_widget` with `data` only): at least **10 s** apart, at most **180 an hour**, apart from the
|
|
239
249
|
above.
|
|
240
|
-
- Effects: `apply_web_effect` and `remove_web_effect` are changes; `upload_web_effect` and `propose_web_mod` are
|
|
250
|
+
- Effects: `apply_web_effect` and `remove_web_effect` are changes; `upload_web_effect` and `propose_web_mod` are not
|
|
251
|
+
counted.
|
|
241
252
|
At most 10 effects and 8 MiB of your own, at most two placed in your chat.
|
|
242
253
|
- Plan the whole look, check it in one `set_web_theme`, then preview — don't iterate change by change.
|
|
243
254
|
|
|
@@ -255,15 +266,31 @@ From a shell: `agend-agent theme get|set key=value…|set --json '<patch>'|clear
|
|
|
255
266
|
|
|
256
267
|
## Files in your working directory
|
|
257
268
|
|
|
258
|
-
Asset uploads, effect directories and mod proposals must be inside your working directory.
|
|
259
|
-
AgEnD-managed
|
|
260
|
-
project directory
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
269
|
+
Asset uploads, effect directories and mod proposals must be inside your working directory. For an external project,
|
|
270
|
+
use files there as before. For your own AgEnD-managed `~/.agend/workspaces/<your-instance-name>` (ClassicBot and
|
|
271
|
+
instances without a project directory), ordinary files there also work; no staging folder is required.
|
|
272
|
+
|
|
273
|
+
General, adapter-specific General (such as `general-telegram`), and other configured working directories inside the
|
|
274
|
+
AgEnD state directory must stage inputs under **`web-assets/` or `web-effects/`**. For example, put a banner at
|
|
275
|
+
`web-assets/banner.png` or an effect package at `web-effects/sparks/`, relative to that working directory. Its root
|
|
276
|
+
and backend configuration folders are not upload areas. Generated previews and exported mods still use the fixed
|
|
277
|
+
`.agend/appearance/` and `.agend/mods/` directories and can be read back or proposed there.
|
|
278
|
+
|
|
279
|
+
The daemon uses its launch identity and configuration; the CLI resolves `AGEND_INSTANCE_NAME` against `fleet.yaml`.
|
|
280
|
+
These checks require a canonical, exclusively owned directory: the state root, shared or overlapping configured
|
|
281
|
+
working directories, another instance's directory, and the host's state stores never qualify. No tool argument can
|
|
282
|
+
select an identity or working directory. Missing or unreadable ownership evidence refuses in-state access.
|
|
283
|
+
|
|
284
|
+
Inside all admitted in-state areas, `.env`, databases and their WAL/SHM/journal files, `instances/`,
|
|
285
|
+
`credential-profiles/`, `inbox/`, `web-files/`, `web-chat.json`, `chat-logs/`, backend credential/session/config files,
|
|
286
|
+
and hidden files or folders are refused. The only hidden-directory exception is the two generated `.agend/`
|
|
287
|
+
output directories above; their contents still undergo the sensitive-name checks. Hard-linked state files are also
|
|
288
|
+
refused. Copy an intended asset into staging as a new regular file; do not link a private state file there.
|
|
289
|
+
|
|
290
|
+
Paths are checked after resolving symlinks. A symlink named after General or a workspace, or in its managed parent
|
|
291
|
+
path, cannot widen access; uploaded files themselves must not be symlinks. Containment still applies to relative and
|
|
292
|
+
absolute paths and to each file in an effect package. The CLI name and current directory are controlled by its shell:
|
|
293
|
+
these local checks prevent accidental uploads, but do not isolate shells running as the same OS user.
|
|
267
294
|
|
|
268
295
|
## Effects
|
|
269
296
|
|
|
@@ -302,7 +329,7 @@ smallest valid `effect.json`:
|
|
|
302
329
|
|
|
303
330
|
**The tools:**
|
|
304
331
|
|
|
305
|
-
- `upload_web_effect { dir }` → `{ id, warnings }`.
|
|
332
|
+
- `upload_web_effect { dir }` → `{ id, warnings }`. Uploads are not counted; the effect's own size caps apply.
|
|
306
333
|
**Your own** copies are at most **10 effects and 8 MiB**; effects a person shared with you don't count.
|
|
307
334
|
- `list_web_effects` — your own effects and those a person shared with you: `id`, `name`, `title`, `regions`, `layer`,
|
|
308
335
|
`bytes`, `latest_profile`.
|
|
@@ -73,9 +73,13 @@ the local address sees every instance's live terminal and the roster (status, co
|
|
|
73
73
|
tags, name, description, avatars, cards) and the usage meters — read only; editing says "Sign in to edit". Over a
|
|
74
74
|
public link `/view` always needs sign-in.
|
|
75
75
|
|
|
76
|
-
**Guests (#1920).**
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
**Guests (#1920, 2.3 beta).** Off by default: `web.guests.enabled` (or Settings → Web → Guests). Then someone who is
|
|
77
|
+
not a fleet admin sends `/web` and gets a code privately, signing in as their own Discord or Telegram account. A guest
|
|
78
|
+
sees only the agents they can already use in chat: their connection's fleet topics and General (an `open` connection:
|
|
79
|
+
only `web.guests.open_instances`), their own Telegram private ClassicBot room, and ClassicBot group rooms while their
|
|
80
|
+
membership is verified, minus any `web.guests.narrow`. They can chat there unless `web.guests.chat` is false, never send
|
|
81
|
+
a command (text starting with `/` is refused), and the agent sees them as `via web (guest)`. A guest's app has no Fleet,
|
|
82
|
+
View, Settings or Needs you. To invite someone: turn it on, then tell them to send `/web`.
|
|
79
83
|
|
|
80
84
|
## Chat
|
|
81
85
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type Database from "better-sqlite3";
|
|
2
2
|
import type { DeliveryStatusSelector, DeliveryStatusPage } from "./delivery-outbox.js";
|
|
3
3
|
import { type AgentMode } from "./cross-instance-envelope.js";
|
|
4
|
+
import { type HumanAuthority } from "./authority/web-authority.js";
|
|
4
5
|
/** Server-owned ingress facts. Labels and Web session identity are not platform authority. */
|
|
5
6
|
export interface HumanOrigin {
|
|
6
7
|
platform: "discord" | "telegram" | "web";
|
|
@@ -11,13 +12,19 @@ export interface HumanOrigin {
|
|
|
11
12
|
ingress: "message" | "action" | "web";
|
|
12
13
|
anchor_message_id?: string;
|
|
13
14
|
event_id?: string;
|
|
15
|
+
/**
|
|
16
|
+
* #1939: web traffic only — what web admission found for the session that sent it (authority/web-authority.ts).
|
|
17
|
+
* Server-owned like the rest, never read from a message; the receipt stores it in its own column, not in `origin`.
|
|
18
|
+
*/
|
|
19
|
+
authority?: HumanAuthority;
|
|
14
20
|
}
|
|
15
21
|
/** Called only by trusted SDK event producers, never on text/agent metadata. */
|
|
16
22
|
export declare function nativeHumanOrigin(platform: "telegram" | "discord", adapterId: string, userId: string, username: string | undefined, isBot: boolean | undefined, messageId: string | null, action?: {
|
|
17
23
|
anchor: string;
|
|
18
24
|
event: string;
|
|
19
25
|
}): HumanOrigin | undefined;
|
|
20
|
-
|
|
26
|
+
/** The actor fields stay null whatever the session (§4: HumanOrigin.platform stays "web"); its account is in `authority`. */
|
|
27
|
+
export declare function webHumanOrigin(action?: boolean, authority?: HumanAuthority): HumanOrigin;
|
|
21
28
|
export type HumanWriteMode = "idle_submit" | "native_queue_handoff" | "steer" | "raw_paste";
|
|
22
29
|
export type HumanPositiveTag = "unique-id-pane" | "composer-empty-steer" | "composer-empty-queue" | "composer-empty-idle";
|
|
23
30
|
export interface HumanReceiptProof {
|
|
@@ -58,6 +65,8 @@ export interface HumanReceiptRow {
|
|
|
58
65
|
created_at: string;
|
|
59
66
|
updated_at: string;
|
|
60
67
|
delivered_at: string | null;
|
|
68
|
+
/** #1939: the HumanAuthority written at admission (JSON); null on a row from before — see receiptAuthority. */
|
|
69
|
+
authority_json: string | null;
|
|
61
70
|
}
|
|
62
71
|
export declare function initializeHumanReceipts(db: Database.Database): void;
|
|
63
72
|
/** Server-only admission; no origin is read from an agent payload or tool argument. */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from "node:crypto";
|
|
2
2
|
import { t } from "./locale.js";
|
|
3
3
|
import { renderCrossInstanceHandoffMetadata } from "./cross-instance-envelope.js";
|
|
4
|
+
import { isHumanAuthority, platformAuthority, receiptAuthority } from "./authority/web-authority.js";
|
|
4
5
|
/** Called only by trusted SDK event producers, never on text/agent metadata. */
|
|
5
6
|
export function nativeHumanOrigin(platform, adapterId, userId, username, isBot, messageId, action) {
|
|
6
7
|
if (isBot !== false || !adapterId || !userId)
|
|
@@ -11,9 +12,10 @@ export function nativeHumanOrigin(platform, adapterId, userId, username, isBot,
|
|
|
11
12
|
...(action ? { anchor_message_id: action.anchor, event_id: action.event } : {}),
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
/** The actor fields stay null whatever the session (§4: HumanOrigin.platform stays "web"); its account is in `authority`. */
|
|
16
|
+
export function webHumanOrigin(action = false, authority) {
|
|
15
17
|
return { platform: "web", adapter_id: null, user_id: null, username: null,
|
|
16
|
-
platform_message_id: null, ingress: action ? "action" : "web" };
|
|
18
|
+
platform_message_id: null, ingress: action ? "action" : "web", ...(authority ? { authority } : {}) };
|
|
17
19
|
}
|
|
18
20
|
export function humanBodyHash(body) {
|
|
19
21
|
return createHash("sha256").update(body, "utf8").digest("hex");
|
|
@@ -54,6 +56,10 @@ export function initializeHumanReceipts(db) {
|
|
|
54
56
|
"proof_tag TEXT,proof_mode TEXT,created_at TEXT NOT NULL,updated_at TEXT NOT NULL,delivered_at TEXT);",
|
|
55
57
|
"CREATE INDEX IF NOT EXISTS idx_human_receipt_retention ON human_delivery_receipts(updated_at);",
|
|
56
58
|
].join("\n"));
|
|
59
|
+
// #1939: added in place; rows from before keep NULL, which reads as their platform's meaning.
|
|
60
|
+
const columns = db.prepare("PRAGMA table_info(human_delivery_receipts)").all();
|
|
61
|
+
if (!columns.some(c => c.name === "authority_json"))
|
|
62
|
+
db.exec("ALTER TABLE human_delivery_receipts ADD COLUMN authority_json TEXT");
|
|
57
63
|
}
|
|
58
64
|
/** Server-only admission; no origin is read from an agent payload or tool argument. */
|
|
59
65
|
export function createHumanReceipt(db, input) {
|
|
@@ -63,16 +69,21 @@ export function createHumanReceipt(db, input) {
|
|
|
63
69
|
|| !["message", "action", "web"].includes(input.origin.ingress)
|
|
64
70
|
|| (input.origin.platform !== "web" && (!input.origin.adapter_id || !input.origin.user_id || input.origin.ingress === "web"))
|
|
65
71
|
|| (input.origin.platform === "web" && (input.origin.adapter_id !== null || input.origin.user_id !== null || input.origin.username !== null || input.origin.platform_message_id !== null))
|
|
66
|
-
|| (input.origin.ingress === "action" && input.origin.platform_message_id !== null)
|
|
72
|
+
|| (input.origin.ingress === "action" && input.origin.platform_message_id !== null)
|
|
73
|
+
// #1939: only web admission writes authority, and only the shape it writes; platform authority comes from the origin.
|
|
74
|
+
|| (input.origin.authority !== undefined && (input.origin.platform !== "web" || !isHumanAuthority(input.origin.authority)
|
|
75
|
+
|| input.origin.authority.kind === "platform")))
|
|
67
76
|
throw new Error("Human verification evidence is unavailable");
|
|
68
|
-
const
|
|
77
|
+
const { authority: webAuthority, ...stored } = input.origin;
|
|
78
|
+
const authority = JSON.stringify(stored.platform === "web" ? webAuthority ?? { kind: "none", actor: null, authority_epoch: 0 } : platformAuthority(stored, 0));
|
|
79
|
+
const origin = JSON.stringify(stored);
|
|
69
80
|
if (Buffer.byteLength(origin, "utf8") > 4096)
|
|
70
81
|
throw new Error("Human verification origin exceeds its bound");
|
|
71
82
|
const id = randomUUID(), now = new Date().toISOString();
|
|
72
83
|
db.prepare("INSERT INTO human_delivery_receipts " +
|
|
73
|
-
"(receipt_id,message_id,target_instance,manager_boot_id,original_body,original_sha256,origin_json,input_kind,state,created_at,updated_at) " +
|
|
74
|
-
"VALUES (?,?,?,?,?,?,?,?,'queued'
|
|
75
|
-
.run(id, "hmsg-" + id, input.targetInstance, input.managerBootId, input.originalBody, humanBodyHash(input.originalBody), origin, input.inputKind, now, now);
|
|
84
|
+
"(receipt_id,message_id,target_instance,manager_boot_id,original_body,original_sha256,origin_json,input_kind,state,created_at,updated_at,authority_json) " +
|
|
85
|
+
"VALUES (?,?,?,?,?,?,?,?,'queued',?,?,?)")
|
|
86
|
+
.run(id, "hmsg-" + id, input.targetInstance, input.managerBootId, input.originalBody, humanBodyHash(input.originalBody), origin, input.inputKind, now, now, authority);
|
|
76
87
|
return getHumanReceipt(db, id);
|
|
77
88
|
}
|
|
78
89
|
export function getHumanReceipt(db, id) {
|
|
@@ -138,9 +149,13 @@ export function queryHumanReceipt(db, caller, selector) {
|
|
|
138
149
|
.get(row.receipt_id, caller))
|
|
139
150
|
return { items: [], next_cursor: null };
|
|
140
151
|
const origin = JSON.parse(row.origin_json);
|
|
152
|
+
// #1939 S1: who authorized it, next to origin and proof_kind (delivery evidence); a web-session receipt names its account.
|
|
153
|
+
const authority = receiptAuthority(origin, row.authority_json ?? null);
|
|
141
154
|
const item = {
|
|
142
155
|
delivery_id: row.receipt_id, operation_id: row.receipt_id, correlation_id: null,
|
|
143
|
-
source_instance:
|
|
156
|
+
source_instance: authority.kind === "web-session" && authority.actor
|
|
157
|
+
? "human:web:" + authority.actor.adapter_id + ":" + authority.actor.user_id
|
|
158
|
+
: "human:" + origin.platform + ":" + (origin.user_id ?? "unknown"),
|
|
144
159
|
target_instance: row.target_instance, kind: "human_inbound", state: row.state, attempt_no: 0,
|
|
145
160
|
created_at: row.created_at, updated_at: row.updated_at,
|
|
146
161
|
status_summary: t("delivery.status_" + row.state),
|
|
@@ -148,6 +163,7 @@ export function queryHumanReceipt(db, caller, selector) {
|
|
|
148
163
|
delivery_mode: row.proof_mode === "steer" ? "steer" : "idle_queue", submission_mode: row.proof_mode, consumed_at: null, consumed_via: null,
|
|
149
164
|
origin, wire_content_sha256: row.wire_sha256, delivered_at: row.delivered_at,
|
|
150
165
|
proof_kind: row.proof_tag,
|
|
166
|
+
authority,
|
|
151
167
|
...(caller !== null && selector.messageId ? { content: row.original_body } : {}),
|
|
152
168
|
};
|
|
153
169
|
if (caller !== null && selector.messageId) {
|
|
@@ -173,7 +189,8 @@ export function steerInboundEnvelope(inbound) {
|
|
|
173
189
|
export const BTW_INBOUND_PREFIX = "[BTW — side question from the user. Answer it separately without changing or interrupting the CURRENT work.]\n";
|
|
174
190
|
/** One formatter for human wire bytes and their immutable evidence snapshot. */
|
|
175
191
|
export function formatHumanInboundMessage(content, meta, mode) {
|
|
176
|
-
|
|
192
|
+
// #1920: a guest's web message says so — recognition only, like every web message (authority none).
|
|
193
|
+
const via = meta.source ? " via " + meta.source + (meta.source === "web" && meta.web_guest === "1" ? " (guest)" : "") : "";
|
|
177
194
|
const idTag = meta.user_id ? ", id:" + meta.user_id : "";
|
|
178
195
|
let body = "[user:" + (meta.user || "unknown") + via + idTag + "] " + content;
|
|
179
196
|
if (meta.pending_reactions)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human-delivery-receipts.js","sourceRoot":"","sources":["../src/human-delivery-receipts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"human-delivery-receipts.js","sourceRoot":"","sources":["../src/human-delivery-receipts.ts"],"names":[],"mappings":"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"}
|
package/dist/locale.js
CHANGED
|
@@ -147,6 +147,20 @@ const enMessages = {
|
|
|
147
147
|
"dashboard.revoked": "🔒 Signed out {0} web session(s) and withdrew any unused code.",
|
|
148
148
|
"dashboard.revoked_not_durable": "⚠️ Signed out {0} web session(s) for now, but the change could NOT be saved: ~/.agend/web-sessions.json could not be updated or removed, so a fleet restart may bring those sessions back. Fix that file's permissions and run /web revoke again, or rotate the token with agend web-token rotate.",
|
|
149
149
|
"web.login_notice": "🔐 New web sign-in: {0} ({1}, session {2}). If this was not you, send /web revoke.",
|
|
150
|
+
"web.guest_login_notice": "👤 A guest, {0}, signed in to the web ({1}; {2} agents they already use in chat; session {3}). /web revoke ends every web session.",
|
|
151
|
+
"web.guest_intro": "Guest sign-in: the web shows only the {0} agents you can already use in chat.",
|
|
152
|
+
"web.guest_public": "From anywhere (the public link, open for now): {0}",
|
|
153
|
+
"web.guest_public_login_notice": "👤 A guest, {0}, signed in through the public link ({1}; {2} agents they already use in chat; session {3}). Close the link or send /web revoke to end it.",
|
|
154
|
+
"web.guest_sent": "📬 I sent you a guest sign-in code privately.",
|
|
155
|
+
"web.guest_dm_failed": "I couldn't send you a private message. Allow DMs from this server's members, then send /web again.",
|
|
156
|
+
"web.guest_dm_failed_link": "I couldn't send you a private message. Open a chat with me ({0}) and press Start: your code comes there.",
|
|
157
|
+
"web.guest_wait": "A sign-in code went out less than a minute ago — check your private messages.",
|
|
158
|
+
"web.guest_nothing": "There is nothing for you on the web yet: guest sign-in shows only the agents you can already use in chat.",
|
|
159
|
+
"web.guest_not_set_up": "Guest web sign-in isn't set up for this group; ask an admin.",
|
|
160
|
+
"web.guest_paused": "Guest web sign-in is paused for a few minutes (too many wrong codes). Try again later.",
|
|
161
|
+
"web.guest_busy": "Too many guest sign-in codes are waiting to be used right now. Try again in a few minutes.",
|
|
162
|
+
"web.guest_revoked": "Signed out {0} guest web session(s) of yours.",
|
|
163
|
+
"web.guest_revoked_not_durable": "⚠️ Signed out {0} guest web session(s) of yours for now, but it could not be saved: a fleet restart may bring them back. Tell an admin.",
|
|
150
164
|
"web.resend_code": "🔐 Web sign-in code: {0} (single use, {1} minutes; any earlier code no longer works)\nRequested from the sign-in page by {2} ({3}). If this was not you, ignore it or send /web revoke.",
|
|
151
165
|
"web.resend_unknown_browser": "a browser",
|
|
152
166
|
"web.resend_public": "public link",
|
|
@@ -821,8 +835,13 @@ const enMessages = {
|
|
|
821
835
|
"effort.current_fleet": "Current effort: {0} (fleet default)",
|
|
822
836
|
"effort.current": "Current effort: {0}",
|
|
823
837
|
"backend.usage": "Usage: /backend [backend] [model] [effort] — e.g. /backend codex gpt-5.5 high. With nothing after it, a menu opens.",
|
|
824
|
-
"backend.menu": "Now: {0}\nSelect a backend (
|
|
825
|
-
"backend.
|
|
838
|
+
"backend.menu": "Now: {0}\nSelect a backend (one that cannot run on this host says why):",
|
|
839
|
+
"backend.unknown_backend": "❌ `{0}` is not a backend. Backends: {1}.",
|
|
840
|
+
"backend.unusable": "❌ {0} cannot be used on this host: {1}.",
|
|
841
|
+
"backend.reason_not_installed": "not installed",
|
|
842
|
+
"backend.reason_not_signed_in": "not signed in (use /login)",
|
|
843
|
+
"backend.reason_too_old": "needs version {0} or newer",
|
|
844
|
+
"backend.reason_unchecked": "not checked yet",
|
|
826
845
|
"backend.same": "{0} already runs {1} — nothing changed. To change only its model or effort, use /model or /effort.",
|
|
827
846
|
"backend.default": "default",
|
|
828
847
|
"backend.default_inherited": "fleet default: {0}",
|
|
@@ -1152,6 +1171,20 @@ const zhTWMessages = {
|
|
|
1152
1171
|
"dashboard.revoked": "🔒 已登出 {0} 個網頁 session,並作廢尚未使用的登入碼。",
|
|
1153
1172
|
"dashboard.revoked_not_durable": "⚠️ 目前已登出 {0} 個網頁 session,但這個變更「無法保存」:~/.agend/web-sessions.json 無法更新也無法刪除,fleet 重啟後這些 session 可能會復活。請修正該檔權限後再執行一次 /web revoke,或用 agend web-token rotate 換掉 token。",
|
|
1154
1173
|
"web.login_notice": "🔐 有新的網頁登入:{0}({1},session {2})。如果不是你,請傳 /web revoke。",
|
|
1174
|
+
"web.guest_login_notice": "👤 訪客 {0} 登入了網頁({1};可看到他在聊天中本來就能用的 {2} 個 agent;session {3})。/web revoke 會結束所有網頁 session。",
|
|
1175
|
+
"web.guest_intro": "訪客登入:網頁只會顯示你在聊天中本來就能用的 {0} 個 agent。",
|
|
1176
|
+
"web.guest_public": "從任何地方(公開連結,目前開啟中):{0}",
|
|
1177
|
+
"web.guest_public_login_notice": "👤 訪客 {0} 透過公開連結登入了({1};可看到他在聊天中本來就能用的 {2} 個 agent;session {3})。關閉連結或傳 /web revoke 即可結束。",
|
|
1178
|
+
"web.guest_sent": "📬 已私訊你一組訪客登入碼。",
|
|
1179
|
+
"web.guest_dm_failed": "無法私訊你。請允許這個伺服器的成員私訊你,然後再傳一次 /web。",
|
|
1180
|
+
"web.guest_dm_failed_link": "無法私訊你。請開啟和我的對話({0})並按「開始」,登入碼會送到那裡。",
|
|
1181
|
+
"web.guest_wait": "不到一分鐘前已經寄出一組登入碼,請查看你的私訊。",
|
|
1182
|
+
"web.guest_nothing": "網頁上目前沒有你能看的內容:訪客登入只會顯示你在聊天中本來就能用的 agent。",
|
|
1183
|
+
"web.guest_not_set_up": "這個群組還沒有設定訪客網頁登入,請洽管理者。",
|
|
1184
|
+
"web.guest_paused": "訪客網頁登入暫停幾分鐘(錯誤的登入碼太多),請稍後再試。",
|
|
1185
|
+
"web.guest_busy": "目前有太多訪客登入碼還沒被使用,請過幾分鐘再試。",
|
|
1186
|
+
"web.guest_revoked": "已登出你的 {0} 個訪客網頁 session。",
|
|
1187
|
+
"web.guest_revoked_not_durable": "⚠️ 目前已登出你的 {0} 個訪客網頁 session,但無法保存:fleet 重啟後可能會復活。請告訴管理者。",
|
|
1155
1188
|
"web.resend_code": "🔐 網頁登入碼:{0}(只能用一次,{1} 分鐘內有效;之前的登入碼已作廢)\n由登入頁面上的 {2}({3})要求。如果不是你,請忽略或傳 /web revoke。",
|
|
1156
1189
|
"web.resend_unknown_browser": "某個瀏覽器",
|
|
1157
1190
|
"web.resend_public": "公開連結",
|
|
@@ -1826,8 +1859,13 @@ const zhTWMessages = {
|
|
|
1826
1859
|
"effort.current_fleet": "目前推理強度:{0}(Fleet 預設)",
|
|
1827
1860
|
"effort.current": "目前推理強度:{0}",
|
|
1828
1861
|
"backend.usage": "用法:/backend [backend] [模型] [推理強度] — 例如 /backend codex gpt-5.5 high。不加參數會開啟選單。",
|
|
1829
|
-
"backend.menu": "目前:{0}\n請選擇 backend
|
|
1830
|
-
"backend.
|
|
1862
|
+
"backend.menu": "目前:{0}\n請選擇 backend(這台主機無法使用的會註明原因):",
|
|
1863
|
+
"backend.unknown_backend": "❌ `{0}` 不是 backend。可用的 backend:{1}。",
|
|
1864
|
+
"backend.unusable": "❌ 這台主機無法使用 {0}:{1}。",
|
|
1865
|
+
"backend.reason_not_installed": "未安裝",
|
|
1866
|
+
"backend.reason_not_signed_in": "未登入(請用 /login)",
|
|
1867
|
+
"backend.reason_too_old": "需要 {0} 以上版本",
|
|
1868
|
+
"backend.reason_unchecked": "尚未檢查",
|
|
1831
1869
|
"backend.same": "{0} 已經在用 {1} — 沒有變更。只要換模型或推理強度,請用 /model 或 /effort。",
|
|
1832
1870
|
"backend.default": "預設",
|
|
1833
1871
|
"backend.default_inherited": "fleet 預設:{0}",
|