@songsid/agend 2.2.0-alpha.1 → 2.2.0-alpha.3
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 +6 -4
- package/README.zh-TW.md +6 -4
- package/dist/agent-cli.js +6 -1
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.d.ts +4 -1
- package/dist/agent-endpoint.js +82 -14
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-token-header.d.ts +13 -0
- package/dist/agent-token-header.js +16 -0
- package/dist/agent-token-header.js.map +1 -0
- package/dist/atomic-write.d.ts +21 -0
- package/dist/atomic-write.js +65 -0
- package/dist/atomic-write.js.map +1 -0
- package/dist/auth-api.js +2 -0
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/antigravity.js +4 -3
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/codex.d.ts +7 -0
- package/dist/backend/codex.js +7 -0
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok.js +1 -1
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +7 -0
- package/dist/backend/kiro.js +82 -33
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/muse.d.ts +7 -0
- package/dist/backend/muse.js +8 -1
- package/dist/backend/muse.js.map +1 -1
- package/dist/backend/types.d.ts +12 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/binary-probe.d.ts +80 -0
- package/dist/binary-probe.js +182 -0
- package/dist/binary-probe.js.map +1 -0
- package/dist/cache-analysis.d.ts +92 -0
- package/dist/cache-analysis.js +147 -0
- package/dist/cache-analysis.js.map +1 -0
- package/dist/cache-ledger.d.ts +108 -0
- package/dist/cache-ledger.js +230 -0
- package/dist/cache-ledger.js.map +1 -0
- package/dist/cache-prices.d.ts +32 -0
- package/dist/cache-prices.js +73 -0
- package/dist/cache-prices.js.map +1 -0
- package/dist/cache-scan.d.ts +39 -0
- package/dist/cache-scan.js +115 -0
- package/dist/cache-scan.js.map +1 -0
- package/dist/cache-service.d.ts +131 -0
- package/dist/cache-service.js +452 -0
- package/dist/cache-service.js.map +1 -0
- package/dist/channel/adapters/discord.d.ts +5 -1
- package/dist/channel/adapters/discord.js +56 -11
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +38 -1
- package/dist/channel/adapters/telegram.js +82 -0
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/mcp-tools.js +1 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.d.ts +8 -1
- package/dist/channel/tool-router.js +4 -2
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/channel/types.d.ts +21 -0
- package/dist/cli-entry.d.ts +19 -0
- package/dist/cli-entry.js +36 -0
- package/dist/cli-entry.js.map +1 -0
- package/dist/cli.js +376 -54
- package/dist/cli.js.map +1 -1
- package/dist/connection-secrets.d.ts +5 -0
- package/dist/connection-secrets.js.map +1 -1
- package/dist/cpu-profile.js +50 -0
- package/dist/cpu-profile.js.map +1 -1
- package/dist/daemon.d.ts +18 -0
- package/dist/daemon.js +256 -63
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-outbox.d.ts +1 -0
- package/dist/delivery-outbox.js +12 -0
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/discord-permissions.d.ts +33 -0
- package/dist/discord-permissions.js +42 -0
- package/dist/discord-permissions.js.map +1 -0
- package/dist/env-file.d.ts +11 -0
- package/dist/env-file.js +27 -0
- package/dist/env-file.js.map +1 -0
- package/dist/event-log.d.ts +4 -1
- package/dist/event-log.js +6 -3
- package/dist/event-log.js.map +1 -1
- package/dist/fleet-context.d.ts +5 -0
- package/dist/fleet-context.js.map +1 -1
- package/dist/fleet-control-audit.d.ts +5 -0
- package/dist/fleet-control-audit.js +7 -0
- package/dist/fleet-control-audit.js.map +1 -1
- package/dist/fleet-level-config.d.ts +8 -1
- package/dist/fleet-level-config.js +53 -0
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +122 -7
- package/dist/fleet-manager.js +871 -152
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-stop-budget.d.ts +22 -0
- package/dist/fleet-stop-budget.js +95 -0
- package/dist/fleet-stop-budget.js.map +1 -0
- package/dist/full-restart.js +2 -3
- package/dist/full-restart.js.map +1 -1
- package/dist/general-knowledge/skills/persona-emoji/SKILL.md +3 -1
- package/dist/install-lock.d.ts +49 -0
- package/dist/install-lock.js +200 -0
- package/dist/install-lock.js.map +1 -0
- package/dist/instance-config-impact.js +3 -2
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/kiro-transcript-lane.d.ts +8 -4
- package/dist/kiro-transcript-lane.js +66 -44
- package/dist/kiro-transcript-lane.js.map +1 -1
- package/dist/locale.js +96 -0
- package/dist/locale.js.map +1 -1
- package/dist/next-steps.d.ts +5 -0
- package/dist/next-steps.js +26 -0
- package/dist/next-steps.js.map +1 -0
- package/dist/outbound-handlers.js +8 -0
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +4 -0
- package/dist/outbound-schemas.js +7 -2
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/outbox-open-error.d.ts +7 -0
- package/dist/outbox-open-error.js +15 -0
- package/dist/outbox-open-error.js.map +1 -0
- package/dist/package-preimage.d.ts +26 -0
- package/dist/package-preimage.js +96 -0
- package/dist/package-preimage.js.map +1 -0
- package/dist/pane-context-cache.d.ts +25 -0
- package/dist/pane-context-cache.js +73 -0
- package/dist/pane-context-cache.js.map +1 -0
- package/dist/paths.d.ts +0 -7
- package/dist/paths.js +8 -2
- package/dist/paths.js.map +1 -1
- package/dist/provider-probe.d.ts +15 -0
- package/dist/provider-probe.js +20 -0
- package/dist/provider-probe.js.map +1 -1
- package/dist/public-link-progress.d.ts +73 -0
- package/dist/public-link-progress.js +190 -0
- package/dist/public-link-progress.js.map +1 -0
- package/dist/public-web-gateway.js +2 -2
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/public-web-link.d.ts +6 -1
- package/dist/public-web-link.js +87 -15
- package/dist/public-web-link.js.map +1 -1
- package/dist/quickstart-api.d.ts +93 -20
- package/dist/quickstart-api.js +194 -62
- package/dist/quickstart-api.js.map +1 -1
- package/dist/quickstart.d.ts +15 -0
- package/dist/quickstart.js +110 -33
- package/dist/quickstart.js.map +1 -1
- package/dist/reply-buttons-controller.d.ts +98 -0
- package/dist/reply-buttons-controller.js +174 -0
- package/dist/reply-buttons-controller.js.map +1 -0
- package/dist/reply-buttons.d.ts +113 -0
- package/dist/reply-buttons.js +208 -0
- package/dist/reply-buttons.js.map +1 -0
- package/dist/reply-dedup.js +3 -1
- package/dist/reply-dedup.js.map +1 -1
- package/dist/restart-guard.d.ts +53 -0
- package/dist/restart-guard.js +114 -0
- package/dist/restart-guard.js.map +1 -0
- package/dist/scheduler/db.js +6 -2
- package/dist/scheduler/db.js.map +1 -1
- package/dist/service-activation.d.ts +62 -7
- package/dist/service-activation.js +237 -55
- package/dist/service-activation.js.map +1 -1
- package/dist/service-installer.d.ts +56 -1
- package/dist/service-installer.js +152 -12
- package/dist/service-installer.js.map +1 -1
- package/dist/service-plan.d.ts +65 -0
- package/dist/service-plan.js +108 -0
- package/dist/service-plan.js.map +1 -0
- package/dist/settings-api.js +92 -10
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-authority.d.ts +11 -0
- package/dist/settings-authority.js +128 -0
- package/dist/settings-authority.js.map +1 -0
- package/dist/settings-change.d.ts +5 -0
- package/dist/settings-change.js +37 -8
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +3 -0
- package/dist/settings-confirmation.js +7 -1
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.js +19 -7
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.js +1 -1
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/settings-redaction.d.ts +18 -0
- package/dist/settings-redaction.js +58 -0
- package/dist/settings-redaction.js.map +1 -0
- package/dist/setup-form.d.ts +9 -1
- package/dist/setup-form.js +25 -1
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-host.js +15 -6
- package/dist/setup-host.js.map +1 -1
- package/dist/setup-wizard.js +27 -19
- package/dist/setup-wizard.js.map +1 -1
- package/dist/sqlite-open-errors.d.ts +12 -0
- package/dist/sqlite-open-errors.js +13 -0
- package/dist/sqlite-open-errors.js.map +1 -0
- package/dist/systemd-runtime.d.ts +15 -0
- package/dist/systemd-runtime.js +41 -0
- package/dist/systemd-runtime.js.map +1 -0
- package/dist/tmux-control.d.ts +44 -0
- package/dist/tmux-control.js +170 -21
- package/dist/tmux-control.js.map +1 -1
- package/dist/token-env-name.d.ts +37 -0
- package/dist/token-env-name.js +93 -0
- package/dist/token-env-name.js.map +1 -0
- package/dist/tool-permissions.js +5 -3
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.d.ts +7 -16
- package/dist/topic-commands.js +56 -85
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.js +3 -0
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +68 -0
- package/dist/transcript-sources.js +336 -29
- package/dist/transcript-sources.js.map +1 -1
- package/dist/transcript-turns.d.ts +39 -0
- package/dist/transcript-turns.js +58 -0
- package/dist/transcript-turns.js.map +1 -0
- package/dist/tunnel/cloudflared-install.d.ts +18 -0
- package/dist/tunnel/cloudflared-install.js +15 -1
- package/dist/tunnel/cloudflared-install.js.map +1 -1
- package/dist/turn-reply-guard.d.ts +3 -0
- package/dist/turn-reply-guard.js.map +1 -1
- package/dist/ui/chat-commands.js +43 -0
- package/dist/ui/chat-render.js +34 -8
- package/dist/ui/chat-store.js +51 -2
- package/dist/ui/chat-strings.js +30 -2
- package/dist/ui/chat-thread.js +141 -47
- package/dist/ui/first-run.js +64 -0
- package/dist/ui/fleet-cache.js +168 -0
- package/dist/ui/html-attachment.js +26 -0
- package/dist/ui/panel-chat.js +117 -23
- package/dist/ui/panel-fleet.js +31 -17
- package/dist/ui/panel-settings.js +29 -15
- package/dist/ui/preview-panel.js +237 -0
- package/dist/ui/preview.js +7 -3
- package/dist/ui/settings-apply.js +3 -1
- package/dist/ui/settings-dialogs.js +95 -25
- package/dist/ui/settings-discord.js +130 -0
- package/dist/ui/settings-model.js +21 -0
- package/dist/ui/settings-strings.js +50 -8
- package/dist/ui/settings-token.js +54 -0
- package/dist/ui/settings-wizard.js +63 -29
- package/dist/ui/shared/app-route.js +1 -1
- package/dist/ui/shared/app-shell.js +25 -37
- package/dist/ui/shared/app-store.js +5 -3
- package/dist/ui/shared/app-stream.js +2 -1
- package/dist/ui/shared/app.css +181 -5
- package/dist/ui/shared/app.js +2 -1
- package/dist/ui/shared/instance-nav.js +310 -0
- package/dist/ui/shared/panel-view.js +12 -190
- package/dist/ui/shared/signin.js +13 -1
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/view-roster-store.js +5 -0
- package/dist/ui/shared/view-strings.js +12 -0
- package/dist/ui/signin.html +2 -1
- package/dist/update-dispatch.d.ts +28 -0
- package/dist/update-dispatch.js +73 -0
- package/dist/update-dispatch.js.map +1 -0
- package/dist/update-install.d.ts +78 -8
- package/dist/update-install.js +158 -30
- package/dist/update-install.js.map +1 -1
- package/dist/update-launch.d.ts +22 -0
- package/dist/update-launch.js +106 -0
- package/dist/update-launch.js.map +1 -0
- package/dist/update-marker.js +3 -8
- package/dist/update-marker.js.map +1 -1
- package/dist/usage/format-rich.js +7 -1
- package/dist/usage/format-rich.js.map +1 -1
- package/dist/usage/i18n-keys.d.ts +1 -1
- package/dist/usage/i18n-keys.js +1 -1
- package/dist/usage/i18n-keys.js.map +1 -1
- package/dist/usage/providers.d.ts +4 -0
- package/dist/usage/providers.js +2 -1
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/usage-api.js +48 -2
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/view-api.d.ts +40 -0
- package/dist/view-api.js +28 -10
- package/dist/view-api.js.map +1 -1
- package/dist/web-api.d.ts +22 -0
- package/dist/web-api.js +115 -16
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.d.ts +8 -0
- package/dist/web-auth.js +34 -8
- package/dist/web-auth.js.map +1 -1
- package/dist/web-chat-history.d.ts +21 -0
- package/dist/web-chat-history.js +44 -0
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-commands.d.ts +77 -0
- package/dist/web-commands.js +81 -0
- package/dist/web-commands.js.map +1 -0
- package/dist/web-host-guard.d.ts +18 -2
- package/dist/web-host-guard.js +30 -5
- package/dist/web-host-guard.js.map +1 -1
- package/dist/web-session.d.ts +7 -1
- package/dist/web-session.js +23 -2
- package/dist/web-session.js.map +1 -1
- 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/launcher/agend +110 -0
- package/launcher/agend-agent +110 -0
- package/launcher/agend-agent.cjs +4 -0
- package/launcher/agend.cjs +4 -0
- package/launcher/install-admission.cjs +105 -0
- package/launcher/launch.cjs +64 -0
- package/launcher/postinstall.cjs +118 -0
- package/launcher/run-in-process.cjs +13 -0
- package/launcher/runtime-platform.cjs +86 -0
- package/launcher/runtime-select.cjs +217 -0
- package/package.json +12 -4
- package/scripts/preinstall-guard.cjs +40 -21
- package/templates/launchd.plist.ejs +2 -2
- package/templates/systemd.service.ejs +4 -4
package/dist/quickstart-api.js
CHANGED
|
@@ -2,10 +2,13 @@ import { settingsRequestExecution, settingsWrite } from "./settings-request-capa
|
|
|
2
2
|
import { SettingsExecutionError, settingsFileResource, trySettingsLease } from "./settings-transaction.js";
|
|
3
3
|
import { readBoundedWebBody } from "./web-body.js";
|
|
4
4
|
import { permitWebContinuation } from "./web-continuation.js";
|
|
5
|
+
import { gatewayRequestContext } from "./web-request-context.js";
|
|
5
6
|
import { join } from "node:path";
|
|
6
7
|
import { SecretStore } from "./secret-store.js";
|
|
8
|
+
import { discordBotPortalUrl, discordInviteUrl } from "./discord-permissions.js";
|
|
9
|
+
import { EnvFileUnreadableError, envFileKeys, generateTokenEnvName, generatedTokenEnvStale, newTokenEnvConflict, takenTokenEnvNames, TOKEN_ENV_PATTERN } from "./token-env-name.js";
|
|
7
10
|
import { KNOWN_BACKENDS, validateFleetConfig } from "./config-validator.js";
|
|
8
|
-
import { awaitTelegramGroupStart, detectInstalledBackends, listDiscordGuilds, TelegramPollConflictError, verifyDiscordToken, verifyTelegramToken, } from "./provider-probe.js";
|
|
11
|
+
import { awaitTelegramGroupStart, detectInstalledBackends, listDiscordGuilds, listDiscordTextChannels, TelegramPollConflictError, verifyDiscordToken, verifyTelegramToken, } from "./provider-probe.js";
|
|
9
12
|
/** One slice of Telegram long polling, so the browser gets an answer. */
|
|
10
13
|
export const TELEGRAM_WAIT_SLICE_MS = 25_000;
|
|
11
14
|
export const WIZARD_BACKENDS = [
|
|
@@ -18,34 +21,98 @@ export const WIZARD_BACKENDS = [
|
|
|
18
21
|
{ name: "muse", binary: "muse" },
|
|
19
22
|
];
|
|
20
23
|
/**
|
|
21
|
-
* A channel id
|
|
22
|
-
*
|
|
23
|
-
* The platform name is the obvious id and the first bot gets it. A second bot on
|
|
24
|
-
* the same platform cannot have it — `duplicate channel id` — so it is
|
|
25
|
-
* qualified by the variable that holds its token. Without this the wizard can
|
|
26
|
-
* never add a second Telegram bot at all.
|
|
24
|
+
* A free channel id for a NEW connection (#1519 P1, S1: the wizard never takes over an existing connection). The
|
|
25
|
+
* platform name is the obvious id and the first bot gets it; the next one on that platform is `<platform>-2`, and so on.
|
|
27
26
|
*/
|
|
28
|
-
export function nextChannelId(platform,
|
|
29
|
-
const owner = existing.find(channel => channel.token_env === tokenEnv);
|
|
30
|
-
if (owner)
|
|
31
|
-
return owner.id;
|
|
27
|
+
export function nextChannelId(platform, existing) {
|
|
32
28
|
const taken = new Set(existing.map(channel => channel.id));
|
|
33
29
|
if (!taken.has(platform))
|
|
34
30
|
return platform;
|
|
35
|
-
const qualified = `${platform}-${tokenEnv.toLowerCase()}`;
|
|
36
|
-
if (!taken.has(qualified))
|
|
37
|
-
return qualified;
|
|
38
31
|
for (let n = 2;; n++) {
|
|
39
|
-
const candidate = `${
|
|
32
|
+
const candidate = `${platform}-${n}`;
|
|
40
33
|
if (!taken.has(candidate))
|
|
41
34
|
return candidate;
|
|
42
35
|
}
|
|
43
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* #1519 P7: why the agent part of this input cannot be written, or null. A new agent's name must be free (the wizard
|
|
39
|
+
* never overwrites one); an existing agent must exist. A connection-only input has no agent part.
|
|
40
|
+
*/
|
|
41
|
+
export function agentConflict(input, cfg) {
|
|
42
|
+
if (input.connection_only)
|
|
43
|
+
return null;
|
|
44
|
+
const exists = !!cfg && Object.hasOwn(cfg.instances ?? {}, input.instance_name);
|
|
45
|
+
if (input.existing_agent)
|
|
46
|
+
return exists ? null : `there is no agent called "${input.instance_name}"`;
|
|
47
|
+
return exists ? `an agent called "${input.instance_name}" already exists — connect it as an existing agent, or choose another name` : null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* #1519 P7: an existing agent's input as the plan shows it — with the agent's own directory and backend (the wizard does
|
|
51
|
+
* not ask for them, and they are not changed). Any other input as it is.
|
|
52
|
+
*/
|
|
53
|
+
export function withExistingAgent(input, cfg) {
|
|
54
|
+
if (!input.existing_agent || !cfg || !Object.hasOwn(cfg.instances ?? {}, input.instance_name))
|
|
55
|
+
return input;
|
|
56
|
+
const inst = cfg.instances[input.instance_name];
|
|
57
|
+
return { ...input, working_directory: inst.working_directory ?? "", backend: inst.backend ?? cfg.defaults?.backend ?? "claude-code" };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* #1549 review: a topic id means something only in its chat (a Telegram group's forum topic, a Discord server's
|
|
61
|
+
* channel). An existing agent moved to a connection in another chat would keep an id that, there, is some other topic —
|
|
62
|
+
* or none yet — and inbound messages from that topic would route to it. So its topic binding goes with the move unless
|
|
63
|
+
* the new connection is in the same chat (same platform and group/server). Unknown (the old connection cannot be
|
|
64
|
+
* found) is not "the same": the binding goes.
|
|
65
|
+
*/
|
|
66
|
+
export function releasesTopic(cfg, instanceName, newChannel) {
|
|
67
|
+
if (!Object.hasOwn(cfg.instances ?? {}, instanceName))
|
|
68
|
+
return false;
|
|
69
|
+
const inst = cfg.instances[instanceName];
|
|
70
|
+
if (inst.topic_id === undefined || inst.topic_id === null || inst.topic_id === "")
|
|
71
|
+
return false;
|
|
72
|
+
const channels = wizardChannels(cfg);
|
|
73
|
+
const old = inst.channel_id != null ? channels.find(c => c.id === String(inst.channel_id)) : channels[0];
|
|
74
|
+
if (!old || old.group_id == null || newChannel.group_id == null)
|
|
75
|
+
return true;
|
|
76
|
+
return !(old.type === String(newChannel.type ?? "") && old.group_id === String(newChannel.group_id));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The topic an existing agent has after moving to `newChannel`: its own when the chat is the same; else, for the
|
|
80
|
+
* General agent, the new chat's General (Telegram's thread 1, the Discord connection's general channel); else none.
|
|
81
|
+
*/
|
|
82
|
+
export function movedTopic(cfg, instanceName, newChannel) {
|
|
83
|
+
if (!releasesTopic(cfg, instanceName, newChannel))
|
|
84
|
+
return null;
|
|
85
|
+
const inst = cfg.instances[instanceName];
|
|
86
|
+
const from = String(inst.topic_id);
|
|
87
|
+
if (inst.general_topic !== true)
|
|
88
|
+
return { from, to: null };
|
|
89
|
+
if (newChannel.type === "telegram")
|
|
90
|
+
return { from, to: 1 };
|
|
91
|
+
const general = newChannel.general_channel_id;
|
|
92
|
+
return { from, to: general != null && /^\d{17,}$/.test(String(general)) ? String(general) : null };
|
|
93
|
+
}
|
|
94
|
+
/** The plan as the wizard shows it: an existing agent's topic that the move changes is said so. */
|
|
95
|
+
export function withTopicRelease(plan, cfg, input) {
|
|
96
|
+
const moved = input.existing_agent && plan.instance ? movedTopic(cfg, input.instance_name, plan.channel) : null;
|
|
97
|
+
if (!moved || !plan.instance)
|
|
98
|
+
return plan;
|
|
99
|
+
return { ...plan, instance: { ...plan.instance, topic: { from: moved.from, to: moved.to == null ? null : String(moved.to) } } };
|
|
100
|
+
}
|
|
101
|
+
/** Why this input cannot be a new connection, or null: a taken id or token env (it would replace a connection). */
|
|
102
|
+
export function newConnectionConflict(input, env) {
|
|
103
|
+
if (input.channel_id && env.channels.some(channel => channel.id === input.channel_id)) {
|
|
104
|
+
return `a connection called "${input.channel_id}" already exists — a new connection never replaces one`;
|
|
105
|
+
}
|
|
106
|
+
return input.token_env ? newTokenEnvConflict(input.token_env, env.channels) : null;
|
|
107
|
+
}
|
|
44
108
|
export function planQuickstart(input, env) {
|
|
45
109
|
const warnings = [];
|
|
110
|
+
const channelId = input.channel_id || nextChannelId(input.platform, env.channels);
|
|
111
|
+
const tokenEnv = input.token_env || generateTokenEnvName(input.platform, channelId, env.taken_env ?? takenTokenEnvNames({ channelEnvs: env.channels.map(channel => channel.token_env) }));
|
|
46
112
|
const channel = {
|
|
113
|
+
id: channelId,
|
|
47
114
|
type: input.platform,
|
|
48
|
-
bot_token_env:
|
|
115
|
+
bot_token_env: tokenEnv,
|
|
49
116
|
mode: "topic",
|
|
50
117
|
access: { mode: "locked", allowed_users: input.admin_user_id ? [input.admin_user_id] : [] },
|
|
51
118
|
};
|
|
@@ -62,25 +129,17 @@ export function planQuickstart(input, env) {
|
|
|
62
129
|
if (!input.admin_user_id) {
|
|
63
130
|
warnings.push("No admin user id: access stays locked with an empty allow list, so nobody can drive the bot until you add one.");
|
|
64
131
|
}
|
|
65
|
-
|
|
66
|
-
if (clash) {
|
|
67
|
-
warnings.push(`${input.token_env} is already used by the "${clash.id}" connection — its token will be overwritten.`);
|
|
68
|
-
// Re-running the wizard rewrites that connection's access block, so anyone
|
|
69
|
-
// else on its allow list stops being able to drive the bot. That is a
|
|
70
|
-
// lockout, and it must not happen without the user reading it first.
|
|
71
|
-
const previous = clash.allowed_users ?? [];
|
|
72
|
-
const dropped = previous.filter(user => user !== input.admin_user_id);
|
|
73
|
-
if (dropped.length) {
|
|
74
|
-
warnings.push(`Its allow list is replaced: ${dropped.join(", ")} will no longer be able to use the bot.`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (!env.backends.includes(input.backend)) {
|
|
132
|
+
if (!input.connection_only && !input.existing_agent && !env.backends.includes(input.backend)) {
|
|
78
133
|
warnings.push(`${input.backend} was not found on this host; the agent will fail to start until it is installed.`);
|
|
79
134
|
}
|
|
80
135
|
return {
|
|
81
136
|
channel,
|
|
82
|
-
|
|
83
|
-
|
|
137
|
+
// The agent is the new connection's (#1529 review): bound to it, not to whichever connection is first.
|
|
138
|
+
instance: input.connection_only ? null : { name: input.instance_name, working_directory: input.working_directory, backend: input.backend, channel_id: channelId,
|
|
139
|
+
...(input.existing_agent ? { existing: true } : {}) },
|
|
140
|
+
channel_id: channelId,
|
|
141
|
+
token_env: tokenEnv,
|
|
142
|
+
env_keys: [tokenEnv],
|
|
84
143
|
warnings,
|
|
85
144
|
};
|
|
86
145
|
}
|
|
@@ -120,11 +179,19 @@ export async function runProviderProbe(request, opts = {}) {
|
|
|
120
179
|
const identity = request.platform === "discord"
|
|
121
180
|
? await verifyDiscordToken(request.token)
|
|
122
181
|
: await verifyTelegramToken(request.token);
|
|
182
|
+
// #1519 P3: a verified Discord bot comes with its invite (the one permission set) and its portal page.
|
|
183
|
+
if (request.platform === "discord" && identity.valid && identity.id) {
|
|
184
|
+
return { ok: true, identity, invite_url: discordInviteUrl(identity.id), portal_url: discordBotPortalUrl(identity.id) };
|
|
185
|
+
}
|
|
123
186
|
return { ok: true, identity };
|
|
124
187
|
}
|
|
125
188
|
if (request.action === "guilds") {
|
|
126
189
|
return { ok: true, guilds: await listDiscordGuilds(request.token) };
|
|
127
190
|
}
|
|
191
|
+
if (request.action === "channels") {
|
|
192
|
+
const listed = await listDiscordTextChannels(request.token, request.guild_id);
|
|
193
|
+
return listed.ok ? { ok: true, channels: listed.channels } : { ok: false, error: listed.error };
|
|
194
|
+
}
|
|
128
195
|
if (opts.isTokenInUse?.(request.token)) {
|
|
129
196
|
return {
|
|
130
197
|
ok: false,
|
|
@@ -159,22 +226,31 @@ export function detectWizardBackends() {
|
|
|
159
226
|
* asserts this module's import graph reaches neither fleet-manager, daemon nor
|
|
160
227
|
* instance-lifecycle, so the host cannot grow a path to them by accident.
|
|
161
228
|
*/
|
|
229
|
+
function withMovedTopic(inst, moved) {
|
|
230
|
+
if (!moved)
|
|
231
|
+
return inst;
|
|
232
|
+
const { topic_id: _old, ...rest } = inst;
|
|
233
|
+
return (moved.to == null ? rest : { ...rest, topic_id: moved.to });
|
|
234
|
+
}
|
|
162
235
|
/** One pure draft shared by the writer and the authoritative confirmation diff. */
|
|
163
236
|
export function draftQuickstart(cfg, body, plan) {
|
|
164
237
|
const draft = structuredClone(cfg), summary = wizardChannels(cfg);
|
|
165
238
|
const channels = draft.channels ?? (draft.channel ? [draft.channel] : []);
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
else
|
|
171
|
-
channels.push(entry);
|
|
239
|
+
// Always a new connection (#1519 P1, S1): never matched to one by token env, platform or group. The commit refuses a
|
|
240
|
+
// taken id or env before it gets here (newConnectionConflict).
|
|
241
|
+
void summary;
|
|
242
|
+
channels.push({ ...plan.channel });
|
|
172
243
|
draft.channels = channels;
|
|
173
244
|
delete draft.channel;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
245
|
+
if (body.connection_only)
|
|
246
|
+
return draft;
|
|
247
|
+
const existing = Object.hasOwn(draft.instances, body.instance_name) ? draft.instances[body.instance_name] : undefined;
|
|
248
|
+
draft.instances = { ...draft.instances, [body.instance_name]: body.existing_agent && existing
|
|
249
|
+
// #1519 P7: an existing agent keeps everything it has; only its connection becomes the new one — and a topic of
|
|
250
|
+
// another chat is not carried into this one (#1549 review: releasesTopic).
|
|
251
|
+
? withMovedTopic({ ...existing, channel_id: plan.channel_id }, movedTopic(cfg, body.instance_name, plan.channel))
|
|
252
|
+
: { ...(existing ?? {}), working_directory: body.working_directory, backend: body.backend, channel_id: plan.channel_id },
|
|
253
|
+
};
|
|
178
254
|
return draft;
|
|
179
255
|
}
|
|
180
256
|
function json(res, status, data) {
|
|
@@ -197,17 +273,30 @@ export function wizardChannels(cfg) {
|
|
|
197
273
|
}));
|
|
198
274
|
}
|
|
199
275
|
/** Reject anything that would land in fleet.yaml or a shell env file unchecked. */
|
|
200
|
-
export function validateWizardInput(input) {
|
|
276
|
+
export function validateWizardInput(input, opts = {}) {
|
|
201
277
|
if (input.platform !== "telegram" && input.platform !== "discord")
|
|
202
278
|
return "platform must be telegram or discord";
|
|
203
|
-
if (
|
|
279
|
+
if (input.connection_only !== undefined && typeof input.connection_only !== "boolean")
|
|
280
|
+
return "connection_only must be a boolean";
|
|
281
|
+
if (input.existing_agent !== undefined && typeof input.existing_agent !== "boolean")
|
|
282
|
+
return "existing_agent must be a boolean";
|
|
283
|
+
if (input.token_env_generated !== undefined && typeof input.token_env_generated !== "boolean")
|
|
284
|
+
return "token_env_generated must be a boolean";
|
|
285
|
+
if (!(opts.tokenEnvOptional && input.token_env === undefined) && (!input.token_env || !TOKEN_ENV_PATTERN.test(input.token_env)))
|
|
204
286
|
return "token_env must be an UPPER_SNAKE env var name";
|
|
205
|
-
if (
|
|
206
|
-
return "
|
|
207
|
-
if (!input.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
287
|
+
if (input.channel_id !== undefined && (typeof input.channel_id !== "string" || !/^[A-Za-z0-9][A-Za-z0-9_-]{0,31}$/.test(input.channel_id)))
|
|
288
|
+
return "channel_id must be [A-Za-z0-9_-], up to 32 characters";
|
|
289
|
+
if (!input.connection_only) {
|
|
290
|
+
if (!input.instance_name || !/^[A-Za-z0-9._-]{1,128}$/.test(input.instance_name))
|
|
291
|
+
return "instance_name must be [A-Za-z0-9._-]";
|
|
292
|
+
// An existing agent keeps its own directory and backend: neither is asked for.
|
|
293
|
+
if (!input.existing_agent) {
|
|
294
|
+
if (!input.backend || !KNOWN_BACKENDS.includes(input.backend))
|
|
295
|
+
return "backend must be a known backend";
|
|
296
|
+
if (!input.working_directory || !input.working_directory.startsWith("/"))
|
|
297
|
+
return "working_directory must be an absolute path";
|
|
298
|
+
}
|
|
299
|
+
}
|
|
211
300
|
for (const [field, value] of Object.entries({
|
|
212
301
|
group_id: input.group_id, guild_id: input.guild_id,
|
|
213
302
|
general_channel_id: input.general_channel_id, admin_user_id: input.admin_user_id,
|
|
@@ -229,10 +318,17 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
229
318
|
backends: detectWizardBackends(),
|
|
230
319
|
has_fleet: !!cfg && Object.keys(cfg.instances ?? {}).length > 0,
|
|
231
320
|
channels: wizardChannels(cfg),
|
|
321
|
+
agents: Object.entries(cfg?.instances ?? {}).map(([name, inst]) => ({
|
|
322
|
+
name, working_directory: inst.working_directory ?? null, backend: inst.backend ?? null
|
|
323
|
+
})),
|
|
232
324
|
});
|
|
233
325
|
return true;
|
|
234
326
|
}
|
|
235
327
|
if (method === "POST" && path === "/api/settings/quickstart/probe") {
|
|
328
|
+
if (gatewayRequestContext(req)) {
|
|
329
|
+
json(res, 403, { error: "Token verification is not permitted over a public link" });
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
236
332
|
readBody(req, 16 * 1024).then(async (buf) => {
|
|
237
333
|
if (!permitWebContinuation(req, res, ctx))
|
|
238
334
|
return;
|
|
@@ -247,14 +343,14 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
247
343
|
if (!token)
|
|
248
344
|
return json(res, 400, { error: "token required" });
|
|
249
345
|
const action = String(body.action ?? "");
|
|
250
|
-
if (action !== "verify" && action !== "guilds" && action !== "await-telegram-start") {
|
|
346
|
+
if (action !== "verify" && action !== "guilds" && action !== "channels" && action !== "await-telegram-start") {
|
|
251
347
|
return json(res, 400, { error: "unknown probe" });
|
|
252
348
|
}
|
|
253
349
|
const platform = body.platform === "discord" ? "discord" : "telegram";
|
|
254
350
|
// The token is read, used for one outbound call, and dropped. It is never
|
|
255
351
|
// logged and never echoed back in the response.
|
|
256
352
|
ctx.logger.info({ action, platform }, "settings: quickstart probe");
|
|
257
|
-
const result = await runProviderProbe({ action, platform, token, offset: typeof body.offset === "number" ? body.offset : 0 }, { isTokenInUse: candidate => ctx.isBotTokenInUse?.(candidate) ?? false });
|
|
353
|
+
const result = await runProviderProbe({ action, platform, token, offset: typeof body.offset === "number" ? body.offset : 0, guild_id: typeof body.guild_id === "string" ? body.guild_id : "" }, { isTokenInUse: candidate => ctx.isBotTokenInUse?.(candidate) ?? false });
|
|
258
354
|
json(res, result.ok ? 200 : 409, result);
|
|
259
355
|
}).catch(() => json(res, 400, { error: "bad request" }));
|
|
260
356
|
return true;
|
|
@@ -274,14 +370,30 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
274
370
|
catch {
|
|
275
371
|
return json(res, 400, { error: "invalid JSON" });
|
|
276
372
|
}
|
|
277
|
-
const invalid = validateWizardInput(body);
|
|
373
|
+
const invalid = validateWizardInput(body, { tokenEnvOptional: true });
|
|
278
374
|
if (invalid)
|
|
279
375
|
return json(res, 400, { error: invalid });
|
|
280
|
-
|
|
281
|
-
|
|
376
|
+
const channels = wizardChannels(cfg);
|
|
377
|
+
const conflict = newConnectionConflict(body, { channels }) ?? agentConflict(body, cfg);
|
|
378
|
+
if (conflict)
|
|
379
|
+
return json(res, 409, { error: conflict });
|
|
380
|
+
// A generated name avoids every name already held: connections', providers', this data dir's .env, this process's.
|
|
381
|
+
let envFile;
|
|
382
|
+
try {
|
|
383
|
+
envFile = envFileKeys(ctx.dataDir);
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
if (err instanceof EnvFileUnreadableError)
|
|
387
|
+
return json(res, 503, { error: err.message });
|
|
388
|
+
throw err;
|
|
389
|
+
}
|
|
390
|
+
const taken = takenTokenEnvNames({ channelEnvs: channels.map(c => c.token_env), envFile, processEnv: Object.keys(process.env) });
|
|
391
|
+
json(res, 200, withTopicRelease(planQuickstart(withExistingAgent(body, cfg), {
|
|
392
|
+
backends: body.connection_only ? [] : detectWizardBackends(),
|
|
282
393
|
has_fleet: Object.keys(cfg.instances ?? {}).length > 0,
|
|
283
|
-
channels
|
|
284
|
-
|
|
394
|
+
channels,
|
|
395
|
+
taken_env: taken,
|
|
396
|
+
}), cfg, body));
|
|
285
397
|
}).catch(() => json(res, 400, { error: "bad request" }));
|
|
286
398
|
return true;
|
|
287
399
|
}
|
|
@@ -306,7 +418,11 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
306
418
|
if (!body.token)
|
|
307
419
|
return json(res, 400, { error: "token required" });
|
|
308
420
|
const summary = wizardChannels(cfg);
|
|
309
|
-
|
|
421
|
+
// Never a replacement (#1519 P1, S1): an id or token env another connection holds is refused before anything moves.
|
|
422
|
+
const conflict = newConnectionConflict(body, { channels: summary }) ?? agentConflict(body, cfg);
|
|
423
|
+
if (conflict)
|
|
424
|
+
return json(res, 409, { error: conflict });
|
|
425
|
+
const plan = planQuickstart(withExistingAgent(body, cfg), {
|
|
310
426
|
backends: detectWizardBackends(),
|
|
311
427
|
has_fleet: Object.keys(cfg.instances ?? {}).length > 0,
|
|
312
428
|
channels: summary,
|
|
@@ -325,19 +441,35 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
325
441
|
if (!lease)
|
|
326
442
|
return json(res, 409, { error: "another secret operation is still running" });
|
|
327
443
|
let stored = false, secretBefore;
|
|
328
|
-
const
|
|
329
|
-
|
|
444
|
+
const agent = !body.connection_only;
|
|
445
|
+
const before = { channels: cfg.channels, channel: cfg.channel, instance: agent ? cfg.instances[body.instance_name] : undefined,
|
|
446
|
+
hadInstance: agent && Object.hasOwn(cfg.instances, body.instance_name) };
|
|
330
447
|
let store;
|
|
331
448
|
const rollback = {};
|
|
332
449
|
try {
|
|
333
450
|
execution?.assert();
|
|
451
|
+
// A generated name is re-checked here, under the .env lease, against what the write would overwrite (#1529 review).
|
|
452
|
+
if (body.token_env_generated) {
|
|
453
|
+
let stale;
|
|
454
|
+
try {
|
|
455
|
+
stale = generatedTokenEnvStale(body.token_env, { dataDir: ctx.dataDir, channelEnvs: summary.map(c => c.token_env) });
|
|
456
|
+
}
|
|
457
|
+
catch (err) {
|
|
458
|
+
if (err instanceof EnvFileUnreadableError)
|
|
459
|
+
return json(res, 503, { error: err.message });
|
|
460
|
+
throw err;
|
|
461
|
+
}
|
|
462
|
+
if (stale)
|
|
463
|
+
return json(res, 409, { error: stale }); // nothing written yet; the lease goes in finally
|
|
464
|
+
}
|
|
334
465
|
store = new SecretStore(envPath, new Set([body.token_env]), { owner: lease.owner });
|
|
335
466
|
settingsWrite(req, () => {
|
|
336
467
|
secretBefore = store.write(body.token_env, body.token);
|
|
337
468
|
stored = true;
|
|
338
469
|
cfg.channels = draft.channels;
|
|
339
470
|
delete cfg.channel;
|
|
340
|
-
|
|
471
|
+
if (agent)
|
|
472
|
+
Object.defineProperty(cfg.instances, body.instance_name, { value: draft.instances[body.instance_name], enumerable: true, writable: true, configurable: true });
|
|
341
473
|
const undo = ctx.saveFleetConfig();
|
|
342
474
|
if (typeof undo === "function")
|
|
343
475
|
rollback.config = undo;
|
|
@@ -352,7 +484,7 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
352
484
|
delete cfg.channel;
|
|
353
485
|
if (before.hadInstance)
|
|
354
486
|
cfg.instances[body.instance_name] = before.instance;
|
|
355
|
-
else
|
|
487
|
+
else if (agent)
|
|
356
488
|
delete cfg.instances[body.instance_name];
|
|
357
489
|
let cleanupFailed = false;
|
|
358
490
|
try {
|
|
@@ -376,7 +508,7 @@ export function handleQuickstartRequest(req, res, url, ctx) {
|
|
|
376
508
|
finally {
|
|
377
509
|
lease.release();
|
|
378
510
|
}
|
|
379
|
-
ctx.logger.info({ instance: body.instance_name, platform: body.platform }, "settings: quickstart committed");
|
|
511
|
+
ctx.logger.info({ instance: agent ? body.instance_name : null, connection: plan.channel_id, platform: body.platform }, "settings: quickstart committed");
|
|
380
512
|
// No apply here: the page starts the ordinary job so the wizard's last
|
|
381
513
|
// step has the same progress, deadline and restart recovery as everything
|
|
382
514
|
// else the panel applies.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart-api.js","sourceRoot":"","sources":["../src/quickstart-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quickstart-api.js","sourceRoot":"","sources":["../src/quickstart-api.ts"],"names":[],"mappings":"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"}
|
package/dist/quickstart.d.ts
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
1
|
export { SETUP_GUIDE_URLS, setupGuideUrl } from "./setup-guide.js";
|
|
2
|
+
/**
|
|
3
|
+
* Add `newUsers` to the allowed_users of the chosen connection in `config`.
|
|
4
|
+
* Supports both channel-shaped (singular) and channels-shaped (array) files.
|
|
5
|
+
* For multi-connection files, `pickIndex` selects the target (default: 0).
|
|
6
|
+
* Never writes a phantom `channel:` key into a channels-shaped file.
|
|
7
|
+
* Exported for direct testing.
|
|
8
|
+
*/
|
|
9
|
+
export declare function addAllowedUsersToConfig(config: Record<string, any>, newUsers: string[], pickIndex?: number): void;
|
|
10
|
+
/**
|
|
11
|
+
* Write a backup of `configPath` to `<configPath>.bak-<now>` using atomicWriteFileSync.
|
|
12
|
+
* Throws on failure — callers must abort the overwrite if backup fails (fail-closed).
|
|
13
|
+
* Returns the backup path on success.
|
|
14
|
+
* Exported for direct testing.
|
|
15
|
+
*/
|
|
16
|
+
export declare function backupFleetConfig(configPath: string, now?: number): Promise<string>;
|
|
2
17
|
export declare function runQuickstart(): Promise<void>;
|