/** * App Manager — manages app lifecycle: discover, install plugin, show viewer. * * Apps are hosted services. The manager's job is: * 1. List/search apps from the registry * 2. Install the game's plugin onto the agent (triggers restart) * 3. Return the viewer URL so the UI can embed the game client in an iframe * * @module services/app-manager */ import type { IAgentRuntime } from "@elizaos/core"; import type { AppLaunchResult, AppStopResult, InstalledAppInfo } from "../contracts/apps"; import type { InstallProgressLike, PluginManagerLike, RegistryPluginInfo, RegistrySearchResult } from "./plugin-manager-types"; export type { AppLaunchResult, AppStopResult, AppViewerAuthMessage, InstalledAppInfo, } from "../contracts/apps"; export declare class AppManager { private readonly activeSessions; listAvailable(pluginManager: PluginManagerLike): Promise; search(pluginManager: PluginManagerLike, query: string, limit?: number): Promise; getInfo(pluginManager: PluginManagerLike, name: string): Promise; /** * Launch an app: install its plugin (if needed) and return the viewer URL. * * The plugin connects the agent to the game server. The viewer URL is what * the UI shows in an iframe so the user can watch the agent play. * * After installing a new plugin, the agent needs to restart. The UI should * handle this by showing "connecting..." while the runtime restarts. */ launch(pluginManager: PluginManagerLike, name: string, onProgress?: (progress: InstallProgressLike) => void, runtime?: IAgentRuntime | null): Promise; stop(pluginManager: PluginManagerLike, name: string): Promise; /** List apps whose plugins are currently installed on the agent. */ listInstalled(pluginManager: PluginManagerLike): Promise; } //# sourceMappingURL=app-manager.d.ts.map