import { z } from "zod"; /** * Permissive validator for JSON Schema objects. Accepts any `Record` * that contains at least a `type`, `$ref`, or composition keyword (`oneOf`/`anyOf`/`allOf`). * Empty objects are also accepted. * * Used to validate `instanceConfigSchema` and `parametersSchema` fields in the * plugin manifest without fully parsing JSON Schema. * * @see PLUGIN_SPEC.md §10.1 — Manifest shape */ export declare const jsonSchemaSchema: z.ZodRecord; export declare const pluginJobDeclarationSchema: z.ZodObject<{ jobKey: z.ZodString; displayName: z.ZodString; description: z.ZodOptional; schedule: z.ZodOptional; }, z.core.$strip>; export type PluginJobDeclarationInput = z.infer; /** * Validates a {@link PluginWebhookDeclaration} — a webhook endpoint declared * in the plugin manifest. Requires `endpointKey` and `displayName`. * * @see PLUGIN_SPEC.md §18 — Webhooks */ export declare const pluginWebhookDeclarationSchema: z.ZodObject<{ endpointKey: z.ZodString; displayName: z.ZodString; description: z.ZodOptional; }, z.core.$strip>; export type PluginWebhookDeclarationInput = z.infer; /** * Validates a {@link PluginToolDeclaration} — an agent tool contributed by the * plugin. Requires `name`, `displayName`, `description`, and a valid * `parametersSchema`. Requires the `agent.tools.register` capability. * * @see PLUGIN_SPEC.md §11 — Agent Tools */ export declare const pluginToolDeclarationSchema: z.ZodObject<{ name: z.ZodString; displayName: z.ZodString; description: z.ZodString; parametersSchema: z.ZodRecord; }, z.core.$strip>; export declare const pluginEnvironmentTemplateConfigBindingSchema: z.ZodObject<{ field: z.ZodString; unsetFields: z.ZodOptional>; }, z.core.$strict>; export declare const sandboxProviderCapabilitiesSchema: z.ZodObject<{ reusableLeases: z.ZodOptional; nativeSyncIn: z.ZodOptional; nativeSyncOut: z.ZodOptional; persistentProcessSessions: z.ZodOptional; independentControlCommands: z.ZodOptional; incrementalSessionOutput: z.ZodOptional; concurrentSyncOperations: z.ZodOptional; duplexCommandStream: z.ZodOptional; runnerWebSocketIngress: z.ZodOptional; }, z.core.$strict>; export type SandboxProviderCapabilitiesInput = z.infer; export declare const pluginEnvironmentDriverDeclarationSchema: z.ZodPipe>; displayName: z.ZodString; description: z.ZodOptional; defaultAcquireTimeoutMs: z.ZodOptional; supportsReusableLeases: z.ZodOptional; sandboxCapabilities: z.ZodOptional; nativeSyncIn: z.ZodOptional; nativeSyncOut: z.ZodOptional; persistentProcessSessions: z.ZodOptional; independentControlCommands: z.ZodOptional; incrementalSessionOutput: z.ZodOptional; concurrentSyncOperations: z.ZodOptional; duplexCommandStream: z.ZodOptional; runnerWebSocketIngress: z.ZodOptional; }, z.core.$strict>>; supportsInteractiveSetup: z.ZodOptional; interactiveSetupConnectionTypes: z.ZodOptional>; supportsTemplateCapture: z.ZodOptional; templateRefKind: z.ZodOptional; templateConfigBinding: z.ZodOptional>; }, z.core.$strict>>; templateIdentityPaths: z.ZodOptional>; supportsTemplateDelete: z.ZodOptional; supportsLoginPty: z.ZodOptional; supportsSetupTokenLogin: z.ZodOptional; configSchema: z.ZodRecord; }, z.core.$strict>, z.ZodTransform<{ driverKey: string; kind?: "environment_driver" | "sandbox_provider" | undefined; displayName: string; description?: string | undefined; defaultAcquireTimeoutMs?: number | undefined; supportsReusableLeases?: boolean | undefined; sandboxCapabilities?: { reusableLeases?: boolean | undefined; nativeSyncIn?: boolean | undefined; nativeSyncOut?: boolean | undefined; persistentProcessSessions?: boolean | undefined; independentControlCommands?: boolean | undefined; incrementalSessionOutput?: boolean | undefined; concurrentSyncOperations?: boolean | undefined; duplexCommandStream?: boolean | undefined; runnerWebSocketIngress?: boolean | undefined; } | undefined; supportsInteractiveSetup?: boolean | undefined; interactiveSetupConnectionTypes?: string[] | undefined; supportsTemplateCapture?: boolean | undefined; templateRefKind?: string | undefined; templateConfigBinding?: { field: string; unsetFields?: string[] | undefined; } | undefined; templateIdentityPaths?: string[] | undefined; supportsTemplateDelete?: boolean | undefined; configSchema: Record; supportsLoginPty: boolean | undefined; }, { driverKey: string; kind?: "environment_driver" | "sandbox_provider" | undefined; displayName: string; description?: string | undefined; defaultAcquireTimeoutMs?: number | undefined; supportsReusableLeases?: boolean | undefined; sandboxCapabilities?: { reusableLeases?: boolean | undefined; nativeSyncIn?: boolean | undefined; nativeSyncOut?: boolean | undefined; persistentProcessSessions?: boolean | undefined; independentControlCommands?: boolean | undefined; incrementalSessionOutput?: boolean | undefined; concurrentSyncOperations?: boolean | undefined; duplexCommandStream?: boolean | undefined; runnerWebSocketIngress?: boolean | undefined; } | undefined; supportsInteractiveSetup?: boolean | undefined; interactiveSetupConnectionTypes?: string[] | undefined; supportsTemplateCapture?: boolean | undefined; templateRefKind?: string | undefined; templateConfigBinding?: { field: string; unsetFields?: string[] | undefined; } | undefined; templateIdentityPaths?: string[] | undefined; supportsTemplateDelete?: boolean | undefined; supportsLoginPty?: boolean | undefined; supportsSetupTokenLogin?: boolean | undefined; configSchema: Record; }>>; export type PluginEnvironmentDriverDeclarationInput = z.infer; export type PluginToolDeclarationInput = z.infer; export declare const pluginManagedAgentDeclarationSchema: z.ZodObject<{ agentKey: z.ZodString; displayName: z.ZodString; role: z.ZodOptional; title: z.ZodOptional>; icon: z.ZodOptional>; capabilities: z.ZodOptional>; adapterType: z.ZodOptional; adapterPreference: z.ZodOptional>; adapterConfig: z.ZodOptional>; runtimeConfig: z.ZodOptional>; permissions: z.ZodOptional>; status: z.ZodOptional>; budgetMonthlyCents: z.ZodOptional; instructions: z.ZodOptional; content: z.ZodOptional; files: z.ZodOptional>; assetPath: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type PluginManagedAgentDeclarationInput = z.infer; export declare const pluginManagedProjectDeclarationSchema: z.ZodObject<{ projectKey: z.ZodString; displayName: z.ZodString; description: z.ZodOptional>; status: z.ZodOptional>; color: z.ZodOptional>; settings: z.ZodOptional>; }, z.core.$strip>; export type PluginManagedProjectDeclarationInput = z.infer; export declare const pluginManagedRoutineDeclarationSchema: z.ZodObject<{ routineKey: z.ZodString; title: z.ZodString; description: z.ZodOptional>; assigneeRef: z.ZodOptional; resourceKey: z.ZodString; resourceKind: z.ZodLiteral<"agent">; }, z.core.$strip>>>; projectRef: z.ZodOptional; resourceKey: z.ZodString; resourceKind: z.ZodLiteral<"project">; }, z.core.$strip>>>; goalId: z.ZodOptional>; status: z.ZodOptional>; priority: z.ZodOptional>; concurrencyPolicy: z.ZodOptional>; catchUpPolicy: z.ZodOptional>; activityGatePolicy: z.ZodOptional>; activityGateScope: z.ZodOptional>; variables: z.ZodOptional>; type: z.ZodDefault>>; defaultValue: z.ZodNullable>>; required: z.ZodDefault>; options: z.ZodDefault>>; }, z.core.$strip>>>; triggers: z.ZodOptional; label: z.ZodOptional>; enabled: z.ZodOptional; cronExpression: z.ZodNullable>; timezone: z.ZodNullable>; signingMode: z.ZodNullable>>; replayWindowSec: z.ZodNullable>; }, z.core.$strip>>>; issueTemplate: z.ZodOptional>; originId: z.ZodOptional>; billingCode: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export type PluginManagedRoutineDeclarationInput = z.infer; export declare const pluginLocalFolderDeclarationSchema: z.ZodObject<{ folderKey: z.ZodString; displayName: z.ZodString; description: z.ZodOptional; access: z.ZodOptional>; requiredDirectories: z.ZodOptional>; requiredFiles: z.ZodOptional>; }, z.core.$strip>; export type PluginLocalFolderDeclarationInput = z.infer; export declare const pluginManagedSkillFileDeclarationSchema: z.ZodObject<{ path: z.ZodString; content: z.ZodString; }, z.core.$strip>; export type PluginManagedSkillFileDeclarationInput = z.infer; export declare const pluginManagedSkillDeclarationSchema: z.ZodObject<{ skillKey: z.ZodString; displayName: z.ZodString; slug: z.ZodOptional; description: z.ZodOptional>; markdown: z.ZodOptional; files: z.ZodOptional>>; }, z.core.$strip>; export type PluginManagedSkillDeclarationInput = z.infer; /** * Validates a {@link PluginUiSlotDeclaration} — a UI extension slot the plugin * fills with a React component. Includes `superRefine` checks for slot-specific * requirements such as `entityTypes` for context-sensitive slots. * * @see PLUGIN_SPEC.md §19 — UI Extension Model */ export declare const pluginUiSlotDeclarationSchema: z.ZodObject<{ type: z.ZodEnum<{ appShellOverlay: "appShellOverlay"; commentAnnotation: "commentAnnotation"; commentContextMenuItem: "commentContextMenuItem"; companySettingsPage: "companySettingsPage"; contextMenuItem: "contextMenuItem"; dashboardWidget: "dashboardWidget"; detailTab: "detailTab"; globalToolbarButton: "globalToolbarButton"; organizationSwitcher: "organizationSwitcher"; page: "page"; projectSidebarItem: "projectSidebarItem"; routeSidebar: "routeSidebar"; settingsPage: "settingsPage"; sidebar: "sidebar"; sidebarPanel: "sidebarPanel"; taskDetailView: "taskDetailView"; toolbarButton: "toolbarButton"; }>; id: z.ZodString; displayName: z.ZodString; exportName: z.ZodString; entityTypes: z.ZodOptional>>; routePath: z.ZodOptional; order: z.ZodOptional; }, z.core.$strip>; export type PluginUiSlotDeclarationInput = z.infer; /** * Validates the action payload for a declarative plugin launcher. */ export declare const pluginLauncherActionDeclarationSchema: z.ZodObject<{ type: z.ZodEnum<{ deepLink: "deepLink"; navigate: "navigate"; openDrawer: "openDrawer"; openModal: "openModal"; openPopover: "openPopover"; performAction: "performAction"; }>; target: z.ZodString; params: z.ZodOptional>; }, z.core.$strip>; export type PluginLauncherActionDeclarationInput = z.infer; /** * Validates optional render hints for a plugin launcher destination. */ export declare const pluginLauncherRenderDeclarationSchema: z.ZodObject<{ environment: z.ZodEnum<{ external: "external"; hostInline: "hostInline"; hostOverlay: "hostOverlay"; hostRoute: "hostRoute"; iframe: "iframe"; }>; bounds: z.ZodOptional>; }, z.core.$strip>; export type PluginLauncherRenderDeclarationInput = z.infer; /** * Validates declarative launcher metadata in a plugin manifest. */ export declare const pluginLauncherDeclarationSchema: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; description: z.ZodOptional; placementZone: z.ZodEnum<{ commentAnnotation: "commentAnnotation"; commentContextMenuItem: "commentContextMenuItem"; contextMenuItem: "contextMenuItem"; dashboardWidget: "dashboardWidget"; detailTab: "detailTab"; globalToolbarButton: "globalToolbarButton"; page: "page"; projectSidebarItem: "projectSidebarItem"; settingsPage: "settingsPage"; sidebar: "sidebar"; sidebarPanel: "sidebarPanel"; taskDetailView: "taskDetailView"; toolbarButton: "toolbarButton"; }>; exportName: z.ZodOptional; entityTypes: z.ZodOptional>>; order: z.ZodOptional; action: z.ZodObject<{ type: z.ZodEnum<{ deepLink: "deepLink"; navigate: "navigate"; openDrawer: "openDrawer"; openModal: "openModal"; openPopover: "openPopover"; performAction: "performAction"; }>; target: z.ZodString; params: z.ZodOptional>; }, z.core.$strip>; render: z.ZodOptional; bounds: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export type PluginLauncherDeclarationInput = z.infer; export declare const pluginDatabaseDeclarationSchema: z.ZodObject<{ namespaceSlug: z.ZodOptional; migrationsDir: z.ZodString; coreReadTables: z.ZodOptional>>; }, z.core.$strip>; export type PluginDatabaseDeclarationInput = z.infer; export declare const pluginApiRouteDeclarationSchema: z.ZodObject<{ routeKey: z.ZodString; method: z.ZodEnum<{ DELETE: "DELETE"; GET: "GET"; PATCH: "PATCH"; POST: "POST"; }>; path: z.ZodString; auth: z.ZodEnum<{ agent: "agent"; board: "board"; "board-or-agent": "board-or-agent"; webhook: "webhook"; }>; capability: z.ZodLiteral<"api.routes.register">; checkoutPolicy: z.ZodOptional>; companyResolution: z.ZodOptional; key: z.ZodString; }, z.core.$strip>, z.ZodObject<{ from: z.ZodLiteral<"query">; key: z.ZodString; }, z.core.$strip>, z.ZodObject<{ from: z.ZodLiteral<"issue">; param: z.ZodString; }, z.core.$strip>], "from">>; }, z.core.$strip>; export type PluginApiRouteDeclarationInput = z.infer; export declare const pluginObjectReferenceRefreshPolicySchema: z.ZodObject<{ defaultTtlSeconds: z.ZodOptional; staleAfterSeconds: z.ZodOptional; }, z.core.$strip>; export declare const pluginObjectReferenceProviderDeclarationSchema: z.ZodObject<{ providerKey: z.ZodString; displayName: z.ZodString; objectTypes: z.ZodArray; urlPatterns: z.ZodOptional>; refreshPolicy: z.ZodOptional; staleAfterSeconds: z.ZodOptional; }, z.core.$strip>>; webhookEndpointKeys: z.ZodOptional>; }, z.core.$strip>; export type PluginObjectReferenceProviderDeclarationInput = z.infer; /** * Zod schema for {@link PaperclipPluginManifestV1} — the complete runtime * validator for plugin manifests read at install time. * * Field-level constraints (see PLUGIN_SPEC.md §10.1 for the normative rules): * * | Field | Type | Constraints | * |--------------------------|------------|----------------------------------------------| * | `id` | string | `^[a-z0-9][a-z0-9._-]*$` | * | `apiVersion` | literal 1 | must equal `PLUGIN_API_VERSION` | * | `version` | string | semver (`\d+\.\d+\.\d+`) | * | `displayName` | string | 1–100 chars | * | `description` | string | 1–500 chars | * | `author` | string | 1–200 chars | * | `categories` | enum[] | at least one; values from PLUGIN_CATEGORIES | * | `minimumHostVersion` | string? | semver lower bound if present, no leading `v`| * | `minimumPaperclipVersion`| string? | legacy alias of `minimumHostVersion` | * | `capabilities` | enum[] | at least one; values from PLUGIN_CAPABILITIES| * | `entrypoints.worker` | string | min 1 char | * | `entrypoints.ui` | string? | required when `ui.slots` is declared | * * Cross-field rules enforced via `superRefine`: * - `entrypoints.ui` required when `ui.slots` declared * - `agent.tools.register` capability required when `tools` declared * - `environment.drivers.register` capability required when `environmentDrivers` declared * - `jobs.schedule` capability required when `jobs` declared * - `webhooks.receive` capability required when `webhooks` declared * - duplicate `jobs[].jobKey` values are rejected * - duplicate `webhooks[].endpointKey` values are rejected * - duplicate `tools[].name` values are rejected * - duplicate `environmentDrivers[].driverKey` values are rejected * - duplicate `ui.slots[].id` values are rejected * * @see PLUGIN_SPEC.md §10.1 — Manifest shape * @see {@link PaperclipPluginManifestV1} — the inferred TypeScript type */ export declare const pluginManifestV1Schema: z.ZodObject<{ id: z.ZodString; apiVersion: z.ZodLiteral<1>; version: z.ZodString; displayName: z.ZodString; description: z.ZodString; author: z.ZodString; categories: z.ZodArray>; minimumHostVersion: z.ZodOptional; minimumPaperclipVersion: z.ZodOptional; capabilities: z.ZodArray>; agentLifecycle: z.ZodOptional>; aiConnectionRouter: z.ZodOptional>; entrypoints: z.ZodObject<{ worker: z.ZodString; ui: z.ZodOptional; }, z.core.$strip>; instanceConfigSchema: z.ZodOptional>; jobs: z.ZodOptional; schedule: z.ZodOptional; }, z.core.$strip>>>; webhooks: z.ZodOptional; }, z.core.$strip>>>; tools: z.ZodOptional; }, z.core.$strip>>>; database: z.ZodOptional; migrationsDir: z.ZodString; coreReadTables: z.ZodOptional>>; }, z.core.$strip>>; apiRoutes: z.ZodOptional; path: z.ZodString; auth: z.ZodEnum<{ agent: "agent"; board: "board"; "board-or-agent": "board-or-agent"; webhook: "webhook"; }>; capability: z.ZodLiteral<"api.routes.register">; checkoutPolicy: z.ZodOptional>; companyResolution: z.ZodOptional; key: z.ZodString; }, z.core.$strip>, z.ZodObject<{ from: z.ZodLiteral<"query">; key: z.ZodString; }, z.core.$strip>, z.ZodObject<{ from: z.ZodLiteral<"issue">; param: z.ZodString; }, z.core.$strip>], "from">>; }, z.core.$strip>>>; environmentDrivers: z.ZodOptional>; displayName: z.ZodString; description: z.ZodOptional; defaultAcquireTimeoutMs: z.ZodOptional; supportsReusableLeases: z.ZodOptional; sandboxCapabilities: z.ZodOptional; nativeSyncIn: z.ZodOptional; nativeSyncOut: z.ZodOptional; persistentProcessSessions: z.ZodOptional; independentControlCommands: z.ZodOptional; incrementalSessionOutput: z.ZodOptional; concurrentSyncOperations: z.ZodOptional; duplexCommandStream: z.ZodOptional; runnerWebSocketIngress: z.ZodOptional; }, z.core.$strict>>; supportsInteractiveSetup: z.ZodOptional; interactiveSetupConnectionTypes: z.ZodOptional>; supportsTemplateCapture: z.ZodOptional; templateRefKind: z.ZodOptional; templateConfigBinding: z.ZodOptional>; }, z.core.$strict>>; templateIdentityPaths: z.ZodOptional>; supportsTemplateDelete: z.ZodOptional; supportsLoginPty: z.ZodOptional; supportsSetupTokenLogin: z.ZodOptional; configSchema: z.ZodRecord; }, z.core.$strict>, z.ZodTransform<{ driverKey: string; kind?: "environment_driver" | "sandbox_provider" | undefined; displayName: string; description?: string | undefined; defaultAcquireTimeoutMs?: number | undefined; supportsReusableLeases?: boolean | undefined; sandboxCapabilities?: { reusableLeases?: boolean | undefined; nativeSyncIn?: boolean | undefined; nativeSyncOut?: boolean | undefined; persistentProcessSessions?: boolean | undefined; independentControlCommands?: boolean | undefined; incrementalSessionOutput?: boolean | undefined; concurrentSyncOperations?: boolean | undefined; duplexCommandStream?: boolean | undefined; runnerWebSocketIngress?: boolean | undefined; } | undefined; supportsInteractiveSetup?: boolean | undefined; interactiveSetupConnectionTypes?: string[] | undefined; supportsTemplateCapture?: boolean | undefined; templateRefKind?: string | undefined; templateConfigBinding?: { field: string; unsetFields?: string[] | undefined; } | undefined; templateIdentityPaths?: string[] | undefined; supportsTemplateDelete?: boolean | undefined; configSchema: Record; supportsLoginPty: boolean | undefined; }, { driverKey: string; kind?: "environment_driver" | "sandbox_provider" | undefined; displayName: string; description?: string | undefined; defaultAcquireTimeoutMs?: number | undefined; supportsReusableLeases?: boolean | undefined; sandboxCapabilities?: { reusableLeases?: boolean | undefined; nativeSyncIn?: boolean | undefined; nativeSyncOut?: boolean | undefined; persistentProcessSessions?: boolean | undefined; independentControlCommands?: boolean | undefined; incrementalSessionOutput?: boolean | undefined; concurrentSyncOperations?: boolean | undefined; duplexCommandStream?: boolean | undefined; runnerWebSocketIngress?: boolean | undefined; } | undefined; supportsInteractiveSetup?: boolean | undefined; interactiveSetupConnectionTypes?: string[] | undefined; supportsTemplateCapture?: boolean | undefined; templateRefKind?: string | undefined; templateConfigBinding?: { field: string; unsetFields?: string[] | undefined; } | undefined; templateIdentityPaths?: string[] | undefined; supportsTemplateDelete?: boolean | undefined; supportsLoginPty?: boolean | undefined; supportsSetupTokenLogin?: boolean | undefined; configSchema: Record; }>>>>; agents: z.ZodOptional; title: z.ZodOptional>; icon: z.ZodOptional>; capabilities: z.ZodOptional>; adapterType: z.ZodOptional; adapterPreference: z.ZodOptional>; adapterConfig: z.ZodOptional>; runtimeConfig: z.ZodOptional>; permissions: z.ZodOptional>; status: z.ZodOptional>; budgetMonthlyCents: z.ZodOptional; instructions: z.ZodOptional; content: z.ZodOptional; files: z.ZodOptional>; assetPath: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>>; projects: z.ZodOptional>; status: z.ZodOptional>; color: z.ZodOptional>; settings: z.ZodOptional>; }, z.core.$strip>>>; routines: z.ZodOptional>; assigneeRef: z.ZodOptional; resourceKey: z.ZodString; resourceKind: z.ZodLiteral<"agent">; }, z.core.$strip>>>; projectRef: z.ZodOptional; resourceKey: z.ZodString; resourceKind: z.ZodLiteral<"project">; }, z.core.$strip>>>; goalId: z.ZodOptional>; status: z.ZodOptional>; priority: z.ZodOptional>; concurrencyPolicy: z.ZodOptional>; catchUpPolicy: z.ZodOptional>; activityGatePolicy: z.ZodOptional>; activityGateScope: z.ZodOptional>; variables: z.ZodOptional>; type: z.ZodDefault>>; defaultValue: z.ZodNullable>>; required: z.ZodDefault>; options: z.ZodDefault>>; }, z.core.$strip>>>; triggers: z.ZodOptional; label: z.ZodOptional>; enabled: z.ZodOptional; cronExpression: z.ZodNullable>; timezone: z.ZodNullable>; signingMode: z.ZodNullable>>; replayWindowSec: z.ZodNullable>; }, z.core.$strip>>>; issueTemplate: z.ZodOptional>; originId: z.ZodOptional>; billingCode: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>>>; skills: z.ZodOptional; description: z.ZodOptional>; markdown: z.ZodOptional; files: z.ZodOptional>>; }, z.core.$strip>>>; localFolders: z.ZodOptional; access: z.ZodOptional>; requiredDirectories: z.ZodOptional>; requiredFiles: z.ZodOptional>; }, z.core.$strip>>>; objectReferences: z.ZodOptional; urlPatterns: z.ZodOptional>; refreshPolicy: z.ZodOptional; staleAfterSeconds: z.ZodOptional; }, z.core.$strip>>; webhookEndpointKeys: z.ZodOptional>; }, z.core.$strip>>>; launchers: z.ZodOptional; placementZone: z.ZodEnum<{ commentAnnotation: "commentAnnotation"; commentContextMenuItem: "commentContextMenuItem"; contextMenuItem: "contextMenuItem"; dashboardWidget: "dashboardWidget"; detailTab: "detailTab"; globalToolbarButton: "globalToolbarButton"; page: "page"; projectSidebarItem: "projectSidebarItem"; settingsPage: "settingsPage"; sidebar: "sidebar"; sidebarPanel: "sidebarPanel"; taskDetailView: "taskDetailView"; toolbarButton: "toolbarButton"; }>; exportName: z.ZodOptional; entityTypes: z.ZodOptional>>; order: z.ZodOptional; action: z.ZodObject<{ type: z.ZodEnum<{ deepLink: "deepLink"; navigate: "navigate"; openDrawer: "openDrawer"; openModal: "openModal"; openPopover: "openPopover"; performAction: "performAction"; }>; target: z.ZodString; params: z.ZodOptional>; }, z.core.$strip>; render: z.ZodOptional; bounds: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>>>; ui: z.ZodOptional; id: z.ZodString; displayName: z.ZodString; exportName: z.ZodString; entityTypes: z.ZodOptional>>; routePath: z.ZodOptional; order: z.ZodOptional; }, z.core.$strip>>>; launchers: z.ZodOptional; placementZone: z.ZodEnum<{ commentAnnotation: "commentAnnotation"; commentContextMenuItem: "commentContextMenuItem"; contextMenuItem: "contextMenuItem"; dashboardWidget: "dashboardWidget"; detailTab: "detailTab"; globalToolbarButton: "globalToolbarButton"; page: "page"; projectSidebarItem: "projectSidebarItem"; settingsPage: "settingsPage"; sidebar: "sidebar"; sidebarPanel: "sidebarPanel"; taskDetailView: "taskDetailView"; toolbarButton: "toolbarButton"; }>; exportName: z.ZodOptional; entityTypes: z.ZodOptional>>; order: z.ZodOptional; action: z.ZodObject<{ type: z.ZodEnum<{ deepLink: "deepLink"; navigate: "navigate"; openDrawer: "openDrawer"; openModal: "openModal"; openPopover: "openPopover"; performAction: "performAction"; }>; target: z.ZodString; params: z.ZodOptional>; }, z.core.$strip>; render: z.ZodOptional; bounds: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>>>; }, z.core.$strip>>; }, z.core.$strip>; export type PluginManifestV1Input = z.infer; /** * Schema for installing (registering) a plugin. * The server receives the packageName and resolves the manifest from the * installed package. */ export declare const installPluginSchema: z.ZodObject<{ packageName: z.ZodString; version: z.ZodOptional; packagePath: z.ZodOptional; }, z.core.$strip>; export type InstallPlugin = z.infer; /** * Schema for creating or updating a plugin's company-scoped configuration. * configJson is validated permissively here; runtime validation against * the plugin's instanceConfigSchema is done at the service layer. */ export declare const upsertPluginConfigSchema: z.ZodObject<{ companyId: z.ZodString; configJson: z.ZodRecord; }, z.core.$strip>; export type UpsertPluginConfig = z.infer; /** * Schema for partially updating a plugin's company-scoped configuration. * Allows a partial merge of config values. */ export declare const patchPluginConfigSchema: z.ZodObject<{ companyId: z.ZodString; configJson: z.ZodRecord; }, z.core.$strip>; export type PatchPluginConfig = z.infer; /** * Schema for updating a plugin's lifecycle status. Used by the lifecycle * manager to persist state transitions. * * @see {@link PLUGIN_STATUSES} for the valid status values */ export declare const updatePluginStatusSchema: z.ZodObject<{ status: z.ZodEnum<{ disabled: "disabled"; error: "error"; installed: "installed"; ready: "ready"; uninstalled: "uninstalled"; upgrade_pending: "upgrade_pending"; }>; lastError: z.ZodOptional>; }, z.core.$strip>; export type UpdatePluginStatus = z.infer; /** Schema for the uninstall request. `removeData` controls hard vs soft delete. */ export declare const uninstallPluginSchema: z.ZodObject<{ removeData: z.ZodDefault>; }, z.core.$strip>; export type UninstallPlugin = z.infer; /** * Schema for a plugin state scope key — identifies the exact location where * state is stored. Used by the `ctx.state.get()`, `ctx.state.set()`, and * `ctx.state.delete()` SDK methods. * * @see PLUGIN_SPEC.md §21.3 `plugin_state` */ export declare const pluginStateScopeKeySchema: z.ZodObject<{ scopeKind: z.ZodEnum<{ agent: "agent"; company: "company"; goal: "goal"; instance: "instance"; issue: "issue"; project: "project"; project_workspace: "project_workspace"; run: "run"; }>; scopeId: z.ZodOptional; namespace: z.ZodOptional; stateKey: z.ZodString; }, z.core.$strip>; export type PluginStateScopeKey = z.infer; /** * Schema for setting a plugin state value. */ export declare const setPluginStateSchema: z.ZodObject<{ scopeKind: z.ZodEnum<{ agent: "agent"; company: "company"; goal: "goal"; instance: "instance"; issue: "issue"; project: "project"; project_workspace: "project_workspace"; run: "run"; }>; scopeId: z.ZodOptional; namespace: z.ZodOptional; stateKey: z.ZodString; value: z.ZodUnknown; }, z.core.$strip>; export type SetPluginState = z.infer; /** * Schema for querying plugin state entries. All fields are optional to allow * flexible list queries (e.g. all state for a plugin within a scope). */ export declare const listPluginStateSchema: z.ZodObject<{ scopeKind: z.ZodOptional>; scopeId: z.ZodOptional; namespace: z.ZodOptional; }, z.core.$strip>; export type ListPluginState = z.infer; //# sourceMappingURL=plugin.d.ts.map