export declare const COMPANY_STATUSES: readonly ["active", "paused", "archived"]; export type CompanyStatus = (typeof COMPANY_STATUSES)[number]; export declare const DEPLOYMENT_MODES: readonly ["local_trusted", "authenticated"]; export type DeploymentMode = (typeof DEPLOYMENT_MODES)[number]; export declare const DEPLOYMENT_EXPOSURES: readonly ["private", "public"]; export type DeploymentExposure = (typeof DEPLOYMENT_EXPOSURES)[number]; export declare const BIND_MODES: readonly ["loopback", "lan", "tailnet", "custom"]; export type BindMode = (typeof BIND_MODES)[number]; export declare const AUTH_BASE_URL_MODES: readonly ["auto", "explicit"]; export type AuthBaseUrlMode = (typeof AUTH_BASE_URL_MODES)[number]; export declare const AGENT_STATUSES: readonly ["active", "paused", "idle", "running", "error", "pending_approval", "terminated"]; export type AgentStatus = (typeof AGENT_STATUSES)[number]; export declare const AGENT_ADAPTER_TYPES: readonly ["process", "http", "claude_local", "codex_local", "paperclip_runner", "cursor_cloud", "gemini_local", "grok_local", "kimi_local", "opencode_local", "pi_local", "cursor", "openclaw_gateway"]; export type AgentAdapterType = (typeof AGENT_ADAPTER_TYPES)[number] | (string & {}); export declare const AGENT_ROLES: readonly ["ceo", "cto", "cmo", "cfo", "security", "engineer", "designer", "pm", "qa", "devops", "researcher", "general"]; export type AgentRole = (typeof AGENT_ROLES)[number]; export declare const AGENT_ROLE_LABELS: Record; export declare const AGENT_DEFAULT_MAX_CONCURRENT_RUNS = 20; export declare const WORKSPACE_BRANCH_ROUTINE_VARIABLE = "workspaceBranch"; export declare const ADAPTER_AGNOSTIC_KEYS: readonly ["env", "promptTemplate", "instructionsFilePath", "cwd", "timeoutSec", "graceSec", "bootstrapPromptTemplate", "paperclipSkillSync"]; export type AdapterAgnosticKey = (typeof ADAPTER_AGNOSTIC_KEYS)[number]; export declare const AGENT_ICON_NAMES: readonly ["bot", "cpu", "brain", "zap", "rocket", "code", "terminal", "shield", "eye", "search", "wrench", "hammer", "lightbulb", "sparkles", "star", "heart", "flame", "bug", "cog", "database", "globe", "lock", "mail", "message-square", "file-code", "git-branch", "package", "puzzle", "target", "wand", "atom", "circuit-board", "radar", "swords", "telescope", "microscope", "crown", "gem", "hexagon", "pentagon", "fingerprint"]; export type AgentIconName = (typeof AGENT_ICON_NAMES)[number]; /** * Curated Lucide icon set for projects (PAP-68 part 3). * * The first entry, `"folder"`, is the default for any project without an * explicit icon. The remaining entries reuse much of the agent icon set plus a * handful of folder/structure icons that read well at small tile sizes. */ export declare const PROJECT_ICON_NAMES: readonly ["folder", "rocket", "code", "terminal", "database", "globe", "package", "boxes", "box", "layers", "briefcase", "compass", "target", "flame", "zap", "star", "bug", "wrench", "hammer", "lightbulb", "sparkles", "shield", "lock", "search", "cog", "brain", "cpu", "git-branch", "file-code", "puzzle", "gem", "atom", "heart", "mail", "message-square", "crown", "radar", "telescope", "hexagon"]; export type ProjectIconName = (typeof PROJECT_ICON_NAMES)[number]; export declare const ISSUE_STATUSES: readonly ["backlog", "todo", "in_progress", "in_review", "done", "blocked", "cancelled"]; export type IssueStatus = (typeof ISSUE_STATUSES)[number]; export declare const INBOX_MINE_ISSUE_STATUSES: readonly ["backlog", "todo", "in_progress", "in_review", "blocked", "done"]; export declare const INBOX_MINE_ISSUE_STATUS_FILTER: string; export declare const ISSUE_PRIORITIES: readonly ["critical", "high", "medium", "low"]; export type IssuePriority = (typeof ISSUE_PRIORITIES)[number]; export declare const ISSUE_REVIEW_POLICIES: readonly ["anyone", "not_creator", "human_only"]; export type IssueReviewPolicy = (typeof ISSUE_REVIEW_POLICIES)[number]; export declare const ISSUE_WORK_MODES: readonly ["standard", "ask", "planning", "skill_test"]; export type IssueWorkMode = (typeof ISSUE_WORK_MODES)[number]; export declare const ISSUE_HARNESS_KINDS: readonly ["skill_test"]; export type IssueHarnessKind = (typeof ISSUE_HARNESS_KINDS)[number]; export declare const MAX_ISSUE_REQUEST_DEPTH = 1024; export declare const SUMMARY_SLOT_SCOPE_KINDS: readonly ["project", "workspaces_overview", "project_workspace", "execution_workspace"]; export type SummarySlotScopeKind = (typeof SUMMARY_SLOT_SCOPE_KINDS)[number]; export declare const SUMMARY_SLOT_KEYS: readonly ["header"]; export type SummarySlotKey = (typeof SUMMARY_SLOT_KEYS)[number]; export declare const SUMMARY_SLOT_STATUSES: readonly ["idle", "generating", "failed"]; export type SummarySlotStatus = (typeof SUMMARY_SLOT_STATUSES)[number]; export declare const ISSUE_COMMENT_AUTHOR_TYPES: readonly ["user", "agent", "system"]; export type IssueCommentAuthorType = (typeof ISSUE_COMMENT_AUTHOR_TYPES)[number]; export declare const ISSUE_COMMENT_PRESENTATION_KINDS: readonly ["message", "system_notice"]; export type IssueCommentPresentationKind = (typeof ISSUE_COMMENT_PRESENTATION_KINDS)[number]; export declare const ISSUE_COMMENT_PRESENTATION_TONES: readonly ["neutral", "info", "success", "warning", "danger"]; export type IssueCommentPresentationTone = (typeof ISSUE_COMMENT_PRESENTATION_TONES)[number]; export declare const ISSUE_COMMENT_PRESENTATION_DENSITIES: readonly ["compact"]; export type IssueCommentPresentationDensity = (typeof ISSUE_COMMENT_PRESENTATION_DENSITIES)[number]; export declare const ISSUE_COMMENT_METADATA_ROW_TYPES: readonly ["text", "code", "key_value", "issue_link", "agent_link", "run_link"]; export type IssueCommentMetadataRowType = (typeof ISSUE_COMMENT_METADATA_ROW_TYPES)[number]; export declare function clampIssueRequestDepth(value: number | null | undefined): number; export declare const ISSUE_THREAD_INTERACTION_KINDS: readonly ["suggest_tasks", "ask_user_questions", "request_confirmation", "request_checkbox_confirmation", "request_item_verdicts", "connection_intent"]; export type IssueThreadInteractionKind = (typeof ISSUE_THREAD_INTERACTION_KINDS)[number]; export declare const ISSUE_THREAD_INTERACTION_CANONICAL_RESOLVER_POLICIES: readonly ["anyone", "not_creator", "human_only"]; export type IssueThreadInteractionCanonicalResolverPolicy = (typeof ISSUE_THREAD_INTERACTION_CANONICAL_RESOLVER_POLICIES)[number]; export declare const ISSUE_THREAD_INTERACTION_LEGACY_RESOLVER_POLICY_ALIASES: readonly ["board_or_agents", "board_only"]; export type IssueThreadInteractionLegacyResolverPolicyAlias = (typeof ISSUE_THREAD_INTERACTION_LEGACY_RESOLVER_POLICY_ALIASES)[number]; /** * Accepted resolver-policy input values. New product surfaces should use the * canonical values; the two board-prefixed values remain write-compatible * aliases for one migration window. */ export declare const ISSUE_THREAD_INTERACTION_RESOLVER_POLICIES: readonly ["anyone", "not_creator", "human_only", "board_or_agents", "board_only"]; export type IssueThreadInteractionResolverPolicy = (typeof ISSUE_THREAD_INTERACTION_RESOLVER_POLICIES)[number]; export declare const ISSUE_THREAD_INTERACTION_RESOLVER_POLICY_PROVENANCES: readonly ["explicit", "inherited", "legacy_inherited_restriction"]; export type IssueThreadInteractionResolverPolicyProvenance = (typeof ISSUE_THREAD_INTERACTION_RESOLVER_POLICY_PROVENANCES)[number]; export declare const ISSUE_THREAD_INTERACTION_EFFECTIVE_RESOLVER_POLICY_SOURCES: readonly ["requested", "company_cap", "governed_action"]; export type IssueThreadInteractionEffectiveResolverPolicySource = (typeof ISSUE_THREAD_INTERACTION_EFFECTIVE_RESOLVER_POLICY_SOURCES)[number]; export declare function normalizeIssueThreadInteractionResolverPolicy(policy: IssueThreadInteractionResolverPolicy): IssueThreadInteractionCanonicalResolverPolicy; export declare function legacyIssueThreadInteractionResolverPolicyAlias(policy: IssueThreadInteractionCanonicalResolverPolicy): IssueThreadInteractionLegacyResolverPolicyAlias | null; export declare const REQUEST_CHECKBOX_CONFIRMATION_OPTION_LIMIT = 200; export declare const REQUEST_ITEM_VERDICTS_ITEM_LIMIT = 200; export declare const ISSUE_THREAD_INTERACTION_STATUSES: readonly ["pending", "accepted", "rejected", "answered", "cancelled", "expired", "failed"]; export type IssueThreadInteractionStatus = (typeof ISSUE_THREAD_INTERACTION_STATUSES)[number]; export declare const ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES: readonly ["none", "wake_assignee", "wake_assignee_on_accept"]; export type IssueThreadInteractionContinuationPolicy = (typeof ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES)[number]; export declare const TASK_WATCHDOG_PRODUCT_BUG_ORIGIN_KIND = "task_watchdog_product_bug"; export declare const ONBOARDING_FIRST_TASK_ORIGIN_KIND = "onboarding_first_task"; export declare const ISSUE_ORIGIN_KINDS: readonly ["manual", "routine_execution", "stale_active_run_evaluation", "harness_liveness_escalation", "issue_productivity_review", "stranded_issue_recovery", "task_watchdog", "task_watchdog_product_bug", "onboarding_first_task", "chat_channel"]; export type BuiltInIssueOriginKind = (typeof ISSUE_ORIGIN_KINDS)[number]; export type PluginIssueOriginKind = `plugin:${string}`; export type IssueOriginKind = BuiltInIssueOriginKind | PluginIssueOriginKind; export declare const ISSUE_WATCHDOG_DISCOVERY_KINDS: readonly ["product_bug", "platform_bug"]; export type IssueWatchdogDiscoveryKind = (typeof ISSUE_WATCHDOG_DISCOVERY_KINDS)[number]; export declare const ISSUE_SURFACE_VISIBILITIES: readonly ["default", "plugin_operation"]; export type IssueSurfaceVisibility = (typeof ISSUE_SURFACE_VISIBILITIES)[number]; export declare const ISSUE_RECOVERY_ACTION_KINDS: readonly ["missing_disposition", "deliberate_wait_without_target", "stranded_assigned_issue", "workspace_validation", "configuration_validation", "active_run_watchdog", "issue_graph_liveness"]; export type IssueRecoveryActionKind = (typeof ISSUE_RECOVERY_ACTION_KINDS)[number]; export declare const ISSUE_DISPOSITION_REPAIR_RETRY_REASON = "issue_disposition_repair"; export declare const ISSUE_RECOVERY_ACTION_STATUSES: readonly ["active", "escalated", "resolved", "cancelled"]; export type IssueRecoveryActionStatus = (typeof ISSUE_RECOVERY_ACTION_STATUSES)[number]; export declare const ISSUE_RECOVERY_ACTION_OWNER_TYPES: readonly ["agent", "user", "board", "system"]; export type IssueRecoveryActionOwnerType = (typeof ISSUE_RECOVERY_ACTION_OWNER_TYPES)[number]; export declare const ISSUE_RECOVERY_ACTION_OUTCOMES: readonly ["restored", "handed_back", "owner_completed", "delegated", "false_positive", "blocked", "escalated", "cancelled"]; export type IssueRecoveryActionOutcome = (typeof ISSUE_RECOVERY_ACTION_OUTCOMES)[number]; export declare function pluginOperationIssueOriginKind(pluginKey: string): PluginIssueOriginKind; export declare function isPluginOperationIssueOriginKind(originKind: string | null | undefined): boolean; export declare const ISSUE_RELATION_TYPES: readonly ["blocks"]; export type IssueRelationType = (typeof ISSUE_RELATION_TYPES)[number]; export declare const ISSUE_TREE_CONTROL_MODES: readonly ["pause", "resume", "cancel", "restore"]; export type IssueTreeControlMode = (typeof ISSUE_TREE_CONTROL_MODES)[number]; export declare const ISSUE_TREE_HOLD_STATUSES: readonly ["active", "released"]; export type IssueTreeHoldStatus = (typeof ISSUE_TREE_HOLD_STATUSES)[number]; export declare const ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES: readonly ["manual", "after_active_runs_finish"]; export type IssueTreeHoldReleasePolicyStrategy = (typeof ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES)[number]; export declare const ISSUE_CONTINUATION_SUMMARY_DOCUMENT_KEY: "continuation-summary"; export declare const PIPELINE_CASE_BODY_DOCUMENT_KEY: "pipeline-case-body"; export declare const PIPELINE_AUTOMATION_DEFAULT_TITLE_TEMPLATE: "{{pipeline_name}} / {{stage_name}}: {{case_title}}"; export declare const SYSTEM_ISSUE_DOCUMENT_KEYS: readonly ["continuation-summary", "pipeline-case-body"]; export type SystemIssueDocumentKey = (typeof SYSTEM_ISSUE_DOCUMENT_KEYS)[number]; export declare function isSystemIssueDocumentKey(key: string): key is SystemIssueDocumentKey; export declare const ISSUE_REFERENCE_SOURCE_KINDS: readonly ["title", "description", "comment", "document"]; export type IssueReferenceSourceKind = (typeof ISSUE_REFERENCE_SOURCE_KINDS)[number]; export declare const DOCUMENT_ANNOTATION_THREAD_STATUSES: readonly ["open", "resolved"]; export type DocumentAnnotationThreadStatus = (typeof DOCUMENT_ANNOTATION_THREAD_STATUSES)[number]; export declare const DOCUMENT_ANNOTATION_ANCHOR_STATES: readonly ["active", "stale", "orphaned"]; export type DocumentAnnotationAnchorState = (typeof DOCUMENT_ANNOTATION_ANCHOR_STATES)[number]; export declare const DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES: readonly ["exact", "duplicate", "fuzzy", "ambiguous", "missing"]; export type DocumentAnnotationAnchorConfidence = (typeof DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES)[number]; export declare const EXTERNAL_OBJECT_STATUS_CATEGORIES: readonly ["unknown", "open", "waiting", "running", "succeeded", "failed", "blocked", "closed", "archived", "auth_required", "unreachable"]; export type ExternalObjectStatusCategory = (typeof EXTERNAL_OBJECT_STATUS_CATEGORIES)[number]; export declare const EXTERNAL_OBJECT_STATUS_TONES: readonly ["neutral", "info", "success", "warning", "danger", "muted"]; export type ExternalObjectStatusTone = (typeof EXTERNAL_OBJECT_STATUS_TONES)[number]; export declare const EXTERNAL_OBJECT_LIVENESS_STATES: readonly ["unknown", "fresh", "stale", "auth_required", "unreachable"]; export type ExternalObjectLivenessState = (typeof EXTERNAL_OBJECT_LIVENESS_STATES)[number]; export declare const EXTERNAL_OBJECT_MENTION_SOURCE_KINDS: readonly ["title", "description", "comment", "document", "property", "plugin"]; export type ExternalObjectMentionSourceKind = (typeof EXTERNAL_OBJECT_MENTION_SOURCE_KINDS)[number]; export declare const EXTERNAL_OBJECT_MENTION_CONFIDENCES: readonly ["exact", "likely", "possible"]; export type ExternalObjectMentionConfidence = (typeof EXTERNAL_OBJECT_MENTION_CONFIDENCES)[number]; export declare const ISSUE_EXECUTION_POLICY_MODES: readonly ["normal", "auto"]; export type IssueExecutionPolicyMode = (typeof ISSUE_EXECUTION_POLICY_MODES)[number]; export declare const ISSUE_EXECUTION_STAGE_TYPES: readonly ["review", "approval"]; export type IssueExecutionStageType = (typeof ISSUE_EXECUTION_STAGE_TYPES)[number]; export declare const ISSUE_MONITOR_SCHEDULED_BY: readonly ["assignee", "board"]; export type IssueMonitorScheduledBy = (typeof ISSUE_MONITOR_SCHEDULED_BY)[number]; export declare const ISSUE_EXECUTION_MONITOR_KINDS: readonly ["external_service"]; export type IssueExecutionMonitorKind = (typeof ISSUE_EXECUTION_MONITOR_KINDS)[number]; export declare const PROVIDER_QUOTA_MONITOR_SERVICE_NAME = "AI provider quota"; export declare const ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES: readonly ["wake_owner", "create_recovery_issue", "escalate_to_board"]; export type IssueExecutionMonitorRecoveryPolicy = (typeof ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES)[number]; export declare const ISSUE_EXECUTION_STATE_STATUSES: readonly ["idle", "pending", "changes_requested", "completed"]; export type IssueExecutionStateStatus = (typeof ISSUE_EXECUTION_STATE_STATUSES)[number]; export declare const ISSUE_EXECUTION_MONITOR_STATE_STATUSES: readonly ["scheduled", "triggered", "cleared"]; export type IssueExecutionMonitorStateStatus = (typeof ISSUE_EXECUTION_MONITOR_STATE_STATUSES)[number]; export declare const ISSUE_EXECUTION_MONITOR_CLEAR_REASONS: readonly ["manual", "triggered", "done", "cancelled", "invalid_status", "invalid_assignee", "dispatch_skipped", "timeout_exceeded", "max_attempts_exhausted"]; export type IssueExecutionMonitorClearReason = (typeof ISSUE_EXECUTION_MONITOR_CLEAR_REASONS)[number]; export declare const ISSUE_EXECUTION_DECISION_OUTCOMES: readonly ["approved", "changes_requested"]; export type IssueExecutionDecisionOutcome = (typeof ISSUE_EXECUTION_DECISION_OUTCOMES)[number]; export declare const GOAL_LEVELS: readonly ["company", "team", "agent", "task"]; export type GoalLevel = (typeof GOAL_LEVELS)[number]; export declare const GOAL_STATUSES: readonly ["planned", "active", "achieved", "cancelled"]; export type GoalStatus = (typeof GOAL_STATUSES)[number]; export declare const PROJECT_STATUSES: readonly ["backlog", "planned", "in_progress", "completed", "cancelled"]; export type ProjectStatus = (typeof PROJECT_STATUSES)[number]; export declare const ENVIRONMENT_DRIVERS: readonly ["local", "ssh", "sandbox", "plugin"]; export type EnvironmentDriver = (typeof ENVIRONMENT_DRIVERS)[number]; export declare const ENVIRONMENT_STATUSES: readonly ["active", "archived"]; export type EnvironmentStatus = (typeof ENVIRONMENT_STATUSES)[number]; export declare const ENVIRONMENT_LEASE_STATUSES: readonly ["active", "released", "expired", "failed", "retained", "pending_cleanup"]; export type EnvironmentLeaseStatus = (typeof ENVIRONMENT_LEASE_STATUSES)[number]; export declare const ENVIRONMENT_LEASE_POLICIES: readonly ["ephemeral", "reuse_by_environment", "reuse_by_execution_workspace", "retain_on_failure"]; export type EnvironmentLeasePolicy = (typeof ENVIRONMENT_LEASE_POLICIES)[number]; export declare const ENVIRONMENT_LEASE_CLEANUP_STATUSES: readonly ["pending", "success", "failed"]; export type EnvironmentLeaseCleanupStatus = (typeof ENVIRONMENT_LEASE_CLEANUP_STATUSES)[number]; export declare const ENVIRONMENT_CUSTOM_IMAGE_TEMPLATE_KINDS: readonly ["snapshot", "image", "provider_template", "unknown"]; export type EnvironmentCustomImageTemplateKind = (typeof ENVIRONMENT_CUSTOM_IMAGE_TEMPLATE_KINDS)[number]; export declare const ENVIRONMENT_CUSTOM_IMAGE_TEMPLATE_STATUSES: readonly ["active", "superseded", "revoked", "failed"]; export type EnvironmentCustomImageTemplateStatus = (typeof ENVIRONMENT_CUSTOM_IMAGE_TEMPLATE_STATUSES)[number]; export declare const ENVIRONMENT_CUSTOM_IMAGE_SETUP_SESSION_STATUSES: readonly ["starting", "waiting_for_user", "capturing", "promoted", "cancelled", "timed_out", "failed"]; export type EnvironmentCustomImageSetupSessionStatus = (typeof ENVIRONMENT_CUSTOM_IMAGE_SETUP_SESSION_STATUSES)[number]; export declare const ENVIRONMENT_CUSTOM_IMAGE_SETUP_CONNECTION_TYPES: readonly ["ssh", "browser_terminal", "unknown"]; export type EnvironmentCustomImageSetupConnectionType = (typeof ENVIRONMENT_CUSTOM_IMAGE_SETUP_CONNECTION_TYPES)[number]; export declare const ROUTINE_STATUSES: readonly ["active", "paused", "archived"]; export type RoutineStatus = (typeof ROUTINE_STATUSES)[number]; export declare const ROUTINE_CONCURRENCY_POLICIES: readonly ["coalesce_if_active", "always_enqueue", "skip_if_active"]; export type RoutineConcurrencyPolicy = (typeof ROUTINE_CONCURRENCY_POLICIES)[number]; export declare const ROUTINE_CATCH_UP_POLICIES: readonly ["skip_missed", "enqueue_missed_with_cap"]; export type RoutineCatchUpPolicy = (typeof ROUTINE_CATCH_UP_POLICIES)[number]; export declare const ROUTINE_ACTIVITY_GATE_POLICIES: readonly ["always", "require_external_activity"]; export type RoutineActivityGatePolicy = (typeof ROUTINE_ACTIVITY_GATE_POLICIES)[number]; export declare const ROUTINE_ACTIVITY_GATE_SCOPES: readonly ["company", "project"]; export type RoutineActivityGateScope = (typeof ROUTINE_ACTIVITY_GATE_SCOPES)[number]; export declare const ROUTINE_TRIGGER_KINDS: readonly ["schedule", "webhook", "api"]; export type RoutineTriggerKind = (typeof ROUTINE_TRIGGER_KINDS)[number]; export declare const ROUTINE_TRIGGER_SIGNING_MODES: readonly ["bearer", "app_webhook", "hmac_sha256", "github_hmac", "fireflies_hmac", "none"]; export type RoutineTriggerSigningMode = (typeof ROUTINE_TRIGGER_SIGNING_MODES)[number]; export declare const ROUTINE_VARIABLE_TYPES: readonly ["text", "textarea", "number", "boolean", "select", "date"]; export type RoutineVariableType = (typeof ROUTINE_VARIABLE_TYPES)[number]; export declare const ROUTINE_RUN_STATUSES: readonly ["received", "coalesced", "skipped", "issue_created", "completed", "failed"]; export type RoutineRunStatus = (typeof ROUTINE_RUN_STATUSES)[number]; export declare const ROUTINE_RUN_SOURCES: readonly ["schedule", "manual", "api", "webhook"]; export type RoutineRunSource = (typeof ROUTINE_RUN_SOURCES)[number]; export declare const PAUSE_REASONS: readonly ["manual", "budget", "system", "company_archived", "import"]; export type PauseReason = (typeof PAUSE_REASONS)[number]; export declare const PROJECT_COLORS: readonly ["#6366f1", "#8b5cf6", "#ec4899", "#ef4444", "#f97316", "#eab308", "#22c55e", "#14b8a6", "#06b6d4", "#3b82f6"]; export declare const APPROVAL_TYPES: readonly ["hire_agent", "approve_ceo_strategy", "budget_override_required", "request_board_approval"]; export type ApprovalType = (typeof APPROVAL_TYPES)[number]; export declare const APPROVAL_STATUSES: readonly ["pending", "revision_requested", "approved", "rejected", "cancelled"]; export type ApprovalStatus = (typeof APPROVAL_STATUSES)[number]; export declare const SECRET_PROVIDERS: readonly ["local_encrypted", "aws_secrets_manager", "gcp_secret_manager", "vault"]; export type SecretProvider = (typeof SECRET_PROVIDERS)[number]; export declare const SECRET_PROVIDER_CONFIG_STATUSES: readonly ["ready", "warning", "coming_soon", "disabled"]; export type SecretProviderConfigStatus = (typeof SECRET_PROVIDER_CONFIG_STATUSES)[number]; export declare const SECRET_PROVIDER_CONFIG_HEALTH_STATUSES: readonly ["ready", "warning", "error", "coming_soon", "disabled"]; export type SecretProviderConfigHealthStatus = (typeof SECRET_PROVIDER_CONFIG_HEALTH_STATUSES)[number]; export declare const SECRET_STATUSES: readonly ["active", "disabled", "archived", "deleted"]; export type SecretStatus = (typeof SECRET_STATUSES)[number]; export declare const SECRET_SCOPES: readonly ["company", "user"]; export type SecretScope = (typeof SECRET_SCOPES)[number]; export declare const SECRET_MANAGED_MODES: readonly ["paperclip_managed", "external_reference"]; export type SecretManagedMode = (typeof SECRET_MANAGED_MODES)[number]; export declare const SECRET_VERSION_STATUSES: readonly ["current", "previous", "disabled", "destroyed", "failed"]; export type SecretVersionStatus = (typeof SECRET_VERSION_STATUSES)[number]; export declare const SECRET_BINDING_TARGET_TYPES: readonly ["agent", "project", "environment", "routine", "plugin", "issue", "run", "tool_connection", "system"]; export type SecretBindingTargetType = (typeof SECRET_BINDING_TARGET_TYPES)[number]; export declare const SECRET_ACCESS_OUTCOMES: readonly ["success", "failure", "missing", "inactive", "not_allowed", "optional_omitted", "provider_error"]; export type SecretAccessOutcome = (typeof SECRET_ACCESS_OUTCOMES)[number]; export declare const SECRET_PROJECTION_CLASSES: readonly ["unclassified", "class_3_static_lease"]; export type SecretProjectionClass = (typeof SECRET_PROJECTION_CLASSES)[number]; export declare const CLASS3_STATIC_LEASE_ALLOWLIST: readonly [{ readonly key: "slack.bot_token"; readonly label: "Slack bot token"; readonly targetType: "agent"; readonly configPath: "env.SLACK_BOT_TOKEN"; readonly envKey: "SLACK_BOT_TOKEN"; }, { readonly key: "slack.bot_token"; readonly label: "Slack bot token"; readonly targetType: "routine"; readonly configPath: "env.SLACK_BOT_TOKEN"; readonly envKey: "SLACK_BOT_TOKEN"; }, { readonly key: "slack.bot_token"; readonly label: "Slack bot token governance connection"; readonly targetType: "tool_connection"; readonly configPath: "credentials.bot_token"; readonly envKey: "SLACK_BOT_TOKEN"; }, { readonly key: "discord.bot_token"; readonly label: "Discord bot token"; readonly targetType: "agent"; readonly configPath: "env.DISCORD_BOT_TOKEN"; readonly envKey: "DISCORD_BOT_TOKEN"; }, { readonly key: "discord.bot_token"; readonly label: "Discord bot token"; readonly targetType: "routine"; readonly configPath: "env.DISCORD_BOT_TOKEN"; readonly envKey: "DISCORD_BOT_TOKEN"; }, { readonly key: "discord.bot_token"; readonly label: "Discord bot token governance connection"; readonly targetType: "tool_connection"; readonly configPath: "credentials.bot_token"; readonly envKey: "DISCORD_BOT_TOKEN"; }]; export type Class3StaticLeaseAllowlistKey = (typeof CLASS3_STATIC_LEASE_ALLOWLIST)[number]["key"]; export declare const STORAGE_PROVIDERS: readonly ["local_disk", "s3"]; export type StorageProvider = (typeof STORAGE_PROVIDERS)[number]; export declare const BILLING_TYPES: readonly ["metered_api", "subscription_included", "subscription_overage", "credits", "fixed", "unknown"]; export type BillingType = (typeof BILLING_TYPES)[number]; export declare const COST_STATUSES: readonly ["reported", "estimated", "unpriced"]; export type CostStatus = (typeof COST_STATUSES)[number]; export declare const FINANCE_EVENT_KINDS: readonly ["inference_charge", "platform_fee", "credit_purchase", "credit_refund", "credit_expiry", "byok_fee", "gateway_overhead", "log_storage_charge", "logpush_charge", "provisioned_capacity_charge", "training_charge", "custom_model_import_charge", "custom_model_storage_charge", "manual_adjustment"]; export type FinanceEventKind = (typeof FINANCE_EVENT_KINDS)[number]; export declare const FINANCE_DIRECTIONS: readonly ["debit", "credit"]; export type FinanceDirection = (typeof FINANCE_DIRECTIONS)[number]; export declare const FINANCE_UNITS: readonly ["input_token", "output_token", "cached_input_token", "request", "credit_usd", "credit_unit", "model_unit_minute", "model_unit_hour", "gb_month", "train_token", "unknown"]; export type FinanceUnit = (typeof FINANCE_UNITS)[number]; export declare const BUDGET_SCOPE_TYPES: readonly ["company", "agent", "project"]; export type BudgetScopeType = (typeof BUDGET_SCOPE_TYPES)[number]; export declare const BUDGET_METRICS: readonly ["billed_cents"]; export type BudgetMetric = (typeof BUDGET_METRICS)[number]; export declare const BUDGET_WINDOW_KINDS: readonly ["calendar_month_utc", "lifetime"]; export type BudgetWindowKind = (typeof BUDGET_WINDOW_KINDS)[number]; export declare const BUDGET_THRESHOLD_TYPES: readonly ["soft", "hard"]; export type BudgetThresholdType = (typeof BUDGET_THRESHOLD_TYPES)[number]; export declare const BUDGET_INCIDENT_STATUSES: readonly ["open", "resolved", "dismissed"]; export type BudgetIncidentStatus = (typeof BUDGET_INCIDENT_STATUSES)[number]; export declare const BUDGET_INCIDENT_RESOLUTION_ACTIONS: readonly ["keep_paused", "raise_budget_and_resume"]; export type BudgetIncidentResolutionAction = (typeof BUDGET_INCIDENT_RESOLUTION_ACTIONS)[number]; export declare const HEARTBEAT_INVOCATION_SOURCES: readonly ["timer", "assignment", "on_demand", "automation"]; export type HeartbeatInvocationSource = (typeof HEARTBEAT_INVOCATION_SOURCES)[number]; export declare const WAKEUP_TRIGGER_DETAILS: readonly ["manual", "ping", "callback", "system"]; export type WakeupTriggerDetail = (typeof WAKEUP_TRIGGER_DETAILS)[number]; export declare const WAKEUP_REQUEST_STATUSES: readonly ["queued", "deferred_issue_execution", "claimed", "coalesced", "skipped", "completed", "failed", "cancelled"]; export type WakeupRequestStatus = (typeof WAKEUP_REQUEST_STATUSES)[number]; export declare const HEARTBEAT_RUN_STATUSES: readonly ["queued", "scheduled_retry", "running", "succeeded", "interrupted", "failed", "cancelled", "timed_out"]; export type HeartbeatRunStatus = (typeof HEARTBEAT_RUN_STATUSES)[number]; export declare const RUN_LIVENESS_STATES: readonly ["completed", "advanced", "plan_only", "empty_response", "blocked", "failed", "needs_followup"]; export type RunLivenessState = (typeof RUN_LIVENESS_STATES)[number]; export declare const LIVE_EVENT_TYPES: readonly ["heartbeat.run.queued", "heartbeat.run.status", "heartbeat.run.progress", "heartbeat.run.event", "heartbeat.run.log", "agent.session.goal.changed", "agent.status", "activity.logged", "external_object.updated", "plugin.ui.updated", "plugin.worker.crashed", "plugin.worker.restarted"]; export type LiveEventType = (typeof LIVE_EVENT_TYPES)[number]; export declare const PRINCIPAL_TYPES: readonly ["user", "agent"]; export type PrincipalType = (typeof PRINCIPAL_TYPES)[number]; export declare const MEMBERSHIP_STATUSES: readonly ["pending", "active", "suspended", "archived"]; export type MembershipStatus = (typeof MEMBERSHIP_STATUSES)[number]; export declare const COMPANY_MEMBERSHIP_ROLES: readonly ["owner", "admin", "operator", "viewer", "member"]; export type CompanyMembershipRole = (typeof COMPANY_MEMBERSHIP_ROLES)[number]; export declare const HUMAN_COMPANY_MEMBERSHIP_ROLES: readonly ["owner", "admin", "operator", "viewer"]; export type HumanCompanyMembershipRole = (typeof HUMAN_COMPANY_MEMBERSHIP_ROLES)[number]; export declare const HUMAN_COMPANY_MEMBERSHIP_ROLE_LABELS: Record; export declare const INSTANCE_USER_ROLES: readonly ["instance_admin"]; export type InstanceUserRole = (typeof INSTANCE_USER_ROLES)[number]; export declare const INVITE_TYPES: readonly ["company_join", "bootstrap_ceo"]; export type InviteType = (typeof INVITE_TYPES)[number]; export declare const INVITE_JOIN_TYPES: readonly ["human", "agent", "both"]; export type InviteJoinType = (typeof INVITE_JOIN_TYPES)[number]; export declare const JOIN_REQUEST_TYPES: readonly ["human", "agent"]; export type JoinRequestType = (typeof JOIN_REQUEST_TYPES)[number]; export declare const JOIN_REQUEST_STATUSES: readonly ["pending_approval", "approved", "rejected"]; export type JoinRequestStatus = (typeof JOIN_REQUEST_STATUSES)[number]; export declare const PERMISSION_KEYS: readonly ["agents:create", "agents:configure", "agents:suggest-changes", "skills:create", "skills:suggest-changes", "environments:manage", "tools:admin", "tools:manage_connections", "tools:manage_profiles", "tools:view_audit", "audit:view_agent_actions", "tools:use", "tools:manage_runtime", "inbox:manage", "users:invite", "users:manage_permissions", "tasks:assign", "tasks:assign_scope", "tasks:manage_active_checkouts", "pipelines:write", "joins:approve"]; export type PermissionKey = (typeof PERMISSION_KEYS)[number]; export declare const TOOL_APPLICATION_TYPES: readonly ["rest_api", "mcp_http", "mcp_stdio", "paperclip_plugin", "a2a", "chat"]; export type ToolApplicationType = (typeof TOOL_APPLICATION_TYPES)[number]; export declare const TOOL_APPLICATION_STATUSES: readonly ["draft", "active", "disabled", "archived"]; export type ToolApplicationStatus = (typeof TOOL_APPLICATION_STATUSES)[number]; export declare const TOOL_CONNECTION_KINDS: readonly ["managed"]; export type ToolConnectionKind = (typeof TOOL_CONNECTION_KINDS)[number]; export declare const TOOL_CONNECTION_HEALTH_STATUSES: readonly ["unknown", "healthy", "degraded", "failed", "unchecked", "ok", "error", "missing_secret"]; export type ToolConnectionHealthStatus = (typeof TOOL_CONNECTION_HEALTH_STATUSES)[number]; /** * Health states that mean an app needs the user's attention (a bad/missing key * or a degraded connection). Single source of truth shared by the needs- * attention aggregation and the prosumer Apps surfaces so their counts agree. */ export declare const TOOL_CONNECTION_ATTENTION_HEALTH_STATUSES: readonly ToolConnectionHealthStatus[]; export declare function isToolConnectionAttentionHealth(status: ToolConnectionHealthStatus): boolean; export declare const TOOL_CATALOG_ENTRY_KINDS: readonly ["tool", "resource", "prompt"]; export type ToolCatalogEntryKind = (typeof TOOL_CATALOG_ENTRY_KINDS)[number]; export declare const TOOL_CATALOG_ENTRY_STATUSES: readonly ["active", "disabled", "quarantined", "removed"]; export type ToolCatalogEntryStatus = (typeof TOOL_CATALOG_ENTRY_STATUSES)[number]; export declare const TOOL_RISK_LEVELS: readonly ["low", "medium", "high", "critical", "read", "write", "destructive"]; export type ToolRiskLevel = (typeof TOOL_RISK_LEVELS)[number]; export declare const TOOL_PROFILE_STATUSES: readonly ["draft", "active", "disabled", "archived"]; export type ToolProfileStatus = (typeof TOOL_PROFILE_STATUSES)[number]; export declare const TOOL_PROFILE_DEFAULT_ACTIONS: readonly ["deny", "allow"]; export type ToolProfileDefaultAction = (typeof TOOL_PROFILE_DEFAULT_ACTIONS)[number]; export declare const TOOL_PROFILE_ENTRY_SELECTOR_TYPES: readonly ["application", "connection", "catalog_entry", "tool_name", "risk_level"]; export type ToolProfileEntrySelectorType = (typeof TOOL_PROFILE_ENTRY_SELECTOR_TYPES)[number]; export declare const TOOL_PROFILE_ENTRY_EFFECTS: readonly ["include", "exclude"]; export type ToolProfileEntryEffect = (typeof TOOL_PROFILE_ENTRY_EFFECTS)[number]; export declare const TOOL_PROFILE_BINDING_TARGET_TYPES: readonly ["company", "agent", "project", "routine", "issue", "gateway"]; export type ToolProfileBindingTargetType = (typeof TOOL_PROFILE_BINDING_TARGET_TYPES)[number]; export declare const TOOL_MCP_GATEWAY_STATUSES: readonly ["draft", "active", "disabled", "archived"]; export type ToolMcpGatewayStatus = (typeof TOOL_MCP_GATEWAY_STATUSES)[number]; export declare const TOOL_MCP_GATEWAY_DEFAULT_PROFILE_MODES: readonly ["gateway_only", "inherit_context_then_gateway", "gateway_then_context"]; export type ToolMcpGatewayDefaultProfileMode = (typeof TOOL_MCP_GATEWAY_DEFAULT_PROFILE_MODES)[number]; export declare const TOOL_MCP_GATEWAY_CONTEXT_SCOPE_TYPES: readonly ["none", "company", "project", "routine", "issue", "agent"]; export type ToolMcpGatewayContextScopeType = (typeof TOOL_MCP_GATEWAY_CONTEXT_SCOPE_TYPES)[number]; export declare const TOOL_MCP_GATEWAY_TOKEN_SUBJECT_TYPES: readonly ["gateway_client", "heartbeat_run", "board_user", "agent"]; export type ToolMcpGatewayTokenSubjectType = (typeof TOOL_MCP_GATEWAY_TOKEN_SUBJECT_TYPES)[number]; export declare const TOOL_MCP_GATEWAY_TOKEN_ACTIONS: readonly ["tools/list", "tools/call", "resources/list", "resources/read", "prompts/list", "prompts/get"]; export type ToolMcpGatewayTokenAction = (typeof TOOL_MCP_GATEWAY_TOKEN_ACTIONS)[number]; export declare const CONNECTION_TOKEN_ISSUANCE_PATHS: readonly ["exchange", "oauth_access", "static"]; export type ConnectionTokenIssuancePath = (typeof CONNECTION_TOKEN_ISSUANCE_PATHS)[number]; export declare const CONNECTION_TOKEN_ISSUANCE_OUTCOMES: readonly ["success", "denied", "rate_limited", "use_env_lease", "upstream_error", "failure"]; export type ConnectionTokenIssuanceOutcome = (typeof CONNECTION_TOKEN_ISSUANCE_OUTCOMES)[number]; export declare const TOOL_POLICY_TYPES: readonly ["allow", "block", "require_approval", "trust_rule", "rate_limit"]; export type ToolPolicyType = (typeof TOOL_POLICY_TYPES)[number]; export declare const TOOL_POLICY_DECISIONS: readonly ["allow", "deny", "require_approval", "rate_limited", "defer_runtime"]; export type ToolPolicyDecision = (typeof TOOL_POLICY_DECISIONS)[number]; export declare const TOOL_INVOCATION_STATUSES: readonly ["pending", "authorized", "denied", "awaiting_approval", "executing", "succeeded", "failed", "cancelled", "timed_out", "rate_limited"]; export type ToolInvocationStatus = (typeof TOOL_INVOCATION_STATUSES)[number]; export declare const TOOL_INVOCATION_APPROVAL_STATES: readonly ["not_required", "required", "pending", "approved", "rejected", "expired"]; export type ToolInvocationApprovalState = (typeof TOOL_INVOCATION_APPROVAL_STATES)[number]; export declare const TOOL_ACTION_REQUEST_STATUSES: readonly ["pending", "approved", "executing", "rejected", "expired", "cancelled", "executed", "failed"]; export type ToolActionRequestStatus = (typeof TOOL_ACTION_REQUEST_STATUSES)[number]; export declare const TOOL_AUDIT_EVENT_TYPES: readonly ["discovery", "policy_decision", "invocation_created", "call_started", "call_completed", "call_failed", "call_denied", "approval_requested", "approval_resolved", "session_revoked", "trust_rule_created", "trust_rule_revoked", "trust_rule_used", "runtime_started", "runtime_stopped", "rate_limited"]; export type ToolAuditEventType = (typeof TOOL_AUDIT_EVENT_TYPES)[number]; export declare const TOOL_AUDIT_OUTCOMES: readonly ["pending", "success", "failure", "denied", "timeout", "cancelled"]; export type ToolAuditOutcome = (typeof TOOL_AUDIT_OUTCOMES)[number]; /** * Connection-level lifecycle events surfaced on the per-app Activity tab * alongside tool-call events (PAP-11284). These are derived from the * company activity log rows scoped to a single tool connection. */ export declare const TOOL_CONNECTION_LIFECYCLE_EVENT_TYPES: readonly ["app_connected", "app_paused", "app_resumed", "allowlist_changed", "reconnected", "disconnected", "actions_quarantined"]; export type ToolConnectionLifecycleEventType = (typeof TOOL_CONNECTION_LIFECYCLE_EVENT_TYPES)[number]; export declare const TOOL_RUNTIME_KINDS: readonly ["remote_session", "local_stdio"]; export type ToolRuntimeKind = (typeof TOOL_RUNTIME_KINDS)[number]; export declare const TOOL_RUNTIME_SLOT_STATUSES: readonly ["starting", "running", "idle", "stopped", "failed", "disabled", "error"]; export type ToolRuntimeSlotStatus = (typeof TOOL_RUNTIME_SLOT_STATUSES)[number]; export declare const TOOL_RATE_LIMIT_WINDOW_KINDS: readonly ["minute", "hour", "day", "month"]; export type ToolRateLimitWindowKind = (typeof TOOL_RATE_LIMIT_WINDOW_KINDS)[number]; export declare const TOOL_ACCESS_ACTIVITY_ACTIONS: readonly ["tool_application.created", "tool_application.updated", "tool_application.archived", "tool_connection.created", "tool_connection.updated", "tool_connection.tested", "tool_connection.catalog_refreshed", "tool_profile.created", "tool_profile.updated", "tool_profile.duplicated", "tool_profile.deleted", "tool_profile.new_tools_reviewed", "tool_profile.bound", "tool_profile.unbound", "tool_policy.created", "tool_policy.updated", "tool_policy.disabled", "tool_trust_rule.created", "tool_trust_rule.revoked", "tool_runtime_slot.started", "tool_runtime_slot.stopped", "tool_action_request.created", "tool_action_request.resolved"]; export type ToolAccessActivityAction = (typeof TOOL_ACCESS_ACTIVITY_ACTIONS)[number]; /** * The current version of the Plugin API contract. * * Increment this value whenever a breaking change is made to the plugin API * so that the host can reject incompatible plugin manifests. * * @see PLUGIN_SPEC.md §4 — Versioning */ export declare const PLUGIN_API_VERSION: 1; /** * Lifecycle statuses for an installed plugin. * * State machine: installed → ready | error, ready → disabled | error | upgrade_pending | uninstalled, * disabled → ready | uninstalled, error → ready | uninstalled, * upgrade_pending → ready | error | uninstalled, uninstalled → installed (reinstall). * * @see {@link PluginStatus} — inferred union type * @see PLUGIN_SPEC.md §21.3 `plugins.status` */ export declare const PLUGIN_STATUSES: readonly ["installed", "ready", "disabled", "error", "upgrade_pending", "uninstalled"]; export type PluginStatus = (typeof PLUGIN_STATUSES)[number]; /** * Plugin classification categories. A plugin declares one or more categories * in its manifest to describe its primary purpose. * * @see PLUGIN_SPEC.md §6.2 */ export declare const PLUGIN_CATEGORIES: readonly ["connector", "workspace", "automation", "ui"]; export type PluginCategory = (typeof PLUGIN_CATEGORIES)[number]; /** * Named permissions the host grants to a plugin. Plugins declare required * capabilities in their manifest; the host enforces them at runtime via the * plugin capability validator. * * Grouped into: Data Read, Data Write, Plugin State, Runtime/Integration, * Agent Tools, and UI. * * @see PLUGIN_SPEC.md §15 — Capability Model */ export declare const PLUGIN_CAPABILITIES: readonly ["ai.connections.route", "companies.read", "projects.read", "project.workspaces.read", "execution.workspaces.read", "issues.read", "issue.relations.read", "issue.subtree.read", "issue.comments.read", "issue.interactions.read", "issue.attachments.read", "approvals.read", "issue.documents.read", "agents.read", "agents.lifecycle.manage", "goals.read", "goals.create", "goals.update", "activity.read", "costs.read", "issues.orchestration.read", "access.members.read", "access.invites.read", "authorization.grants.read", "authorization.policies.read", "authorization.audit.read", "database.namespace.read", "issues.create", "issues.update", "issue.relations.write", "issues.checkout", "issues.wakeup", "issue.comments.create", "issue.comments.create_human_attributed", "issue.interactions.create", "issue.interactions.respond", "approvals.respond", "issue.documents.write", "projects.managed", "routines.managed", "skills.managed", "agents.pause", "agents.resume", "agents.invoke", "agents.managed", "access.members.write", "access.invites.write", "authorization.grants.write", "authorization.policies.write", "agent.sessions.create", "agent.sessions.list", "agent.sessions.send", "agent.sessions.close", "activity.log.write", "metrics.write", "telemetry.track", "database.namespace.migrate", "database.namespace.write", "external.objects.detect", "external.objects.read", "external.objects.write", "external.objects.refresh", "plugin.state.read", "plugin.state.write", "events.subscribe", "events.emit", "jobs.schedule", "webhooks.receive", "api.routes.register", "http.outbound", "secrets.read-ref", "environment.drivers.register", "local.folders", "agent.tools.register", "instance.settings.register", "ui.sidebar.register", "ui.page.register", "ui.detailTab.register", "ui.dashboardWidget.register", "ui.commentAnnotation.register", "ui.action.register"]; export type PluginCapability = (typeof PLUGIN_CAPABILITIES)[number]; export declare const PLUGIN_DATABASE_NAMESPACE_MODES: readonly ["schema"]; export type PluginDatabaseNamespaceMode = (typeof PLUGIN_DATABASE_NAMESPACE_MODES)[number]; export declare const PLUGIN_DATABASE_NAMESPACE_STATUSES: readonly ["active", "migration_failed"]; export type PluginDatabaseNamespaceStatus = (typeof PLUGIN_DATABASE_NAMESPACE_STATUSES)[number]; export declare const PLUGIN_DATABASE_MIGRATION_STATUSES: readonly ["applied", "failed"]; export type PluginDatabaseMigrationStatus = (typeof PLUGIN_DATABASE_MIGRATION_STATUSES)[number]; export declare const PLUGIN_DATABASE_CORE_READ_TABLES: readonly ["companies", "projects", "goals", "agents", "issues", "issue_documents", "issue_relations", "issue_comments", "heartbeat_runs", "cost_events", "approvals", "issue_approvals", "budget_incidents"]; export type PluginDatabaseCoreReadTable = (typeof PLUGIN_DATABASE_CORE_READ_TABLES)[number]; export declare const PLUGIN_API_ROUTE_METHODS: readonly ["GET", "POST", "PATCH", "DELETE"]; export type PluginApiRouteMethod = (typeof PLUGIN_API_ROUTE_METHODS)[number]; export declare const PLUGIN_API_ROUTE_AUTH_MODES: readonly ["board", "agent", "board-or-agent", "webhook"]; export type PluginApiRouteAuthMode = (typeof PLUGIN_API_ROUTE_AUTH_MODES)[number]; export declare const PLUGIN_API_ROUTE_CHECKOUT_POLICIES: readonly ["none", "required-for-agent-in-progress", "always-for-agent"]; export type PluginApiRouteCheckoutPolicy = (typeof PLUGIN_API_ROUTE_CHECKOUT_POLICIES)[number]; /** * UI extension slot types. Each slot type corresponds to a mount point in the * Paperclip UI where plugin components can be rendered. * * @see PLUGIN_SPEC.md §19 — UI Extension Model */ export declare const PLUGIN_UI_SLOT_TYPES: readonly ["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "routeSidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "appShellOverlay", "organizationSwitcher", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage", "companySettingsPage"]; export type PluginUiSlotType = (typeof PLUGIN_UI_SLOT_TYPES)[number]; export declare const WORKSPACE_OVERVIEW_DEFAULT_LIMIT = 50; export declare const WORKSPACE_OVERVIEW_MAX_LIMIT = 100; export declare const WORKSPACE_OVERVIEW_LINKED_ISSUE_LIMIT = 4; /** * Reserved company-scoped route segments that plugin page routes may not claim. * * These map to first-class host pages under `/:companyPrefix/...`. */ export declare const PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS: readonly ["dashboard", "onboarding", "companies", "company", "settings", "plugins", "org", "agents", "projects", "issues", "goals", "approvals", "costs", "activity", "inbox", "workspaces", "design-guide", "tests"]; export type PluginReservedCompanyRouteSegment = (typeof PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS)[number]; /** * Reserved route segments under `/:companyPrefix/company/settings/...` that * plugin company settings pages may not claim. */ export declare const PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS: readonly ["general", "environments", "access", "members", "invites", "secrets", "instance"]; export type PluginReservedCompanySettingsRouteSegment = (typeof PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS)[number]; /** * Launcher placement zones describe where a plugin-owned launcher can appear * in the host UI. These are intentionally aligned with current slot surfaces * so manifest authors can describe launch intent without coupling to a single * component implementation detail. */ export declare const PLUGIN_LAUNCHER_PLACEMENT_ZONES: readonly ["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]; export type PluginLauncherPlacementZone = (typeof PLUGIN_LAUNCHER_PLACEMENT_ZONES)[number]; /** * Launcher action kinds describe what the launcher does when activated. */ export declare const PLUGIN_LAUNCHER_ACTIONS: readonly ["navigate", "openModal", "openDrawer", "openPopover", "performAction", "deepLink"]; export type PluginLauncherAction = (typeof PLUGIN_LAUNCHER_ACTIONS)[number]; /** * Optional size hints the host can use when rendering plugin-owned launcher * destinations such as overlays, drawers, or full page handoffs. */ export declare const PLUGIN_LAUNCHER_BOUNDS: readonly ["inline", "compact", "default", "wide", "full"]; export type PluginLauncherBounds = (typeof PLUGIN_LAUNCHER_BOUNDS)[number]; /** * Render environments describe the container a launcher expects after it is * activated. The current host may map these to concrete UI primitives. */ export declare const PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS: readonly ["hostInline", "hostOverlay", "hostRoute", "external", "iframe"]; export type PluginLauncherRenderEnvironment = (typeof PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS)[number]; /** * Entity types that a `detailTab` UI slot can attach to. * * @see PLUGIN_SPEC.md §19.3 — Detail Tabs */ export declare const PLUGIN_UI_SLOT_ENTITY_TYPES: readonly ["project", "issue", "agent", "goal", "run", "comment", "execution_workspace", "project_workspace"]; export type PluginUiSlotEntityType = (typeof PLUGIN_UI_SLOT_ENTITY_TYPES)[number]; /** * Scope kinds for plugin state storage. Determines the granularity at which * a plugin stores key-value state data. * * @see PLUGIN_SPEC.md §21.3 `plugin_state.scope_kind` */ export declare const PLUGIN_STATE_SCOPE_KINDS: readonly ["instance", "company", "project", "project_workspace", "agent", "issue", "goal", "run"]; export type PluginStateScopeKind = (typeof PLUGIN_STATE_SCOPE_KINDS)[number]; /** Statuses for a plugin's scheduled job definition. */ export declare const PLUGIN_JOB_STATUSES: readonly ["active", "paused", "failed"]; export type PluginJobStatus = (typeof PLUGIN_JOB_STATUSES)[number]; /** Statuses for individual job run executions. */ export declare const PLUGIN_JOB_RUN_STATUSES: readonly ["pending", "queued", "running", "succeeded", "failed", "cancelled"]; export type PluginJobRunStatus = (typeof PLUGIN_JOB_RUN_STATUSES)[number]; /** What triggered a particular job run. */ export declare const PLUGIN_JOB_RUN_TRIGGERS: readonly ["schedule", "manual", "retry"]; export type PluginJobRunTrigger = (typeof PLUGIN_JOB_RUN_TRIGGERS)[number]; /** Statuses for inbound webhook deliveries. */ export declare const PLUGIN_WEBHOOK_DELIVERY_STATUSES: readonly ["pending", "success", "failed"]; export type PluginWebhookDeliveryStatus = (typeof PLUGIN_WEBHOOK_DELIVERY_STATUSES)[number]; /** * Core domain event types that plugins can subscribe to via the * `events.subscribe` capability. * * @see PLUGIN_SPEC.md §16 — Event System */ export declare const PLUGIN_EVENT_TYPES: readonly ["company.created", "company.updated", "project.created", "project.updated", "project.workspace_created", "project.workspace_updated", "project.workspace_deleted", "issue.created", "issue.updated", "issue.comment.created", "issue.document.created", "issue.document.updated", "issue.document.deleted", "issue.relations.updated", "issue.checked_out", "issue.released", "issue.assignment_wakeup_requested", "agent.created", "agent.updated", "agent.status_changed", "agent.error_cleared", "agent.run.started", "agent.run.finished", "agent.run.failed", "agent.run.cancelled", "goal.created", "goal.updated", "approval.created", "approval.decided", "budget.incident.opened", "budget.incident.resolved", "cost_event.created", "activity.logged"]; export type PluginEventType = (typeof PLUGIN_EVENT_TYPES)[number]; /** * Error codes returned by the plugin bridge when a UI → worker call fails. * * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge */ export declare const PLUGIN_BRIDGE_ERROR_CODES: readonly ["WORKER_UNAVAILABLE", "CAPABILITY_DENIED", "INVOCATION_SCOPE_DENIED", "WORKER_ERROR", "TIMEOUT", "UNKNOWN"]; export type PluginBridgeErrorCode = (typeof PLUGIN_BRIDGE_ERROR_CODES)[number]; //# sourceMappingURL=constants.d.ts.map