@stina/extension-api 0.28.1-alpha.7320739 → 0.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/runtime.d.cts +2 -2
- package/dist/runtime.d.ts +2 -2
- package/dist/schemas/index.cjs +0 -30
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.cts +1 -387
- package/dist/schemas/index.d.ts +1 -387
- package/dist/schemas/index.js +0 -26
- package/dist/schemas/index.js.map +1 -1
- package/dist/{types.tools-DnJGW5Qi.d.cts → types.tools-ymsggUiN.d.cts} +8 -40
- package/dist/{types.tools-DnJGW5Qi.d.ts → types.tools-ymsggUiN.d.ts} +8 -40
- package/package.json +1 -1
- package/src/index.ts +0 -6
- package/src/schemas/components.schema.ts +0 -41
- package/src/schemas/index.ts +0 -8
- package/src/types.components.ts +7 -48
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/types.localization.ts","../src/messages.ts"],"sourcesContent":["/**\n * @stina/extension-api\n *\n * Types and utilities for building Stina extensions.\n *\n * Extensions should import from this package for type definitions.\n * The runtime (worker-side code) should import from '@stina/extension-api/runtime'.\n */\n\n// Localization\nexport type { LocalizedString } from './types.js'\nexport { resolveLocalizedString } from './types.js'\n\n// Types\nexport type {\n // Manifest\n ExtensionManifest,\n Platform,\n ExtensionContributions,\n SettingDefinition,\n SettingOptionsMapping,\n SettingCreateMapping,\n ToolSettingsViewDefinition,\n ToolSettingsView,\n ToolSettingsListView,\n ToolSettingsListMapping,\n ToolSettingsComponentView,\n ToolSettingsActionDataSource,\n PanelDefinition,\n PanelView,\n PanelComponentView,\n PanelActionDataSource,\n PanelUnknownView,\n ProviderDefinition,\n PromptContribution,\n PromptSection,\n ToolDefinition,\n ToolConfirmationConfig,\n CommandDefinition,\n\n // Provider Configuration Schema\n ProviderConfigSchema,\n ProviderConfigProperty,\n ProviderConfigPropertyType,\n ProviderConfigSelectOption,\n ProviderConfigValidation,\n\n // Permissions\n Permission,\n NetworkPermission,\n StoragePermission,\n UserDataPermission,\n CapabilityPermission,\n SystemPermission,\n\n // Context\n ExtensionContext,\n Disposable,\n NetworkAPI,\n SettingsAPI,\n ProvidersAPI,\n ToolsAPI,\n ActionsAPI,\n EventsAPI,\n SchedulerAPI,\n SchedulerJobRequest,\n SchedulerSchedule,\n SchedulerFirePayload,\n UserAPI,\n UserProfile,\n ChatAPI,\n ChatInstructionMessage,\n LogAPI,\n\n // Background workers\n BackgroundWorkersAPI,\n BackgroundTaskConfig,\n BackgroundTaskCallback,\n BackgroundTaskContext,\n BackgroundTaskHealth,\n BackgroundRestartPolicy,\n\n // Storage and Secrets\n Query,\n QueryOptions,\n StorageAPI,\n SecretsAPI,\n StorageCollectionConfig,\n StorageContributions,\n\n // AI Provider\n AIProvider,\n ModelInfo,\n ChatMessage,\n ChatOptions,\n GetModelsOptions,\n StreamEvent,\n ToolCall,\n\n // Tools\n Tool,\n ToolResult,\n\n // Actions\n Action,\n ActionResult,\n\n // Entry point\n ExtensionModule,\n} from './types.js'\n\n// Messages (for host implementation)\nexport type {\n HostToWorkerMessage,\n WorkerToHostMessage,\n ActivateMessage,\n DeactivateMessage,\n SettingsChangedMessage,\n ProviderChatRequestMessage,\n ProviderModelsRequestMessage,\n ToolExecuteRequestMessage,\n ToolExecuteResponseMessage,\n ActionExecuteRequestMessage,\n ActionExecuteResponseMessage,\n ResponseMessage,\n ReadyMessage,\n RequestMessage,\n RequestMethod,\n ProviderRegisteredMessage,\n ToolRegisteredMessage,\n ActionRegisteredMessage,\n StreamEventMessage,\n LogMessage,\n PendingRequest,\n // Background task messages\n BackgroundTaskStartMessage,\n BackgroundTaskStopMessage,\n BackgroundTaskRegisteredMessage,\n BackgroundTaskStatusMessage,\n BackgroundTaskHealthMessage,\n} from './messages.js'\n\nexport { generateMessageId } from './messages.js'\n\n// Component types (for extension UI components)\nexport type {\n // Icon Names\n HugeIconName,\n // Styling\n AllowedCSSProperty,\n ExtensionComponentStyle,\n // Base types\n ExtensionComponentData,\n // Iteration & Children\n ExtensionComponentIterator,\n ExtensionComponentChildren,\n // Actions\n ExtensionActionCall,\n ExtensionActionRef,\n // Data Sources & Panel Definition\n ExtensionDataSource,\n ExtensionPanelDefinition,\n // Component Props\n HeaderProps,\n LabelProps,\n ParagraphProps,\n ButtonProps,\n TextInputProps,\n DateTimeInputProps,\n SelectProps,\n IconPickerProps,\n VerticalStackProps,\n HorizontalStackProps,\n GridProps,\n DividerProps,\n IconProps,\n IconButtonType,\n IconButtonProps,\n PanelAction,\n PanelProps,\n ToggleProps,\n CollapsibleProps,\n FrameVariant,\n FrameProps,\n ListProps,\n PillVariant,\n PillProps,\n CheckboxProps,\n MarkdownProps,\n TextPreviewProps,\n ModalProps,\n ConditionalGroupProps,\n} from './types.components.js'\n","/**\n * Localization Types\n *\n * Types and utilities for localized strings in extensions.\n */\n\n/**\n * A string that can be either a simple string or a map of language codes to localized strings.\n * When a simple string is provided, it's used as the default/fallback value.\n * When a map is provided, the appropriate language is selected at runtime.\n *\n * @example\n * // Simple string (backwards compatible)\n * name: \"Get Weather\"\n *\n * @example\n * // Localized strings\n * name: { en: \"Get Weather\", sv: \"Hämta väder\", de: \"Wetter abrufen\" }\n */\nexport type LocalizedString = string | Record<string, string>\n\n/**\n * Resolves a LocalizedString to an actual string value.\n * @param value The LocalizedString to resolve\n * @param lang The preferred language code (e.g., \"sv\", \"en\")\n * @param fallbackLang The fallback language code (defaults to \"en\")\n * @returns The resolved string value\n */\nexport function resolveLocalizedString(\n value: LocalizedString,\n lang: string,\n fallbackLang = 'en'\n): string {\n if (typeof value === 'string') {\n return value\n }\n // Try preferred language first, then fallback language, then first available, then empty string\n return value[lang] ?? value[fallbackLang] ?? Object.values(value)[0] ?? ''\n}\n","/**\n * Message protocol between Extension Host and Extension Workers\n */\n\nimport type {\n ChatMessage,\n ChatOptions,\n GetModelsOptions,\n StreamEvent,\n ToolResult,\n ActionResult,\n ModelInfo,\n SchedulerFirePayload,\n} from './types.js'\n\n// ============================================================================\n// Host → Worker Messages\n// ============================================================================\n\nexport type HostToWorkerMessage =\n | ActivateMessage\n | DeactivateMessage\n | SettingsChangedMessage\n | SchedulerFireMessage\n | ProviderChatRequestMessage\n | ProviderModelsRequestMessage\n | ToolExecuteRequestMessage\n | ActionExecuteRequestMessage\n | ResponseMessage\n | StreamingFetchChunkMessage\n | BackgroundTaskStartMessage\n | BackgroundTaskStopMessage\n\nexport interface ActivateMessage {\n type: 'activate'\n id: string\n payload: {\n extensionId: string\n extensionVersion: string\n storagePath: string\n permissions: string[]\n settings: Record<string, unknown>\n }\n}\n\nexport interface DeactivateMessage {\n type: 'deactivate'\n id: string\n}\n\nexport interface SettingsChangedMessage {\n type: 'settings-changed'\n id: string\n payload: {\n key: string\n value: unknown\n }\n}\n\nexport interface SchedulerFireMessage {\n type: 'scheduler-fire'\n id: string\n payload: SchedulerFirePayload\n}\n\nexport interface ProviderChatRequestMessage {\n type: 'provider-chat-request'\n id: string\n payload: {\n providerId: string\n messages: ChatMessage[]\n options: ChatOptions\n }\n}\n\nexport interface ProviderModelsRequestMessage {\n type: 'provider-models-request'\n id: string\n payload: {\n providerId: string\n options?: GetModelsOptions\n }\n}\n\nexport interface ToolExecuteRequestMessage {\n type: 'tool-execute-request'\n id: string\n payload: {\n toolId: string\n params: Record<string, unknown>\n /** User ID if the tool is executed in a user context */\n userId?: string\n }\n}\n\nexport interface ActionExecuteRequestMessage {\n type: 'action-execute-request'\n id: string\n payload: {\n actionId: string\n params: Record<string, unknown>\n /** User ID if the action is executed in a user context */\n userId?: string\n }\n}\n\nexport interface ResponseMessage {\n type: 'response'\n id: string\n payload: {\n requestId: string\n success: boolean\n data?: unknown\n error?: string\n }\n}\n\n/**\n * Message sent from host to worker with streaming fetch data chunks.\n * Used for streaming network responses (e.g., NDJSON streams from Ollama).\n */\nexport interface StreamingFetchChunkMessage {\n type: 'streaming-fetch-chunk'\n id: string\n payload: {\n requestId: string\n chunk: string\n done: boolean\n error?: string\n }\n}\n\n/**\n * Message sent from host to worker to start a registered background task.\n */\nexport interface BackgroundTaskStartMessage {\n type: 'background-task-start'\n id: string\n payload: {\n taskId: string\n }\n}\n\n/**\n * Message sent from host to worker to stop a running background task.\n */\nexport interface BackgroundTaskStopMessage {\n type: 'background-task-stop'\n id: string\n payload: {\n taskId: string\n }\n}\n\n// ============================================================================\n// Worker → Host Messages\n// ============================================================================\n\nexport type WorkerToHostMessage =\n | ReadyMessage\n | RequestMessage\n | ProviderRegisteredMessage\n | ToolRegisteredMessage\n | ActionRegisteredMessage\n | StreamEventMessage\n | LogMessage\n | ProviderModelsResponseMessage\n | ToolExecuteResponseMessage\n | ActionExecuteResponseMessage\n | StreamingFetchAckMessage\n | BackgroundTaskRegisteredMessage\n | BackgroundTaskStatusMessage\n | BackgroundTaskHealthMessage\n\nexport interface ReadyMessage {\n type: 'ready'\n}\n\n/**\n * Message sent from worker to host to acknowledge receipt of a streaming fetch chunk.\n * This enables backpressure control to prevent unbounded memory growth.\n */\nexport interface StreamingFetchAckMessage {\n type: 'streaming-fetch-ack'\n payload: {\n requestId: string\n }\n}\n\nexport interface RequestMessage {\n type: 'request'\n id: string\n method: RequestMethod\n payload: unknown\n}\n\nexport type RequestMethod =\n | 'network.fetch'\n | 'network.fetch-stream'\n | 'settings.getAll'\n | 'settings.get'\n | 'settings.set'\n | 'user.getProfile'\n | 'events.emit'\n | 'scheduler.schedule'\n | 'scheduler.cancel'\n | 'scheduler.reportFireResult'\n | 'chat.appendInstruction'\n | 'database.execute'\n // Simple key-value storage methods\n | 'storage.set'\n | 'storage.keys'\n | 'storage.setForUser'\n | 'storage.keysForUser'\n // Collection-based storage methods\n | 'storage.put'\n | 'storage.get'\n | 'storage.delete'\n | 'storage.find'\n | 'storage.findOne'\n | 'storage.count'\n | 'storage.putMany'\n | 'storage.deleteMany'\n | 'storage.dropCollection'\n | 'storage.listCollections'\n | 'storage.putForUser'\n | 'storage.getForUser'\n | 'storage.deleteForUser'\n | 'storage.findForUser'\n | 'storage.findOneForUser'\n | 'storage.countForUser'\n | 'storage.putManyForUser'\n | 'storage.deleteManyForUser'\n | 'storage.dropCollectionForUser'\n | 'storage.listCollectionsForUser'\n // Secrets methods\n | 'secrets.set'\n | 'secrets.get'\n | 'secrets.delete'\n | 'secrets.list'\n | 'secrets.setForUser'\n | 'secrets.getForUser'\n | 'secrets.deleteForUser'\n | 'secrets.listForUser'\n\nexport interface ProviderRegisteredMessage {\n type: 'provider-registered'\n payload: {\n id: string\n name: string\n }\n}\n\nexport interface ToolRegisteredMessage {\n type: 'tool-registered'\n payload: {\n id: string\n name: string\n description: string\n parameters?: Record<string, unknown>\n }\n}\n\nexport interface ActionRegisteredMessage {\n type: 'action-registered'\n payload: {\n id: string\n }\n}\n\nexport interface StreamEventMessage {\n type: 'stream-event'\n payload: {\n requestId: string\n event: StreamEvent\n }\n}\n\nexport interface ProviderModelsResponseMessage {\n type: 'provider-models-response'\n payload: {\n requestId: string\n models: ModelInfo[]\n error?: string\n }\n}\n\nexport interface ToolExecuteResponseMessage {\n type: 'tool-execute-response'\n payload: {\n requestId: string\n result: ToolResult\n error?: string\n }\n}\n\nexport interface ActionExecuteResponseMessage {\n type: 'action-execute-response'\n payload: {\n requestId: string\n result: ActionResult\n error?: string\n }\n}\n\nexport interface LogMessage {\n type: 'log'\n payload: {\n level: 'debug' | 'info' | 'warn' | 'error'\n message: string\n data?: Record<string, unknown>\n }\n}\n\n/**\n * Message sent from worker to host when a background task is registered.\n */\nexport interface BackgroundTaskRegisteredMessage {\n type: 'background-task-registered'\n payload: {\n taskId: string\n name: string\n userId: string\n restartPolicy: {\n type: 'always' | 'on-failure' | 'never'\n maxRestarts?: number\n initialDelayMs?: number\n maxDelayMs?: number\n backoffMultiplier?: number\n }\n payload?: Record<string, unknown>\n }\n}\n\n/**\n * Message sent from worker to host with background task status updates.\n */\nexport interface BackgroundTaskStatusMessage {\n type: 'background-task-status'\n payload: {\n taskId: string\n status: 'running' | 'stopped' | 'failed'\n error?: string\n }\n}\n\n/**\n * Message sent from worker to host with background task health reports.\n */\nexport interface BackgroundTaskHealthMessage {\n type: 'background-task-health'\n payload: {\n taskId: string\n status: string\n timestamp: string\n }\n}\n\n// ============================================================================\n// Utility Types\n// ============================================================================\n\nexport interface PendingRequest<T = unknown> {\n resolve: (value: T) => void\n reject: (error: Error) => void\n timeout: ReturnType<typeof setTimeout>\n}\n\n/**\n * Generate a unique message ID\n */\nexport function generateMessageId(): string {\n return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC4BO,SAAS,uBACd,OACA,MACA,eAAe,MACP;AACR,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,IAAI,KAAK,MAAM,YAAY,KAAK,OAAO,OAAO,KAAK,EAAE,CAAC,KAAK;AAC1E;;;AC6UO,SAAS,oBAA4B;AAC1C,SAAO,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AACjE;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/types.localization.ts","../src/messages.ts"],"sourcesContent":["/**\n * @stina/extension-api\n *\n * Types and utilities for building Stina extensions.\n *\n * Extensions should import from this package for type definitions.\n * The runtime (worker-side code) should import from '@stina/extension-api/runtime'.\n */\n\n// Localization\nexport type { LocalizedString } from './types.js'\nexport { resolveLocalizedString } from './types.js'\n\n// Types\nexport type {\n // Manifest\n ExtensionManifest,\n Platform,\n ExtensionContributions,\n SettingDefinition,\n SettingOptionsMapping,\n SettingCreateMapping,\n ToolSettingsViewDefinition,\n ToolSettingsView,\n ToolSettingsListView,\n ToolSettingsListMapping,\n ToolSettingsComponentView,\n ToolSettingsActionDataSource,\n PanelDefinition,\n PanelView,\n PanelComponentView,\n PanelActionDataSource,\n PanelUnknownView,\n ProviderDefinition,\n PromptContribution,\n PromptSection,\n ToolDefinition,\n ToolConfirmationConfig,\n CommandDefinition,\n\n // Provider Configuration Schema\n ProviderConfigSchema,\n ProviderConfigProperty,\n ProviderConfigPropertyType,\n ProviderConfigSelectOption,\n ProviderConfigValidation,\n\n // Permissions\n Permission,\n NetworkPermission,\n StoragePermission,\n UserDataPermission,\n CapabilityPermission,\n SystemPermission,\n\n // Context\n ExtensionContext,\n Disposable,\n NetworkAPI,\n SettingsAPI,\n ProvidersAPI,\n ToolsAPI,\n ActionsAPI,\n EventsAPI,\n SchedulerAPI,\n SchedulerJobRequest,\n SchedulerSchedule,\n SchedulerFirePayload,\n UserAPI,\n UserProfile,\n ChatAPI,\n ChatInstructionMessage,\n LogAPI,\n\n // Background workers\n BackgroundWorkersAPI,\n BackgroundTaskConfig,\n BackgroundTaskCallback,\n BackgroundTaskContext,\n BackgroundTaskHealth,\n BackgroundRestartPolicy,\n\n // Storage and Secrets\n Query,\n QueryOptions,\n StorageAPI,\n SecretsAPI,\n StorageCollectionConfig,\n StorageContributions,\n\n // AI Provider\n AIProvider,\n ModelInfo,\n ChatMessage,\n ChatOptions,\n GetModelsOptions,\n StreamEvent,\n ToolCall,\n\n // Tools\n Tool,\n ToolResult,\n\n // Actions\n Action,\n ActionResult,\n\n // Entry point\n ExtensionModule,\n} from './types.js'\n\n// Messages (for host implementation)\nexport type {\n HostToWorkerMessage,\n WorkerToHostMessage,\n ActivateMessage,\n DeactivateMessage,\n SettingsChangedMessage,\n ProviderChatRequestMessage,\n ProviderModelsRequestMessage,\n ToolExecuteRequestMessage,\n ToolExecuteResponseMessage,\n ActionExecuteRequestMessage,\n ActionExecuteResponseMessage,\n ResponseMessage,\n ReadyMessage,\n RequestMessage,\n RequestMethod,\n ProviderRegisteredMessage,\n ToolRegisteredMessage,\n ActionRegisteredMessage,\n StreamEventMessage,\n LogMessage,\n PendingRequest,\n // Background task messages\n BackgroundTaskStartMessage,\n BackgroundTaskStopMessage,\n BackgroundTaskRegisteredMessage,\n BackgroundTaskStatusMessage,\n BackgroundTaskHealthMessage,\n} from './messages.js'\n\nexport { generateMessageId } from './messages.js'\n\n// Component types (for extension UI components)\nexport type {\n // Styling\n AllowedCSSProperty,\n ExtensionComponentStyle,\n // Base types\n ExtensionComponentData,\n // Iteration & Children\n ExtensionComponentIterator,\n ExtensionComponentChildren,\n // Actions\n ExtensionActionCall,\n ExtensionActionRef,\n // Data Sources & Panel Definition\n ExtensionDataSource,\n ExtensionPanelDefinition,\n // Component Props\n HeaderProps,\n LabelProps,\n ParagraphProps,\n ButtonProps,\n TextInputProps,\n DateTimeInputProps,\n SelectProps,\n IconPickerProps,\n VerticalStackProps,\n HorizontalStackProps,\n GridProps,\n DividerProps,\n IconProps,\n IconButtonType,\n IconButtonProps,\n PanelAction,\n PanelProps,\n ToggleProps,\n CollapsibleProps,\n PillVariant,\n PillProps,\n CheckboxProps,\n MarkdownProps,\n ModalProps,\n ConditionalGroupProps,\n} from './types.components.js'\n","/**\n * Localization Types\n *\n * Types and utilities for localized strings in extensions.\n */\n\n/**\n * A string that can be either a simple string or a map of language codes to localized strings.\n * When a simple string is provided, it's used as the default/fallback value.\n * When a map is provided, the appropriate language is selected at runtime.\n *\n * @example\n * // Simple string (backwards compatible)\n * name: \"Get Weather\"\n *\n * @example\n * // Localized strings\n * name: { en: \"Get Weather\", sv: \"Hämta väder\", de: \"Wetter abrufen\" }\n */\nexport type LocalizedString = string | Record<string, string>\n\n/**\n * Resolves a LocalizedString to an actual string value.\n * @param value The LocalizedString to resolve\n * @param lang The preferred language code (e.g., \"sv\", \"en\")\n * @param fallbackLang The fallback language code (defaults to \"en\")\n * @returns The resolved string value\n */\nexport function resolveLocalizedString(\n value: LocalizedString,\n lang: string,\n fallbackLang = 'en'\n): string {\n if (typeof value === 'string') {\n return value\n }\n // Try preferred language first, then fallback language, then first available, then empty string\n return value[lang] ?? value[fallbackLang] ?? Object.values(value)[0] ?? ''\n}\n","/**\n * Message protocol between Extension Host and Extension Workers\n */\n\nimport type {\n ChatMessage,\n ChatOptions,\n GetModelsOptions,\n StreamEvent,\n ToolResult,\n ActionResult,\n ModelInfo,\n SchedulerFirePayload,\n} from './types.js'\n\n// ============================================================================\n// Host → Worker Messages\n// ============================================================================\n\nexport type HostToWorkerMessage =\n | ActivateMessage\n | DeactivateMessage\n | SettingsChangedMessage\n | SchedulerFireMessage\n | ProviderChatRequestMessage\n | ProviderModelsRequestMessage\n | ToolExecuteRequestMessage\n | ActionExecuteRequestMessage\n | ResponseMessage\n | StreamingFetchChunkMessage\n | BackgroundTaskStartMessage\n | BackgroundTaskStopMessage\n\nexport interface ActivateMessage {\n type: 'activate'\n id: string\n payload: {\n extensionId: string\n extensionVersion: string\n storagePath: string\n permissions: string[]\n settings: Record<string, unknown>\n }\n}\n\nexport interface DeactivateMessage {\n type: 'deactivate'\n id: string\n}\n\nexport interface SettingsChangedMessage {\n type: 'settings-changed'\n id: string\n payload: {\n key: string\n value: unknown\n }\n}\n\nexport interface SchedulerFireMessage {\n type: 'scheduler-fire'\n id: string\n payload: SchedulerFirePayload\n}\n\nexport interface ProviderChatRequestMessage {\n type: 'provider-chat-request'\n id: string\n payload: {\n providerId: string\n messages: ChatMessage[]\n options: ChatOptions\n }\n}\n\nexport interface ProviderModelsRequestMessage {\n type: 'provider-models-request'\n id: string\n payload: {\n providerId: string\n options?: GetModelsOptions\n }\n}\n\nexport interface ToolExecuteRequestMessage {\n type: 'tool-execute-request'\n id: string\n payload: {\n toolId: string\n params: Record<string, unknown>\n /** User ID if the tool is executed in a user context */\n userId?: string\n }\n}\n\nexport interface ActionExecuteRequestMessage {\n type: 'action-execute-request'\n id: string\n payload: {\n actionId: string\n params: Record<string, unknown>\n /** User ID if the action is executed in a user context */\n userId?: string\n }\n}\n\nexport interface ResponseMessage {\n type: 'response'\n id: string\n payload: {\n requestId: string\n success: boolean\n data?: unknown\n error?: string\n }\n}\n\n/**\n * Message sent from host to worker with streaming fetch data chunks.\n * Used for streaming network responses (e.g., NDJSON streams from Ollama).\n */\nexport interface StreamingFetchChunkMessage {\n type: 'streaming-fetch-chunk'\n id: string\n payload: {\n requestId: string\n chunk: string\n done: boolean\n error?: string\n }\n}\n\n/**\n * Message sent from host to worker to start a registered background task.\n */\nexport interface BackgroundTaskStartMessage {\n type: 'background-task-start'\n id: string\n payload: {\n taskId: string\n }\n}\n\n/**\n * Message sent from host to worker to stop a running background task.\n */\nexport interface BackgroundTaskStopMessage {\n type: 'background-task-stop'\n id: string\n payload: {\n taskId: string\n }\n}\n\n// ============================================================================\n// Worker → Host Messages\n// ============================================================================\n\nexport type WorkerToHostMessage =\n | ReadyMessage\n | RequestMessage\n | ProviderRegisteredMessage\n | ToolRegisteredMessage\n | ActionRegisteredMessage\n | StreamEventMessage\n | LogMessage\n | ProviderModelsResponseMessage\n | ToolExecuteResponseMessage\n | ActionExecuteResponseMessage\n | StreamingFetchAckMessage\n | BackgroundTaskRegisteredMessage\n | BackgroundTaskStatusMessage\n | BackgroundTaskHealthMessage\n\nexport interface ReadyMessage {\n type: 'ready'\n}\n\n/**\n * Message sent from worker to host to acknowledge receipt of a streaming fetch chunk.\n * This enables backpressure control to prevent unbounded memory growth.\n */\nexport interface StreamingFetchAckMessage {\n type: 'streaming-fetch-ack'\n payload: {\n requestId: string\n }\n}\n\nexport interface RequestMessage {\n type: 'request'\n id: string\n method: RequestMethod\n payload: unknown\n}\n\nexport type RequestMethod =\n | 'network.fetch'\n | 'network.fetch-stream'\n | 'settings.getAll'\n | 'settings.get'\n | 'settings.set'\n | 'user.getProfile'\n | 'events.emit'\n | 'scheduler.schedule'\n | 'scheduler.cancel'\n | 'scheduler.reportFireResult'\n | 'chat.appendInstruction'\n | 'database.execute'\n // Simple key-value storage methods\n | 'storage.set'\n | 'storage.keys'\n | 'storage.setForUser'\n | 'storage.keysForUser'\n // Collection-based storage methods\n | 'storage.put'\n | 'storage.get'\n | 'storage.delete'\n | 'storage.find'\n | 'storage.findOne'\n | 'storage.count'\n | 'storage.putMany'\n | 'storage.deleteMany'\n | 'storage.dropCollection'\n | 'storage.listCollections'\n | 'storage.putForUser'\n | 'storage.getForUser'\n | 'storage.deleteForUser'\n | 'storage.findForUser'\n | 'storage.findOneForUser'\n | 'storage.countForUser'\n | 'storage.putManyForUser'\n | 'storage.deleteManyForUser'\n | 'storage.dropCollectionForUser'\n | 'storage.listCollectionsForUser'\n // Secrets methods\n | 'secrets.set'\n | 'secrets.get'\n | 'secrets.delete'\n | 'secrets.list'\n | 'secrets.setForUser'\n | 'secrets.getForUser'\n | 'secrets.deleteForUser'\n | 'secrets.listForUser'\n\nexport interface ProviderRegisteredMessage {\n type: 'provider-registered'\n payload: {\n id: string\n name: string\n }\n}\n\nexport interface ToolRegisteredMessage {\n type: 'tool-registered'\n payload: {\n id: string\n name: string\n description: string\n parameters?: Record<string, unknown>\n }\n}\n\nexport interface ActionRegisteredMessage {\n type: 'action-registered'\n payload: {\n id: string\n }\n}\n\nexport interface StreamEventMessage {\n type: 'stream-event'\n payload: {\n requestId: string\n event: StreamEvent\n }\n}\n\nexport interface ProviderModelsResponseMessage {\n type: 'provider-models-response'\n payload: {\n requestId: string\n models: ModelInfo[]\n error?: string\n }\n}\n\nexport interface ToolExecuteResponseMessage {\n type: 'tool-execute-response'\n payload: {\n requestId: string\n result: ToolResult\n error?: string\n }\n}\n\nexport interface ActionExecuteResponseMessage {\n type: 'action-execute-response'\n payload: {\n requestId: string\n result: ActionResult\n error?: string\n }\n}\n\nexport interface LogMessage {\n type: 'log'\n payload: {\n level: 'debug' | 'info' | 'warn' | 'error'\n message: string\n data?: Record<string, unknown>\n }\n}\n\n/**\n * Message sent from worker to host when a background task is registered.\n */\nexport interface BackgroundTaskRegisteredMessage {\n type: 'background-task-registered'\n payload: {\n taskId: string\n name: string\n userId: string\n restartPolicy: {\n type: 'always' | 'on-failure' | 'never'\n maxRestarts?: number\n initialDelayMs?: number\n maxDelayMs?: number\n backoffMultiplier?: number\n }\n payload?: Record<string, unknown>\n }\n}\n\n/**\n * Message sent from worker to host with background task status updates.\n */\nexport interface BackgroundTaskStatusMessage {\n type: 'background-task-status'\n payload: {\n taskId: string\n status: 'running' | 'stopped' | 'failed'\n error?: string\n }\n}\n\n/**\n * Message sent from worker to host with background task health reports.\n */\nexport interface BackgroundTaskHealthMessage {\n type: 'background-task-health'\n payload: {\n taskId: string\n status: string\n timestamp: string\n }\n}\n\n// ============================================================================\n// Utility Types\n// ============================================================================\n\nexport interface PendingRequest<T = unknown> {\n resolve: (value: T) => void\n reject: (error: Error) => void\n timeout: ReturnType<typeof setTimeout>\n}\n\n/**\n * Generate a unique message ID\n */\nexport function generateMessageId(): string {\n return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC4BO,SAAS,uBACd,OACA,MACA,eAAe,MACP;AACR,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,IAAI,KAAK,MAAM,YAAY,KAAK,OAAO,OAAO,KAAK,EAAE,CAAC,KAAK;AAC1E;;;AC6UO,SAAS,oBAA4B;AAC1C,SAAO,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AACjE;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as ExtensionContributions, S as SchedulerFirePayload, C as ChatMessage, a as ChatOptions, G as GetModelsOptions, b as StreamEvent, M as ModelInfo, T as ToolResult, A as ActionResult } from './types.tools-
|
|
2
|
-
export { aa as AIProvider, ad as Action, K as ActionsAPI,
|
|
1
|
+
import { E as ExtensionContributions, S as SchedulerFirePayload, C as ChatMessage, a as ChatOptions, G as GetModelsOptions, b as StreamEvent, M as ModelInfo, T as ToolResult, A as ActionResult } from './types.tools-ymsggUiN.cjs';
|
|
2
|
+
export { aa as AIProvider, ad as Action, K as ActionsAPI, af as AllowedCSSProperty, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, ar as ButtonProps, X as ChatAPI, Y as ChatInstructionMessage, aJ as CheckboxProps, aG as CollapsibleProps, v as CommandDefinition, aM as ConditionalGroupProps, at as DateTimeInputProps, F as Disposable, az as DividerProps, O as EventsAPI, ak as ExtensionActionCall, al as ExtensionActionRef, aj as ExtensionComponentChildren, ah as ExtensionComponentData, ai as ExtensionComponentIterator, ag as ExtensionComponentStyle, D as ExtensionContext, am as ExtensionDataSource, ae as ExtensionModule, an as ExtensionPanelDefinition, ay as GridProps, ao as HeaderProps, ax as HorizontalStackProps, aC as IconButtonProps, aB as IconButtonType, av as IconPickerProps, aA as IconProps, ap as LabelProps, L as LocalizedString, Z as LogAPI, aK as MarkdownProps, aL as ModalProps, N as NetworkAPI, aD as PanelAction, n as PanelActionDataSource, m as PanelComponentView, P as PanelDefinition, aE as PanelProps, o as PanelUnknownView, l as PanelView, aq as ParagraphProps, aI as PillProps, aH as PillVariant, q as PromptContribution, s as PromptSection, x as ProviderConfigProperty, y as ProviderConfigPropertyType, w as ProviderConfigSchema, z as ProviderConfigSelectOption, B as ProviderConfigValidation, p as ProviderDefinition, I as ProvidersAPI, a4 as Query, a5 as QueryOptions, Q as SchedulerAPI, R as SchedulerJobRequest, U as SchedulerSchedule, a7 as SecretsAPI, au as SelectProps, e as SettingCreateMapping, c as SettingDefinition, d as SettingOptionsMapping, H as SettingsAPI, a6 as StorageAPI, a8 as StorageCollectionConfig, a9 as StorageContributions, as as TextInputProps, aF as ToggleProps, ac as Tool, ab as ToolCall, u as ToolConfirmationConfig, t as ToolDefinition, k as ToolSettingsActionDataSource, j as ToolSettingsComponentView, i as ToolSettingsListMapping, h as ToolSettingsListView, g as ToolSettingsView, f as ToolSettingsViewDefinition, J as ToolsAPI, V as UserAPI, W as UserProfile, aw as VerticalStackProps, r as resolveLocalizedString } from './types.tools-ymsggUiN.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Permission Types
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as ExtensionContributions, S as SchedulerFirePayload, C as ChatMessage, a as ChatOptions, G as GetModelsOptions, b as StreamEvent, M as ModelInfo, T as ToolResult, A as ActionResult } from './types.tools-
|
|
2
|
-
export { aa as AIProvider, ad as Action, K as ActionsAPI,
|
|
1
|
+
import { E as ExtensionContributions, S as SchedulerFirePayload, C as ChatMessage, a as ChatOptions, G as GetModelsOptions, b as StreamEvent, M as ModelInfo, T as ToolResult, A as ActionResult } from './types.tools-ymsggUiN.js';
|
|
2
|
+
export { aa as AIProvider, ad as Action, K as ActionsAPI, af as AllowedCSSProperty, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, ar as ButtonProps, X as ChatAPI, Y as ChatInstructionMessage, aJ as CheckboxProps, aG as CollapsibleProps, v as CommandDefinition, aM as ConditionalGroupProps, at as DateTimeInputProps, F as Disposable, az as DividerProps, O as EventsAPI, ak as ExtensionActionCall, al as ExtensionActionRef, aj as ExtensionComponentChildren, ah as ExtensionComponentData, ai as ExtensionComponentIterator, ag as ExtensionComponentStyle, D as ExtensionContext, am as ExtensionDataSource, ae as ExtensionModule, an as ExtensionPanelDefinition, ay as GridProps, ao as HeaderProps, ax as HorizontalStackProps, aC as IconButtonProps, aB as IconButtonType, av as IconPickerProps, aA as IconProps, ap as LabelProps, L as LocalizedString, Z as LogAPI, aK as MarkdownProps, aL as ModalProps, N as NetworkAPI, aD as PanelAction, n as PanelActionDataSource, m as PanelComponentView, P as PanelDefinition, aE as PanelProps, o as PanelUnknownView, l as PanelView, aq as ParagraphProps, aI as PillProps, aH as PillVariant, q as PromptContribution, s as PromptSection, x as ProviderConfigProperty, y as ProviderConfigPropertyType, w as ProviderConfigSchema, z as ProviderConfigSelectOption, B as ProviderConfigValidation, p as ProviderDefinition, I as ProvidersAPI, a4 as Query, a5 as QueryOptions, Q as SchedulerAPI, R as SchedulerJobRequest, U as SchedulerSchedule, a7 as SecretsAPI, au as SelectProps, e as SettingCreateMapping, c as SettingDefinition, d as SettingOptionsMapping, H as SettingsAPI, a6 as StorageAPI, a8 as StorageCollectionConfig, a9 as StorageContributions, as as TextInputProps, aF as ToggleProps, ac as Tool, ab as ToolCall, u as ToolConfirmationConfig, t as ToolDefinition, k as ToolSettingsActionDataSource, j as ToolSettingsComponentView, i as ToolSettingsListMapping, h as ToolSettingsListView, g as ToolSettingsView, f as ToolSettingsViewDefinition, J as ToolsAPI, V as UserAPI, W as UserProfile, aw as VerticalStackProps, r as resolveLocalizedString } from './types.tools-ymsggUiN.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Permission Types
|
package/dist/runtime.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ae as ExtensionModule } from './types.tools-
|
|
2
|
-
export { aa as AIProvider, ad as Action, A as ActionResult, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, C as ChatMessage, a as ChatOptions, F as Disposable,
|
|
1
|
+
import { ae as ExtensionModule } from './types.tools-ymsggUiN.cjs';
|
|
2
|
+
export { aa as AIProvider, ad as Action, A as ActionResult, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, C as ChatMessage, a as ChatOptions, F as Disposable, aN as ExecutionContext, D as ExtensionContext, G as GetModelsOptions, M as ModelInfo, a4 as Query, a5 as QueryOptions, a7 as SecretsAPI, a6 as StorageAPI, b as StreamEvent, ac as Tool, ab as ToolCall, t as ToolDefinition, T as ToolResult } from './types.tools-ymsggUiN.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Extension Runtime - Runs inside the worker
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ae as ExtensionModule } from './types.tools-
|
|
2
|
-
export { aa as AIProvider, ad as Action, A as ActionResult, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, C as ChatMessage, a as ChatOptions, F as Disposable,
|
|
1
|
+
import { ae as ExtensionModule } from './types.tools-ymsggUiN.js';
|
|
2
|
+
export { aa as AIProvider, ad as Action, A as ActionResult, a3 as BackgroundRestartPolicy, a0 as BackgroundTaskCallback, $ as BackgroundTaskConfig, a1 as BackgroundTaskContext, a2 as BackgroundTaskHealth, _ as BackgroundWorkersAPI, C as ChatMessage, a as ChatOptions, F as Disposable, aN as ExecutionContext, D as ExtensionContext, G as GetModelsOptions, M as ModelInfo, a4 as Query, a5 as QueryOptions, a7 as SecretsAPI, a6 as StorageAPI, b as StreamEvent, ac as Tool, ab as ToolCall, t as ToolDefinition, T as ToolResult } from './types.tools-ymsggUiN.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Extension Runtime - Runs inside the worker
|
package/dist/schemas/index.cjs
CHANGED
|
@@ -40,8 +40,6 @@ __export(schemas_exports, {
|
|
|
40
40
|
ExtensionContributionsSchema: () => ExtensionContributionsSchema,
|
|
41
41
|
ExtensionDataSourceSchema: () => ExtensionDataSourceSchema,
|
|
42
42
|
ExtensionManifestSchema: () => ExtensionManifestSchema,
|
|
43
|
-
FramePropsSchema: () => FramePropsSchema,
|
|
44
|
-
FrameVariantSchema: () => FrameVariantSchema,
|
|
45
43
|
GridPropsSchema: () => GridPropsSchema,
|
|
46
44
|
HeaderPropsSchema: () => HeaderPropsSchema,
|
|
47
45
|
HorizontalStackPropsSchema: () => HorizontalStackPropsSchema,
|
|
@@ -50,7 +48,6 @@ __export(schemas_exports, {
|
|
|
50
48
|
IconPickerPropsSchema: () => IconPickerPropsSchema,
|
|
51
49
|
IconPropsSchema: () => IconPropsSchema,
|
|
52
50
|
LabelPropsSchema: () => LabelPropsSchema,
|
|
53
|
-
ListPropsSchema: () => ListPropsSchema,
|
|
54
51
|
LocalizedStringSchema: () => LocalizedStringSchema,
|
|
55
52
|
MarkdownPropsSchema: () => MarkdownPropsSchema,
|
|
56
53
|
ModalPropsSchema: () => ModalPropsSchema,
|
|
@@ -84,7 +81,6 @@ __export(schemas_exports, {
|
|
|
84
81
|
StoragePermissionSchema: () => StoragePermissionSchema,
|
|
85
82
|
SystemPermissionSchema: () => SystemPermissionSchema,
|
|
86
83
|
TextInputPropsSchema: () => TextInputPropsSchema,
|
|
87
|
-
TextPreviewPropsSchema: () => TextPreviewPropsSchema,
|
|
88
84
|
TogglePropsSchema: () => TogglePropsSchema,
|
|
89
85
|
ToolDefinitionSchema: () => ToolDefinitionSchema,
|
|
90
86
|
ToolSettingsActionDataSourceSchema: () => ToolSettingsActionDataSourceSchema,
|
|
@@ -419,12 +415,6 @@ var MarkdownPropsSchema = import_zod2.z.object({
|
|
|
419
415
|
content: import_zod2.z.string().describe("Markdown content"),
|
|
420
416
|
style: ExtensionComponentStyleSchema.optional()
|
|
421
417
|
}).passthrough().describe("Markdown component");
|
|
422
|
-
var TextPreviewPropsSchema = import_zod2.z.object({
|
|
423
|
-
component: import_zod2.z.literal("TextPreview"),
|
|
424
|
-
content: import_zod2.z.string().describe("Markdown content"),
|
|
425
|
-
maxLines: import_zod2.z.number().optional().describe("Max visible lines before truncating (default 5)"),
|
|
426
|
-
style: ExtensionComponentStyleSchema.optional()
|
|
427
|
-
}).passthrough().describe("TextPreview component");
|
|
428
418
|
var ModalPropsSchema = import_zod2.z.object({
|
|
429
419
|
component: import_zod2.z.literal("Modal"),
|
|
430
420
|
title: import_zod2.z.string().describe("Modal title"),
|
|
@@ -441,22 +431,6 @@ var ConditionalGroupPropsSchema = import_zod2.z.object({
|
|
|
441
431
|
children: ExtensionComponentChildrenSchema.describe("Children to render when condition is true"),
|
|
442
432
|
style: ExtensionComponentStyleSchema.optional()
|
|
443
433
|
}).passthrough().describe("ConditionalGroup component");
|
|
444
|
-
var FrameVariantSchema = import_zod2.z.enum(["border", "solid"]).describe("Frame visual variant");
|
|
445
|
-
var FramePropsSchema = import_zod2.z.object({
|
|
446
|
-
component: import_zod2.z.literal("Frame"),
|
|
447
|
-
title: import_zod2.z.union([import_zod2.z.string(), ExtensionComponentChildrenSchema]).optional().describe("Optional title (string or components)"),
|
|
448
|
-
icon: import_zod2.z.string().optional().describe("Icon name"),
|
|
449
|
-
collapsible: import_zod2.z.boolean().optional().describe("Whether content can be toggled"),
|
|
450
|
-
defaultExpanded: import_zod2.z.boolean().optional().describe("Whether expanded by default"),
|
|
451
|
-
variant: FrameVariantSchema.optional().describe("Visual variant"),
|
|
452
|
-
children: ExtensionComponentChildrenSchema.describe("Child components"),
|
|
453
|
-
style: ExtensionComponentStyleSchema.optional()
|
|
454
|
-
}).passthrough().describe("Frame container component");
|
|
455
|
-
var ListPropsSchema = import_zod2.z.object({
|
|
456
|
-
component: import_zod2.z.literal("List"),
|
|
457
|
-
children: ExtensionComponentChildrenSchema.describe("Child components rendered as list items"),
|
|
458
|
-
style: ExtensionComponentStyleSchema.optional()
|
|
459
|
-
}).passthrough().describe("List component");
|
|
460
434
|
|
|
461
435
|
// src/schemas/contributions.schema.ts
|
|
462
436
|
var LocalizedStringSchema = import_zod3.z.union([import_zod3.z.string(), import_zod3.z.record(import_zod3.z.string())]).describe("String or localized string map");
|
|
@@ -689,8 +663,6 @@ var ExtensionManifestSchema = import_zod4.z.object({
|
|
|
689
663
|
ExtensionContributionsSchema,
|
|
690
664
|
ExtensionDataSourceSchema,
|
|
691
665
|
ExtensionManifestSchema,
|
|
692
|
-
FramePropsSchema,
|
|
693
|
-
FrameVariantSchema,
|
|
694
666
|
GridPropsSchema,
|
|
695
667
|
HeaderPropsSchema,
|
|
696
668
|
HorizontalStackPropsSchema,
|
|
@@ -699,7 +671,6 @@ var ExtensionManifestSchema = import_zod4.z.object({
|
|
|
699
671
|
IconPickerPropsSchema,
|
|
700
672
|
IconPropsSchema,
|
|
701
673
|
LabelPropsSchema,
|
|
702
|
-
ListPropsSchema,
|
|
703
674
|
LocalizedStringSchema,
|
|
704
675
|
MarkdownPropsSchema,
|
|
705
676
|
ModalPropsSchema,
|
|
@@ -733,7 +704,6 @@ var ExtensionManifestSchema = import_zod4.z.object({
|
|
|
733
704
|
StoragePermissionSchema,
|
|
734
705
|
SystemPermissionSchema,
|
|
735
706
|
TextInputPropsSchema,
|
|
736
|
-
TextPreviewPropsSchema,
|
|
737
707
|
TogglePropsSchema,
|
|
738
708
|
ToolDefinitionSchema,
|
|
739
709
|
ToolSettingsActionDataSourceSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schemas/index.ts","../../src/schemas/manifest.schema.ts","../../src/schemas/permissions.schema.ts","../../src/schemas/contributions.schema.ts","../../src/schemas/components.schema.ts"],"sourcesContent":["/**\n * Extension API Schemas\n *\n * Zod schemas for extension manifest validation and JSON Schema generation.\n */\n\n// Manifest schema (main export)\nexport {\n ExtensionManifestSchema,\n PlatformSchema,\n AuthorSchema,\n EnginesSchema,\n type ExtensionManifest,\n type Platform,\n type Author,\n type Engines,\n} from './manifest.schema.js'\n\n// Permission schemas\nexport {\n PermissionSchema,\n NetworkPermissionSchema,\n StoragePermissionSchema,\n UserDataPermissionSchema,\n CapabilityPermissionSchema,\n SystemPermissionSchema,\n isValidPermission,\n VALID_PERMISSIONS,\n PERMISSION_PATTERNS,\n type Permission,\n type NetworkPermission,\n type StoragePermission,\n type UserDataPermission,\n type CapabilityPermission,\n type SystemPermission,\n} from './permissions.schema.js'\n\n// Contribution schemas\nexport {\n ExtensionContributionsSchema,\n LocalizedStringSchema,\n SettingDefinitionSchema,\n SettingOptionsMappingSchema,\n SettingCreateMappingSchema,\n SettingValidationSchema,\n ToolSettingsViewDefinitionSchema,\n ToolSettingsViewSchema,\n ToolSettingsListViewSchema,\n ToolSettingsComponentViewSchema,\n ToolSettingsListMappingSchema,\n ToolSettingsActionDataSourceSchema,\n PanelDefinitionSchema,\n PanelViewSchema,\n PanelComponentViewSchema,\n PanelUnknownViewSchema,\n PanelActionDataSourceSchema,\n ProviderDefinitionSchema,\n ProviderConfigSchemaSchema,\n ProviderConfigPropertySchema,\n ProviderConfigPropertyTypeSchema,\n ProviderConfigSelectOptionSchema,\n ProviderConfigValidationSchema,\n ToolDefinitionSchema,\n CommandDefinitionSchema,\n PromptContributionSchema,\n PromptSectionSchema,\n type ExtensionContributions,\n type LocalizedString,\n type SettingDefinition,\n type SettingOptionsMapping,\n type SettingCreateMapping,\n type SettingValidation,\n type ToolSettingsViewDefinition,\n type ToolSettingsView,\n type ToolSettingsListView,\n type ToolSettingsComponentView,\n type ToolSettingsListMapping,\n type ToolSettingsActionDataSource,\n type PanelDefinition,\n type PanelView,\n type PanelComponentView,\n type PanelUnknownView,\n type PanelActionDataSource,\n type ProviderDefinition,\n type ProviderConfigSchema,\n type ProviderConfigProperty,\n type ProviderConfigPropertyType,\n type ProviderConfigSelectOption,\n type ProviderConfigValidation,\n type ToolDefinition,\n type CommandDefinition,\n type PromptContribution,\n type PromptSection,\n} from './contributions.schema.js'\n\n// Component schemas\nexport {\n ExtensionComponentDataSchema,\n ExtensionComponentStyleSchema,\n ExtensionActionCallSchema,\n ExtensionActionRefSchema,\n ExtensionComponentIteratorSchema,\n ExtensionComponentChildrenSchema,\n ExtensionDataSourceSchema,\n AllowedCSSPropertySchema,\n IconButtonTypeSchema,\n PillVariantSchema,\n PanelActionSchema,\n HeaderPropsSchema,\n LabelPropsSchema,\n ParagraphPropsSchema,\n ButtonPropsSchema,\n TextInputPropsSchema,\n DateTimeInputPropsSchema,\n SelectPropsSchema,\n IconPickerPropsSchema,\n VerticalStackPropsSchema,\n HorizontalStackPropsSchema,\n GridPropsSchema,\n DividerPropsSchema,\n IconPropsSchema,\n IconButtonPropsSchema,\n PanelPropsSchema,\n TogglePropsSchema,\n CollapsiblePropsSchema,\n FrameVariantSchema,\n FramePropsSchema,\n TextPreviewPropsSchema,\n ListPropsSchema,\n PillPropsSchema,\n CheckboxPropsSchema,\n MarkdownPropsSchema,\n ModalPropsSchema,\n ConditionalGroupPropsSchema,\n type ExtensionComponentData,\n type ExtensionComponentStyle,\n type ExtensionActionCall,\n type ExtensionActionRef,\n type ExtensionComponentIterator,\n type ExtensionComponentChildren,\n type ExtensionDataSource,\n type AllowedCSSProperty,\n type IconButtonType,\n type PillVariant,\n type PanelAction,\n type HeaderProps,\n type LabelProps,\n type ParagraphProps,\n type ButtonProps,\n type TextInputProps,\n type DateTimeInputProps,\n type SelectProps,\n type IconPickerProps,\n type VerticalStackProps,\n type HorizontalStackProps,\n type GridProps,\n type DividerProps,\n type IconProps,\n type IconButtonProps,\n type PanelProps,\n type ToggleProps,\n type CollapsibleProps,\n type FrameVariant,\n type FrameProps,\n type TextPreviewProps,\n type ListProps,\n type PillProps,\n type CheckboxProps,\n type MarkdownProps,\n type ModalProps,\n type ConditionalGroupProps,\n} from './components.schema.js'\n","/**\n * Manifest Schema\n *\n * Zod schema for extension manifest files (manifest.json).\n * This is the main schema that combines all sub-schemas.\n */\n\nimport { z } from 'zod'\nimport { PermissionSchema } from './permissions.schema.js'\nimport { ExtensionContributionsSchema } from './contributions.schema.js'\n\n/**\n * Platform schema\n */\nexport const PlatformSchema = z\n .enum(['web', 'electron', 'tui'])\n .describe('Supported platform')\n\n/**\n * Author schema\n */\nexport const AuthorSchema = z\n .object({\n name: z.string().min(1).describe('Author name'),\n url: z.string().url().optional().describe('Author URL'),\n })\n .describe('Author information')\n\n/**\n * Engines schema\n */\nexport const EnginesSchema = z\n .object({\n stina: z.string().describe('Minimum Stina version required'),\n })\n .describe('Engine requirements')\n\n/**\n * Extension manifest schema\n */\nexport const ExtensionManifestSchema = z\n .object({\n id: z\n .string()\n .regex(/^[a-z0-9-]+$/, 'ID must be lowercase alphanumeric with hyphens')\n .describe('Unique identifier (e.g., \"ollama-provider\")'),\n name: z.string().min(1).describe('Human-readable name'),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+/, 'Must be semver format (e.g., \"1.0.0\")')\n .describe('Version string (semver)'),\n description: z.string().min(1).describe('Short description'),\n author: AuthorSchema.describe('Author information'),\n repository: z.string().url().optional().describe('Repository URL'),\n license: z.string().optional().describe('License identifier'),\n engines: EnginesSchema.optional().describe('Minimum Stina version required'),\n platforms: z.array(PlatformSchema).optional().describe('Supported platforms'),\n main: z.string().describe('Entry point file (relative to extension root)'),\n permissions: z.array(PermissionSchema).describe('Required permissions'),\n contributes: ExtensionContributionsSchema.optional().describe('What the extension contributes'),\n })\n .describe('Extension manifest format')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type Platform = z.infer<typeof PlatformSchema>\nexport type Author = z.infer<typeof AuthorSchema>\nexport type Engines = z.infer<typeof EnginesSchema>\nexport type ExtensionManifest = z.infer<typeof ExtensionManifestSchema>\n","/**\n * Permission Schema\n *\n * Zod schema for extension permission strings.\n * Generates both TypeScript types and JSON Schema.\n */\n\nimport { z } from 'zod'\n\n/**\n * Valid exact permission values\n */\nexport const VALID_PERMISSIONS = [\n 'network:*',\n 'network:localhost',\n 'storage.collections',\n 'secrets.manage',\n 'user.profile.read',\n 'user.location.read',\n 'chat.history.read',\n 'chat.current.read',\n 'chat.message.write',\n 'provider.register',\n 'tools.register',\n 'actions.register',\n 'settings.register',\n 'commands.register',\n 'panels.register',\n 'events.emit',\n 'scheduler.register',\n 'background.workers',\n 'files.read',\n 'files.write',\n 'clipboard.read',\n 'clipboard.write',\n] as const\n\n/**\n * Permission patterns for dynamic permissions (network with host/port)\n */\nexport const PERMISSION_PATTERNS = [\n /^network:localhost:\\d+$/, // network:localhost:11434\n /^network:[a-zA-Z0-9.-]+$/, // network:api.example.com\n /^network:[a-zA-Z0-9.-]+:\\d+$/, // network:api.example.com:8080\n]\n\n/**\n * Network permission schema - matches exact values and patterns\n */\nconst NetworkPermissionSchema = z\n .string()\n .refine(\n (val) => {\n // Check exact matches first\n if (val === 'network:*' || val === 'network:localhost') {\n return true\n }\n // Check dynamic patterns\n return PERMISSION_PATTERNS.some((pattern) => pattern.test(val))\n },\n { message: 'Invalid network permission format' }\n )\n .describe('Network access permission (e.g., \"network:*\", \"network:localhost:11434\")')\n\n/**\n * Storage permission schema\n */\nconst StoragePermissionSchema = z.enum(['storage.collections', 'secrets.manage']).describe('Storage permission')\n\n/**\n * User data permission schema\n */\nconst UserDataPermissionSchema = z\n .enum(['user.profile.read', 'user.location.read', 'chat.history.read', 'chat.current.read'])\n .describe('User data access permission')\n\n/**\n * Capability permission schema\n */\nconst CapabilityPermissionSchema = z\n .enum([\n 'provider.register',\n 'tools.register',\n 'actions.register',\n 'settings.register',\n 'commands.register',\n 'panels.register',\n 'events.emit',\n 'scheduler.register',\n 'chat.message.write',\n 'background.workers',\n ])\n .describe('Capability permission')\n\n/**\n * System permission schema\n */\nconst SystemPermissionSchema = z\n .enum(['files.read', 'files.write', 'clipboard.read', 'clipboard.write'])\n .describe('System permission')\n\n/**\n * Regex pattern for dynamic network permissions (host with optional port)\n * Matches: network:api.example.com, network:localhost:11434, network:api.example.com:8080\n */\nconst NETWORK_PERMISSION_REGEX = /^network:[a-zA-Z0-9.-]+(:\\d+)?$/\n\n/**\n * Combined permission schema - validates against all permission types\n * Uses z.union with z.enum and z.string().regex() for better JSON Schema generation\n */\nexport const PermissionSchema = z\n .union([\n z.enum(VALID_PERMISSIONS),\n z.string().regex(NETWORK_PERMISSION_REGEX, 'Invalid network permission format'),\n ])\n .describe('Extension permission')\n\n/**\n * Check if a permission string is valid\n */\nexport function isValidPermission(permission: string): boolean {\n return PermissionSchema.safeParse(permission).success\n}\n\n// Re-export individual schemas for more specific validation if needed\nexport {\n NetworkPermissionSchema,\n StoragePermissionSchema,\n UserDataPermissionSchema,\n CapabilityPermissionSchema,\n SystemPermissionSchema,\n}\n\n// Type exports\nexport type Permission = z.infer<typeof PermissionSchema>\nexport type NetworkPermission = 'network:*' | `network:localhost` | `network:localhost:${number}` | `network:${string}`\nexport type StoragePermission = z.infer<typeof StoragePermissionSchema>\nexport type UserDataPermission = z.infer<typeof UserDataPermissionSchema>\nexport type CapabilityPermission = z.infer<typeof CapabilityPermissionSchema>\nexport type SystemPermission = z.infer<typeof SystemPermissionSchema>\n","/**\n * Contributions Schema\n *\n * Zod schemas for extension contributions: settings, panels, providers, tools, commands, prompts.\n */\n\nimport { z } from 'zod'\nimport { ExtensionComponentDataSchema } from './components.schema.js'\n\n// =============================================================================\n// Localization\n// =============================================================================\n\n/**\n * Localized string - either a simple string or a map of language codes to strings\n */\nexport const LocalizedStringSchema = z\n .union([z.string(), z.record(z.string())])\n .describe('String or localized string map')\n\n// =============================================================================\n// Settings\n// =============================================================================\n\n/**\n * Options mapping for select field options from tool response\n */\nexport const SettingOptionsMappingSchema = z\n .object({\n itemsKey: z.string().describe('Key for items array in tool result data'),\n valueKey: z.string().describe('Key for option value'),\n labelKey: z.string().describe('Key for option label'),\n descriptionKey: z.string().optional().describe('Optional key for description'),\n })\n .describe('Mapping for select field options')\n\n/**\n * Create mapping for create tool response\n */\nexport const SettingCreateMappingSchema = z\n .object({\n resultKey: z.string().optional().describe('Key for result data object'),\n valueKey: z.string().describe('Key for option value (defaults to \"id\")'),\n })\n .describe('Mapping for create tool response')\n\n/**\n * Validation rules for settings\n */\nexport const SettingValidationSchema = z\n .object({\n required: z.boolean().optional().describe('Whether the field is required'),\n min: z.number().optional().describe('Minimum value (number) or length (string)'),\n max: z.number().optional().describe('Maximum value (number) or length (string)'),\n pattern: z.string().optional().describe('Regex pattern for validation'),\n })\n .describe('Validation rules')\n\n/**\n * Setting definition type interface for recursive typing\n */\nexport interface SettingDefinitionType {\n id: string\n title: string\n description?: string\n type: 'string' | 'number' | 'boolean' | 'select'\n default?: unknown\n options?: { value: string; label: string }[]\n optionsToolId?: string\n optionsParams?: Record<string, unknown>\n optionsMapping?: z.infer<typeof SettingOptionsMappingSchema>\n createToolId?: string\n createLabel?: string\n createFields?: SettingDefinitionType[]\n createParams?: Record<string, unknown>\n createMapping?: z.infer<typeof SettingCreateMappingSchema>\n validation?: z.infer<typeof SettingValidationSchema>\n}\n\nexport const SettingDefinitionSchema: z.ZodType<SettingDefinitionType> = z.lazy(() =>\n z\n .object({\n id: z.string().describe('Setting ID (namespaced automatically)'),\n title: z.string().describe('Display title'),\n description: z.string().optional().describe('Help text'),\n type: z.enum(['string', 'number', 'boolean', 'select']).describe('Setting type'),\n default: z.unknown().optional().describe('Default value'),\n options: z\n .array(z.object({ value: z.string(), label: z.string() }))\n .optional()\n .describe('For select type: available options'),\n optionsToolId: z.string().optional().describe('For select type: load options from tool'),\n optionsParams: z.record(z.unknown()).optional().describe('Params for options tool'),\n optionsMapping: SettingOptionsMappingSchema.optional().describe('Mapping for options tool response'),\n createToolId: z.string().optional().describe('Tool ID for creating a new option'),\n createLabel: z.string().optional().describe('Label for create action'),\n createFields: z.array(SettingDefinitionSchema).optional().describe('Fields for create form'),\n createParams: z.record(z.unknown()).optional().describe('Static params for create tool'),\n createMapping: SettingCreateMappingSchema.optional().describe('Mapping for create tool response'),\n validation: SettingValidationSchema.optional().describe('Validation rules'),\n })\n .superRefine((data, ctx) => {\n // Validate that create* fields are only used with type: 'select'\n const hasCreateFields =\n data.createToolId !== undefined ||\n data.createLabel !== undefined ||\n data.createFields !== undefined ||\n data.createParams !== undefined ||\n data.createMapping !== undefined\n\n if (hasCreateFields && data.type !== 'select') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'create* fields (createToolId, createLabel, createFields, createParams, createMapping) are only valid for type \"select\"',\n path: ['type'],\n })\n }\n\n // Validate that select type has options or optionsToolId\n if (data.type === 'select') {\n const hasOptions = data.options && data.options.length > 0\n const hasOptionsToolId = data.optionsToolId !== undefined\n\n if (!hasOptions && !hasOptionsToolId) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Setting of type \"select\" must have \"options\" or \"optionsToolId\"',\n path: ['type'],\n })\n }\n }\n })\n .describe('Setting definition')\n)\n\n// =============================================================================\n// Tool Settings Views\n// =============================================================================\n\n/**\n * Tool settings list mapping\n */\nexport const ToolSettingsListMappingSchema = z\n .object({\n itemsKey: z.string().describe('Key for items array in tool result data'),\n countKey: z.string().optional().describe('Key for total count'),\n idKey: z.string().describe('Key for item ID'),\n labelKey: z.string().describe('Key for item label'),\n descriptionKey: z.string().optional().describe('Key for item description'),\n secondaryKey: z.string().optional().describe('Key for secondary label'),\n })\n .describe('Mapping from tool list data to UI fields')\n\n/**\n * Action-based data source for tool settings\n */\nexport const ToolSettingsActionDataSourceSchema = z\n .object({\n action: z.string().describe('Action ID to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger refresh'),\n })\n .describe('Action-based data source')\n\n/**\n * List view backed by tools\n */\nexport const ToolSettingsListViewSchema = z\n .object({\n kind: z.literal('list').describe('View kind'),\n listToolId: z.string().describe('Tool ID for listing items'),\n getToolId: z.string().optional().describe('Tool ID for fetching details'),\n upsertToolId: z.string().optional().describe('Tool ID for creating/updating items'),\n deleteToolId: z.string().optional().describe('Tool ID for deleting items'),\n mapping: ToolSettingsListMappingSchema.describe('Mapping from tool data to UI'),\n searchParam: z.string().optional().describe('Param name for search query'),\n limitParam: z.string().optional().describe('Param name for limit'),\n idParam: z.string().optional().describe('Param name for get/delete ID'),\n listParams: z.record(z.unknown()).optional().describe('Static params for list tool'),\n })\n .describe('List view backed by tools')\n\n/**\n * Component-based tool settings view\n */\nexport const ToolSettingsComponentViewSchema = z\n .object({\n kind: z.literal('component').describe('View kind'),\n data: z.record(ToolSettingsActionDataSourceSchema).optional().describe('Data sources'),\n content: ExtensionComponentDataSchema.describe('Root component to render'),\n })\n .describe('Component-based tool settings view')\n\n/**\n * Tool settings view types\n */\nexport const ToolSettingsViewSchema = z\n .union([ToolSettingsListViewSchema, ToolSettingsComponentViewSchema])\n .describe('Tool settings view')\n\n/**\n * Tool settings view definition\n */\nexport const ToolSettingsViewDefinitionSchema = z\n .object({\n id: z.string().describe('Unique view ID within the extension'),\n title: z.string().describe('Display title'),\n description: z.string().optional().describe('Help text'),\n view: ToolSettingsViewSchema.describe('View configuration'),\n fields: z.array(SettingDefinitionSchema).optional().describe('Fields for create/edit forms'),\n })\n .describe('Tool settings view definition')\n\n// =============================================================================\n// Panels\n// =============================================================================\n\n/**\n * Action-based data source for panels\n */\nexport const PanelActionDataSourceSchema = z\n .object({\n action: z.string().describe('Action ID to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger refresh'),\n })\n .describe('Panel data source')\n\n/**\n * Component-based panel view\n */\nexport const PanelComponentViewSchema = z\n .object({\n kind: z.literal('component').describe('View kind'),\n data: z.record(PanelActionDataSourceSchema).optional().describe('Data sources'),\n content: ExtensionComponentDataSchema.describe('Root component to render'),\n })\n .describe('Component-based panel view')\n\n/**\n * Unknown panel view (for extensibility)\n */\nexport const PanelUnknownViewSchema = z\n .object({\n kind: z.string().describe('View kind'),\n })\n .passthrough()\n .describe('Unknown panel view')\n\n/**\n * Panel view schema\n */\nexport const PanelViewSchema = z\n .union([PanelComponentViewSchema, PanelUnknownViewSchema])\n .describe('Panel view')\n\n/**\n * Panel definition\n */\nexport const PanelDefinitionSchema = z\n .object({\n id: z.string().describe('Unique panel ID within the extension'),\n title: z.string().describe('Display title'),\n icon: z.string().optional().describe('Icon name (from huge-icons)'),\n view: PanelViewSchema.describe('Panel view schema'),\n })\n .describe('Panel definition')\n\n// =============================================================================\n// Providers\n// =============================================================================\n\n/**\n * Provider config property type\n */\nexport const ProviderConfigPropertyTypeSchema = z\n .enum(['string', 'number', 'boolean', 'select', 'password', 'url'])\n .describe('Property type')\n\n/**\n * Provider config select option\n */\nexport const ProviderConfigSelectOptionSchema = z\n .object({\n value: z.string().describe('Value stored in settings'),\n label: z.string().describe('Display label'),\n })\n .describe('Select option')\n\n/**\n * Provider config validation\n */\nexport const ProviderConfigValidationSchema = z\n .object({\n pattern: z.string().optional().describe('Regex pattern the value must match'),\n minLength: z.number().optional().describe('Minimum string length'),\n maxLength: z.number().optional().describe('Maximum string length'),\n min: z.number().optional().describe('Minimum number value'),\n max: z.number().optional().describe('Maximum number value'),\n })\n .describe('Validation rules')\n\n/**\n * Provider config property\n */\nexport const ProviderConfigPropertySchema = z\n .object({\n type: ProviderConfigPropertyTypeSchema.describe('Property type'),\n title: z.string().describe('Display label'),\n description: z.string().optional().describe('Help text'),\n default: z.unknown().optional().describe('Default value'),\n required: z.boolean().optional().describe('Whether the field is required'),\n placeholder: z.string().optional().describe('Placeholder text'),\n options: z.array(ProviderConfigSelectOptionSchema).optional().describe('For select type'),\n validation: ProviderConfigValidationSchema.optional().describe('Validation rules'),\n })\n .describe('Provider config property')\n\n/**\n * Provider config schema\n */\nexport const ProviderConfigSchemaSchema = z\n .object({\n properties: z.record(ProviderConfigPropertySchema).describe('Property definitions'),\n order: z.array(z.string()).optional().describe('Display order of properties'),\n })\n .describe('Provider configuration schema')\n\n/**\n * Provider definition\n */\nexport const ProviderDefinitionSchema = z\n .object({\n id: z.string().describe('Provider ID'),\n name: z.string().describe('Display name'),\n description: z.string().optional().describe('Description'),\n suggestedDefaultModel: z.string().optional().describe('Suggested default model'),\n defaultSettings: z.record(z.unknown()).optional().describe('Default settings'),\n configSchema: ProviderConfigSchemaSchema.optional().describe('Configuration UI schema'),\n })\n .describe('Provider definition')\n\n// =============================================================================\n// Tools\n// =============================================================================\n\n/**\n * Tool definition\n */\nexport const ToolDefinitionSchema = z\n .object({\n id: z.string().describe('Tool ID'),\n name: LocalizedStringSchema.describe('Display name'),\n description: LocalizedStringSchema.describe('Description for Stina'),\n parameters: z.record(z.unknown()).optional().describe('Parameter schema (JSON Schema)'),\n })\n .describe('Tool definition')\n\n// =============================================================================\n// Commands\n// =============================================================================\n\n/**\n * Command definition\n */\nexport const CommandDefinitionSchema = z\n .object({\n id: z.string().describe('Command ID (e.g., \"weather\" for /weather)'),\n name: z.string().describe('Display name'),\n description: z.string().describe('Description'),\n })\n .describe('Command definition')\n\n// =============================================================================\n// Prompts\n// =============================================================================\n\n/**\n * Prompt section\n */\nexport const PromptSectionSchema = z\n .enum(['system', 'behavior', 'tools'])\n .describe('Prompt section placement')\n\n/**\n * Prompt contribution\n */\nexport const PromptContributionSchema = z\n .object({\n id: z.string().describe('Unique ID within the extension'),\n title: z.string().optional().describe('Optional title for the prompt chunk'),\n section: PromptSectionSchema.optional().describe('Prompt section placement'),\n text: z.string().optional().describe('Plain text prompt content'),\n i18n: z.record(z.string()).optional().describe('Localized prompt content'),\n order: z.number().optional().describe('Ordering hint (lower comes first)'),\n })\n .describe('Prompt contribution')\n\n// =============================================================================\n// Storage\n// =============================================================================\n\n/**\n * Storage collection config schema\n */\nexport const StorageCollectionConfigSchema = z\n .object({\n indexes: z.array(z.string()).optional().describe('Fields to index for fast queries'),\n })\n .describe('Collection configuration')\n\n/**\n * Storage contributions schema\n */\nexport const StorageContributionsSchema = z\n .object({\n collections: z.record(StorageCollectionConfigSchema).describe('Collection definitions'),\n })\n .describe('Storage contributions')\n\n// =============================================================================\n// Extension Contributions\n// =============================================================================\n\n/**\n * Extension contributions\n */\nexport const ExtensionContributionsSchema = z\n .object({\n settings: z.array(SettingDefinitionSchema).optional().describe('User-configurable settings'),\n toolSettings: z.array(ToolSettingsViewDefinitionSchema).optional().describe('Tool settings views'),\n panels: z.array(PanelDefinitionSchema).optional().describe('Right panel contributions'),\n providers: z.array(ProviderDefinitionSchema).optional().describe('AI providers'),\n tools: z.array(ToolDefinitionSchema).optional().describe('Tools for Stina to use'),\n commands: z.array(CommandDefinitionSchema).optional().describe('Slash commands'),\n prompts: z.array(PromptContributionSchema).optional().describe('Prompt contributions'),\n storage: StorageContributionsSchema.optional().describe('Storage collection declarations'),\n })\n .describe('What an extension can contribute to Stina')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type LocalizedString = z.infer<typeof LocalizedStringSchema>\nexport type SettingOptionsMapping = z.infer<typeof SettingOptionsMappingSchema>\nexport type SettingCreateMapping = z.infer<typeof SettingCreateMappingSchema>\nexport type SettingValidation = z.infer<typeof SettingValidationSchema>\nexport type SettingDefinition = z.infer<typeof SettingDefinitionSchema>\nexport type ToolSettingsListMapping = z.infer<typeof ToolSettingsListMappingSchema>\nexport type ToolSettingsActionDataSource = z.infer<typeof ToolSettingsActionDataSourceSchema>\nexport type ToolSettingsListView = z.infer<typeof ToolSettingsListViewSchema>\nexport type ToolSettingsComponentView = z.infer<typeof ToolSettingsComponentViewSchema>\nexport type ToolSettingsView = z.infer<typeof ToolSettingsViewSchema>\nexport type ToolSettingsViewDefinition = z.infer<typeof ToolSettingsViewDefinitionSchema>\nexport type PanelActionDataSource = z.infer<typeof PanelActionDataSourceSchema>\nexport type PanelComponentView = z.infer<typeof PanelComponentViewSchema>\nexport type PanelUnknownView = z.infer<typeof PanelUnknownViewSchema>\nexport type PanelView = z.infer<typeof PanelViewSchema>\nexport type PanelDefinition = z.infer<typeof PanelDefinitionSchema>\nexport type ProviderConfigPropertyType = z.infer<typeof ProviderConfigPropertyTypeSchema>\nexport type ProviderConfigSelectOption = z.infer<typeof ProviderConfigSelectOptionSchema>\nexport type ProviderConfigValidation = z.infer<typeof ProviderConfigValidationSchema>\nexport type ProviderConfigProperty = z.infer<typeof ProviderConfigPropertySchema>\nexport type ProviderConfigSchema = z.infer<typeof ProviderConfigSchemaSchema>\nexport type ProviderDefinition = z.infer<typeof ProviderDefinitionSchema>\nexport type ToolDefinition = z.infer<typeof ToolDefinitionSchema>\nexport type CommandDefinition = z.infer<typeof CommandDefinitionSchema>\nexport type PromptSection = z.infer<typeof PromptSectionSchema>\nexport type PromptContribution = z.infer<typeof PromptContributionSchema>\nexport type StorageCollectionConfig = z.infer<typeof StorageCollectionConfigSchema>\nexport type StorageContributions = z.infer<typeof StorageContributionsSchema>\nexport type ExtensionContributions = z.infer<typeof ExtensionContributionsSchema>\n","/**\n * Component Schema\n *\n * Zod schemas for extension UI components.\n */\n\nimport { z } from 'zod'\n\n// =============================================================================\n// CSS Properties\n// =============================================================================\n\n/**\n * Allowed CSS property names for extension component styling.\n */\nexport const AllowedCSSPropertySchema = z.enum([\n // Colors\n 'color',\n 'background-color',\n 'background',\n 'border-color',\n // Borders\n 'border',\n 'border-width',\n 'border-style',\n 'border-radius',\n 'border-top',\n 'border-right',\n 'border-bottom',\n 'border-left',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n // Spacing\n 'padding',\n 'padding-top',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'margin',\n 'margin-top',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'gap',\n 'row-gap',\n 'column-gap',\n // Typography\n 'font-size',\n 'font-weight',\n 'font-style',\n 'text-align',\n 'text-decoration',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'word-break',\n 'overflow-wrap',\n // Layout (safe properties)\n 'width',\n 'height',\n 'min-width',\n 'min-height',\n 'max-width',\n 'max-height',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'flex-basis',\n 'flex-wrap',\n 'align-self',\n 'justify-self',\n 'align-items',\n 'justify-content',\n // Visual\n 'opacity',\n 'visibility',\n 'overflow',\n 'overflow-x',\n 'overflow-y',\n 'box-shadow',\n 'outline',\n 'cursor',\n 'border-collapse',\n 'border-spacing',\n])\n\n/**\n * Style object for extension components.\n */\nexport const ExtensionComponentStyleSchema = z\n .record(AllowedCSSPropertySchema, z.string())\n .describe('Safe CSS styles for the component')\n\n// =============================================================================\n// Base Component\n// =============================================================================\n\n/**\n * Base component data schema - allows additional properties\n */\nexport const ExtensionComponentDataSchema: z.ZodType<{\n component: string\n style?: Record<string, string>\n [key: string]: unknown\n}> = z.lazy(() =>\n z\n .object({\n component: z.string().describe('Component type name'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Extension component definition')\n)\n\n// =============================================================================\n// Action References\n// =============================================================================\n\n/**\n * Action call with parameters\n */\nexport const ExtensionActionCallSchema = z\n .object({\n action: z.string().describe('Name of the registered action'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass'),\n })\n .describe('Action call with parameters')\n\n/**\n * Action reference - can be a simple string or full action call\n */\nexport const ExtensionActionRefSchema = z\n .union([z.string(), ExtensionActionCallSchema])\n .describe('Action reference')\n\n// =============================================================================\n// Iterator & Children\n// =============================================================================\n\n/**\n * Iterator for rendering a list of components from data\n */\nexport const ExtensionComponentIteratorSchema = z\n .object({\n each: z.union([z.string(), z.array(z.unknown())]).describe('Data source to iterate over'),\n as: z.string().describe('Variable name for current item in scope'),\n items: z.array(ExtensionComponentDataSchema).describe('Components to render for each item'),\n })\n .describe('Iterator for rendering lists')\n\n/**\n * Children can be either a static array of components or an iterator\n */\nexport const ExtensionComponentChildrenSchema = z\n .union([z.array(ExtensionComponentDataSchema), ExtensionComponentIteratorSchema])\n .describe('Child components or iterator')\n\n// =============================================================================\n// Data Source\n// =============================================================================\n\n/**\n * Data source definition for fetching data via an action\n */\nexport const ExtensionDataSourceSchema = z\n .object({\n action: z.string().describe('Action to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger a refresh'),\n })\n .describe('Data source definition')\n\n// =============================================================================\n// Component Props Schemas\n// =============================================================================\n\nexport const HeaderPropsSchema = z\n .object({\n component: z.literal('Header'),\n level: z.number().min(1).max(6).describe('Heading level (1-6)'),\n title: z.string().describe('Header title'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Header component')\n\nexport const LabelPropsSchema = z\n .object({\n component: z.literal('Label'),\n text: z.string().describe('Label text'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Label component')\n\nexport const ParagraphPropsSchema = z\n .object({\n component: z.literal('Paragraph'),\n text: z.string().describe('Paragraph text'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Paragraph component')\n\nexport const ButtonPropsSchema = z\n .object({\n component: z.literal('Button'),\n text: z.string().describe('Button text'),\n onClickAction: ExtensionActionRefSchema.describe('Action to call on click'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Button component')\n\nexport const TextInputPropsSchema = z\n .object({\n component: z.literal('TextInput'),\n label: z.string().describe('Input label'),\n placeholder: z.string().optional().describe('Placeholder text'),\n value: z.string().optional().describe('Current value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('TextInput component')\n\nexport const DateTimeInputPropsSchema = z\n .object({\n component: z.literal('DateTimeInput'),\n label: z.string().describe('Input label'),\n value: z.string().optional().describe('Current value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('DateTimeInput component')\n\nexport const SelectPropsSchema = z\n .object({\n component: z.literal('Select'),\n label: z.string().describe('Select label'),\n options: z.array(z.object({ label: z.string(), value: z.string() })).describe('Available options'),\n selectedValue: z.string().optional().describe('Currently selected value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Select component')\n\nexport const IconPickerPropsSchema = z\n .object({\n component: z.literal('IconPicker'),\n label: z.string().optional().describe('Picker label'),\n value: z.string().optional().describe('Currently selected icon name'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('IconPicker component')\n\nexport const VerticalStackPropsSchema = z\n .object({\n component: z.literal('VerticalStack'),\n gap: z.number().optional().describe('Gap between children'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('VerticalStack layout component')\n\nexport const HorizontalStackPropsSchema = z\n .object({\n component: z.literal('HorizontalStack'),\n gap: z.number().optional().describe('Gap between children'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('HorizontalStack layout component')\n\nexport const GridPropsSchema = z\n .object({\n component: z.literal('Grid'),\n columns: z.number().describe('Number of columns'),\n gap: z.number().optional().describe('Gap between items'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Grid layout component')\n\nexport const DividerPropsSchema = z\n .object({\n component: z.literal('Divider'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Divider component')\n\nexport const IconPropsSchema = z\n .object({\n component: z.literal('Icon'),\n name: z.string().describe('Icon name'),\n title: z.string().optional().describe('Icon title'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Icon component')\n\nexport const IconButtonTypeSchema = z\n .enum(['normal', 'primary', 'danger', 'accent'])\n .describe('Button type')\n\nexport const IconButtonPropsSchema = z\n .object({\n component: z.literal('IconButton'),\n icon: z.string().describe('Icon name'),\n tooltip: z.string().describe('Tooltip text'),\n active: z.boolean().optional().describe('Whether the button is active'),\n disabled: z.boolean().optional().describe('Whether the button is disabled'),\n type: IconButtonTypeSchema.optional().describe('Button style type'),\n onClickAction: ExtensionActionRefSchema.describe('Action to call on click'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('IconButton component')\n\nexport const PanelActionSchema = z\n .object({\n icon: z.string().describe('Icon name'),\n tooltip: z.string().describe('Tooltip text'),\n action: ExtensionActionRefSchema.describe('Action to call'),\n type: IconButtonTypeSchema.optional().describe('Button style type'),\n })\n .describe('Panel action button')\n\nexport const PanelPropsSchema = z\n .object({\n component: z.literal('Panel'),\n title: z.string().describe('Panel title'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n actions: z.array(PanelActionSchema).optional().describe('Action buttons'),\n content: ExtensionComponentDataSchema.optional().describe('Panel content'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Panel component')\n\nexport const TogglePropsSchema = z\n .object({\n component: z.literal('Toggle'),\n label: z.string().optional().describe('Toggle label'),\n description: z.string().optional().describe('Description text'),\n checked: z.boolean().optional().describe('Whether the toggle is checked'),\n disabled: z.boolean().optional().describe('Whether the toggle is disabled'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Toggle component')\n\nexport const CollapsiblePropsSchema = z\n .object({\n component: z.literal('Collapsible'),\n title: z.string().describe('Title displayed in the header'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n defaultExpanded: z.boolean().optional().describe('Whether expanded by default'),\n content: ExtensionComponentDataSchema.optional().describe('Content when expanded'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Collapsible component')\n\nexport const PillVariantSchema = z\n .enum(['default', 'primary', 'success', 'warning', 'danger', 'accent'])\n .describe('Pill color variant')\n\nexport const PillPropsSchema = z\n .object({\n component: z.literal('Pill'),\n text: z.string().describe('Pill text'),\n icon: z.string().optional().describe('Icon name'),\n variant: PillVariantSchema.optional().describe('Color variant'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Pill component')\n\nexport const CheckboxPropsSchema = z\n .object({\n component: z.literal('Checkbox'),\n label: z.string().describe('Checkbox label'),\n checked: z.boolean().optional().describe('Whether the checkbox is checked'),\n disabled: z.boolean().optional().describe('Whether the checkbox is disabled'),\n strikethrough: z.boolean().optional().describe('Strike through label when checked'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Checkbox component')\n\nexport const MarkdownPropsSchema = z\n .object({\n component: z.literal('Markdown'),\n content: z.string().describe('Markdown content'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Markdown component')\n\nexport const TextPreviewPropsSchema = z\n .object({\n component: z.literal('TextPreview'),\n content: z.string().describe('Markdown content'),\n maxLines: z.number().optional().describe('Max visible lines before truncating (default 5)'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('TextPreview component')\n\nexport const ModalPropsSchema = z\n .object({\n component: z.literal('Modal'),\n title: z.string().describe('Modal title'),\n open: z.boolean().optional().describe('Whether the modal is open'),\n maxWidth: z.string().optional().describe('Max width of the modal'),\n body: ExtensionComponentDataSchema.optional().describe('Modal body content'),\n footer: ExtensionComponentDataSchema.optional().describe('Modal footer content'),\n onCloseAction: ExtensionActionRefSchema.optional().describe('Action to call on close'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Modal component')\n\nexport const ConditionalGroupPropsSchema = z\n .object({\n component: z.literal('ConditionalGroup'),\n condition: z.string().describe('Condition expression to evaluate'),\n children: ExtensionComponentChildrenSchema.describe('Children to render when condition is true'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('ConditionalGroup component')\n\nexport const FrameVariantSchema = z\n .enum(['border', 'solid'])\n .describe('Frame visual variant')\n\nexport const FramePropsSchema = z\n .object({\n component: z.literal('Frame'),\n title: z.union([z.string(), ExtensionComponentChildrenSchema]).optional().describe('Optional title (string or components)'),\n icon: z.string().optional().describe('Icon name'),\n collapsible: z.boolean().optional().describe('Whether content can be toggled'),\n defaultExpanded: z.boolean().optional().describe('Whether expanded by default'),\n variant: FrameVariantSchema.optional().describe('Visual variant'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Frame container component')\n\nexport const ListPropsSchema = z\n .object({\n component: z.literal('List'),\n children: ExtensionComponentChildrenSchema.describe('Child components rendered as list items'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('List component')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type AllowedCSSProperty = z.infer<typeof AllowedCSSPropertySchema>\nexport type ExtensionComponentStyle = z.infer<typeof ExtensionComponentStyleSchema>\nexport type ExtensionComponentData = z.infer<typeof ExtensionComponentDataSchema>\nexport type ExtensionActionCall = z.infer<typeof ExtensionActionCallSchema>\nexport type ExtensionActionRef = z.infer<typeof ExtensionActionRefSchema>\nexport type ExtensionComponentIterator = z.infer<typeof ExtensionComponentIteratorSchema>\nexport type ExtensionComponentChildren = z.infer<typeof ExtensionComponentChildrenSchema>\nexport type ExtensionDataSource = z.infer<typeof ExtensionDataSourceSchema>\nexport type IconButtonType = z.infer<typeof IconButtonTypeSchema>\nexport type PillVariant = z.infer<typeof PillVariantSchema>\nexport type PanelAction = z.infer<typeof PanelActionSchema>\nexport type HeaderProps = z.infer<typeof HeaderPropsSchema>\nexport type LabelProps = z.infer<typeof LabelPropsSchema>\nexport type ParagraphProps = z.infer<typeof ParagraphPropsSchema>\nexport type ButtonProps = z.infer<typeof ButtonPropsSchema>\nexport type TextInputProps = z.infer<typeof TextInputPropsSchema>\nexport type DateTimeInputProps = z.infer<typeof DateTimeInputPropsSchema>\nexport type SelectProps = z.infer<typeof SelectPropsSchema>\nexport type IconPickerProps = z.infer<typeof IconPickerPropsSchema>\nexport type VerticalStackProps = z.infer<typeof VerticalStackPropsSchema>\nexport type HorizontalStackProps = z.infer<typeof HorizontalStackPropsSchema>\nexport type GridProps = z.infer<typeof GridPropsSchema>\nexport type DividerProps = z.infer<typeof DividerPropsSchema>\nexport type IconProps = z.infer<typeof IconPropsSchema>\nexport type IconButtonProps = z.infer<typeof IconButtonPropsSchema>\nexport type PanelProps = z.infer<typeof PanelPropsSchema>\nexport type ToggleProps = z.infer<typeof TogglePropsSchema>\nexport type CollapsibleProps = z.infer<typeof CollapsiblePropsSchema>\nexport type PillProps = z.infer<typeof PillPropsSchema>\nexport type CheckboxProps = z.infer<typeof CheckboxPropsSchema>\nexport type MarkdownProps = z.infer<typeof MarkdownPropsSchema>\nexport type TextPreviewProps = z.infer<typeof TextPreviewPropsSchema>\nexport type ModalProps = z.infer<typeof ModalPropsSchema>\nexport type ConditionalGroupProps = z.infer<typeof ConditionalGroupPropsSchema>\nexport type FrameVariant = z.infer<typeof FrameVariantSchema>\nexport type FrameProps = z.infer<typeof FramePropsSchema>\nexport type ListProps = z.infer<typeof ListPropsSchema>\n"],"mappings":"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","names":["import_zod","import_zod","import_zod"]}
|
|
1
|
+
{"version":3,"sources":["../../src/schemas/index.ts","../../src/schemas/manifest.schema.ts","../../src/schemas/permissions.schema.ts","../../src/schemas/contributions.schema.ts","../../src/schemas/components.schema.ts"],"sourcesContent":["/**\n * Extension API Schemas\n *\n * Zod schemas for extension manifest validation and JSON Schema generation.\n */\n\n// Manifest schema (main export)\nexport {\n ExtensionManifestSchema,\n PlatformSchema,\n AuthorSchema,\n EnginesSchema,\n type ExtensionManifest,\n type Platform,\n type Author,\n type Engines,\n} from './manifest.schema.js'\n\n// Permission schemas\nexport {\n PermissionSchema,\n NetworkPermissionSchema,\n StoragePermissionSchema,\n UserDataPermissionSchema,\n CapabilityPermissionSchema,\n SystemPermissionSchema,\n isValidPermission,\n VALID_PERMISSIONS,\n PERMISSION_PATTERNS,\n type Permission,\n type NetworkPermission,\n type StoragePermission,\n type UserDataPermission,\n type CapabilityPermission,\n type SystemPermission,\n} from './permissions.schema.js'\n\n// Contribution schemas\nexport {\n ExtensionContributionsSchema,\n LocalizedStringSchema,\n SettingDefinitionSchema,\n SettingOptionsMappingSchema,\n SettingCreateMappingSchema,\n SettingValidationSchema,\n ToolSettingsViewDefinitionSchema,\n ToolSettingsViewSchema,\n ToolSettingsListViewSchema,\n ToolSettingsComponentViewSchema,\n ToolSettingsListMappingSchema,\n ToolSettingsActionDataSourceSchema,\n PanelDefinitionSchema,\n PanelViewSchema,\n PanelComponentViewSchema,\n PanelUnknownViewSchema,\n PanelActionDataSourceSchema,\n ProviderDefinitionSchema,\n ProviderConfigSchemaSchema,\n ProviderConfigPropertySchema,\n ProviderConfigPropertyTypeSchema,\n ProviderConfigSelectOptionSchema,\n ProviderConfigValidationSchema,\n ToolDefinitionSchema,\n CommandDefinitionSchema,\n PromptContributionSchema,\n PromptSectionSchema,\n type ExtensionContributions,\n type LocalizedString,\n type SettingDefinition,\n type SettingOptionsMapping,\n type SettingCreateMapping,\n type SettingValidation,\n type ToolSettingsViewDefinition,\n type ToolSettingsView,\n type ToolSettingsListView,\n type ToolSettingsComponentView,\n type ToolSettingsListMapping,\n type ToolSettingsActionDataSource,\n type PanelDefinition,\n type PanelView,\n type PanelComponentView,\n type PanelUnknownView,\n type PanelActionDataSource,\n type ProviderDefinition,\n type ProviderConfigSchema,\n type ProviderConfigProperty,\n type ProviderConfigPropertyType,\n type ProviderConfigSelectOption,\n type ProviderConfigValidation,\n type ToolDefinition,\n type CommandDefinition,\n type PromptContribution,\n type PromptSection,\n} from './contributions.schema.js'\n\n// Component schemas\nexport {\n ExtensionComponentDataSchema,\n ExtensionComponentStyleSchema,\n ExtensionActionCallSchema,\n ExtensionActionRefSchema,\n ExtensionComponentIteratorSchema,\n ExtensionComponentChildrenSchema,\n ExtensionDataSourceSchema,\n AllowedCSSPropertySchema,\n IconButtonTypeSchema,\n PillVariantSchema,\n PanelActionSchema,\n HeaderPropsSchema,\n LabelPropsSchema,\n ParagraphPropsSchema,\n ButtonPropsSchema,\n TextInputPropsSchema,\n DateTimeInputPropsSchema,\n SelectPropsSchema,\n IconPickerPropsSchema,\n VerticalStackPropsSchema,\n HorizontalStackPropsSchema,\n GridPropsSchema,\n DividerPropsSchema,\n IconPropsSchema,\n IconButtonPropsSchema,\n PanelPropsSchema,\n TogglePropsSchema,\n CollapsiblePropsSchema,\n PillPropsSchema,\n CheckboxPropsSchema,\n MarkdownPropsSchema,\n ModalPropsSchema,\n ConditionalGroupPropsSchema,\n type ExtensionComponentData,\n type ExtensionComponentStyle,\n type ExtensionActionCall,\n type ExtensionActionRef,\n type ExtensionComponentIterator,\n type ExtensionComponentChildren,\n type ExtensionDataSource,\n type AllowedCSSProperty,\n type IconButtonType,\n type PillVariant,\n type PanelAction,\n type HeaderProps,\n type LabelProps,\n type ParagraphProps,\n type ButtonProps,\n type TextInputProps,\n type DateTimeInputProps,\n type SelectProps,\n type IconPickerProps,\n type VerticalStackProps,\n type HorizontalStackProps,\n type GridProps,\n type DividerProps,\n type IconProps,\n type IconButtonProps,\n type PanelProps,\n type ToggleProps,\n type CollapsibleProps,\n type PillProps,\n type CheckboxProps,\n type MarkdownProps,\n type ModalProps,\n type ConditionalGroupProps,\n} from './components.schema.js'\n","/**\n * Manifest Schema\n *\n * Zod schema for extension manifest files (manifest.json).\n * This is the main schema that combines all sub-schemas.\n */\n\nimport { z } from 'zod'\nimport { PermissionSchema } from './permissions.schema.js'\nimport { ExtensionContributionsSchema } from './contributions.schema.js'\n\n/**\n * Platform schema\n */\nexport const PlatformSchema = z\n .enum(['web', 'electron', 'tui'])\n .describe('Supported platform')\n\n/**\n * Author schema\n */\nexport const AuthorSchema = z\n .object({\n name: z.string().min(1).describe('Author name'),\n url: z.string().url().optional().describe('Author URL'),\n })\n .describe('Author information')\n\n/**\n * Engines schema\n */\nexport const EnginesSchema = z\n .object({\n stina: z.string().describe('Minimum Stina version required'),\n })\n .describe('Engine requirements')\n\n/**\n * Extension manifest schema\n */\nexport const ExtensionManifestSchema = z\n .object({\n id: z\n .string()\n .regex(/^[a-z0-9-]+$/, 'ID must be lowercase alphanumeric with hyphens')\n .describe('Unique identifier (e.g., \"ollama-provider\")'),\n name: z.string().min(1).describe('Human-readable name'),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+/, 'Must be semver format (e.g., \"1.0.0\")')\n .describe('Version string (semver)'),\n description: z.string().min(1).describe('Short description'),\n author: AuthorSchema.describe('Author information'),\n repository: z.string().url().optional().describe('Repository URL'),\n license: z.string().optional().describe('License identifier'),\n engines: EnginesSchema.optional().describe('Minimum Stina version required'),\n platforms: z.array(PlatformSchema).optional().describe('Supported platforms'),\n main: z.string().describe('Entry point file (relative to extension root)'),\n permissions: z.array(PermissionSchema).describe('Required permissions'),\n contributes: ExtensionContributionsSchema.optional().describe('What the extension contributes'),\n })\n .describe('Extension manifest format')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type Platform = z.infer<typeof PlatformSchema>\nexport type Author = z.infer<typeof AuthorSchema>\nexport type Engines = z.infer<typeof EnginesSchema>\nexport type ExtensionManifest = z.infer<typeof ExtensionManifestSchema>\n","/**\n * Permission Schema\n *\n * Zod schema for extension permission strings.\n * Generates both TypeScript types and JSON Schema.\n */\n\nimport { z } from 'zod'\n\n/**\n * Valid exact permission values\n */\nexport const VALID_PERMISSIONS = [\n 'network:*',\n 'network:localhost',\n 'storage.collections',\n 'secrets.manage',\n 'user.profile.read',\n 'user.location.read',\n 'chat.history.read',\n 'chat.current.read',\n 'chat.message.write',\n 'provider.register',\n 'tools.register',\n 'actions.register',\n 'settings.register',\n 'commands.register',\n 'panels.register',\n 'events.emit',\n 'scheduler.register',\n 'background.workers',\n 'files.read',\n 'files.write',\n 'clipboard.read',\n 'clipboard.write',\n] as const\n\n/**\n * Permission patterns for dynamic permissions (network with host/port)\n */\nexport const PERMISSION_PATTERNS = [\n /^network:localhost:\\d+$/, // network:localhost:11434\n /^network:[a-zA-Z0-9.-]+$/, // network:api.example.com\n /^network:[a-zA-Z0-9.-]+:\\d+$/, // network:api.example.com:8080\n]\n\n/**\n * Network permission schema - matches exact values and patterns\n */\nconst NetworkPermissionSchema = z\n .string()\n .refine(\n (val) => {\n // Check exact matches first\n if (val === 'network:*' || val === 'network:localhost') {\n return true\n }\n // Check dynamic patterns\n return PERMISSION_PATTERNS.some((pattern) => pattern.test(val))\n },\n { message: 'Invalid network permission format' }\n )\n .describe('Network access permission (e.g., \"network:*\", \"network:localhost:11434\")')\n\n/**\n * Storage permission schema\n */\nconst StoragePermissionSchema = z.enum(['storage.collections', 'secrets.manage']).describe('Storage permission')\n\n/**\n * User data permission schema\n */\nconst UserDataPermissionSchema = z\n .enum(['user.profile.read', 'user.location.read', 'chat.history.read', 'chat.current.read'])\n .describe('User data access permission')\n\n/**\n * Capability permission schema\n */\nconst CapabilityPermissionSchema = z\n .enum([\n 'provider.register',\n 'tools.register',\n 'actions.register',\n 'settings.register',\n 'commands.register',\n 'panels.register',\n 'events.emit',\n 'scheduler.register',\n 'chat.message.write',\n 'background.workers',\n ])\n .describe('Capability permission')\n\n/**\n * System permission schema\n */\nconst SystemPermissionSchema = z\n .enum(['files.read', 'files.write', 'clipboard.read', 'clipboard.write'])\n .describe('System permission')\n\n/**\n * Regex pattern for dynamic network permissions (host with optional port)\n * Matches: network:api.example.com, network:localhost:11434, network:api.example.com:8080\n */\nconst NETWORK_PERMISSION_REGEX = /^network:[a-zA-Z0-9.-]+(:\\d+)?$/\n\n/**\n * Combined permission schema - validates against all permission types\n * Uses z.union with z.enum and z.string().regex() for better JSON Schema generation\n */\nexport const PermissionSchema = z\n .union([\n z.enum(VALID_PERMISSIONS),\n z.string().regex(NETWORK_PERMISSION_REGEX, 'Invalid network permission format'),\n ])\n .describe('Extension permission')\n\n/**\n * Check if a permission string is valid\n */\nexport function isValidPermission(permission: string): boolean {\n return PermissionSchema.safeParse(permission).success\n}\n\n// Re-export individual schemas for more specific validation if needed\nexport {\n NetworkPermissionSchema,\n StoragePermissionSchema,\n UserDataPermissionSchema,\n CapabilityPermissionSchema,\n SystemPermissionSchema,\n}\n\n// Type exports\nexport type Permission = z.infer<typeof PermissionSchema>\nexport type NetworkPermission = 'network:*' | `network:localhost` | `network:localhost:${number}` | `network:${string}`\nexport type StoragePermission = z.infer<typeof StoragePermissionSchema>\nexport type UserDataPermission = z.infer<typeof UserDataPermissionSchema>\nexport type CapabilityPermission = z.infer<typeof CapabilityPermissionSchema>\nexport type SystemPermission = z.infer<typeof SystemPermissionSchema>\n","/**\n * Contributions Schema\n *\n * Zod schemas for extension contributions: settings, panels, providers, tools, commands, prompts.\n */\n\nimport { z } from 'zod'\nimport { ExtensionComponentDataSchema } from './components.schema.js'\n\n// =============================================================================\n// Localization\n// =============================================================================\n\n/**\n * Localized string - either a simple string or a map of language codes to strings\n */\nexport const LocalizedStringSchema = z\n .union([z.string(), z.record(z.string())])\n .describe('String or localized string map')\n\n// =============================================================================\n// Settings\n// =============================================================================\n\n/**\n * Options mapping for select field options from tool response\n */\nexport const SettingOptionsMappingSchema = z\n .object({\n itemsKey: z.string().describe('Key for items array in tool result data'),\n valueKey: z.string().describe('Key for option value'),\n labelKey: z.string().describe('Key for option label'),\n descriptionKey: z.string().optional().describe('Optional key for description'),\n })\n .describe('Mapping for select field options')\n\n/**\n * Create mapping for create tool response\n */\nexport const SettingCreateMappingSchema = z\n .object({\n resultKey: z.string().optional().describe('Key for result data object'),\n valueKey: z.string().describe('Key for option value (defaults to \"id\")'),\n })\n .describe('Mapping for create tool response')\n\n/**\n * Validation rules for settings\n */\nexport const SettingValidationSchema = z\n .object({\n required: z.boolean().optional().describe('Whether the field is required'),\n min: z.number().optional().describe('Minimum value (number) or length (string)'),\n max: z.number().optional().describe('Maximum value (number) or length (string)'),\n pattern: z.string().optional().describe('Regex pattern for validation'),\n })\n .describe('Validation rules')\n\n/**\n * Setting definition type interface for recursive typing\n */\nexport interface SettingDefinitionType {\n id: string\n title: string\n description?: string\n type: 'string' | 'number' | 'boolean' | 'select'\n default?: unknown\n options?: { value: string; label: string }[]\n optionsToolId?: string\n optionsParams?: Record<string, unknown>\n optionsMapping?: z.infer<typeof SettingOptionsMappingSchema>\n createToolId?: string\n createLabel?: string\n createFields?: SettingDefinitionType[]\n createParams?: Record<string, unknown>\n createMapping?: z.infer<typeof SettingCreateMappingSchema>\n validation?: z.infer<typeof SettingValidationSchema>\n}\n\nexport const SettingDefinitionSchema: z.ZodType<SettingDefinitionType> = z.lazy(() =>\n z\n .object({\n id: z.string().describe('Setting ID (namespaced automatically)'),\n title: z.string().describe('Display title'),\n description: z.string().optional().describe('Help text'),\n type: z.enum(['string', 'number', 'boolean', 'select']).describe('Setting type'),\n default: z.unknown().optional().describe('Default value'),\n options: z\n .array(z.object({ value: z.string(), label: z.string() }))\n .optional()\n .describe('For select type: available options'),\n optionsToolId: z.string().optional().describe('For select type: load options from tool'),\n optionsParams: z.record(z.unknown()).optional().describe('Params for options tool'),\n optionsMapping: SettingOptionsMappingSchema.optional().describe('Mapping for options tool response'),\n createToolId: z.string().optional().describe('Tool ID for creating a new option'),\n createLabel: z.string().optional().describe('Label for create action'),\n createFields: z.array(SettingDefinitionSchema).optional().describe('Fields for create form'),\n createParams: z.record(z.unknown()).optional().describe('Static params for create tool'),\n createMapping: SettingCreateMappingSchema.optional().describe('Mapping for create tool response'),\n validation: SettingValidationSchema.optional().describe('Validation rules'),\n })\n .superRefine((data, ctx) => {\n // Validate that create* fields are only used with type: 'select'\n const hasCreateFields =\n data.createToolId !== undefined ||\n data.createLabel !== undefined ||\n data.createFields !== undefined ||\n data.createParams !== undefined ||\n data.createMapping !== undefined\n\n if (hasCreateFields && data.type !== 'select') {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'create* fields (createToolId, createLabel, createFields, createParams, createMapping) are only valid for type \"select\"',\n path: ['type'],\n })\n }\n\n // Validate that select type has options or optionsToolId\n if (data.type === 'select') {\n const hasOptions = data.options && data.options.length > 0\n const hasOptionsToolId = data.optionsToolId !== undefined\n\n if (!hasOptions && !hasOptionsToolId) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Setting of type \"select\" must have \"options\" or \"optionsToolId\"',\n path: ['type'],\n })\n }\n }\n })\n .describe('Setting definition')\n)\n\n// =============================================================================\n// Tool Settings Views\n// =============================================================================\n\n/**\n * Tool settings list mapping\n */\nexport const ToolSettingsListMappingSchema = z\n .object({\n itemsKey: z.string().describe('Key for items array in tool result data'),\n countKey: z.string().optional().describe('Key for total count'),\n idKey: z.string().describe('Key for item ID'),\n labelKey: z.string().describe('Key for item label'),\n descriptionKey: z.string().optional().describe('Key for item description'),\n secondaryKey: z.string().optional().describe('Key for secondary label'),\n })\n .describe('Mapping from tool list data to UI fields')\n\n/**\n * Action-based data source for tool settings\n */\nexport const ToolSettingsActionDataSourceSchema = z\n .object({\n action: z.string().describe('Action ID to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger refresh'),\n })\n .describe('Action-based data source')\n\n/**\n * List view backed by tools\n */\nexport const ToolSettingsListViewSchema = z\n .object({\n kind: z.literal('list').describe('View kind'),\n listToolId: z.string().describe('Tool ID for listing items'),\n getToolId: z.string().optional().describe('Tool ID for fetching details'),\n upsertToolId: z.string().optional().describe('Tool ID for creating/updating items'),\n deleteToolId: z.string().optional().describe('Tool ID for deleting items'),\n mapping: ToolSettingsListMappingSchema.describe('Mapping from tool data to UI'),\n searchParam: z.string().optional().describe('Param name for search query'),\n limitParam: z.string().optional().describe('Param name for limit'),\n idParam: z.string().optional().describe('Param name for get/delete ID'),\n listParams: z.record(z.unknown()).optional().describe('Static params for list tool'),\n })\n .describe('List view backed by tools')\n\n/**\n * Component-based tool settings view\n */\nexport const ToolSettingsComponentViewSchema = z\n .object({\n kind: z.literal('component').describe('View kind'),\n data: z.record(ToolSettingsActionDataSourceSchema).optional().describe('Data sources'),\n content: ExtensionComponentDataSchema.describe('Root component to render'),\n })\n .describe('Component-based tool settings view')\n\n/**\n * Tool settings view types\n */\nexport const ToolSettingsViewSchema = z\n .union([ToolSettingsListViewSchema, ToolSettingsComponentViewSchema])\n .describe('Tool settings view')\n\n/**\n * Tool settings view definition\n */\nexport const ToolSettingsViewDefinitionSchema = z\n .object({\n id: z.string().describe('Unique view ID within the extension'),\n title: z.string().describe('Display title'),\n description: z.string().optional().describe('Help text'),\n view: ToolSettingsViewSchema.describe('View configuration'),\n fields: z.array(SettingDefinitionSchema).optional().describe('Fields for create/edit forms'),\n })\n .describe('Tool settings view definition')\n\n// =============================================================================\n// Panels\n// =============================================================================\n\n/**\n * Action-based data source for panels\n */\nexport const PanelActionDataSourceSchema = z\n .object({\n action: z.string().describe('Action ID to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger refresh'),\n })\n .describe('Panel data source')\n\n/**\n * Component-based panel view\n */\nexport const PanelComponentViewSchema = z\n .object({\n kind: z.literal('component').describe('View kind'),\n data: z.record(PanelActionDataSourceSchema).optional().describe('Data sources'),\n content: ExtensionComponentDataSchema.describe('Root component to render'),\n })\n .describe('Component-based panel view')\n\n/**\n * Unknown panel view (for extensibility)\n */\nexport const PanelUnknownViewSchema = z\n .object({\n kind: z.string().describe('View kind'),\n })\n .passthrough()\n .describe('Unknown panel view')\n\n/**\n * Panel view schema\n */\nexport const PanelViewSchema = z\n .union([PanelComponentViewSchema, PanelUnknownViewSchema])\n .describe('Panel view')\n\n/**\n * Panel definition\n */\nexport const PanelDefinitionSchema = z\n .object({\n id: z.string().describe('Unique panel ID within the extension'),\n title: z.string().describe('Display title'),\n icon: z.string().optional().describe('Icon name (from huge-icons)'),\n view: PanelViewSchema.describe('Panel view schema'),\n })\n .describe('Panel definition')\n\n// =============================================================================\n// Providers\n// =============================================================================\n\n/**\n * Provider config property type\n */\nexport const ProviderConfigPropertyTypeSchema = z\n .enum(['string', 'number', 'boolean', 'select', 'password', 'url'])\n .describe('Property type')\n\n/**\n * Provider config select option\n */\nexport const ProviderConfigSelectOptionSchema = z\n .object({\n value: z.string().describe('Value stored in settings'),\n label: z.string().describe('Display label'),\n })\n .describe('Select option')\n\n/**\n * Provider config validation\n */\nexport const ProviderConfigValidationSchema = z\n .object({\n pattern: z.string().optional().describe('Regex pattern the value must match'),\n minLength: z.number().optional().describe('Minimum string length'),\n maxLength: z.number().optional().describe('Maximum string length'),\n min: z.number().optional().describe('Minimum number value'),\n max: z.number().optional().describe('Maximum number value'),\n })\n .describe('Validation rules')\n\n/**\n * Provider config property\n */\nexport const ProviderConfigPropertySchema = z\n .object({\n type: ProviderConfigPropertyTypeSchema.describe('Property type'),\n title: z.string().describe('Display label'),\n description: z.string().optional().describe('Help text'),\n default: z.unknown().optional().describe('Default value'),\n required: z.boolean().optional().describe('Whether the field is required'),\n placeholder: z.string().optional().describe('Placeholder text'),\n options: z.array(ProviderConfigSelectOptionSchema).optional().describe('For select type'),\n validation: ProviderConfigValidationSchema.optional().describe('Validation rules'),\n })\n .describe('Provider config property')\n\n/**\n * Provider config schema\n */\nexport const ProviderConfigSchemaSchema = z\n .object({\n properties: z.record(ProviderConfigPropertySchema).describe('Property definitions'),\n order: z.array(z.string()).optional().describe('Display order of properties'),\n })\n .describe('Provider configuration schema')\n\n/**\n * Provider definition\n */\nexport const ProviderDefinitionSchema = z\n .object({\n id: z.string().describe('Provider ID'),\n name: z.string().describe('Display name'),\n description: z.string().optional().describe('Description'),\n suggestedDefaultModel: z.string().optional().describe('Suggested default model'),\n defaultSettings: z.record(z.unknown()).optional().describe('Default settings'),\n configSchema: ProviderConfigSchemaSchema.optional().describe('Configuration UI schema'),\n })\n .describe('Provider definition')\n\n// =============================================================================\n// Tools\n// =============================================================================\n\n/**\n * Tool definition\n */\nexport const ToolDefinitionSchema = z\n .object({\n id: z.string().describe('Tool ID'),\n name: LocalizedStringSchema.describe('Display name'),\n description: LocalizedStringSchema.describe('Description for Stina'),\n parameters: z.record(z.unknown()).optional().describe('Parameter schema (JSON Schema)'),\n })\n .describe('Tool definition')\n\n// =============================================================================\n// Commands\n// =============================================================================\n\n/**\n * Command definition\n */\nexport const CommandDefinitionSchema = z\n .object({\n id: z.string().describe('Command ID (e.g., \"weather\" for /weather)'),\n name: z.string().describe('Display name'),\n description: z.string().describe('Description'),\n })\n .describe('Command definition')\n\n// =============================================================================\n// Prompts\n// =============================================================================\n\n/**\n * Prompt section\n */\nexport const PromptSectionSchema = z\n .enum(['system', 'behavior', 'tools'])\n .describe('Prompt section placement')\n\n/**\n * Prompt contribution\n */\nexport const PromptContributionSchema = z\n .object({\n id: z.string().describe('Unique ID within the extension'),\n title: z.string().optional().describe('Optional title for the prompt chunk'),\n section: PromptSectionSchema.optional().describe('Prompt section placement'),\n text: z.string().optional().describe('Plain text prompt content'),\n i18n: z.record(z.string()).optional().describe('Localized prompt content'),\n order: z.number().optional().describe('Ordering hint (lower comes first)'),\n })\n .describe('Prompt contribution')\n\n// =============================================================================\n// Storage\n// =============================================================================\n\n/**\n * Storage collection config schema\n */\nexport const StorageCollectionConfigSchema = z\n .object({\n indexes: z.array(z.string()).optional().describe('Fields to index for fast queries'),\n })\n .describe('Collection configuration')\n\n/**\n * Storage contributions schema\n */\nexport const StorageContributionsSchema = z\n .object({\n collections: z.record(StorageCollectionConfigSchema).describe('Collection definitions'),\n })\n .describe('Storage contributions')\n\n// =============================================================================\n// Extension Contributions\n// =============================================================================\n\n/**\n * Extension contributions\n */\nexport const ExtensionContributionsSchema = z\n .object({\n settings: z.array(SettingDefinitionSchema).optional().describe('User-configurable settings'),\n toolSettings: z.array(ToolSettingsViewDefinitionSchema).optional().describe('Tool settings views'),\n panels: z.array(PanelDefinitionSchema).optional().describe('Right panel contributions'),\n providers: z.array(ProviderDefinitionSchema).optional().describe('AI providers'),\n tools: z.array(ToolDefinitionSchema).optional().describe('Tools for Stina to use'),\n commands: z.array(CommandDefinitionSchema).optional().describe('Slash commands'),\n prompts: z.array(PromptContributionSchema).optional().describe('Prompt contributions'),\n storage: StorageContributionsSchema.optional().describe('Storage collection declarations'),\n })\n .describe('What an extension can contribute to Stina')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type LocalizedString = z.infer<typeof LocalizedStringSchema>\nexport type SettingOptionsMapping = z.infer<typeof SettingOptionsMappingSchema>\nexport type SettingCreateMapping = z.infer<typeof SettingCreateMappingSchema>\nexport type SettingValidation = z.infer<typeof SettingValidationSchema>\nexport type SettingDefinition = z.infer<typeof SettingDefinitionSchema>\nexport type ToolSettingsListMapping = z.infer<typeof ToolSettingsListMappingSchema>\nexport type ToolSettingsActionDataSource = z.infer<typeof ToolSettingsActionDataSourceSchema>\nexport type ToolSettingsListView = z.infer<typeof ToolSettingsListViewSchema>\nexport type ToolSettingsComponentView = z.infer<typeof ToolSettingsComponentViewSchema>\nexport type ToolSettingsView = z.infer<typeof ToolSettingsViewSchema>\nexport type ToolSettingsViewDefinition = z.infer<typeof ToolSettingsViewDefinitionSchema>\nexport type PanelActionDataSource = z.infer<typeof PanelActionDataSourceSchema>\nexport type PanelComponentView = z.infer<typeof PanelComponentViewSchema>\nexport type PanelUnknownView = z.infer<typeof PanelUnknownViewSchema>\nexport type PanelView = z.infer<typeof PanelViewSchema>\nexport type PanelDefinition = z.infer<typeof PanelDefinitionSchema>\nexport type ProviderConfigPropertyType = z.infer<typeof ProviderConfigPropertyTypeSchema>\nexport type ProviderConfigSelectOption = z.infer<typeof ProviderConfigSelectOptionSchema>\nexport type ProviderConfigValidation = z.infer<typeof ProviderConfigValidationSchema>\nexport type ProviderConfigProperty = z.infer<typeof ProviderConfigPropertySchema>\nexport type ProviderConfigSchema = z.infer<typeof ProviderConfigSchemaSchema>\nexport type ProviderDefinition = z.infer<typeof ProviderDefinitionSchema>\nexport type ToolDefinition = z.infer<typeof ToolDefinitionSchema>\nexport type CommandDefinition = z.infer<typeof CommandDefinitionSchema>\nexport type PromptSection = z.infer<typeof PromptSectionSchema>\nexport type PromptContribution = z.infer<typeof PromptContributionSchema>\nexport type StorageCollectionConfig = z.infer<typeof StorageCollectionConfigSchema>\nexport type StorageContributions = z.infer<typeof StorageContributionsSchema>\nexport type ExtensionContributions = z.infer<typeof ExtensionContributionsSchema>\n","/**\n * Component Schema\n *\n * Zod schemas for extension UI components.\n */\n\nimport { z } from 'zod'\n\n// =============================================================================\n// CSS Properties\n// =============================================================================\n\n/**\n * Allowed CSS property names for extension component styling.\n */\nexport const AllowedCSSPropertySchema = z.enum([\n // Colors\n 'color',\n 'background-color',\n 'background',\n 'border-color',\n // Borders\n 'border',\n 'border-width',\n 'border-style',\n 'border-radius',\n 'border-top',\n 'border-right',\n 'border-bottom',\n 'border-left',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n // Spacing\n 'padding',\n 'padding-top',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'margin',\n 'margin-top',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'gap',\n 'row-gap',\n 'column-gap',\n // Typography\n 'font-size',\n 'font-weight',\n 'font-style',\n 'text-align',\n 'text-decoration',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'word-break',\n 'overflow-wrap',\n // Layout (safe properties)\n 'width',\n 'height',\n 'min-width',\n 'min-height',\n 'max-width',\n 'max-height',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'flex-basis',\n 'flex-wrap',\n 'align-self',\n 'justify-self',\n 'align-items',\n 'justify-content',\n // Visual\n 'opacity',\n 'visibility',\n 'overflow',\n 'overflow-x',\n 'overflow-y',\n 'box-shadow',\n 'outline',\n 'cursor',\n 'border-collapse',\n 'border-spacing',\n])\n\n/**\n * Style object for extension components.\n */\nexport const ExtensionComponentStyleSchema = z\n .record(AllowedCSSPropertySchema, z.string())\n .describe('Safe CSS styles for the component')\n\n// =============================================================================\n// Base Component\n// =============================================================================\n\n/**\n * Base component data schema - allows additional properties\n */\nexport const ExtensionComponentDataSchema: z.ZodType<{\n component: string\n style?: Record<string, string>\n [key: string]: unknown\n}> = z.lazy(() =>\n z\n .object({\n component: z.string().describe('Component type name'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Extension component definition')\n)\n\n// =============================================================================\n// Action References\n// =============================================================================\n\n/**\n * Action call with parameters\n */\nexport const ExtensionActionCallSchema = z\n .object({\n action: z.string().describe('Name of the registered action'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass'),\n })\n .describe('Action call with parameters')\n\n/**\n * Action reference - can be a simple string or full action call\n */\nexport const ExtensionActionRefSchema = z\n .union([z.string(), ExtensionActionCallSchema])\n .describe('Action reference')\n\n// =============================================================================\n// Iterator & Children\n// =============================================================================\n\n/**\n * Iterator for rendering a list of components from data\n */\nexport const ExtensionComponentIteratorSchema = z\n .object({\n each: z.union([z.string(), z.array(z.unknown())]).describe('Data source to iterate over'),\n as: z.string().describe('Variable name for current item in scope'),\n items: z.array(ExtensionComponentDataSchema).describe('Components to render for each item'),\n })\n .describe('Iterator for rendering lists')\n\n/**\n * Children can be either a static array of components or an iterator\n */\nexport const ExtensionComponentChildrenSchema = z\n .union([z.array(ExtensionComponentDataSchema), ExtensionComponentIteratorSchema])\n .describe('Child components or iterator')\n\n// =============================================================================\n// Data Source\n// =============================================================================\n\n/**\n * Data source definition for fetching data via an action\n */\nexport const ExtensionDataSourceSchema = z\n .object({\n action: z.string().describe('Action to call for fetching data'),\n params: z.record(z.unknown()).optional().describe('Parameters to pass to the action'),\n refreshOn: z.array(z.string()).optional().describe('Event names that trigger a refresh'),\n })\n .describe('Data source definition')\n\n// =============================================================================\n// Component Props Schemas\n// =============================================================================\n\nexport const HeaderPropsSchema = z\n .object({\n component: z.literal('Header'),\n level: z.number().min(1).max(6).describe('Heading level (1-6)'),\n title: z.string().describe('Header title'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Header component')\n\nexport const LabelPropsSchema = z\n .object({\n component: z.literal('Label'),\n text: z.string().describe('Label text'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Label component')\n\nexport const ParagraphPropsSchema = z\n .object({\n component: z.literal('Paragraph'),\n text: z.string().describe('Paragraph text'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Paragraph component')\n\nexport const ButtonPropsSchema = z\n .object({\n component: z.literal('Button'),\n text: z.string().describe('Button text'),\n onClickAction: ExtensionActionRefSchema.describe('Action to call on click'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Button component')\n\nexport const TextInputPropsSchema = z\n .object({\n component: z.literal('TextInput'),\n label: z.string().describe('Input label'),\n placeholder: z.string().optional().describe('Placeholder text'),\n value: z.string().optional().describe('Current value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('TextInput component')\n\nexport const DateTimeInputPropsSchema = z\n .object({\n component: z.literal('DateTimeInput'),\n label: z.string().describe('Input label'),\n value: z.string().optional().describe('Current value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('DateTimeInput component')\n\nexport const SelectPropsSchema = z\n .object({\n component: z.literal('Select'),\n label: z.string().describe('Select label'),\n options: z.array(z.object({ label: z.string(), value: z.string() })).describe('Available options'),\n selectedValue: z.string().optional().describe('Currently selected value'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Select component')\n\nexport const IconPickerPropsSchema = z\n .object({\n component: z.literal('IconPicker'),\n label: z.string().optional().describe('Picker label'),\n value: z.string().optional().describe('Currently selected icon name'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('IconPicker component')\n\nexport const VerticalStackPropsSchema = z\n .object({\n component: z.literal('VerticalStack'),\n gap: z.number().optional().describe('Gap between children'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('VerticalStack layout component')\n\nexport const HorizontalStackPropsSchema = z\n .object({\n component: z.literal('HorizontalStack'),\n gap: z.number().optional().describe('Gap between children'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('HorizontalStack layout component')\n\nexport const GridPropsSchema = z\n .object({\n component: z.literal('Grid'),\n columns: z.number().describe('Number of columns'),\n gap: z.number().optional().describe('Gap between items'),\n children: ExtensionComponentChildrenSchema.describe('Child components'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Grid layout component')\n\nexport const DividerPropsSchema = z\n .object({\n component: z.literal('Divider'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Divider component')\n\nexport const IconPropsSchema = z\n .object({\n component: z.literal('Icon'),\n name: z.string().describe('Icon name'),\n title: z.string().optional().describe('Icon title'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Icon component')\n\nexport const IconButtonTypeSchema = z\n .enum(['normal', 'primary', 'danger', 'accent'])\n .describe('Button type')\n\nexport const IconButtonPropsSchema = z\n .object({\n component: z.literal('IconButton'),\n icon: z.string().describe('Icon name'),\n tooltip: z.string().describe('Tooltip text'),\n active: z.boolean().optional().describe('Whether the button is active'),\n disabled: z.boolean().optional().describe('Whether the button is disabled'),\n type: IconButtonTypeSchema.optional().describe('Button style type'),\n onClickAction: ExtensionActionRefSchema.describe('Action to call on click'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('IconButton component')\n\nexport const PanelActionSchema = z\n .object({\n icon: z.string().describe('Icon name'),\n tooltip: z.string().describe('Tooltip text'),\n action: ExtensionActionRefSchema.describe('Action to call'),\n type: IconButtonTypeSchema.optional().describe('Button style type'),\n })\n .describe('Panel action button')\n\nexport const PanelPropsSchema = z\n .object({\n component: z.literal('Panel'),\n title: z.string().describe('Panel title'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n actions: z.array(PanelActionSchema).optional().describe('Action buttons'),\n content: ExtensionComponentDataSchema.optional().describe('Panel content'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Panel component')\n\nexport const TogglePropsSchema = z\n .object({\n component: z.literal('Toggle'),\n label: z.string().optional().describe('Toggle label'),\n description: z.string().optional().describe('Description text'),\n checked: z.boolean().optional().describe('Whether the toggle is checked'),\n disabled: z.boolean().optional().describe('Whether the toggle is disabled'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Toggle component')\n\nexport const CollapsiblePropsSchema = z\n .object({\n component: z.literal('Collapsible'),\n title: z.string().describe('Title displayed in the header'),\n description: z.union([z.string(), z.array(z.string())]).optional().describe('Description text'),\n icon: z.string().optional().describe('Icon name'),\n defaultExpanded: z.boolean().optional().describe('Whether expanded by default'),\n content: ExtensionComponentDataSchema.optional().describe('Content when expanded'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Collapsible component')\n\nexport const PillVariantSchema = z\n .enum(['default', 'primary', 'success', 'warning', 'danger', 'accent'])\n .describe('Pill color variant')\n\nexport const PillPropsSchema = z\n .object({\n component: z.literal('Pill'),\n text: z.string().describe('Pill text'),\n icon: z.string().optional().describe('Icon name'),\n variant: PillVariantSchema.optional().describe('Color variant'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Pill component')\n\nexport const CheckboxPropsSchema = z\n .object({\n component: z.literal('Checkbox'),\n label: z.string().describe('Checkbox label'),\n checked: z.boolean().optional().describe('Whether the checkbox is checked'),\n disabled: z.boolean().optional().describe('Whether the checkbox is disabled'),\n strikethrough: z.boolean().optional().describe('Strike through label when checked'),\n onChangeAction: ExtensionActionRefSchema.describe('Action to call on change'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Checkbox component')\n\nexport const MarkdownPropsSchema = z\n .object({\n component: z.literal('Markdown'),\n content: z.string().describe('Markdown content'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Markdown component')\n\nexport const ModalPropsSchema = z\n .object({\n component: z.literal('Modal'),\n title: z.string().describe('Modal title'),\n open: z.boolean().optional().describe('Whether the modal is open'),\n maxWidth: z.string().optional().describe('Max width of the modal'),\n body: ExtensionComponentDataSchema.optional().describe('Modal body content'),\n footer: ExtensionComponentDataSchema.optional().describe('Modal footer content'),\n onCloseAction: ExtensionActionRefSchema.optional().describe('Action to call on close'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('Modal component')\n\nexport const ConditionalGroupPropsSchema = z\n .object({\n component: z.literal('ConditionalGroup'),\n condition: z.string().describe('Condition expression to evaluate'),\n children: ExtensionComponentChildrenSchema.describe('Children to render when condition is true'),\n style: ExtensionComponentStyleSchema.optional(),\n })\n .passthrough()\n .describe('ConditionalGroup component')\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type AllowedCSSProperty = z.infer<typeof AllowedCSSPropertySchema>\nexport type ExtensionComponentStyle = z.infer<typeof ExtensionComponentStyleSchema>\nexport type ExtensionComponentData = z.infer<typeof ExtensionComponentDataSchema>\nexport type ExtensionActionCall = z.infer<typeof ExtensionActionCallSchema>\nexport type ExtensionActionRef = z.infer<typeof ExtensionActionRefSchema>\nexport type ExtensionComponentIterator = z.infer<typeof ExtensionComponentIteratorSchema>\nexport type ExtensionComponentChildren = z.infer<typeof ExtensionComponentChildrenSchema>\nexport type ExtensionDataSource = z.infer<typeof ExtensionDataSourceSchema>\nexport type IconButtonType = z.infer<typeof IconButtonTypeSchema>\nexport type PillVariant = z.infer<typeof PillVariantSchema>\nexport type PanelAction = z.infer<typeof PanelActionSchema>\nexport type HeaderProps = z.infer<typeof HeaderPropsSchema>\nexport type LabelProps = z.infer<typeof LabelPropsSchema>\nexport type ParagraphProps = z.infer<typeof ParagraphPropsSchema>\nexport type ButtonProps = z.infer<typeof ButtonPropsSchema>\nexport type TextInputProps = z.infer<typeof TextInputPropsSchema>\nexport type DateTimeInputProps = z.infer<typeof DateTimeInputPropsSchema>\nexport type SelectProps = z.infer<typeof SelectPropsSchema>\nexport type IconPickerProps = z.infer<typeof IconPickerPropsSchema>\nexport type VerticalStackProps = z.infer<typeof VerticalStackPropsSchema>\nexport type HorizontalStackProps = z.infer<typeof HorizontalStackPropsSchema>\nexport type GridProps = z.infer<typeof GridPropsSchema>\nexport type DividerProps = z.infer<typeof DividerPropsSchema>\nexport type IconProps = z.infer<typeof IconPropsSchema>\nexport type IconButtonProps = z.infer<typeof IconButtonPropsSchema>\nexport type PanelProps = z.infer<typeof PanelPropsSchema>\nexport type ToggleProps = z.infer<typeof TogglePropsSchema>\nexport type CollapsibleProps = z.infer<typeof CollapsiblePropsSchema>\nexport type PillProps = z.infer<typeof PillPropsSchema>\nexport type CheckboxProps = z.infer<typeof CheckboxPropsSchema>\nexport type MarkdownProps = z.infer<typeof MarkdownPropsSchema>\nexport type ModalProps = z.infer<typeof ModalPropsSchema>\nexport type ConditionalGroupProps = z.infer<typeof ConditionalGroupPropsSchema>\n"],"mappings":"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","names":["import_zod","import_zod","import_zod"]}
|