@songsid/agend 2.3.3-beta.5 → 2.3.3-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend/claude-code.js +4 -2
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/grok.js +57 -11
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/types.d.ts +18 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/daemon.d.ts +6 -0
- package/dist/daemon.js +17 -0
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +5 -0
- package/dist/fleet-manager.js +24 -1
- package/dist/fleet-manager.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +6 -0
- package/dist/instance-lifecycle.js +19 -3
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +12 -4
- package/dist/locale.js.map +1 -1
- package/dist/outbound-schemas.js +1 -1
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/settings-confirmation.d.ts +17 -3
- package/dist/settings-confirmation.js +8 -5
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-http-confirmation.js +31 -1
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/topic-commands.d.ts +21 -5
- package/dist/topic-commands.js +92 -36
- package/dist/topic-commands.js.map +1 -1
- package/dist/ui/chat-strings.js +6 -4
- package/dist/ui/chat-thread.js +45 -15
- package/dist/ui/fleet-office-skin.js +37 -14
- package/dist/ui/fleet-office.js +31 -7
- package/dist/ui/html-attachment.js +22 -8
- package/dist/ui/preview-panel.js +9 -6
- package/dist/ui/preview.js +10 -3
- package/dist/ui/settings-confirm.js +18 -0
- package/dist/ui/shared/app-i18n.js +13 -2
- package/dist/ui/shared/app-shell.js +35 -1
- package/dist/ui/shared/app.css +15 -0
- package/dist/web-preview.d.ts +5 -2
- package/dist/web-preview.js +6 -3
- package/dist/web-preview.js.map +1 -1
- package/package.json +1 -1
package/dist/fleet-manager.d.ts
CHANGED
|
@@ -4040,6 +4040,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
4040
4040
|
private classicStartKey;
|
|
4041
4041
|
/** Approval is a system notification: General's agent need not be running. */
|
|
4042
4042
|
private findClassicApprovalGeneral;
|
|
4043
|
+
/**
|
|
4044
|
+
* #2870: someone ClassicBot does not serve in this private chat: not on allowed_users, not a ClassicBot admin, not a
|
|
4045
|
+
* fleet admin of this bot, and no ClassicBot room here. Their commands other than /start get no answer.
|
|
4046
|
+
*/
|
|
4047
|
+
private isClassicPrivateStranger;
|
|
4043
4048
|
/** Return a user-facing blocker without mutating ClassicBot state. */
|
|
4044
4049
|
private validateClassicStart;
|
|
4045
4050
|
/** #2072: from the published snapshot (no `which` on the loop); not checked yet counts as installed (no false alarm). */
|
package/dist/fleet-manager.js
CHANGED
|
@@ -1762,7 +1762,7 @@ export class FleetManager {
|
|
|
1762
1762
|
retire();
|
|
1763
1763
|
continue;
|
|
1764
1764
|
}
|
|
1765
|
-
if (store.attachPrompt(view.id, retire))
|
|
1765
|
+
if (store.attachPrompt(view.id, retire, { platform: adapter.type, connection: adapterId }))
|
|
1766
1766
|
return;
|
|
1767
1767
|
}
|
|
1768
1768
|
catch {
|
|
@@ -10245,6 +10245,11 @@ export class FleetManager {
|
|
|
10245
10245
|
}
|
|
10246
10246
|
return;
|
|
10247
10247
|
}
|
|
10248
|
+
// #2870 (the user's choice): in a private chat, a command from someone ClassicBot does not serve here — not an
|
|
10249
|
+
// allowed user, not a ClassicBot admin, not a fleet admin, no room in this chat — gets no answer at all. /start
|
|
10250
|
+
// above still asks for access; a guest's /web is handled before it.
|
|
10251
|
+
if (isPrivateChat && text.startsWith("/") && this.isClassicPrivateStranger(msg.userId, chatId, msg.adapterId))
|
|
10252
|
+
return;
|
|
10248
10253
|
// Handle /stop command
|
|
10249
10254
|
if (text === "/stop" || text.startsWith("/stop ")) {
|
|
10250
10255
|
if (!this.classicChannels.isAdmin(msg.userId)) {
|
|
@@ -17421,6 +17426,13 @@ export class FleetManager {
|
|
|
17421
17426
|
lines.push(t(admin === "added" ? "classic.approve_done_admin" : "classic.approve_done_admin_already", adminUserId ?? ""));
|
|
17422
17427
|
}
|
|
17423
17428
|
this.notifyInstanceTopic(entry.instanceName, lines.join("\n"));
|
|
17429
|
+
// #2870: the chat just allowed — and the new ClassicBot admin's own chat — get the ClassicBot menu now, not at the
|
|
17430
|
+
// bot's next start (Telegram only; the menu is per chat there).
|
|
17431
|
+
const reply = entry.classicReplyTo;
|
|
17432
|
+
if (reply && reply.adapter.type === "telegram" && scope !== "guild") {
|
|
17433
|
+
for (const chat of new Set([groupId, ...(adminUserId ? [adminUserId] : [])]))
|
|
17434
|
+
void this.topicCommands.addClassicMenuChat(reply.adapterId, chat);
|
|
17435
|
+
}
|
|
17424
17436
|
await this.notifyClassicRequester(entry, "classic.request_allowed");
|
|
17425
17437
|
}
|
|
17426
17438
|
async notifyClassicRequester(entry, key) {
|
|
@@ -20689,6 +20701,17 @@ Plus the operational skills (fleet-health, instance-lifecycle, scheduling, sessi
|
|
|
20689
20701
|
return (adapterId ? generals.find(([name, cfg]) => (cfg.channel_id ?? this.getInstanceAdapterId(name)) === adapterId) : undefined)?.[0]
|
|
20690
20702
|
?? generals[0]?.[0];
|
|
20691
20703
|
}
|
|
20704
|
+
/**
|
|
20705
|
+
* #2870: someone ClassicBot does not serve in this private chat: not on allowed_users, not a ClassicBot admin, not a
|
|
20706
|
+
* fleet admin of this bot, and no ClassicBot room here. Their commands other than /start get no answer.
|
|
20707
|
+
*/
|
|
20708
|
+
isClassicPrivateStranger(userId, chatId, adapterId) {
|
|
20709
|
+
const classic = this.classicChannels;
|
|
20710
|
+
if (!classic)
|
|
20711
|
+
return false;
|
|
20712
|
+
return !classic.isAdmin(userId) && !classic.isUserAllowed(userId) && !this.isFleetAdmin(userId, adapterId ?? "")
|
|
20713
|
+
&& !classic.isClassicChannel(chatId, adapterId);
|
|
20714
|
+
}
|
|
20692
20715
|
/** Return a user-facing blocker without mutating ClassicBot state. */
|
|
20693
20716
|
validateClassicStart(channelId, userId, guildId, adapterId) {
|
|
20694
20717
|
const classic = this.classicChannels;
|