import * as React from 'react'; import type { CommandRegistry } from '@lumino/commands'; import type { TranslationBundle } from '@jupyterlab/translation'; import { ReactWidget } from '@jupyterlab/ui-components'; import type { Widget } from '@lumino/widgets'; import type { IAgentSessions } from '../agentSessions'; import type { IAgent } from './agents'; import type { IEditor } from './editors'; /** * Public construction options for the launcher dashboard widget. The * plugin supplies an `onAgentLaunch` callback that performs the same * shell placement the stock JupyterLab launcher does (swap the launcher * tab for the freshly created terminal). Keeping it as an opaque * callback means the widget itself does not import `app.shell`. */ interface ILauncherDashboardOptions { commands: CommandRegistry; /** * The agent list to render. Already filtered by availability + sorted by * rank; the widget renders them as-is. */ agents: IAgent[]; /** * The terminal editor to offer in the "Open" section (Neovim preferred over * Vim), or `null` when neither is installed. Resolved by the plugin from the * same availability probe that filters the agents. */ editor: IEditor | null; /** * Shared launch-tag registry. When the editor tile launches, it records the * session here so the terminals panel badges it with the editor's logo right * away, the same as agent launches do. `null` when the provider plugin is * unavailable. */ agentSessions: IAgentSessions | null; /** * Called after an agent command has returned its top-level widget. The * plugin uses this to swap the new terminal into the launcher's tab. */ onAgentLaunch: (item: Widget) => void; /** * The git server-relative repo path used by the changes section. Empty * string means "use the JupyterLab server's root and let git resolve the * enclosing repo" — same convention as the git panel. */ repoPath: string; /** * The cwd forwarded to `terminal:create-new` when an agent is launched. * Empty string lets the terminal extension default to the server root. */ cwd: string; /** * The translation bundle used to localize the dashboard's user-facing * strings. */ trans: TranslationBundle; } /** * Lumino host for the React-based launcher dashboard. Mirrors the * `ReactWidget` pattern used by the git panel so the rest of the plugin * (layout placement, signals, lifecycle) stays consistent. */ export declare class LauncherDashboard extends ReactWidget { constructor(options: ILauncherDashboardOptions); protected render(): React.ReactElement; private _options; } export {};