Files
paseo/packages/plugin/src/client/index.ts
T
Mohamed Boudra b10647cae3 feat(plugins): let a plugin put the cursor in any agent's composer
A pill could insert text but left the cursor elsewhere, so the user had
to click the composer before typing. Plugins can address any agent's
composer, and an author cannot know where the user is, so focus() owns
revealing the agent as well as focusing it.

A running agent's composer holds one pending request and navigates to
the agent, completing when an input that can take the keyboard attaches.
Drafts and the New workspace composer have nothing to navigate to and
must not pull the user back, so they reject when off screen.
2026-11-09 15:39:46 +01:00

136 lines
4.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export type {
PluginHostProps,
PluginTab,
PluginPanelProps,
PluginWorkspacePanelParams,
PluginAgentPanelParams,
PluginFilePanelParams,
PluginAgentPanelContribution,
PluginFilePanelContribution,
PluginFilePanelProps,
PluginSurfaceProps,
PluginScreenProps,
PluginPopoverProps,
PluginScreenParams,
PluginOpenScreenInput,
PluginScreenLocation,
PluginSidebarItemProps,
PluginSidebarViewProps,
PluginSidebarViewContribution,
PluginSidebarItemContribution,
PluginIcon,
PluginPanelLocation,
PluginOpenPanelOptions,
PluginWorkspacePanelProps,
PluginAgentPanelProps,
PluginClientOpenPanelOptions,
PluginClientContext,
PluginClientContribution,
PluginWorkspacePanelContribution,
PluginSettingsScreenContribution,
PluginSurfaceContribution,
PluginScreenContribution,
PluginScreenTitle,
PluginSidebarContribution,
PluginTimelineTransformerContribution,
PluginTimelineItemProps,
PluginTimelineRendererContribution,
PluginCommandCapabilities,
PluginGlobalCommandContext,
PluginWorkspaceCommandContext,
PluginAgentCommandContext,
PluginCommandCenterItemContribution,
PluginClientSlashCommandContribution,
SettingsState,
} from "./contracts.js";
export type {
PluginButton,
PluginButtonBehavior,
PluginButtonContentProps,
PluginButtonContext,
PluginButtonIcon,
PluginButtonIconProps,
PluginButtonMenuEntry,
PluginButtonRegistration,
PluginComposerPillContribution,
PluginHeaderButtonContribution,
} from "./buttons.js";
export type { PluginIconProps, PluginSerializableIcon, PluginSvgIcon } from "../icons.js";
export type {
PluginFile,
PluginFileBytesState,
PluginFileEvent,
PluginFileTextState,
PluginFileUrlState,
PluginFileWriteOptions,
} from "./file.js";
export {
PluginFileConflictError,
PluginFileDeletedError,
useFileBytes,
useFileText,
useFileUrl,
} from "./file.js";
export { usePaseo } from "./paseo-context.js";
export {
useAgent,
useWorkspace,
useProject,
useTerminal,
useWorkspaces,
useAgents,
useProjects,
useTerminals,
} from "./client-state.js";
export { useComposer, useComposers } from "./composer.js";
export type {
PluginComposer,
PluginComposerAttachment,
PluginComposerFocusOptions,
PluginComposerItemContribution,
PluginComposerItemProps,
PluginComposerSelector,
} from "./composer.js";
export { useNewWorkspace } from "./new-workspace.js";
export type {
PluginNewWorkspace,
PluginNewWorkspaceItemContribution,
PluginNewWorkspaceItemProps,
} from "./new-workspace.js";
export { useRpc, useSubscription, type PluginSubscriptionState } from "./rpc-context.js";
export type {
PluginSubscribeOptions,
PluginSubscriptionClosed,
PluginSubscriptionHandle,
} from "../rpc.js";
import type { SettingsDefinition } from "../settings.js";
import type { SettingsState } from "./contracts.js";
import type { ZodType } from "zod";
export declare function useSettings<Schema extends ZodType>(
definition: SettingsDefinition<Schema>,
): SettingsState<Schema>;
/** Configured app host, including hosts that are currently disconnected. */
export interface PluginHostSummary {
readonly serverId: string;
readonly label: string;
readonly status: "idle" | "connecting" | "online" | "offline" | "error";
}
/** Live configured hosts. Supplied by the app's client bundle loader. */
export declare function useHosts(): readonly PluginHostSummary[];
/** Borrow an online host's API under this installation's lifetime. */
export declare function getPaseoClient(serverId: string): import("@getpaseo/client").PaseoApi;
/** Open an absolute HTTP(S) URL using the client platform’s external opener. */
export declare function openExternalUrl(url: string): Promise<void>;
export { defineTranslations, useTranslation } from "./translations.js";
export type { PluginI18n } from "./translations.js";
export type { PluginText, PluginMessage, PluginTranslations } from "../text.js";
export { useTabState } from "./tab.js";
export type { WorkspaceRef, AgentRef, ProjectRef, TerminalRef } from "../refs.js";
export type { Query, Group, GroupKey } from "./query.js";
export type { PluginPaseoApi, PluginProjectHandle, PluginTerminalHandle } from "./reference-api.js";