@songsid/agend 0.0.1
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 +210 -0
- package/README.zh-TW.md +134 -0
- package/dist/access-path.d.ts +10 -0
- package/dist/access-path.js +32 -0
- package/dist/access-path.js.map +1 -0
- package/dist/adapter-world.d.ts +25 -0
- package/dist/adapter-world.js +41 -0
- package/dist/adapter-world.js.map +1 -0
- package/dist/agent-cli-instructions.md +50 -0
- package/dist/agent-cli.d.ts +2 -0
- package/dist/agent-cli.js +200 -0
- package/dist/agent-cli.js.map +1 -0
- package/dist/agent-endpoint.d.ts +25 -0
- package/dist/agent-endpoint.js +162 -0
- package/dist/agent-endpoint.js.map +1 -0
- package/dist/backend/antigravity.d.ts +17 -0
- package/dist/backend/antigravity.js +98 -0
- package/dist/backend/antigravity.js.map +1 -0
- package/dist/backend/claude-code.d.ts +23 -0
- package/dist/backend/claude-code.js +171 -0
- package/dist/backend/claude-code.js.map +1 -0
- package/dist/backend/codex.d.ts +18 -0
- package/dist/backend/codex.js +160 -0
- package/dist/backend/codex.js.map +1 -0
- package/dist/backend/factory.d.ts +2 -0
- package/dist/backend/factory.js +28 -0
- package/dist/backend/factory.js.map +1 -0
- package/dist/backend/gemini-cli.d.ts +17 -0
- package/dist/backend/gemini-cli.js +163 -0
- package/dist/backend/gemini-cli.js.map +1 -0
- package/dist/backend/index.d.ts +7 -0
- package/dist/backend/index.js +7 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/kiro.d.ts +17 -0
- package/dist/backend/kiro.js +147 -0
- package/dist/backend/kiro.js.map +1 -0
- package/dist/backend/marker-utils.d.ts +13 -0
- package/dist/backend/marker-utils.js +64 -0
- package/dist/backend/marker-utils.js.map +1 -0
- package/dist/backend/mock.d.ts +25 -0
- package/dist/backend/mock.js +85 -0
- package/dist/backend/mock.js.map +1 -0
- package/dist/backend/opencode.d.ts +16 -0
- package/dist/backend/opencode.js +136 -0
- package/dist/backend/opencode.js.map +1 -0
- package/dist/backend/types.d.ts +86 -0
- package/dist/backend/types.js +33 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/channel/access-manager.d.ts +18 -0
- package/dist/channel/access-manager.js +153 -0
- package/dist/channel/access-manager.js.map +1 -0
- package/dist/channel/adapters/telegram.d.ts +63 -0
- package/dist/channel/adapters/telegram.js +646 -0
- package/dist/channel/adapters/telegram.js.map +1 -0
- package/dist/channel/attachment-handler.d.ts +15 -0
- package/dist/channel/attachment-handler.js +88 -0
- package/dist/channel/attachment-handler.js.map +1 -0
- package/dist/channel/factory.d.ts +12 -0
- package/dist/channel/factory.js +67 -0
- package/dist/channel/factory.js.map +1 -0
- package/dist/channel/ipc-bridge.d.ts +26 -0
- package/dist/channel/ipc-bridge.js +220 -0
- package/dist/channel/ipc-bridge.js.map +1 -0
- package/dist/channel/mcp-server.d.ts +10 -0
- package/dist/channel/mcp-server.js +288 -0
- package/dist/channel/mcp-server.js.map +1 -0
- package/dist/channel/mcp-tools.d.ts +17 -0
- package/dist/channel/mcp-tools.js +110 -0
- package/dist/channel/mcp-tools.js.map +1 -0
- package/dist/channel/message-bus.d.ts +17 -0
- package/dist/channel/message-bus.js +86 -0
- package/dist/channel/message-bus.js.map +1 -0
- package/dist/channel/message-queue.d.ts +39 -0
- package/dist/channel/message-queue.js +253 -0
- package/dist/channel/message-queue.js.map +1 -0
- package/dist/channel/tool-router.d.ts +6 -0
- package/dist/channel/tool-router.js +75 -0
- package/dist/channel/tool-router.js.map +1 -0
- package/dist/channel/tool-tracker.d.ts +13 -0
- package/dist/channel/tool-tracker.js +58 -0
- package/dist/channel/tool-tracker.js.map +1 -0
- package/dist/channel/types.d.ts +118 -0
- package/dist/channel/types.js +2 -0
- package/dist/channel/types.js.map +1 -0
- package/dist/chat-export.d.ts +4 -0
- package/dist/chat-export.js +91 -0
- package/dist/chat-export.js.map +1 -0
- package/dist/classic-channel-manager.d.ts +59 -0
- package/dist/classic-channel-manager.js +193 -0
- package/dist/classic-channel-manager.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +1833 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.js +118 -0
- package/dist/config.js.map +1 -0
- package/dist/context-guardian.d.ts +26 -0
- package/dist/context-guardian.js +73 -0
- package/dist/context-guardian.js.map +1 -0
- package/dist/cost-guard.d.ts +36 -0
- package/dist/cost-guard.js +147 -0
- package/dist/cost-guard.js.map +1 -0
- package/dist/daemon-entry.d.ts +1 -0
- package/dist/daemon-entry.js +29 -0
- package/dist/daemon-entry.js.map +1 -0
- package/dist/daemon.d.ts +152 -0
- package/dist/daemon.js +1714 -0
- package/dist/daemon.js.map +1 -0
- package/dist/daily-summary.d.ts +13 -0
- package/dist/daily-summary.js +55 -0
- package/dist/daily-summary.js.map +1 -0
- package/dist/event-log.d.ts +36 -0
- package/dist/event-log.js +100 -0
- package/dist/event-log.js.map +1 -0
- package/dist/export-import.d.ts +2 -0
- package/dist/export-import.js +162 -0
- package/dist/export-import.js.map +1 -0
- package/dist/fleet-context.d.ts +61 -0
- package/dist/fleet-context.js +4 -0
- package/dist/fleet-context.js.map +1 -0
- package/dist/fleet-dashboard-html.d.ts +6 -0
- package/dist/fleet-dashboard-html.js +443 -0
- package/dist/fleet-dashboard-html.js.map +1 -0
- package/dist/fleet-health-server.d.ts +35 -0
- package/dist/fleet-health-server.js +290 -0
- package/dist/fleet-health-server.js.map +1 -0
- package/dist/fleet-instructions.d.ts +5 -0
- package/dist/fleet-instructions.js +161 -0
- package/dist/fleet-instructions.js.map +1 -0
- package/dist/fleet-manager.d.ts +212 -0
- package/dist/fleet-manager.js +3655 -0
- package/dist/fleet-manager.js.map +1 -0
- package/dist/fleet-rpc-handlers.d.ts +42 -0
- package/dist/fleet-rpc-handlers.js +356 -0
- package/dist/fleet-rpc-handlers.js.map +1 -0
- package/dist/fleet-system-prompt.d.ts +11 -0
- package/dist/fleet-system-prompt.js +61 -0
- package/dist/fleet-system-prompt.js.map +1 -0
- package/dist/general-knowledge/skills.md +177 -0
- package/dist/hang-detector.d.ts +16 -0
- package/dist/hang-detector.js +53 -0
- package/dist/hang-detector.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-lifecycle.d.ts +90 -0
- package/dist/instance-lifecycle.js +592 -0
- package/dist/instance-lifecycle.js.map +1 -0
- package/dist/instructions.d.ts +15 -0
- package/dist/instructions.js +90 -0
- package/dist/instructions.js.map +1 -0
- package/dist/logger.d.ts +7 -0
- package/dist/logger.js +84 -0
- package/dist/logger.js.map +1 -0
- package/dist/outbound-handlers.d.ts +51 -0
- package/dist/outbound-handlers.js +739 -0
- package/dist/outbound-handlers.js.map +1 -0
- package/dist/outbound-schemas.d.ts +238 -0
- package/dist/outbound-schemas.js +248 -0
- package/dist/outbound-schemas.js.map +1 -0
- package/dist/paths.d.ts +10 -0
- package/dist/paths.js +42 -0
- package/dist/paths.js.map +1 -0
- package/dist/plugin/agend/.claude-plugin/plugin.json +5 -0
- package/dist/quickstart.d.ts +1 -0
- package/dist/quickstart.js +595 -0
- package/dist/quickstart.js.map +1 -0
- package/dist/routing-engine.d.ts +22 -0
- package/dist/routing-engine.js +44 -0
- package/dist/routing-engine.js.map +1 -0
- package/dist/safe-async.d.ts +6 -0
- package/dist/safe-async.js +20 -0
- package/dist/safe-async.js.map +1 -0
- package/dist/scheduler/db.d.ts +37 -0
- package/dist/scheduler/db.js +360 -0
- package/dist/scheduler/db.js.map +1 -0
- package/dist/scheduler/db.test.d.ts +1 -0
- package/dist/scheduler/db.test.js +92 -0
- package/dist/scheduler/db.test.js.map +1 -0
- package/dist/scheduler/index.d.ts +4 -0
- package/dist/scheduler/index.js +4 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/scheduler.d.ts +44 -0
- package/dist/scheduler/scheduler.js +197 -0
- package/dist/scheduler/scheduler.js.map +1 -0
- package/dist/scheduler/scheduler.test.d.ts +1 -0
- package/dist/scheduler/scheduler.test.js +119 -0
- package/dist/scheduler/scheduler.test.js.map +1 -0
- package/dist/scheduler/types.d.ts +107 -0
- package/dist/scheduler/types.js +7 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/service-installer.d.ts +17 -0
- package/dist/service-installer.js +182 -0
- package/dist/service-installer.js.map +1 -0
- package/dist/setup-wizard.d.ts +48 -0
- package/dist/setup-wizard.js +701 -0
- package/dist/setup-wizard.js.map +1 -0
- package/dist/statusline-watcher.d.ts +34 -0
- package/dist/statusline-watcher.js +73 -0
- package/dist/statusline-watcher.js.map +1 -0
- package/dist/stt.d.ts +10 -0
- package/dist/stt.js +33 -0
- package/dist/stt.js.map +1 -0
- package/dist/tmux-control.d.ts +52 -0
- package/dist/tmux-control.js +207 -0
- package/dist/tmux-control.js.map +1 -0
- package/dist/tmux-manager.d.ts +44 -0
- package/dist/tmux-manager.js +218 -0
- package/dist/tmux-manager.js.map +1 -0
- package/dist/topic-archiver.d.ts +40 -0
- package/dist/topic-archiver.js +103 -0
- package/dist/topic-archiver.js.map +1 -0
- package/dist/topic-commands.d.ts +28 -0
- package/dist/topic-commands.js +359 -0
- package/dist/topic-commands.js.map +1 -0
- package/dist/transcript-monitor.d.ts +23 -0
- package/dist/transcript-monitor.js +164 -0
- package/dist/transcript-monitor.js.map +1 -0
- package/dist/types.d.ts +211 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/dashboard.html +719 -0
- package/dist/web-api.d.ts +101 -0
- package/dist/web-api.js +648 -0
- package/dist/web-api.js.map +1 -0
- package/dist/webhook-emitter.d.ts +15 -0
- package/dist/webhook-emitter.js +41 -0
- package/dist/webhook-emitter.js.map +1 -0
- package/dist/workflow-templates/default.md +35 -0
- package/package.json +76 -0
- package/templates/launchd.plist.ejs +31 -0
- package/templates/systemd.service.ejs +16 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import type { FleetConfig, InstanceConfig } from "./types.js";
|
|
2
|
+
import { type RouteTarget } from "./fleet-context.js";
|
|
3
|
+
import { EventLog } from "./event-log.js";
|
|
4
|
+
import { AdapterWorld } from "./adapter-world.js";
|
|
5
|
+
import { CostGuard } from "./cost-guard.js";
|
|
6
|
+
import { IpcClient } from "./channel/ipc-bridge.js";
|
|
7
|
+
import type { ChannelAdapter } from "./channel/types.js";
|
|
8
|
+
import { type Logger } from "./logger.js";
|
|
9
|
+
import { Scheduler } from "./scheduler/index.js";
|
|
10
|
+
import type { FleetContext } from "./fleet-context.js";
|
|
11
|
+
import { TmuxControlClient } from "./tmux-control.js";
|
|
12
|
+
import { RoutingEngine } from "./routing-engine.js";
|
|
13
|
+
import { InstanceLifecycle, type LifecycleContext } from "./instance-lifecycle.js";
|
|
14
|
+
import { type ArchiverContext } from "./topic-archiver.js";
|
|
15
|
+
import { type StatuslineWatcherContext } from "./statusline-watcher.js";
|
|
16
|
+
import { type OutboundContext } from "./outbound-handlers.js";
|
|
17
|
+
import { type AgentEndpointContext } from "./agent-endpoint.js";
|
|
18
|
+
import { ClassicChannelManager } from "./classic-channel-manager.js";
|
|
19
|
+
export declare function resolveReplyThreadId(argsThreadId: unknown, instanceConfig?: InstanceConfig): string | undefined;
|
|
20
|
+
export declare class FleetManager implements FleetContext, LifecycleContext, ArchiverContext, StatuslineWatcherContext, OutboundContext, AgentEndpointContext {
|
|
21
|
+
dataDir: string;
|
|
22
|
+
private children;
|
|
23
|
+
readonly lifecycle: InstanceLifecycle;
|
|
24
|
+
/** @deprecated Use lifecycle.daemons — kept for backward compat */
|
|
25
|
+
get daemons(): Map<string, import("./daemon.js").Daemon>;
|
|
26
|
+
fleetConfig: FleetConfig | null;
|
|
27
|
+
adapter: ChannelAdapter | null;
|
|
28
|
+
readonly worlds: Map<string, AdapterWorld>;
|
|
29
|
+
readonly adapters: Map<string, ChannelAdapter>;
|
|
30
|
+
/** Track which world each instance is bound to */
|
|
31
|
+
private instanceWorldBinding;
|
|
32
|
+
private accessManager;
|
|
33
|
+
/** Primary world (first adapter) — used for fleet-level notifications */
|
|
34
|
+
get primaryWorld(): AdapterWorld | undefined;
|
|
35
|
+
readonly routing: RoutingEngine;
|
|
36
|
+
get routingTable(): Map<string, RouteTarget>;
|
|
37
|
+
instanceIpcClients: Map<string, IpcClient>;
|
|
38
|
+
scheduler: Scheduler | null;
|
|
39
|
+
private configPath;
|
|
40
|
+
logger: Logger;
|
|
41
|
+
private topicCommands;
|
|
42
|
+
sessionRegistry: Map<string, string>;
|
|
43
|
+
eventLog: EventLog | null;
|
|
44
|
+
costGuard: CostGuard | null;
|
|
45
|
+
private statuslineWatcher;
|
|
46
|
+
private dailySummary;
|
|
47
|
+
private webhookEmitter;
|
|
48
|
+
private topicIcons;
|
|
49
|
+
private lastActivity;
|
|
50
|
+
private lastInboundUser;
|
|
51
|
+
private topicArchiver;
|
|
52
|
+
controlClient: TmuxControlClient | null;
|
|
53
|
+
classicChannels: ClassicChannelManager | null;
|
|
54
|
+
private failoverActive;
|
|
55
|
+
private healthServer;
|
|
56
|
+
private startedAt;
|
|
57
|
+
private mirrorBuffer;
|
|
58
|
+
private mirrorTimer;
|
|
59
|
+
private sseClients;
|
|
60
|
+
private webToken;
|
|
61
|
+
constructor(dataDir: string);
|
|
62
|
+
lastActivityMs(name: string): number;
|
|
63
|
+
webhookEmit(event: string, name: string, data?: Record<string, unknown>): void;
|
|
64
|
+
getSysInfo(): import("./fleet-context.js").SysInfo;
|
|
65
|
+
/** Load fleet.yaml and build routing table */
|
|
66
|
+
loadConfig(configPath: string): FleetConfig;
|
|
67
|
+
/** Build topic routing table: { topicId -> RouteTarget } */
|
|
68
|
+
buildRoutingTable(): Map<string, RouteTarget>;
|
|
69
|
+
/** Re-register classic channels after routing rebuild (rebuild clears the table) */
|
|
70
|
+
private reregisterClassicChannels;
|
|
71
|
+
getInstanceDir(name: string): string;
|
|
72
|
+
/** Get the adapter bound to an instance, falling back to primary adapter */
|
|
73
|
+
getAdapterForInstance(name: string): ChannelAdapter | null;
|
|
74
|
+
/** Get the world for an instance */
|
|
75
|
+
getWorldForInstance(name: string): AdapterWorld | undefined;
|
|
76
|
+
/** Get channel config for a specific adapter (by id), falling back to primary */
|
|
77
|
+
getChannelConfig(adapterId?: string): import("./types.js").ChannelConfig | undefined;
|
|
78
|
+
/** Get the group_id for an instance's bound adapter */
|
|
79
|
+
getGroupIdForInstance(name: string): string;
|
|
80
|
+
/** Bind an instance to a specific world. fromInbound=true skips general_topic to prevent overwrite. */
|
|
81
|
+
bindInstanceAdapter(name: string, adapterId: string, fromInbound?: boolean): void;
|
|
82
|
+
getInstanceStatus(name: string): "running" | "stopped" | "crashed";
|
|
83
|
+
startInstance(name: string, config: InstanceConfig, topicMode: boolean): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Start instances with configurable concurrency and stagger delay.
|
|
86
|
+
* Instances sharing the same working_directory are serialized within a group
|
|
87
|
+
* to avoid config file races. Stagger delay is group-to-group, not instance-to-instance.
|
|
88
|
+
* TODO: per-instance startup timeout (existing issue, not introduced here)
|
|
89
|
+
*/
|
|
90
|
+
private startInstancesWithConcurrency;
|
|
91
|
+
stopInstance(name: string): Promise<void>;
|
|
92
|
+
/** Restart a single instance, reloading fleet.yaml first to pick up config changes. */
|
|
93
|
+
restartSingleInstance(name: string): Promise<void>;
|
|
94
|
+
/** Load .env file from data dir into process.env */
|
|
95
|
+
private loadEnvFile;
|
|
96
|
+
/** Start all instances from fleet config */
|
|
97
|
+
startAll(configPath: string): Promise<void>;
|
|
98
|
+
/** Start the shared channel adapter(s) for topic mode */
|
|
99
|
+
private startSharedAdapter;
|
|
100
|
+
/** Start the primary adapter (backward-compatible, sets this.adapter) */
|
|
101
|
+
private startSingleAdapter;
|
|
102
|
+
/** Start an additional (non-primary) adapter */
|
|
103
|
+
private startAdditionalAdapter;
|
|
104
|
+
/** Connect IPC to a single instance with all handlers */
|
|
105
|
+
connectIpcToInstance(name: string): Promise<void>;
|
|
106
|
+
/** Handle inbound message — transcribe voice if present, then route */
|
|
107
|
+
private findGeneralInstance;
|
|
108
|
+
private handleInboundMessage;
|
|
109
|
+
/** Handle outbound tool calls from a daemon instance */
|
|
110
|
+
/** Warn (but don't block) when rate limits are high. 30-min debounce per instance. */
|
|
111
|
+
private rateLimitWarnedAt;
|
|
112
|
+
private warnIfRateLimited;
|
|
113
|
+
/** Handle outbound tool calls from a daemon instance */
|
|
114
|
+
private handleOutboundFromInstance;
|
|
115
|
+
/** Handle tool status update from a daemon instance */
|
|
116
|
+
private handleToolStatusFromInstance;
|
|
117
|
+
private handleScheduleTrigger;
|
|
118
|
+
private notifySourceTopic;
|
|
119
|
+
private notifyScheduleFailure;
|
|
120
|
+
private handleScheduleCrud;
|
|
121
|
+
private handleDecisionCrud;
|
|
122
|
+
/** Resolve display name for an instance, fallback to instance name. */
|
|
123
|
+
resolveDisplayName(instanceName: string): string;
|
|
124
|
+
private handleSetDisplayName;
|
|
125
|
+
private handleSetDescription;
|
|
126
|
+
handleScheduleCrudHttp(instance: string, op: string, args: Record<string, unknown>): Promise<unknown>;
|
|
127
|
+
handleDecisionCrudHttp(instance: string, op: string, args: Record<string, unknown>): Promise<unknown>;
|
|
128
|
+
handleTaskCrudHttp(instance: string, args: Record<string, unknown>): Promise<unknown>;
|
|
129
|
+
handleSetDisplayNameHttp(instance: string, name: string): Promise<unknown>;
|
|
130
|
+
handleSetDescriptionHttp(instance: string, description: string): Promise<unknown>;
|
|
131
|
+
private summarizeToolCall;
|
|
132
|
+
private handleTaskCrud;
|
|
133
|
+
/** Create a forum topic via the adapter. Returns the message_thread_id. */
|
|
134
|
+
createForumTopic(topicName: string, adapterId?: string): Promise<number | string>;
|
|
135
|
+
deleteForumTopic(topicId: number | string): Promise<void>;
|
|
136
|
+
private topicCleanupTimer;
|
|
137
|
+
private sessionPruneTimer;
|
|
138
|
+
private classicReloadTimer;
|
|
139
|
+
private botUserId;
|
|
140
|
+
/** Periodically check if bound topics still exist */
|
|
141
|
+
private startTopicCleanupPoller;
|
|
142
|
+
/** Save fleet config back to fleet.yaml */
|
|
143
|
+
saveFleetConfig(): void;
|
|
144
|
+
removeInstance(name: string): Promise<void>;
|
|
145
|
+
startStatuslineWatcher(name: string): void;
|
|
146
|
+
reactMessageStatus(chatId: string, messageId: string, emoji: string): void;
|
|
147
|
+
private static FAILOVER_TRIGGER_PCT;
|
|
148
|
+
private static FAILOVER_RECOVER_PCT;
|
|
149
|
+
checkModelFailover(name: string, fiveHourPct: number): void;
|
|
150
|
+
notifyInstanceTopic(instanceName: string, text: string): void;
|
|
151
|
+
queueMirrorMessage(text: string): void;
|
|
152
|
+
/** Push an SSE event to all connected Web UI clients. */
|
|
153
|
+
emitSseEvent(event: string, data: unknown): void;
|
|
154
|
+
listClaimedTasks(assignee: string): Array<{
|
|
155
|
+
id: string;
|
|
156
|
+
title: string;
|
|
157
|
+
}>;
|
|
158
|
+
sendHangNotification(instanceName: string): Promise<void>;
|
|
159
|
+
private static INSTRUCTIONS_FILENAME;
|
|
160
|
+
private static GENERAL_INSTRUCTIONS;
|
|
161
|
+
/** Ensure the general instance has its project instructions file + knowledge */
|
|
162
|
+
private ensureGeneralInstructions;
|
|
163
|
+
/** Copy src/general-knowledge/*.md to the general instance's steering dir */
|
|
164
|
+
private syncGeneralKnowledge;
|
|
165
|
+
/** Fetch forum topic icon stickers and pick emoji IDs for each state */
|
|
166
|
+
private resolveTopicIcons;
|
|
167
|
+
/** Set topic icon based on instance state */
|
|
168
|
+
setTopicIcon(instanceName: string, state: "green" | "blue" | "red" | "remove"): void;
|
|
169
|
+
/** Track activity timestamp for idle detection */
|
|
170
|
+
touchActivity(instanceName: string): void;
|
|
171
|
+
/** Start periodic idle archive checker */
|
|
172
|
+
private clearStatuslineWatchers;
|
|
173
|
+
/** Handle a message in a classic channel: log it, forward only /chat messages */
|
|
174
|
+
private handleClassicChannelMessage;
|
|
175
|
+
/** Download photo or document attachment to classic instance workspace inbox. Returns { path, kind } or undefined. */
|
|
176
|
+
private saveClassicAttachment;
|
|
177
|
+
/** Forward a message to a classic channel instance with chat log context */
|
|
178
|
+
private forwardToClassicInstance;
|
|
179
|
+
/** Paste raw text directly to a classic instance's CLI (no [user:] wrapping) */
|
|
180
|
+
private pasteRawToClassicInstance;
|
|
181
|
+
/** Read recent chat log (last ~50 lines) for agent context */
|
|
182
|
+
private getRecentChatLog;
|
|
183
|
+
/** Start a classic channel instance with lightweight config */
|
|
184
|
+
private startClassicInstance;
|
|
185
|
+
/** Handle /start slash command — register classic channel */
|
|
186
|
+
handleClassicStart(channelId: string, channelName: string, userId: string, guildId?: string): Promise<string>;
|
|
187
|
+
/** Handle /stop slash command — unregister classic channel */
|
|
188
|
+
handleClassicStop(channelId: string): Promise<string>;
|
|
189
|
+
stopAll(): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Prune stale external sessions by re-querying each daemon for live sessions.
|
|
192
|
+
* Sessions in the registry that are no longer reported by any daemon are removed.
|
|
193
|
+
*/
|
|
194
|
+
pruneStaleExternalSessions(): Promise<number>;
|
|
195
|
+
/**
|
|
196
|
+
* Graceful shutdown for full reload: wait for idle, notify, then stop everything.
|
|
197
|
+
* The caller is expected to exit the process after this resolves.
|
|
198
|
+
*/
|
|
199
|
+
gracefulShutdownForReload(): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Graceful restart: wait for all instances to be idle, then stop and start them.
|
|
202
|
+
*/
|
|
203
|
+
/**
|
|
204
|
+
* Hot-reload: re-read fleet.yaml and reconcile running instances.
|
|
205
|
+
* Starts new, stops removed, restarts modified instances.
|
|
206
|
+
* Fleet-level config (access, cost_guard, etc.) requires /restart to take effect.
|
|
207
|
+
*/
|
|
208
|
+
private reconcileInstances;
|
|
209
|
+
restartInstances(): Promise<void>;
|
|
210
|
+
private startHealthServer;
|
|
211
|
+
getUiStatus(): unknown;
|
|
212
|
+
}
|