@songsid/agend 2.2.0-alpha.9 → 2.2.0-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/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/dist/agent-cli-instructions.md +10 -7
- package/dist/agent-endpoint.js +21 -9
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.d.ts +47 -0
- package/dist/agent-whats-new.js +141 -0
- package/dist/agent-whats-new.js.map +1 -0
- package/dist/auth-api.d.ts +2 -2
- package/dist/auth-api.js +2 -2
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/kiro-engine-ledger.d.ts +5 -0
- package/dist/backend/kiro-engine-ledger.js +20 -0
- package/dist/backend/kiro-engine-ledger.js.map +1 -1
- package/dist/backend/kiro-identity.d.ts +6 -0
- package/dist/backend/kiro-identity.js +19 -5
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro.d.ts +14 -2
- package/dist/backend/kiro.js +84 -9
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +4 -2
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +13 -1
- package/dist/channel/adapters/discord.js +34 -2
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +11 -1
- package/dist/channel/adapters/telegram.js +28 -2
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/mcp-server.js +9 -1
- package/dist/channel/mcp-server.js.map +1 -1
- package/dist/channel/mcp-tools.d.ts +11 -0
- package/dist/channel/mcp-tools.js +23 -12
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.js +7 -2
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/channel/types.d.ts +13 -1
- package/dist/cli.js +55 -16
- package/dist/cli.js.map +1 -1
- package/dist/command-table.js +1 -1
- package/dist/command-table.js.map +1 -1
- package/dist/config-validator.js +48 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/cross-instance-envelope.d.ts +15 -2
- package/dist/cross-instance-envelope.js +27 -5
- package/dist/cross-instance-envelope.js.map +1 -1
- package/dist/daemon.d.ts +36 -0
- package/dist/daemon.js +157 -6
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-outbox.d.ts +6 -0
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/fleet-manager.d.ts +48 -0
- package/dist/fleet-manager.js +275 -6
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/backend-providers/SKILL.md +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +9 -6
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +11 -2
- package/dist/general-knowledge/skills/delegation-playbook/SKILL.md +8 -8
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +5 -5
- package/dist/general-knowledge/skills/fleet-health/SKILL.md +4 -4
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +13 -13
- package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -2
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +6 -0
- package/dist/general-knowledge/skills/model-discovery/SKILL.md +9 -9
- package/dist/general-knowledge/skills/multi-channel/SKILL.md +8 -2
- package/dist/general-knowledge/skills/scheduling/SKILL.md +5 -3
- package/dist/general-knowledge/skills/session-management/SKILL.md +6 -5
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +2 -2
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +4 -3
- package/dist/general-knowledge/steering/core-rules.md +8 -7
- package/dist/instance-avatar.d.ts +36 -0
- package/dist/instance-avatar.js +57 -0
- package/dist/instance-avatar.js.map +1 -0
- package/dist/instance-config-impact.js +5 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +4 -0
- package/dist/instance-lifecycle.js +3 -1
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.d.ts +2 -0
- package/dist/instructions.js +10 -7
- package/dist/instructions.js.map +1 -1
- package/dist/locale.js +36 -26
- package/dist/locale.js.map +1 -1
- package/dist/next-steps.js +1 -1
- package/dist/next-steps.js.map +1 -1
- package/dist/outbound-handlers.js +7 -4
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +8 -0
- package/dist/outbound-schemas.js +15 -5
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +3 -0
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/service-activation.js +4 -3
- package/dist/service-activation.js.map +1 -1
- package/dist/settings-api.js +71 -21
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +70 -1
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +26 -4
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.js +7 -0
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/setup-form.d.ts +1 -1
- package/dist/setup-form.js +1 -1
- package/dist/status-emojis.d.ts +10 -3
- package/dist/status-emojis.js +11 -2
- package/dist/status-emojis.js.map +1 -1
- package/dist/tips.js +4 -4
- package/dist/tips.js.map +1 -1
- package/dist/transcript-monitor.d.ts +8 -0
- package/dist/transcript-monitor.js +26 -2
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +54 -0
- package/dist/transcript-sources.js +188 -27
- package/dist/transcript-sources.js.map +1 -1
- package/dist/transcript-turns.d.ts +15 -2
- package/dist/transcript-turns.js +15 -2
- package/dist/transcript-turns.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/ui/chat-emojis.js +33 -0
- package/dist/ui/chat-render.js +12 -0
- package/dist/ui/chat-thread.js +1 -1
- package/dist/ui/panel-chat.js +13 -3
- package/dist/ui/panel-needs.js +5 -2
- package/dist/ui/panel-settings.js +117 -26
- package/dist/ui/settings-dialogs.js +7 -2
- package/dist/ui/settings-model.js +2 -1
- package/dist/ui/settings-strings.js +38 -2
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-route.js +1 -1
- package/dist/ui/shared/app.css +29 -1
- package/dist/ui/shared/instance-nav.js +77 -8
- package/dist/ui/shared/signin.js +7 -7
- package/dist/ui/shared/tokens.css +9 -0
- package/dist/ui/shared/view-strings.js +2 -2
- package/dist/ui/signin.html +1 -1
- package/dist/update-install.d.ts +15 -1
- package/dist/update-install.js +6 -0
- package/dist/update-install.js.map +1 -1
- package/dist/update-preflight.d.ts +100 -0
- package/dist/update-preflight.js +264 -0
- package/dist/update-preflight.js.map +1 -0
- package/dist/updater-caller.d.ts +31 -0
- package/dist/updater-caller.js +109 -0
- package/dist/updater-caller.js.map +1 -0
- package/dist/view-api.d.ts +1 -1
- package/dist/view-api.js +33 -8
- package/dist/view-api.js.map +1 -1
- package/dist/wake-coordinator.d.ts +11 -0
- package/dist/wake-coordinator.js +38 -4
- package/dist/wake-coordinator.js.map +1 -1
- package/dist/web-api.d.ts +11 -0
- package/dist/web-api.js +54 -0
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.d.ts +2 -2
- package/dist/web-auth.js +5 -3
- package/dist/web-auth.js.map +1 -1
- package/dist/web-host-guard.d.ts +3 -11
- package/dist/web-host-guard.js +3 -12
- package/dist/web-host-guard.js.map +1 -1
- package/dist/web-images.d.ts +47 -0
- package/dist/web-images.js +169 -0
- package/dist/web-images.js.map +1 -0
- package/dist/web-session.d.ts +36 -1
- package/dist/web-session.js +52 -5
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +21 -0
- package/dist/web-settings-patch.js +74 -0
- package/dist/web-settings-patch.js.map +1 -0
- package/dist/web-shell-routes.d.ts +1 -1
- package/dist/web-shell-routes.js +1 -1
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/workflow-templates/default.md +1 -1
- package/package.json +1 -1
package/dist/settings-change.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { SettingsConfirmationError } from "./settings-confirmation.js";
|
|
3
3
|
import { settingsFingerprint } from "./settings-transaction.js";
|
|
4
4
|
import { STATUS_EMOJI_CONFIG_KEYS } from "./status-emojis.js";
|
|
5
|
+
import { LOCAL_SESSION_HOURS, localSessionPolicy } from "./web-session.js";
|
|
5
6
|
export const SETTINGS_DIFF_RECORDS = 32;
|
|
6
7
|
export const SETTINGS_DIFF_UNITS = 4096;
|
|
7
8
|
const immediate = new Set([
|
|
@@ -40,6 +41,54 @@ const IMMEDIATE_CHILDREN = {
|
|
|
40
41
|
};
|
|
41
42
|
const SENSITIVE_SEGMENT = /access|permission|admin|credential|secret|public_link|mcp|auth|pre_task|instruction|project_roots/i;
|
|
42
43
|
const scalar = (value) => value === undefined || value === null || typeof value !== "object";
|
|
44
|
+
/**
|
|
45
|
+
* #1620: web exposure settings that are judged by DIRECTION. Tightening (a shorter session, the browser terminal off,
|
|
46
|
+
* a shorter terminal session) applies directly; loosening goes to the #1423 confirmation — whatever the key's name says
|
|
47
|
+
* elsewhere (`enabled` is an immediate key everywhere else). `undefined` (the key removed) is its default.
|
|
48
|
+
* The terminal's minutes are compared as stored: the loader's clamp to 1..20 never reverses an order, so a stored
|
|
49
|
+
* decrease is never an effective increase.
|
|
50
|
+
*/
|
|
51
|
+
const DIRECTIONAL = [
|
|
52
|
+
{ path: ["fleet", "web_terminal", "enabled"], def: true, looser: (a, b) => b === true && a !== true },
|
|
53
|
+
{ path: ["fleet", "web_terminal", "ttl_minutes"], def: 10, looser: (a, b) => b > a },
|
|
54
|
+
];
|
|
55
|
+
/** null: not a directional key (judged as before); true/false: whether this change loosens it. */
|
|
56
|
+
function loosens(path, old, next) {
|
|
57
|
+
const rule = DIRECTIONAL.find(r => r.path.length === path.length && r.path.every((k, i) => k === path[i]));
|
|
58
|
+
if (!rule)
|
|
59
|
+
return null;
|
|
60
|
+
const a = old === undefined || old === null ? rule.def : old, b = next === undefined || next === null ? rule.def : next;
|
|
61
|
+
if (typeof a !== typeof rule.def || typeof b !== typeof rule.def)
|
|
62
|
+
return true; // not a value of its kind: never quietly
|
|
63
|
+
return rule.looser(a, b);
|
|
64
|
+
}
|
|
65
|
+
const SESSION_LOCAL = ["fleet", "web", "session", "local"];
|
|
66
|
+
const SESSION_KEYS = ["absolute_hours", "idle_hours"];
|
|
67
|
+
/**
|
|
68
|
+
* #1620 (#1627 review): the local session limits are judged as the policy they GIVE — what the store enforces
|
|
69
|
+
* (localSessionPolicy), not the stored numbers: a hand-written `absolute_hours: 1000` is enforced as the 12 h default,
|
|
70
|
+
* so 1000 → 24 lengthens sessions and is confirmed. Returns the changed keys to name (empty: it only tightens), or
|
|
71
|
+
* null when the change is not just these two limits (it is then walked key by key, as before).
|
|
72
|
+
*/
|
|
73
|
+
function sessionChange(old, next) {
|
|
74
|
+
if ((old !== undefined && old !== null && !object(old)) || (next !== undefined && next !== null && !object(next)))
|
|
75
|
+
return null;
|
|
76
|
+
const a = object(old) ? old : {}, b = object(next) ? next : {};
|
|
77
|
+
const changed = [...new Set([...Object.keys(a), ...Object.keys(b)])].filter(k => !same(a[k], b[k]));
|
|
78
|
+
if (changed.some(k => !SESSION_KEYS.includes(k)))
|
|
79
|
+
return null;
|
|
80
|
+
const before = localSessionPolicy(a), after = localSessionPolicy(b);
|
|
81
|
+
const looser = { absolute_hours: after.absoluteMs > before.absoluteMs, idle_hours: after.idleMs > before.idleMs };
|
|
82
|
+
// A new value the store would not take as written (out of bounds, not a number) is never applied quietly.
|
|
83
|
+
const taken = (v) => v === undefined || v === null
|
|
84
|
+
|| (typeof v === "number" && Number.isFinite(v) && v >= LOCAL_SESSION_HOURS.min && v <= LOCAL_SESSION_HOURS.max);
|
|
85
|
+
const odd = changed.filter(k => !taken(b[k]));
|
|
86
|
+
if (!odd.length && !looser.absolute_hours && !looser.idle_hours)
|
|
87
|
+
return [];
|
|
88
|
+
// Each key names its own loosening: the absolute limit never depends on idle_hours, and the idle window a longer
|
|
89
|
+
// absolute limit lifts (it was cut to it) is named by absolute_hours, which grew.
|
|
90
|
+
return changed.filter(k => looser[k] || odd.includes(k)).map(k => [k, a[k], b[k]]);
|
|
91
|
+
}
|
|
43
92
|
/** A key under a named map (an instance or connection name), not a field: its name says nothing about its kind. */
|
|
44
93
|
const namedEntry = (path, at) => ["channels", "instances"].includes(path.at(at - 1) ?? "");
|
|
45
94
|
function ordinary(path, old, next) {
|
|
@@ -73,7 +122,27 @@ export function settingsChangeDiff(before, after, options) {
|
|
|
73
122
|
throw new SettingsConfirmationError(413, "confirmation_diff_too_large");
|
|
74
123
|
};
|
|
75
124
|
const walk = (old, next, path) => {
|
|
76
|
-
if (same(old, next)
|
|
125
|
+
if (same(old, next))
|
|
126
|
+
return;
|
|
127
|
+
if (path.length === SESSION_LOCAL.length && SESSION_LOCAL.every((k, i) => path[i] === k)) {
|
|
128
|
+
const looser = sessionChange(old, next);
|
|
129
|
+
if (looser) {
|
|
130
|
+
if (looser.length && section !== "secret")
|
|
131
|
+
section = "access";
|
|
132
|
+
for (const [key, a, b] of looser)
|
|
133
|
+
add(`${settingsDisplay([...path, key].join("."))}: ${settingsDisplay(a ?? "default")} → ${settingsDisplay(b ?? "default")}`);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const direction = loosens(path, old, next);
|
|
138
|
+
if (direction === false)
|
|
139
|
+
return; // #1620: tightening applies directly
|
|
140
|
+
if (direction === true) {
|
|
141
|
+
section = section === "secret" ? section : "access";
|
|
142
|
+
add(`${settingsDisplay(path.join("."))}: ${settingsDisplay(old ?? "default")} → ${settingsDisplay(next ?? "default")}`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (ordinary(path, old, next))
|
|
77
146
|
return;
|
|
78
147
|
if (path.some(key => /access|permission|admin/i.test(key)) && section !== "secret")
|
|
79
148
|
section = "access";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-change.js","sourceRoot":"","sources":["../src/settings-change.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-change.js","sourceRoot":"","sources":["../src/settings-change.ts"],"names":[],"mappings":"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"}
|
package/dist/settings-effect.js
CHANGED
|
@@ -2,6 +2,7 @@ import { normalizeSettingsInstancePatch } from "./settings-instance-patch.js";
|
|
|
2
2
|
import { basename } from "node:path";
|
|
3
3
|
import { agentConflict, draftQuickstart, newConnectionConflict, planQuickstart, validateWizardInput, withExistingAgent, wizardChannels } from "./quickstart-api.js";
|
|
4
4
|
import { settingsChangeDiff } from "./settings-change.js";
|
|
5
|
+
import { parseWebSettingsBody } from "./web-settings-patch.js";
|
|
5
6
|
import { SettingsConfirmationError } from "./settings-confirmation.js";
|
|
6
7
|
import { validateFleetConfig, validateClassicBotConfig } from "./config-validator.js";
|
|
7
8
|
import { settingsEffectAuthority, settingsSecretAuthority } from "./settings-authority.js";
|
|
@@ -75,10 +76,31 @@ export function prepareSettingsEffect(method, path, body, context, binding, key)
|
|
|
75
76
|
else if (path === "/api/settings/fleet/web") {
|
|
76
77
|
if (!cfg)
|
|
77
78
|
throw new SettingsConfirmationError(503, "fleet_unavailable");
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
// #1620: read as the handler reads it (one parser): what it would refuse — a read-only web field, a malformed limit —
|
|
80
|
+
// is refused here, never proposed (#1627 review). null = back to the default.
|
|
81
|
+
const parsed = parseWebSettingsBody(body);
|
|
82
|
+
if ("error" in parsed)
|
|
83
|
+
throw new SettingsConfirmationError(400, "invalid_web_settings");
|
|
84
|
+
const { session: sessionPatch, terminal: terminalPatch } = parsed;
|
|
85
|
+
after.fleet.web = { ...cfg.web };
|
|
86
|
+
if (parsed.echo !== undefined)
|
|
87
|
+
after.fleet.web.echo_to_channel = parsed.echo;
|
|
88
|
+
if (parsed.publicLink && Object.keys(parsed.publicLink).length)
|
|
89
|
+
after.fleet.web.public_link = { ...cfg.web?.public_link, ...parsed.publicLink };
|
|
90
|
+
if (sessionPatch) {
|
|
91
|
+
const local = { ...cfg.web?.session?.local, ...sessionPatch };
|
|
92
|
+
for (const k of Object.keys(local))
|
|
93
|
+
if (local[k] === null)
|
|
94
|
+
delete local[k];
|
|
95
|
+
after.fleet.web.session = { ...cfg.web?.session, local };
|
|
96
|
+
}
|
|
97
|
+
if (terminalPatch) {
|
|
98
|
+
const wt = { ...cfg.web_terminal, ...terminalPatch };
|
|
99
|
+
for (const k of Object.keys(wt))
|
|
100
|
+
if (wt[k] === null)
|
|
101
|
+
delete wt[k];
|
|
102
|
+
after.fleet.web_terminal = wt;
|
|
103
|
+
}
|
|
82
104
|
}
|
|
83
105
|
else if (path === "/api/settings/classic/defaults") {
|
|
84
106
|
after.classic.defaults = { ...(before.classic.defaults ?? {}), ...record(body) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-effect.js","sourceRoot":"","sources":["../src/settings-effect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-effect.js","sourceRoot":"","sources":["../src/settings-effect.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { cacheSettingsBody, createSettingsReplay, settingsRequestExecution } fro
|
|
|
5
5
|
import { prepareSettingsEffect, isSettingsMutation } from "./settings-effect.js";
|
|
6
6
|
import { SettingsConfirmationError } from "./settings-confirmation.js";
|
|
7
7
|
import { SettingsExecution, settingsFingerprint } from "./settings-transaction.js";
|
|
8
|
+
import { gatewayRequestContext } from "./web-request-context.js";
|
|
8
9
|
function json(res, status, body) {
|
|
9
10
|
if (res.destroyed || res.headersSent)
|
|
10
11
|
return;
|
|
@@ -37,6 +38,12 @@ export class SettingsHttpConfirmation {
|
|
|
37
38
|
}
|
|
38
39
|
if (!isSettingsMutation(method, path))
|
|
39
40
|
return false;
|
|
41
|
+
// #1620: the web settings (sessions, the browser terminal, the public link itself) are never changed over the
|
|
42
|
+
// temporary public link — the same rule as tokens and secrets: refused before anything is proposed.
|
|
43
|
+
if (path === "/api/settings/fleet/web" && gatewayRequestContext(req)) {
|
|
44
|
+
json(res, 403, { error: "web_settings_not_over_public_link" });
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
40
47
|
void this.prepare(req, res, url, next).catch(err => json(res, err instanceof SettingsConfirmationError ? err.status : 409, { error: err instanceof SettingsConfirmationError ? err.code : "settings_confirmation_unavailable" }));
|
|
41
48
|
return true;
|
|
42
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-http-confirmation.js","sourceRoot":"","sources":["../src/settings-http-confirmation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAA8B,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAA6B,yBAAyB,EAA4B,MAAM,4BAA4B,CAAC;AAC5H,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-http-confirmation.js","sourceRoot":"","sources":["../src/settings-http-confirmation.ts"],"names":[],"mappings":"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"}
|
package/dist/setup-form.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* prove they also have the code they learn nothing from it.
|
|
16
16
|
*/
|
|
17
17
|
export declare const SETUP_CODE_PAGE_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<!-- Proof that a request reached THIS listener and not merely something that\n answers 200. The tunnel's readiness probe looks for exactly this. It is the\n sid, which is already in the URL, so it discloses nothing new. -->\n<meta name=\"agend-setup\" content=\"__AGEND_SETUP_MARKER__\">\n<title>Set up AgEnD</title>\n<style>\n body { font-family: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; margin: 0; background: #ffffff; color: #111827; }\n main { max-width: 420px; margin: 0 auto; padding: 64px 20px; }\n h1 { font-size: 20px; margin: 0 0 8px; }\n p { color: #6b7280; font-size: 13px; margin: 0 0 20px; }\n input { width: 100%; padding: 12px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 20px; letter-spacing: 3px; text-align: center; text-transform: uppercase; box-sizing: border-box; }\n button { width: 100%; margin-top: 12px; padding: 12px; border: 1px solid #2563eb; border-radius: 6px; background: #2563eb; color: #fff; font-size: 15px; cursor: pointer; }\n button:disabled { opacity: .5; cursor: default; }\n .err { color: #dc2626; font-size: 13px; margin-top: 12px; min-height: 18px; }\n</style>\n</head>\n<body>\n<main>\n <h1>Set up AgEnD</h1>\n <p>Enter the setup code shown in the terminal where you ran <code>agend setup</code>.</p>\n <form id=\"f\">\n <input id=\"code\" autocomplete=\"off\" autocapitalize=\"characters\" spellcheck=\"false\" placeholder=\"ABCD-EFGH\" maxlength=\"12\" autofocus>\n <button id=\"go\" type=\"submit\">Continue</button>\n </form>\n <div class=\"err\" id=\"msg\"></div>\n</main>\n<script>\n(() => {\n \"use strict\";\n const msg = document.getElementById(\"msg\");\n const go = document.getElementById(\"go\");\n document.getElementById(\"f\").addEventListener(\"submit\", async (event) => {\n event.preventDefault();\n go.disabled = true;\n msg.textContent = \"\";\n let res;\n try {\n res = await fetch(\"open\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ code: document.getElementById(\"code\").value }),\n });\n } catch {\n msg.textContent = \"Could not reach the setup page.\";\n go.disabled = false;\n return;\n }\n if (res.ok) { location.reload(); return; }\n let body = null; try { body = await res.json(); } catch {}\n msg.textContent = (body && body.error) || \"That code was not accepted.\";\n // A spent budget ends the page; there is nothing useful left to type into.\n if (res.status !== 410) go.disabled = false;\n });\n})();\n</script>\n</body>\n</html>\n";
|
|
18
|
-
export declare const SETUP_FORM_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Set up AgEnD</title>\n<style>\n * { box-sizing: border-box; }\n body { font-family: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; margin: 0; background: #ffffff; color: #111827; }\n main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }\n h1 { font-size: 20px; margin: 0 0 4px; }\n .sub { color: #6b7280; font-size: 13px; }\n .step { border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; margin-top: 16px; }\n .step h2 { font-size: 14px; margin: 0 0 12px; }\n label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 4px; }\n input, select { width: 100%; padding: 8px 10px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 14px; }\n button { padding: 8px 14px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; font-size: 14px; cursor: pointer; }\n button.primary { background: #2563eb; color: #fff; border-color: #2563eb; }\n button:disabled { opacity: .5; cursor: default; }\n .row { display: flex; gap: 8px; align-items: center; margin-top: 12px; flex-wrap: wrap; }\n .msg { font-size: 13px; }\n .ok { color: #059669; } .err { color: #dc2626; }\n pre { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; padding: 12px; font-size: 12px; overflow: auto; }\n</style>\n</head>\n<body>\n<main>\n <h1>Set up AgEnD</h1>\n <div class=\"sub\" id=\"intro\">This page is open only while setup is running. It closes itself when you finish, or after 15 minutes.</div>\n\n <div class=\"step\">\n <h2>1 \u00B7 Agent</h2>\n <label for=\"backend\">Backend</label>\n <select id=\"backend\"></select>\n <div class=\"sub\" id=\"backendHint\"></div>\n <label for=\"dir\">Working directory (absolute path)</label>\n <input id=\"dir\" placeholder=\"/home/you/projects/app\">\n <label for=\"name\">First agent name</label>\n <input id=\"name\" value=\"agent-1\">\n </div>\n\n <div class=\"step\">\n <h2>2 \u00B7 Platform</h2>\n <div class=\"row\">\n <button id=\"pickTelegram\" class=\"primary\">Telegram</button>\n <button id=\"pickDiscord\">Discord</button>\n </div>\n <div class=\"sub\" id=\"platformHint\">Create a bot with @BotFather, then add it to a group.</div>\n </div>\n\n <div class=\"step\">\n <h2>3 \u00B7 Credentials</h2>\n <label for=\"token\">Bot token</label>\n <input id=\"token\" type=\"password\" placeholder=\"123456:ABC-DEF\u2026\">\n <div class=\"sub\">Written to ~/.agend/.env and never shown again.</div>\n <label for=\"tokenEnv\">Environment variable</label>\n <input id=\"tokenEnv\" value=\"AGEND_BOT_TOKEN\">\n <div class=\"row\"><button id=\"verify\">Verify</button><span class=\"msg\" id=\"verifyMsg\"></span></div>\n <div id=\"platformFields\"></div>\n </div>\n\n <div class=\"step\">\n <h2>4 \u00B7 Review and start</h2>\n <div class=\"row\"><button id=\"preview\">Show what will be written</button></div>\n <pre id=\"planOut\" hidden></pre>\n <div class=\"row\"><button id=\"finish\" class=\"primary\" disabled>Create and start AgEnD</button><span class=\"msg\" id=\"finishMsg\"></span></div>\n </div>\n</main>\n<script>\n(() => {\n \"use strict\";\n const $ = (id) => document.getElementById(id);\n const state = { platform: \"telegram\", identity: null, guilds: [], offset: 0, plan: null };\n // Relative to the page's own directory, which is /s/<sid>/. An absolute path\n // would leave that namespace and 404 \u2014 the sid is where this page lives, not\n // a prefix bolted on to it.\n const api = async (path, opts) => {\n const res = await fetch(path, Object.assign({ headers: { \"Content-Type\": \"application/json\" } }, opts || {}));\n let body = null; try { body = await res.json(); } catch {}\n return { ok: res.ok, status: res.status, body };\n };\n\n async function loadEnvironment() {\n const res = await api(\"api/settings/quickstart/environment\");\n if (formFrozen) return;\n const backends = res.body?.backends || [];\n $(\"backend\").innerHTML = \"\";\n for (const name of backends.length ? backends : [\"claude-code\"]) {\n const opt = document.createElement(\"option\"); opt.value = name; opt.textContent = name; $(\"backend\").append(opt);\n }\n $(\"backendHint\").textContent = backends.length\n ? \"Found on this host: \" + backends.join(\", \")\n : \"No backend CLI found on this host \u2014 install one first.\";\n }\n\n function setPlatform(platform) {\n if (formFrozen) return;\n state.platform = platform;\n state.identity = null; $(\"verifyMsg\").textContent = \"\";\n $(\"pickTelegram\").className = platform === \"telegram\" ? \"primary\" : \"\";\n $(\"pickDiscord\").className = platform === \"discord\" ? \"primary\" : \"\";\n $(\"platformHint\").textContent = platform === \"telegram\"\n ? \"Create a bot with @BotFather, then add it to a group.\"\n : \"Create an application in the Discord developer portal and invite the bot to your server.\";\n renderPlatformFields();\n }\n\n // Only the ids that platform has \u2014 the same question the CLI asks.\n function renderPlatformFields() {\n if (formFrozen) return;\n const host = $(\"platformFields\"); host.innerHTML = \"\";\n const field = (id, labelText, hint) => {\n const label = document.createElement(\"label\"); label.textContent = labelText; label.htmlFor = id;\n const input = document.createElement(\"input\"); input.id = id;\n host.append(label, input);\n if (hint) { const h = document.createElement(\"div\"); h.className = \"sub\"; h.textContent = hint; host.append(h); }\n return input;\n };\n if (state.platform === \"discord\") {\n const guild = document.createElement(\"select\"); guild.id = \"guild\";\n const label = document.createElement(\"label\"); label.textContent = \"Server (guild)\"; label.htmlFor = \"guild\";\n host.append(label, guild);\n for (const g of state.guilds) { const opt = document.createElement(\"option\"); opt.value = g.id; opt.textContent = g.name + \" (\" + g.id + \")\"; guild.append(opt); }\n field(\"general\", \"General channel id\");\n field(\"admin\", \"Your Discord user id\", \"Becomes the first allowed user.\");\n } else {\n field(\"group\", \"Group id\", \"Or post any message in the group and press Detect.\");\n const row = document.createElement(\"div\"); row.className = \"row\";\n const detect = document.createElement(\"button\"); detect.id = \"detect\"; detect.textContent = \"Detect from a message\";\n detect.onclick = detectGroup; row.append(detect);\n const msg = document.createElement(\"span\"); msg.className = \"msg\"; msg.id = \"detectMsg\"; row.append(msg);\n host.append(row);\n field(\"admin\", \"Your Telegram user id\", \"Becomes the first allowed user.\");\n }\n }\n\n async function detectGroup() {\n if (formFrozen) return;\n $(\"detectMsg\").textContent = \"Waiting for a message in the group\u2026\";\n const res = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"await-telegram-start\", token: $(\"token\").value.trim(), offset: state.offset }) });\n if (formFrozen) return;\n if (!res.ok) { $(\"detectMsg\").textContent = res.body?.error || \"Failed.\"; return; }\n state.offset = res.body.offset;\n if (res.body.found) {\n $(\"group\").value = String(res.body.found.groupId);\n $(\"admin\").value = String(res.body.found.userId);\n $(\"detectMsg\").textContent = \"Found.\";\n } else $(\"detectMsg\").textContent = \"No group message yet \u2014 post one and press Detect again.\";\n }\n\n function input() {\n return {\n platform: state.platform,\n token_env: $(\"tokenEnv\").value.trim(),\n backend: $(\"backend\").value,\n working_directory: $(\"dir\").value.trim(),\n instance_name: $(\"name\").value.trim(),\n group_id: $(\"group\") ? $(\"group\").value.trim() || undefined : undefined,\n guild_id: $(\"guild\") ? $(\"guild\").value || undefined : undefined,\n general_channel_id: $(\"general\") ? $(\"general\").value.trim() || undefined : undefined,\n admin_user_id: $(\"admin\") ? $(\"admin\").value.trim() || undefined : undefined,\n };\n }\n\n $(\"verify\").onclick = async () => {\n if (formFrozen) return;\n $(\"verifyMsg\").textContent = \"Asking the provider\u2026\";\n const token = $(\"token\").value.trim();\n const res = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"verify\", platform: state.platform, token }) });\n if (formFrozen) return;\n state.identity = res.body?.identity || { valid: false };\n $(\"verifyMsg\").className = \"msg \" + (state.identity.valid ? \"ok\" : \"err\");\n $(\"verifyMsg\").textContent = state.identity.valid ? \"\u2713 \" + (state.identity.username || \"verified\") : \"\u2717 \" + (state.identity.reason || \"rejected\");\n if (state.identity.valid && state.platform === \"discord\") {\n const guilds = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"guilds\", token }) });\n if (formFrozen) return;\n state.guilds = guilds.body?.guilds || [];\n renderPlatformFields();\n }\n };\n\n $(\"preview\").onclick = async () => {\n if (formFrozen) return;\n const res = await api(\"api/settings/quickstart/plan\", { method: \"POST\", body: JSON.stringify(input()) });\n if (formFrozen) return;\n if (!res.ok) { $(\"planOut\").hidden = false; $(\"planOut\").textContent = res.body?.error || \"Failed.\"; return; }\n state.plan = res.body;\n $(\"planOut\").hidden = false;\n $(\"planOut\").textContent = JSON.stringify(res.body, null, 2);\n $(\"finish\").disabled = !state.identity?.valid;\n };\n\n let approvedSetup = false;\n let formFrozen = false;\n let submission = null;\n let pollGeneration = 0;\n const freezeFields = (frozen) => {\n formFrozen = frozen;\n for (const field of document.querySelectorAll(\"main input, main select, #verify, #preview, #pickTelegram, #pickDiscord, #detect\")) field.disabled = frozen;\n };\n const restoreEditing = (message) => {\n pollGeneration++; approvedSetup = false; submission = null; state.identity = null;\n freezeFields(false); $(\"finish\").disabled = true; $(\"finish\").textContent = \"Create and start AgEnD\";\n $(\"finishMsg\").className = \"msg err\"; $(\"finishMsg\").textContent = message;\n };\n for (const field of document.querySelectorAll(\"main input, main select\")) field.addEventListener(\"input\", () => {\n approvedSetup = false; submission = null; $(\"finish\").textContent = \"Create and start AgEnD\";\n });\n const watchPending = (pendingId) => {\n const generation = ++pollGeneration;\n freezeFields(true); $(\"finish\").disabled = true;\n $(\"finishMsg\").textContent = \"On the host, run: agend settings confirm \" + pendingId;\n const poll = async () => {\n if (generation !== pollGeneration) return;\n try {\n const result = await api(\"api/settings/pending/\" + pendingId);\n if (generation !== pollGeneration) return;\n if (!result.ok) { restoreEditing(\"Setup confirmation is no longer available. Review and enter the token again.\"); return; }\n const pending = result.body;\n if (pending.state === \"pending\" || pending.state === \"applying\") { setTimeout(poll, 1000); return; }\n if (pending.state !== \"applied\") { restoreEditing(pending.outcome?.message || \"Change was not applied. Review and enter the token again.\"); return; }\n approvedSetup = true; submission = null; $(\"finish\").disabled = false; $(\"finish\").textContent = \"Start AgEnD\";\n $(\"finishMsg\").textContent = \"Configuration confirmed. Select Start AgEnD to finish setup.\";\n } catch { if (generation === pollGeneration) setTimeout(poll, 1000); }\n };\n setTimeout(poll, 1000);\n };\n $(\"finish\").onclick = async () => {\n $(\"finish\").disabled = true;\n try {\n if (approvedSetup) {\n const finished = await api(\"setup/finish\", { method: \"POST\" });\n if (!finished.ok) { restoreEditing(finished.body?.error || \"Confirmation is no longer current.\"); return; }\n $(\"finishMsg\").textContent = \"AgEnD is starting. Continue in the channel you configured.\";\n if (finished.body?.watch !== false) waitForFleet();\n return;\n }\n // Preserve bytes and key on a lost HTTP response; a deliberate retry after\n // a terminal outcome receives a new key and requires secret reentry.\n submission ||= { key: crypto.randomUUID(), body: JSON.stringify(Object.assign({}, input(), { token: $(\"token\").value.trim() })) };\n freezeFields(true);\n $(\"finishMsg\").textContent = \"Requesting host confirmation\u2026\";\n const commit = await api(\"api/settings/quickstart/commit\", { method: \"POST\", headers: { \"Content-Type\": \"application/json\", \"Idempotency-Key\": submission.key }, body: submission.body });\n if (!commit.ok) { restoreEditing(commit.body?.error || \"Failed.\"); return; }\n if (commit.body?.result !== \"pending_confirmation\" || !commit.body.pending_change?.id) { restoreEditing(\"Expected a pending host confirmation.\"); return; }\n $(\"token\").value = \"\"; submission = null;\n watchPending(commit.body.pending_change.id);\n } catch { $(\"finishMsg\").textContent = \"Connection failed. Retry to find the same confirmation.\"; $(\"finish\").disabled = false; }\n };\n // Same-cookie reloads rediscover an unresolved consent request without a secret.\n api(\"api/settings/pending\").then(result => {\n const pending = result.ok && Array.isArray(result.body) && result.body.find(item => item.state === \"pending\" || item.state === \"applying\");\n if (pending) { watchPending(pending.id); return; }\n api(\"setup/status\").then(status => {\n if (!status.ok || !status.body?.finish_ready || submission || pollGeneration) return;\n approvedSetup = true; freezeFields(true); $(\"finish\").disabled = false; $(\"finish\").textContent = \"Start AgEnD\";\n $(\"finishMsg\").textContent = \"Configuration confirmed. Select Start AgEnD to finish setup.\";\n }).catch(() => {});\n }).catch(() => {});\n\n // The host is gone; the fleet is binding the same port. Connection refused is\n // the expected state in between, so it is not an error until the cap.\n function waitForFleet() {\n const deadline = Date.now() + 60_000;\n const tick = async () => {\n try {\n const res = await fetch(\"/health\", { cache: \"no-store\" });\n if (res.status) {\n $(\"finishMsg\").className = \"msg ok\";\n // #1519 P7: the fleet answers on this address now \u2014 its dashboard is here too.\n $(\"finishMsg\").textContent = \"AgEnD is up. Talk to it in the channel you just set up, or open its dashboard: \";\n const link = document.createElement(\"a\"); link.href = \"/\"; link.textContent = location.origin + \"/\";\n $(\"finishMsg\").append(link, \" (sign in with agend web --code on the machine running AgEnD, or send /dashboard to your bot).\");\n return;\n }\n } catch { /* not listening yet */ }\n if (Date.now() > deadline) {\n $(\"finishMsg\").className = \"msg err\";\n $(\"finishMsg\").textContent = \"AgEnD has not come up within 60 seconds. Run `agend start` on the machine itself and check fleet.log \u2014 this page cannot tell you any more.\";\n return;\n }\n setTimeout(tick, 1000);\n };\n setTimeout(tick, 1500);\n }\n\n $(\"pickTelegram\").onclick = () => setPlatform(\"telegram\");\n $(\"pickDiscord\").onclick = () => setPlatform(\"discord\");\n loadEnvironment();\n setPlatform(\"telegram\");\n})();\n</script>\n</body>\n</html>\n";
|
|
18
|
+
export declare const SETUP_FORM_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Set up AgEnD</title>\n<style>\n * { box-sizing: border-box; }\n body { font-family: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; margin: 0; background: #ffffff; color: #111827; }\n main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }\n h1 { font-size: 20px; margin: 0 0 4px; }\n .sub { color: #6b7280; font-size: 13px; }\n .step { border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; margin-top: 16px; }\n .step h2 { font-size: 14px; margin: 0 0 12px; }\n label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 4px; }\n input, select { width: 100%; padding: 8px 10px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 14px; }\n button { padding: 8px 14px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; font-size: 14px; cursor: pointer; }\n button.primary { background: #2563eb; color: #fff; border-color: #2563eb; }\n button:disabled { opacity: .5; cursor: default; }\n .row { display: flex; gap: 8px; align-items: center; margin-top: 12px; flex-wrap: wrap; }\n .msg { font-size: 13px; }\n .ok { color: #059669; } .err { color: #dc2626; }\n pre { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; padding: 12px; font-size: 12px; overflow: auto; }\n</style>\n</head>\n<body>\n<main>\n <h1>Set up AgEnD</h1>\n <div class=\"sub\" id=\"intro\">This page is open only while setup is running. It closes itself when you finish, or after 15 minutes.</div>\n\n <div class=\"step\">\n <h2>1 \u00B7 Agent</h2>\n <label for=\"backend\">Backend</label>\n <select id=\"backend\"></select>\n <div class=\"sub\" id=\"backendHint\"></div>\n <label for=\"dir\">Working directory (absolute path)</label>\n <input id=\"dir\" placeholder=\"/home/you/projects/app\">\n <label for=\"name\">First agent name</label>\n <input id=\"name\" value=\"agent-1\">\n </div>\n\n <div class=\"step\">\n <h2>2 \u00B7 Platform</h2>\n <div class=\"row\">\n <button id=\"pickTelegram\" class=\"primary\">Telegram</button>\n <button id=\"pickDiscord\">Discord</button>\n </div>\n <div class=\"sub\" id=\"platformHint\">Create a bot with @BotFather, then add it to a group.</div>\n </div>\n\n <div class=\"step\">\n <h2>3 \u00B7 Credentials</h2>\n <label for=\"token\">Bot token</label>\n <input id=\"token\" type=\"password\" placeholder=\"123456:ABC-DEF\u2026\">\n <div class=\"sub\">Written to ~/.agend/.env and never shown again.</div>\n <label for=\"tokenEnv\">Environment variable</label>\n <input id=\"tokenEnv\" value=\"AGEND_BOT_TOKEN\">\n <div class=\"row\"><button id=\"verify\">Verify</button><span class=\"msg\" id=\"verifyMsg\"></span></div>\n <div id=\"platformFields\"></div>\n </div>\n\n <div class=\"step\">\n <h2>4 \u00B7 Review and start</h2>\n <div class=\"row\"><button id=\"preview\">Show what will be written</button></div>\n <pre id=\"planOut\" hidden></pre>\n <div class=\"row\"><button id=\"finish\" class=\"primary\" disabled>Create and start AgEnD</button><span class=\"msg\" id=\"finishMsg\"></span></div>\n </div>\n</main>\n<script>\n(() => {\n \"use strict\";\n const $ = (id) => document.getElementById(id);\n const state = { platform: \"telegram\", identity: null, guilds: [], offset: 0, plan: null };\n // Relative to the page's own directory, which is /s/<sid>/. An absolute path\n // would leave that namespace and 404 \u2014 the sid is where this page lives, not\n // a prefix bolted on to it.\n const api = async (path, opts) => {\n const res = await fetch(path, Object.assign({ headers: { \"Content-Type\": \"application/json\" } }, opts || {}));\n let body = null; try { body = await res.json(); } catch {}\n return { ok: res.ok, status: res.status, body };\n };\n\n async function loadEnvironment() {\n const res = await api(\"api/settings/quickstart/environment\");\n if (formFrozen) return;\n const backends = res.body?.backends || [];\n $(\"backend\").innerHTML = \"\";\n for (const name of backends.length ? backends : [\"claude-code\"]) {\n const opt = document.createElement(\"option\"); opt.value = name; opt.textContent = name; $(\"backend\").append(opt);\n }\n $(\"backendHint\").textContent = backends.length\n ? \"Found on this host: \" + backends.join(\", \")\n : \"No backend CLI found on this host \u2014 install one first.\";\n }\n\n function setPlatform(platform) {\n if (formFrozen) return;\n state.platform = platform;\n state.identity = null; $(\"verifyMsg\").textContent = \"\";\n $(\"pickTelegram\").className = platform === \"telegram\" ? \"primary\" : \"\";\n $(\"pickDiscord\").className = platform === \"discord\" ? \"primary\" : \"\";\n $(\"platformHint\").textContent = platform === \"telegram\"\n ? \"Create a bot with @BotFather, then add it to a group.\"\n : \"Create an application in the Discord developer portal and invite the bot to your server.\";\n renderPlatformFields();\n }\n\n // Only the ids that platform has \u2014 the same question the CLI asks.\n function renderPlatformFields() {\n if (formFrozen) return;\n const host = $(\"platformFields\"); host.innerHTML = \"\";\n const field = (id, labelText, hint) => {\n const label = document.createElement(\"label\"); label.textContent = labelText; label.htmlFor = id;\n const input = document.createElement(\"input\"); input.id = id;\n host.append(label, input);\n if (hint) { const h = document.createElement(\"div\"); h.className = \"sub\"; h.textContent = hint; host.append(h); }\n return input;\n };\n if (state.platform === \"discord\") {\n const guild = document.createElement(\"select\"); guild.id = \"guild\";\n const label = document.createElement(\"label\"); label.textContent = \"Server (guild)\"; label.htmlFor = \"guild\";\n host.append(label, guild);\n for (const g of state.guilds) { const opt = document.createElement(\"option\"); opt.value = g.id; opt.textContent = g.name + \" (\" + g.id + \")\"; guild.append(opt); }\n field(\"general\", \"General channel id\");\n field(\"admin\", \"Your Discord user id\", \"Becomes the first allowed user.\");\n } else {\n field(\"group\", \"Group id\", \"Or post any message in the group and press Detect.\");\n const row = document.createElement(\"div\"); row.className = \"row\";\n const detect = document.createElement(\"button\"); detect.id = \"detect\"; detect.textContent = \"Detect from a message\";\n detect.onclick = detectGroup; row.append(detect);\n const msg = document.createElement(\"span\"); msg.className = \"msg\"; msg.id = \"detectMsg\"; row.append(msg);\n host.append(row);\n field(\"admin\", \"Your Telegram user id\", \"Becomes the first allowed user.\");\n }\n }\n\n async function detectGroup() {\n if (formFrozen) return;\n $(\"detectMsg\").textContent = \"Waiting for a message in the group\u2026\";\n const res = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"await-telegram-start\", token: $(\"token\").value.trim(), offset: state.offset }) });\n if (formFrozen) return;\n if (!res.ok) { $(\"detectMsg\").textContent = res.body?.error || \"Failed.\"; return; }\n state.offset = res.body.offset;\n if (res.body.found) {\n $(\"group\").value = String(res.body.found.groupId);\n $(\"admin\").value = String(res.body.found.userId);\n $(\"detectMsg\").textContent = \"Found.\";\n } else $(\"detectMsg\").textContent = \"No group message yet \u2014 post one and press Detect again.\";\n }\n\n function input() {\n return {\n platform: state.platform,\n token_env: $(\"tokenEnv\").value.trim(),\n backend: $(\"backend\").value,\n working_directory: $(\"dir\").value.trim(),\n instance_name: $(\"name\").value.trim(),\n group_id: $(\"group\") ? $(\"group\").value.trim() || undefined : undefined,\n guild_id: $(\"guild\") ? $(\"guild\").value || undefined : undefined,\n general_channel_id: $(\"general\") ? $(\"general\").value.trim() || undefined : undefined,\n admin_user_id: $(\"admin\") ? $(\"admin\").value.trim() || undefined : undefined,\n };\n }\n\n $(\"verify\").onclick = async () => {\n if (formFrozen) return;\n $(\"verifyMsg\").textContent = \"Asking the provider\u2026\";\n const token = $(\"token\").value.trim();\n const res = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"verify\", platform: state.platform, token }) });\n if (formFrozen) return;\n state.identity = res.body?.identity || { valid: false };\n $(\"verifyMsg\").className = \"msg \" + (state.identity.valid ? \"ok\" : \"err\");\n $(\"verifyMsg\").textContent = state.identity.valid ? \"\u2713 \" + (state.identity.username || \"verified\") : \"\u2717 \" + (state.identity.reason || \"rejected\");\n if (state.identity.valid && state.platform === \"discord\") {\n const guilds = await api(\"api/settings/quickstart/probe\", { method: \"POST\", body: JSON.stringify({ action: \"guilds\", token }) });\n if (formFrozen) return;\n state.guilds = guilds.body?.guilds || [];\n renderPlatformFields();\n }\n };\n\n $(\"preview\").onclick = async () => {\n if (formFrozen) return;\n const res = await api(\"api/settings/quickstart/plan\", { method: \"POST\", body: JSON.stringify(input()) });\n if (formFrozen) return;\n if (!res.ok) { $(\"planOut\").hidden = false; $(\"planOut\").textContent = res.body?.error || \"Failed.\"; return; }\n state.plan = res.body;\n $(\"planOut\").hidden = false;\n $(\"planOut\").textContent = JSON.stringify(res.body, null, 2);\n $(\"finish\").disabled = !state.identity?.valid;\n };\n\n let approvedSetup = false;\n let formFrozen = false;\n let submission = null;\n let pollGeneration = 0;\n const freezeFields = (frozen) => {\n formFrozen = frozen;\n for (const field of document.querySelectorAll(\"main input, main select, #verify, #preview, #pickTelegram, #pickDiscord, #detect\")) field.disabled = frozen;\n };\n const restoreEditing = (message) => {\n pollGeneration++; approvedSetup = false; submission = null; state.identity = null;\n freezeFields(false); $(\"finish\").disabled = true; $(\"finish\").textContent = \"Create and start AgEnD\";\n $(\"finishMsg\").className = \"msg err\"; $(\"finishMsg\").textContent = message;\n };\n for (const field of document.querySelectorAll(\"main input, main select\")) field.addEventListener(\"input\", () => {\n approvedSetup = false; submission = null; $(\"finish\").textContent = \"Create and start AgEnD\";\n });\n const watchPending = (pendingId) => {\n const generation = ++pollGeneration;\n freezeFields(true); $(\"finish\").disabled = true;\n $(\"finishMsg\").textContent = \"On the host, run: agend settings confirm \" + pendingId;\n const poll = async () => {\n if (generation !== pollGeneration) return;\n try {\n const result = await api(\"api/settings/pending/\" + pendingId);\n if (generation !== pollGeneration) return;\n if (!result.ok) { restoreEditing(\"Setup confirmation is no longer available. Review and enter the token again.\"); return; }\n const pending = result.body;\n if (pending.state === \"pending\" || pending.state === \"applying\") { setTimeout(poll, 1000); return; }\n if (pending.state !== \"applied\") { restoreEditing(pending.outcome?.message || \"Change was not applied. Review and enter the token again.\"); return; }\n approvedSetup = true; submission = null; $(\"finish\").disabled = false; $(\"finish\").textContent = \"Start AgEnD\";\n $(\"finishMsg\").textContent = \"Configuration confirmed. Select Start AgEnD to finish setup.\";\n } catch { if (generation === pollGeneration) setTimeout(poll, 1000); }\n };\n setTimeout(poll, 1000);\n };\n $(\"finish\").onclick = async () => {\n $(\"finish\").disabled = true;\n try {\n if (approvedSetup) {\n const finished = await api(\"setup/finish\", { method: \"POST\" });\n if (!finished.ok) { restoreEditing(finished.body?.error || \"Confirmation is no longer current.\"); return; }\n $(\"finishMsg\").textContent = \"AgEnD is starting. Continue in the channel you configured.\";\n if (finished.body?.watch !== false) waitForFleet();\n return;\n }\n // Preserve bytes and key on a lost HTTP response; a deliberate retry after\n // a terminal outcome receives a new key and requires secret reentry.\n submission ||= { key: crypto.randomUUID(), body: JSON.stringify(Object.assign({}, input(), { token: $(\"token\").value.trim() })) };\n freezeFields(true);\n $(\"finishMsg\").textContent = \"Requesting host confirmation\u2026\";\n const commit = await api(\"api/settings/quickstart/commit\", { method: \"POST\", headers: { \"Content-Type\": \"application/json\", \"Idempotency-Key\": submission.key }, body: submission.body });\n if (!commit.ok) { restoreEditing(commit.body?.error || \"Failed.\"); return; }\n if (commit.body?.result !== \"pending_confirmation\" || !commit.body.pending_change?.id) { restoreEditing(\"Expected a pending host confirmation.\"); return; }\n $(\"token\").value = \"\"; submission = null;\n watchPending(commit.body.pending_change.id);\n } catch { $(\"finishMsg\").textContent = \"Connection failed. Retry to find the same confirmation.\"; $(\"finish\").disabled = false; }\n };\n // Same-cookie reloads rediscover an unresolved consent request without a secret.\n api(\"api/settings/pending\").then(result => {\n const pending = result.ok && Array.isArray(result.body) && result.body.find(item => item.state === \"pending\" || item.state === \"applying\");\n if (pending) { watchPending(pending.id); return; }\n api(\"setup/status\").then(status => {\n if (!status.ok || !status.body?.finish_ready || submission || pollGeneration) return;\n approvedSetup = true; freezeFields(true); $(\"finish\").disabled = false; $(\"finish\").textContent = \"Start AgEnD\";\n $(\"finishMsg\").textContent = \"Configuration confirmed. Select Start AgEnD to finish setup.\";\n }).catch(() => {});\n }).catch(() => {});\n\n // The host is gone; the fleet is binding the same port. Connection refused is\n // the expected state in between, so it is not an error until the cap.\n function waitForFleet() {\n const deadline = Date.now() + 60_000;\n const tick = async () => {\n try {\n const res = await fetch(\"/health\", { cache: \"no-store\" });\n if (res.status) {\n $(\"finishMsg\").className = \"msg ok\";\n // #1519 P7: the fleet answers on this address now \u2014 its dashboard is here too.\n $(\"finishMsg\").textContent = \"AgEnD is up. Talk to it in the channel you just set up, or open its dashboard: \";\n const link = document.createElement(\"a\"); link.href = \"/\"; link.textContent = location.origin + \"/\";\n $(\"finishMsg\").append(link, \" (sign in with agend web --code on the machine running AgEnD, or send /web to your bot).\");\n return;\n }\n } catch { /* not listening yet */ }\n if (Date.now() > deadline) {\n $(\"finishMsg\").className = \"msg err\";\n $(\"finishMsg\").textContent = \"AgEnD has not come up within 60 seconds. Run `agend start` on the machine itself and check fleet.log \u2014 this page cannot tell you any more.\";\n return;\n }\n setTimeout(tick, 1000);\n };\n setTimeout(tick, 1500);\n }\n\n $(\"pickTelegram\").onclick = () => setPlatform(\"telegram\");\n $(\"pickDiscord\").onclick = () => setPlatform(\"discord\");\n loadEnvironment();\n setPlatform(\"telegram\");\n})();\n</script>\n</body>\n</html>\n";
|
|
19
19
|
/**
|
|
20
20
|
* #1490: the setup pages' Content-Security-Policy. Their one `<script>` and one `<style>` are inline, so each response
|
|
21
21
|
* gets a fresh nonce for exactly those (setupPage); nothing else may run, load from elsewhere, post elsewhere, or frame
|
package/dist/setup-form.js
CHANGED
|
@@ -349,7 +349,7 @@ export const SETUP_FORM_HTML = `<!DOCTYPE html>
|
|
|
349
349
|
// #1519 P7: the fleet answers on this address now — its dashboard is here too.
|
|
350
350
|
$("finishMsg").textContent = "AgEnD is up. Talk to it in the channel you just set up, or open its dashboard: ";
|
|
351
351
|
const link = document.createElement("a"); link.href = "/"; link.textContent = location.origin + "/";
|
|
352
|
-
$("finishMsg").append(link, " (sign in with agend web --code on the machine running AgEnD, or send /
|
|
352
|
+
$("finishMsg").append(link, " (sign in with agend web --code on the machine running AgEnD, or send /web to your bot).");
|
|
353
353
|
return;
|
|
354
354
|
}
|
|
355
355
|
} catch { /* not listening yet */ }
|
package/dist/status-emojis.d.ts
CHANGED
|
@@ -115,7 +115,12 @@ export declare function customEmojiValue(e: {
|
|
|
115
115
|
id: string;
|
|
116
116
|
animated?: boolean;
|
|
117
117
|
}): string;
|
|
118
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* #1630: the same picture from the dashboard's own route (/ui/img/emoji/<id>, cached on the host) — what a web page shows,
|
|
120
|
+
* so the panels' CSP needs no Discord source. Only an emoji of the fleet's servers is served there.
|
|
121
|
+
*/
|
|
122
|
+
export declare function emojiProxyUrl(raw: string): string | null;
|
|
123
|
+
/** Discord's public CDN renders a known custom emoji id without any token (what an agent may fetch; never a web page). */
|
|
119
124
|
export declare function emojiImageUrl(raw: string): string | null;
|
|
120
125
|
export interface StatusEmojiPreviewEntry {
|
|
121
126
|
key: StatusEmojiKey;
|
|
@@ -127,7 +132,7 @@ export interface StatusEmojiPreviewEntry {
|
|
|
127
132
|
applied: string;
|
|
128
133
|
/** `:name:` for custom emoji, the emoji otherwise. */
|
|
129
134
|
display: string;
|
|
130
|
-
/** CDN
|
|
135
|
+
/** The picture of a custom emoji (the CDN, or the dashboard's route for a web page); null for unicode. */
|
|
131
136
|
image_url: string | null;
|
|
132
137
|
}
|
|
133
138
|
export interface StatusEmojiPreview {
|
|
@@ -142,4 +147,6 @@ export interface StatusEmojiPreview {
|
|
|
142
147
|
/** The instructions' "avoid these" list for this map. */
|
|
143
148
|
avoid: string[];
|
|
144
149
|
}
|
|
145
|
-
export declare function previewStatusEmojis(input: Omit<ResolveStatusEmojisInput, "onInvalid">
|
|
150
|
+
export declare function previewStatusEmojis(input: Omit<ResolveStatusEmojisInput, "onInvalid"> & {
|
|
151
|
+
imageUrl?: (raw: string) => string | null;
|
|
152
|
+
}): StatusEmojiPreview;
|
package/dist/status-emojis.js
CHANGED
|
@@ -185,7 +185,15 @@ export const STATUS_EMOJI_SUGGESTIONS = [
|
|
|
185
185
|
export function customEmojiValue(e) {
|
|
186
186
|
return `<${e.animated ? "a" : ""}:${e.name}:${e.id}>`;
|
|
187
187
|
}
|
|
188
|
-
/**
|
|
188
|
+
/**
|
|
189
|
+
* #1630: the same picture from the dashboard's own route (/ui/img/emoji/<id>, cached on the host) — what a web page shows,
|
|
190
|
+
* so the panels' CSP needs no Discord source. Only an emoji of the fleet's servers is served there.
|
|
191
|
+
*/
|
|
192
|
+
export function emojiProxyUrl(raw) {
|
|
193
|
+
const e = normalizeEmoji(raw);
|
|
194
|
+
return e?.kind === "custom" ? `/ui/img/emoji/${e.id}` : null;
|
|
195
|
+
}
|
|
196
|
+
/** Discord's public CDN renders a known custom emoji id without any token (what an agent may fetch; never a web page). */
|
|
189
197
|
export function emojiImageUrl(raw) {
|
|
190
198
|
const e = normalizeEmoji(raw);
|
|
191
199
|
if (e?.kind !== "custom")
|
|
@@ -193,6 +201,7 @@ export function emojiImageUrl(raw) {
|
|
|
193
201
|
return `https://cdn.discordapp.com/emojis/${e.id}.${e.animated ? "gif" : "png"}`;
|
|
194
202
|
}
|
|
195
203
|
export function previewStatusEmojis(input) {
|
|
204
|
+
const imageUrl = input.imageUrl ?? emojiImageUrl;
|
|
196
205
|
const problems = [];
|
|
197
206
|
const resolved = resolveStatusEmojis({ ...input, onInvalid: (source, key, value, problem) => problems.push({ source, key, value, problem }) });
|
|
198
207
|
const usable = (cfg, key) => {
|
|
@@ -208,7 +217,7 @@ export function previewStatusEmojis(input) {
|
|
|
208
217
|
source: usable(input.instanceConfig, key) ? "instance" : usable(input.platformConfig, key) ? "platform" : "builtin",
|
|
209
218
|
applied: key === "progress_prefix" ? textForm(input.platform, value) : reactionForm(input.platform, value),
|
|
210
219
|
display: displayForm(value),
|
|
211
|
-
image_url:
|
|
220
|
+
image_url: imageUrl(value),
|
|
212
221
|
};
|
|
213
222
|
});
|
|
214
223
|
return { platform: input.platform, entries, problems, avoid: statusAvoidList(resolved) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-emojis.js","sourceRoot":"","sources":["../src/status-emojis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status-emojis.js","sourceRoot":"","sources":["../src/status-emojis.ts"],"names":[],"mappings":"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"}
|
package/dist/tips.js
CHANGED
|
@@ -54,7 +54,7 @@ export const TIPS = [
|
|
|
54
54
|
{ id: "tip-048", level: "beginner", text_en: "Verbose progress can include command previews; check screenshots for private paths or values before sharing them.", text_zh: "詳細進度可能包含指令預覽;分享截圖前先檢查私密路徑或數值。" },
|
|
55
55
|
{ id: "tip-049", level: "beginner", text_en: "An interactive prompt = the AI CLI is waiting for a password, permission, Y/N, or Enter; AgEnD will notify General instead of guessing.", text_zh: "Interactive prompt = AI CLI 正在等密碼、權限、Y/N 或 Enter;AgEnD 會通知 General,不會自己猜答案。" },
|
|
56
56
|
{ id: "tip-050", level: "beginner", text_en: "AgEnD never types a password automatically; review the prompt before approving anything.", text_zh: "AgEnD 不會自動輸入密碼;任何確認都先看清楚再允許。" },
|
|
57
|
-
{ id: "tip-051", level: "beginner", text_en: "`/
|
|
57
|
+
{ id: "tip-051", level: "beginner", text_en: "`/web` = a sign-in link and a one-time code for the web dashboard (web chat, View, Settings); it is an admin command because the code signs a browser in.", text_zh: "`/web` = 網頁儀表板(網頁聊天、View、Settings)的登入連結和一次性登入碼;登入碼能讓瀏覽器登入,所以這是管理員指令。" },
|
|
58
58
|
{ id: "tip-052", level: "beginner", text_en: "`http://localhost:19280` = the web dashboard and web chat by default; localhost means it normally opens only on the AgEnD machine, so a phone needs a way in first (SSH, Tailscale or a tunnel).", text_zh: "預設的 `http://localhost:19280` = 網頁儀表板與網頁聊天;localhost 代表通常只能在安裝 AgEnD 的電腦開啟,手機要先有連進來的方式(SSH、Tailscale 或 tunnel)。" },
|
|
59
59
|
{ id: "tip-053", level: "beginner", text_en: "View shows Instance state, Context percentage when available, and live terminal output; use it to check whether work is actually moving.", text_zh: "View 會顯示 Agent 狀態、可取得時的 Context 百分比與即時工作畫面;可用來確認工作是否真的有在跑。" },
|
|
60
60
|
{ id: "tip-054", level: "beginner", text_en: "View's AI Usage panel = subscription usage for Backends that currently have an Instance; unused Backends stay hidden.", text_zh: "View 的 AI Usage 面板 = 目前有 Agent 使用中的 Backend 訂閱量;沒在用的 Backend 會隱藏。" },
|
|
@@ -138,7 +138,7 @@ export const TIPS = [
|
|
|
138
138
|
{ id: "tip-131", level: "intermediate", text_en: "Use `/restart` only when the entire Fleet should restart. Ask General for an instance-specific restart when one Agent is unhealthy.", text_zh: "只有整個 Fleet 都需要重啟時才使用 `/restart`;若只有一個 Agent 異常,應請 General 單獨重啟該 Agent。" },
|
|
139
139
|
{ id: "tip-132", level: "intermediate", text_en: "Use `/update` after active work reaches a safe point. Updating installs the selected AgEnD release and then restarts the fleet.", text_zh: "應等進行中的工作到達安全點後再用 `/update`;更新會安裝選定的 AgEnD 版本,接著重啟整個 Fleet。" },
|
|
140
140
|
{ id: "tip-133", level: "intermediate", text_en: "Use `/usage` to view available subscription metrics for backends used by running or paused instances. No data can mean unavailable telemetry, not zero usage.", text_zh: "使用 `/usage` 可查看 Running 或 Paused Agent 所用 Backend 的訂閱資料;無資料可能代表無法取得統計,不等於用量為零。" },
|
|
141
|
-
{ id: "tip-134", level: "intermediate", text_en: "Use `/
|
|
141
|
+
{ id: "tip-134", level: "intermediate", text_en: "Use `/web` to get a sign-in link and a one-time code. The code works once and expires after 5 minutes; treat it like a password and do not post it where someone else could use it first.", text_zh: "使用 `/web` 可取得登入連結和一次性登入碼;登入碼只能用一次、5 分鐘後失效,請視同密碼,不要貼在別人可能搶先使用的地方。" },
|
|
142
142
|
{ id: "tip-135", level: "intermediate", text_en: "Use `/status` for an administrator-only fleet summary, including running, paused, stopped, and crashed instances.", text_zh: "管理員可用 `/status` 查看 Fleet 摘要,包括 Running、Paused、Stopped 與 Crashed Agent。" },
|
|
143
143
|
{ id: "tip-136", level: "intermediate", text_en: "Use `/sysinfo` to collect host and version details for an environment-specific problem report.", text_zh: "問題可能與執行環境有關時,可用 `/sysinfo` 收集主機與版本資訊。" },
|
|
144
144
|
{ id: "tip-137", level: "intermediate", text_en: "Use `/doctor` in General to check configured Backends. Run `agend doctor` from a trusted computer terminal for broader service and connection checks.", text_zh: "在 General 使用 `/doctor` 可檢查已設定的 Backend;更完整的服務與連線檢查需從可信任的電腦終端執行 `agend doctor`。" },
|
|
@@ -229,7 +229,7 @@ export const TIPS = [
|
|
|
229
229
|
{ id: "tip-221", level: "advanced", text_en: "Keep bot tokens, dashboard tokens, provider keys, and exported sessions out of repositories and shared workspaces; each requires its own rotation procedure.", text_zh: "Bot token、dashboard token、provider key 與匯出的 session 都不應放入 repository 或共用 workspace,且各自需要不同的 rotation 程序。" },
|
|
230
230
|
{ id: "tip-222", level: "advanced", text_en: "When a CLI supports an environment-key reference, store the secret in the service environment rather than fleet.yaml or a provider config committed to source control.", text_zh: "CLI 支援 environment-key reference 時,應把 secret 放在 service environment,而不是 fleet.yaml 或會提交到版控的 provider config。" },
|
|
231
231
|
{ id: "tip-223", level: "advanced", text_en: "Files such as web.token and per-instance state should remain readable only by their owner. Copying them into a project can expose them through backups, diffs, or agents.", text_zh: "web.token 與 per-instance state 等檔案應只允許 owner 讀取;複製到 project 後,可能經由備份、diff 或 agent 暴露。" },
|
|
232
|
-
{ id: "tip-224", level: "advanced", text_en: "A browser stays signed in to the dashboard across fleet restarts (up to 12 hours). Send `/
|
|
232
|
+
{ id: "tip-224", level: "advanced", text_en: "A browser stays signed in to the dashboard across fleet restarts (up to 12 hours). Send `/web revoke`, or run `agend web-token rotate` on the host, to sign every browser out at once; a running fleet applies it without a restart.", text_zh: "瀏覽器登入儀表板後,Fleet 重啟也不會登出(最長 12 小時)。傳 `/web revoke`,或在主機上執行 `agend web-token rotate`,可一次讓所有瀏覽器登出;執行中的 Fleet 不需重啟即會生效。" },
|
|
233
233
|
{ id: "tip-225", level: "advanced", text_en: "A dashboard URL is usable only after the health server is listening. A port conflict should fail closed instead of publishing a URL backed by the wrong process.", text_zh: "Dashboard URL 只有在 health server 開始 listening 後才可使用;遇到 port conflict 時應 fail closed,避免發布指向錯誤 process 的 URL。" },
|
|
234
234
|
{ id: "tip-226", level: "advanced", text_en: "Channel allowlists are authorization boundaries, not display filters. After changing access rules, test both an allowed identity and a rejected identity.", text_zh: "Channel allowlist 是 authorization boundary,不是顯示篩選器;變更 access rules 後,應同時測試允許與拒絕的 identity。" },
|
|
235
235
|
{ id: "tip-227", level: "advanced", text_en: "Before changing a locked channel's allowed_users, ensure at least one administrator remains. An empty locked allowlist can remove every administrative path.", text_zh: "修改 locked channel 的 allowed_users 前,應確認至少保留一位管理員;空的 locked allowlist 可能移除所有管理操作路徑。" },
|
|
@@ -308,7 +308,7 @@ export const TIPS = [
|
|
|
308
308
|
{ id: "tip-300", level: "advanced", text_en: "For difficult incidents, preserve synchronized timestamps, fleet logs, process trees, socket counts, service state, and pane captures before restarting away the evidence.", text_zh: "處理困難 incident 時,應在 restart 清除證據前保留同步 timestamps、Fleet logs、process trees、socket counts、service state 與 pane captures。" },
|
|
309
309
|
// ── Beginner: web chat (2.2, #1366) ─────────────────────────────────
|
|
310
310
|
{ id: "tip-301", level: "beginner", text_en: "Web chat = talk to an Agent from a browser; it is the same conversation as that Agent's Telegram or Discord chat, so you can switch between phone and computer mid-conversation.", text_zh: "網頁聊天 = 在瀏覽器裡跟 Agent 對話;它和那個 Agent 在 Telegram 或 Discord 的對話是同一段,聊到一半可以在手機和電腦之間切換。" },
|
|
311
|
-
{ id: "tip-302", level: "beginner", text_en: "Opening web chat = an admin sends `/
|
|
311
|
+
{ id: "tip-302", level: "beginner", text_en: "Opening web chat = an admin sends `/web`, opens the sign-in link and types the one-time code; that browser then stays signed in, so you do not repeat this every time.", text_zh: "打開網頁聊天 = 管理員傳 `/web`,打開登入連結並輸入一次性登入碼;之後那個瀏覽器會保持登入,不用每次重來。" },
|
|
312
312
|
{ id: "tip-303", level: "beginner", text_en: "Files in web chat = attach with 📎, paste, or drop them on the chat; the Agent receives them exactly like files sent from Telegram (up to 5 files, 10 MB each).", text_zh: "網頁聊天的檔案 = 按 📎、直接貼上或拖到聊天裡;Agent 收到的方式和從 Telegram 傳的一樣(最多 5 個檔案,每個 10 MB)。" },
|
|
313
313
|
{ id: "tip-304", level: "beginner", text_en: "Stop in web chat = interrupt the Agent's current reply, like the cancel button in Telegram; messages still waiting are dropped, but the Agent itself keeps running.", text_zh: "網頁聊天的 Stop = 中斷 Agent 目前的回覆,和 Telegram 的取消按鈕一樣;還在排隊的訊息會被丟掉,但 Agent 本身會繼續運行。" },
|
|
314
314
|
];
|