@songsid/agend 2.3.2-beta.5 → 2.3.2-beta.7
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/backend/kiro-identity.d.ts +11 -0
- package/dist/backend/kiro-identity.js +16 -0
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-retired-model.d.ts +62 -0
- package/dist/backend/kiro-retired-model.js +160 -0
- package/dist/backend/kiro-retired-model.js.map +1 -0
- package/dist/backend/kiro.d.ts +17 -0
- package/dist/backend/kiro.js +77 -1
- package/dist/backend/kiro.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +11 -0
- package/dist/channel/adapters/discord.js +64 -10
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/config-validator.js +25 -3
- package/dist/config-validator.js.map +1 -1
- package/dist/daemon.d.ts +2 -0
- package/dist/daemon.js +5 -0
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +21 -5
- package/dist/fleet-manager.js +154 -133
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +14 -1
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +14 -1
- package/dist/instance-lifecycle.d.ts +2 -0
- package/dist/instance-lifecycle.js +23 -8
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +16 -0
- package/dist/locale.js.map +1 -1
- package/dist/notice-delivery.d.ts +7 -6
- package/dist/notice-delivery.js +16 -18
- package/dist/notice-delivery.js.map +1 -1
- package/dist/office-share-page.d.ts +13 -0
- package/dist/office-share-page.js +82 -0
- package/dist/office-share-page.js.map +1 -0
- package/dist/office-share-service.d.ts +89 -0
- package/dist/office-share-service.js +172 -0
- package/dist/office-share-service.js.map +1 -0
- package/dist/office-share.d.ts +228 -0
- package/dist/office-share.js +489 -0
- package/dist/office-share.js.map +1 -0
- package/dist/public-web-gateway.js +6 -0
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/quickstart.js +0 -2
- package/dist/quickstart.js.map +1 -1
- package/dist/settings-api.js +1 -1
- package/dist/settings-api.js.map +1 -1
- package/dist/setup-form.d.ts +1 -1
- package/dist/setup-form.js +48 -5
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-host.js +4 -3
- package/dist/setup-host.js.map +1 -1
- package/dist/setup-wizard.js +0 -2
- package/dist/setup-wizard.js.map +1 -1
- package/dist/types.d.ts +12 -3
- package/dist/ui/fleet-office-pack.js +7 -2
- package/dist/ui/fleet-office-skin.js +5 -4
- package/dist/ui/fleet-office-zones.js +17 -6
- package/dist/ui/fleet-office.js +20 -10
- package/dist/ui/office-share-dialog.js +145 -0
- package/dist/ui/office-share-page.js +116 -0
- package/dist/ui/panel-settings.js +12 -8
- package/dist/ui/settings-registry.js +2 -2
- package/dist/ui/settings-strings.js +6 -6
- package/dist/ui/shared/app.css +28 -0
- package/dist/web-api.d.ts +14 -0
- package/dist/web-api.js +91 -0
- package/dist/web-api.js.map +1 -1
- package/dist/web-office-skins.d.ts +2 -1
- package/dist/web-office-skins.js +2 -1
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-settings-patch.js +1 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/working-recovery.d.ts +2 -2
- package/dist/working-recovery.js +43 -8
- package/dist/working-recovery.js.map +1 -1
- package/dist/working-state-journal.d.ts +2 -0
- package/dist/working-state-journal.js +16 -1
- package/dist/working-state-journal.js.map +1 -1
- package/package.json +1 -1
- package/templates/windows-shortcuts.ps1 +151 -147
|
@@ -281,6 +281,15 @@ default; disabled when everyone is in an office) adds the instances in no office
|
|
|
281
281
|
only. Hover and click work across
|
|
282
282
|
tiles; a tile's label, or a double-click on it, opens that office; traffic between offices flies straight across.
|
|
283
283
|
Edit offices and Edit layout wait for a single office.
|
|
284
|
+
**Share…** (#2636; an admin session, on the dashboard reached directly or over the public link — never read-only or a guest; the URL shows only to its maker, in the dialog) makes an Office share
|
|
285
|
+
link: anyone who opens it watches one office (or **All offices**) live, read-only, with no sign-in — names, identity
|
|
286
|
+
colours and states, every 5 s; no chat, no clicks into anything, no settings; agents' `office_set` lines only when
|
|
287
|
+
**Include agents' own status lines** is ticked; hidden instances never. 1 h by default, 15 min to 24 h
|
|
288
|
+
(`web.office_share.max_hours`); at most 10 open. Its own quick tunnel (`https://<random>.trycloudflare.com/o/<token>`)
|
|
289
|
+
starts with the first link and stops with the last; the token is shown once. There is no chat command: the button only. Open links and **Revoke** are in **Settings → Access
|
|
290
|
+
& security → Office share links**; each made or revoked link is announced in General (never its URL). A Cloudflare 429
|
|
291
|
+
says to try again in a few minutes (no retry). `web.office_share.enabled: false` turns it off and ends open links.
|
|
292
|
+
|
|
284
293
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
285
294
|
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them) or the `+ - 0` keys
|
|
286
295
|
(with the office focused), an overview at the bottom right to jump (not on a phone). It takes the whole panel: the
|
|
@@ -300,6 +309,8 @@ A pack may add a `foreground` (a 16:9 PNG over the whole scene, zones packs only
|
|
|
300
309
|
and items in the air, below name tags, bubbles and "+N" — door frames, pillars, table fronts that hide whoever walks
|
|
301
310
|
behind them. A furniture item's `depth` may be `"y"`: drawn among the people by base y (whoever stands lower is in
|
|
302
311
|
front). Numeric depths keep their meaning (under 1000 under the people, 1000 and up over them).
|
|
312
|
+
A pack may set `"straight": true` (#2634): each diagonal leg of a walk becomes an L (across, then up or down), so the
|
|
313
|
+
three walking strips always fit; lay its graph out with horizontal and vertical edges and the corners land on the aisles.
|
|
303
314
|
|
|
304
315
|
**Live traffic** (**Live** switch, on by default; **Key** in the toolbar explains it, as a strip above the canvas): a line for each message between instances.
|
|
305
316
|
Colour by kind — task (delegate_task) purple, send/query/update teal, report pink, broadcast orange; between teams
|
|
@@ -476,6 +487,7 @@ opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`).
|
|
|
476
487
|
| Agent mode, Tool set | `agent_mode`, `tool_set` | agent |
|
|
477
488
|
| Tool progress; Bot-to-bot messages in topics (full / summary / hidden); Log level | `tool_progress`, `cross_instance_visibility`, `log_level` | now |
|
|
478
489
|
| Require a delivered reply | `reply_completion_guard` | now |
|
|
490
|
+
| Daily tips (Topic / Off; always posted in General, never by DM) | `tips` | now |
|
|
479
491
|
| Lightweight mode, Fallback model | `lightweight`, `model_failover` | agent |
|
|
480
492
|
| System prompt | `systemPrompt` | agent |
|
|
481
493
|
| Tags | `tags` | now |
|
|
@@ -510,11 +522,12 @@ progress, reply guard, **ClassicBot admins**, **Allowed guilds**.
|
|
|
510
522
|
| Terminal session minutes (1–20) | `web_terminal.ttl_minutes` |
|
|
511
523
|
| Web echo | `web.echo_to_channel` |
|
|
512
524
|
| Log tab: each agent's steps | `web.log_tab` |
|
|
525
|
+
| Web sign-in notices (Topic / Off; never by DM, guest and public-link notices always post) | `web.notify_login` |
|
|
513
526
|
| Offer temporary public web links | `web.public_link.allow_public` |
|
|
514
527
|
| Public link minutes (1–480; with a fixed hostname 0–10080, 0 = no expiry) | `web.public_link.ttl_minutes` |
|
|
515
528
|
| Reopen the public link when AgEnD starts (fixed hostname only) | `web.public_link.auto_open` |
|
|
516
529
|
| Tunnel protocol (http2 / quic / auto) | `web.public_link.protocol` |
|
|
517
|
-
Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `
|
|
530
|
+
Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `preview`, `preview_port`,
|
|
518
531
|
`preview_origin`, `preview_on_public_link`, `usage_panel`, `search` (`retention_days`: unset and 0 = no age limit,
|
|
519
532
|
300,000-row cap), `provider_secrets`, `upload_max_file_mb`,
|
|
520
533
|
`upload_max_total_mb`, `web_terminal.bind`, `web_terminal.tunnel`.
|
|
@@ -296,6 +296,15 @@ default; disabled when everyone is in an office) adds the instances in no office
|
|
|
296
296
|
only. Hover and click work across
|
|
297
297
|
tiles; a tile's label, or a double-click on it, opens that office; traffic between offices flies straight across.
|
|
298
298
|
Edit offices and Edit layout wait for a single office.
|
|
299
|
+
**Share…** (#2636; an admin session, on the dashboard reached directly or over the public link — never read-only or a guest; the URL shows only to its maker, in the dialog) makes an Office share
|
|
300
|
+
link: anyone who opens it watches one office (or **All offices**) live, read-only, with no sign-in — names, identity
|
|
301
|
+
colours and states, every 5 s; no chat, no clicks into anything, no settings; agents' `office_set` lines only when
|
|
302
|
+
**Include agents' own status lines** is ticked; hidden instances never. 1 h by default, 15 min to 24 h
|
|
303
|
+
(`web.office_share.max_hours`); at most 10 open. Its own quick tunnel (`https://<random>.trycloudflare.com/o/<token>`)
|
|
304
|
+
starts with the first link and stops with the last; the token is shown once. There is no chat command: the button only. Open links and **Revoke** are in **Settings → Access
|
|
305
|
+
& security → Office share links**; each made or revoked link is announced in General (never its URL). A Cloudflare 429
|
|
306
|
+
says to try again in a few minutes (no retry). `web.office_share.enabled: false` turns it off and ends open links.
|
|
307
|
+
|
|
299
308
|
The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
|
|
300
309
|
**+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them) or the `+ - 0` keys
|
|
301
310
|
(with the office focused), an overview at the bottom right to jump (not on a phone). It takes the whole panel: the
|
|
@@ -315,6 +324,8 @@ A pack may add a `foreground` (a 16:9 PNG over the whole scene, zones packs only
|
|
|
315
324
|
and items in the air, below name tags, bubbles and "+N" — door frames, pillars, table fronts that hide whoever walks
|
|
316
325
|
behind them. A furniture item's `depth` may be `"y"`: drawn among the people by base y (whoever stands lower is in
|
|
317
326
|
front). Numeric depths keep their meaning (under 1000 under the people, 1000 and up over them).
|
|
327
|
+
A pack may set `"straight": true` (#2634): each diagonal leg of a walk becomes an L (across, then up or down), so the
|
|
328
|
+
three walking strips always fit; lay its graph out with horizontal and vertical edges and the corners land on the aisles.
|
|
318
329
|
|
|
319
330
|
**Live traffic** (**Live** switch, on by default; **Key** in the toolbar explains it, as a strip above the canvas): a line for each message between instances.
|
|
320
331
|
Colour by kind — task (delegate_task) purple, send/query/update teal, report pink, broadcast orange; between teams
|
|
@@ -491,6 +502,7 @@ opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`).
|
|
|
491
502
|
| Agent mode, Tool set | `agent_mode`, `tool_set` | agent |
|
|
492
503
|
| Tool progress; Bot-to-bot messages in topics (full / summary / hidden); Log level | `tool_progress`, `cross_instance_visibility`, `log_level` | now |
|
|
493
504
|
| Require a delivered reply | `reply_completion_guard` | now |
|
|
505
|
+
| Daily tips (Topic / Off; always posted in General, never by DM) | `tips` | now |
|
|
494
506
|
| Lightweight mode, Fallback model | `lightweight`, `model_failover` | agent |
|
|
495
507
|
| System prompt | `systemPrompt` | agent |
|
|
496
508
|
| Tags | `tags` | now |
|
|
@@ -525,11 +537,12 @@ progress, reply guard, **ClassicBot admins**, **Allowed guilds**.
|
|
|
525
537
|
| Terminal session minutes (1–20) | `web_terminal.ttl_minutes` |
|
|
526
538
|
| Web echo | `web.echo_to_channel` |
|
|
527
539
|
| Log tab: each agent's steps | `web.log_tab` |
|
|
540
|
+
| Web sign-in notices (Topic / Off; never by DM, guest and public-link notices always post) | `web.notify_login` |
|
|
528
541
|
| Offer temporary public web links | `web.public_link.allow_public` |
|
|
529
542
|
| Public link minutes (1–480; with a fixed hostname 0–10080, 0 = no expiry) | `web.public_link.ttl_minutes` |
|
|
530
543
|
| Reopen the public link when AgEnD starts (fixed hostname only) | `web.public_link.auto_open` |
|
|
531
544
|
| Tunnel protocol (http2 / quic / auto) | `web.public_link.protocol` |
|
|
532
|
-
Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `
|
|
545
|
+
Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `preview`, `preview_port`,
|
|
533
546
|
`preview_origin`, `preview_on_public_link`, `usage_panel`, `search` (`retention_days`: unset and 0 = no age limit,
|
|
534
547
|
300,000-row cap), `provider_secrets`, `upload_max_file_mb`,
|
|
535
548
|
`upload_max_total_mb`, `web_terminal.bind`, `web_terminal.tunnel`.
|
|
@@ -201,6 +201,8 @@ export interface IncidentEventSource {
|
|
|
201
201
|
isCodexLivePane?(): Promise<boolean>;
|
|
202
202
|
/** Existing occurrence count used to preserve Codex capacity history on restart. */
|
|
203
203
|
getErrorPatternOccurrenceCount?(type: "model_error", pattern: RegExp): number;
|
|
204
|
+
/** #2648: kiro only — what a model error on its current launch should do (restart once, say once, or nothing). */
|
|
205
|
+
kiroModelError?(): import("./backend/kiro-retired-model.js").KiroModelErrorVerdict | null;
|
|
204
206
|
/** Present on real daemons; hang buttons attach only when it returns one. */
|
|
205
207
|
getHangDetector?(): {
|
|
206
208
|
on(event: string, handler: (...args: any[]) => void): unknown;
|
|
@@ -1012,15 +1012,30 @@ export class InstanceLifecycle {
|
|
|
1012
1012
|
return;
|
|
1013
1013
|
}
|
|
1014
1014
|
}
|
|
1015
|
+
// #2648: a kiro model error — the resumed conversation's saved model retired, or the instance's own model
|
|
1016
|
+
// unavailable. Restart once on kiro's default (no model of its own), else say it once; never on every start.
|
|
1017
|
+
const kiroVerdict = data.type === "model_error" && this.backendOf(name) === "kiro-cli" ? daemon.kiroModelError?.() ?? null : null;
|
|
1018
|
+
if (kiroVerdict?.kind === "restart") {
|
|
1019
|
+
this.ctx.logger.warn({ name, model: kiroVerdict.model }, "kiro model unavailable on a resumed conversation — restarting once on kiro's default model");
|
|
1020
|
+
this.ctx.clearCancelButton(name);
|
|
1021
|
+
this.ctx.restartSingleInstance(name).catch(err => this.ctx.logger.error({ err, name }, "kiro model-switch restart failed"));
|
|
1022
|
+
return;
|
|
1023
|
+
}
|
|
1024
|
+
if (kiroVerdict?.kind === "quiet") {
|
|
1025
|
+
this.ctx.logger.info({ name }, "kiro model unavailable — already said for this conversation and model");
|
|
1026
|
+
return;
|
|
1027
|
+
}
|
|
1015
1028
|
const emoji = data.type === "rate_limit" || data.type === "timeout" ? "⏳" : data.type === "auth_error" ? "🔑" : "⚠️";
|
|
1016
|
-
const incidentMessage =
|
|
1017
|
-
? (()
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1029
|
+
const incidentMessage = kiroVerdict?.kind === "notify"
|
|
1030
|
+
? (kiroVerdict.configured ? t("kiro.model_unavailable_configured", name, kiroVerdict.configured) : t("kiro.model_unavailable_once", name))
|
|
1031
|
+
: data.type === "model_error" && this.backendOf(name) === "claude-code"
|
|
1032
|
+
? (() => {
|
|
1033
|
+
const liveModel = readStatuslineModel(this.ctx.dataDir, name);
|
|
1034
|
+
return liveModel
|
|
1035
|
+
? t("inst.claude_model_fallback", liveModel)
|
|
1036
|
+
: t("inst.claude_model_unavailable");
|
|
1037
|
+
})()
|
|
1038
|
+
: data.message;
|
|
1024
1039
|
const notificationTarget = this.ptyErrorNotificationTarget(name);
|
|
1025
1040
|
// Auth failures are a property of the BACKEND's shared credentials, not of
|
|
1026
1041
|
// one instance: every instance on that CLI fails at once, and one re-login
|