lumiverse-spindle-types 0.6.23 → 0.6.25

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/api.d.ts CHANGED
@@ -2065,6 +2065,52 @@ export interface PermissionChangedDetail {
2065
2065
  /** The full list of currently granted permissions after the change */
2066
2066
  allGranted: string[];
2067
2067
  }
2068
+ export type McpTransportTypeDTO = "streamable_http" | "sse" | "stdio";
2069
+ /** Redacted MCP server profile. Connection locations and secret values are never exposed. */
2070
+ export interface McpServerDTO {
2071
+ id: string;
2072
+ name: string;
2073
+ transport_type: McpTransportTypeDTO;
2074
+ has_headers: boolean;
2075
+ env_keys: string[];
2076
+ is_enabled: boolean;
2077
+ auto_connect: boolean;
2078
+ last_connected_at: number | null;
2079
+ created_at: number;
2080
+ updated_at: number;
2081
+ }
2082
+ export interface McpServerCreateDTO {
2083
+ name: string;
2084
+ transport_type: McpTransportTypeDTO;
2085
+ url?: string;
2086
+ command?: string;
2087
+ args?: string[];
2088
+ env?: Record<string, string>;
2089
+ headers?: Record<string, string>;
2090
+ is_enabled?: boolean;
2091
+ /** Defaults to false when created through Spindle; true also requires `mcp_servers`. */
2092
+ auto_connect?: boolean;
2093
+ metadata?: Record<string, unknown>;
2094
+ }
2095
+ export interface McpToolDTO {
2096
+ server_id: string;
2097
+ server_name: string;
2098
+ name: string;
2099
+ description: string;
2100
+ input_schema: Record<string, unknown>;
2101
+ }
2102
+ export interface McpServerStatusDTO {
2103
+ id: string;
2104
+ connected: boolean;
2105
+ tool_count: number;
2106
+ tools: McpToolDTO[];
2107
+ error?: string;
2108
+ }
2109
+ export interface McpToolCallOptionsDTO {
2110
+ userId?: string;
2111
+ /** Clamped by the host to 1–120 seconds. */
2112
+ timeoutMs?: number;
2113
+ }
2068
2114
  /** Identifies which provider backs the user's configured web search engine. */
2069
2115
  export type WebSearchProviderDTO = "searxng";
2070
2116
  /**
@@ -3163,6 +3209,45 @@ export type WorkerToHost = {
3163
3209
  } | {
3164
3210
  type: "permissions_get_granted";
3165
3211
  requestId: string;
3212
+ } | {
3213
+ type: "mcp_servers_list";
3214
+ requestId: string;
3215
+ limit?: number;
3216
+ offset?: number;
3217
+ userId?: string;
3218
+ } | {
3219
+ type: "mcp_servers_get";
3220
+ requestId: string;
3221
+ serverId: string;
3222
+ userId?: string;
3223
+ } | {
3224
+ type: "mcp_servers_create";
3225
+ requestId: string;
3226
+ input: McpServerCreateDTO;
3227
+ userId?: string;
3228
+ } | {
3229
+ type: "mcp_servers_connect";
3230
+ requestId: string;
3231
+ serverId: string;
3232
+ userId?: string;
3233
+ } | {
3234
+ type: "mcp_servers_status";
3235
+ requestId: string;
3236
+ serverId: string;
3237
+ userId?: string;
3238
+ } | {
3239
+ type: "mcp_tools_list";
3240
+ requestId: string;
3241
+ serverId: string;
3242
+ userId?: string;
3243
+ } | {
3244
+ type: "mcp_tools_call";
3245
+ requestId: string;
3246
+ serverId: string;
3247
+ toolName: string;
3248
+ args: Record<string, unknown>;
3249
+ timeoutMs?: number;
3250
+ userId?: string;
3166
3251
  } | {
3167
3252
  type: "rpc_pool_sync";
3168
3253
  endpoint: string;
package/dist/host.js CHANGED
@@ -10,6 +10,7 @@ export const SPINDLE_HOST_CAPABILITIES = Object.freeze({
10
10
  "text-editor-close-v1": 1,
11
11
  "frontend-extensibility-v2": 1,
12
12
  "frontend-runtime-capabilities-v1": 1,
13
+ "mcp-servers-v1": 1,
13
14
  });
14
15
  /** Structured error code returned when host compatibility validation fails. */
15
16
  export const SPINDLE_COMPATIBILITY_ERROR_CODE = "SPINDLE_COMPATIBILITY_ERROR";
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { ALL_CAPABILITIES, isValidCapability } from "./capabilities.js";
11
11
  export { SpindleEvent, CoreEventType } from "./events.js";
12
12
  export type { SpindleFrontendRuntimeCapability } from "./frontend-capabilities.js";
13
13
  export { ALL_FRONTEND_RUNTIME_CAPABILITIES, isValidFrontendRuntimeCapability, } from "./frontend-capabilities.js";
14
- export type { LlmMessagePartDTO, LlmMessageDTO, LlmThinkingBlockDTO, SpindleUserRoleDTO, InterceptorGenerationType, InterceptorMatchScalar, InterceptorMatchDTO, InterceptorRegistrationMatchOptions, InterceptorRegistrationOptions, InterceptorContextDTO, InterceptorDisposer, InterceptorHandler, DeferredGuidanceDTO, InterceptorBreakdownEntryDTO, FinalResponseDTO, InterceptorResultDTO, MacroDefinitionDTO, MacroInvocationContextDTO, MacroResolveOptionsDTO, MacroResolveResultDTO, ToolRegistrationDTO, ToolSchemaDTO, ToolCallDTO, ToolDefinitionDTO, GenerationUsageDTO, GenerationResponseDTO, GenerationDispatchSourceDTO, ConnectionDispatchDescriptorDTO, GenerationRequestDTO, GenerationReasoningOverrideDTO, ReasoningEffortDTO, ReasoningSettingsDTO, ThinkingDisplayDTO, ConnectionReasoningBindingsDTO, ChatAppendGenerationOptionsDTO, ChatAppendMessageOptionsDTO, StreamChunkDTO, RequestInitDTO, ConnectionProfileDTO, PermissionDeniedDetail, PermissionChangedDetail, CharacterDTO, CharacterCreateDTO, CharacterAvatarUploadDTO, CharacterUpdateDTO, ChatDTO, ChatUpdateDTO, ChatSwitchedPayloadDTO, ChatChangedPayloadDTO, ChatForkedPayloadDTO, PromptVariableOptionDTO, PromptVariableDefDTO, PromptVariableTypeDTO, PromptVariableValueDTO, PromptVariableValuesDTO, PromptBlockRoleDTO, PromptBlockPositionDTO, PromptBlockCategoryModeDTO, PromptBlockPlacementDTO, PromptBlockPlacementBindingDTO, PromptBlockDTO, PromptBlockSnapshotDTO, PromptBlockCreateDTO, PromptBlockUpdateDTO, PromptBlockCategoryGroupDTO, HostResponseErrorDTO, UserPresetDTO, UserPresetCreateDTO, UserPresetUpdateDTO, WorldBookDTO, WorldBookCreateDTO, WorldBookUpdateDTO, WorldBookEntryDTO, WorldBookEntryCreateDTO, WorldBookEntryUpdateDTO, RegexPlacementDTO, RegexScopeDTO, RegexTargetDTO, RegexMacroModeDTO, RegexScriptDTO, RegexScriptCreateDTO, RegexScriptUpdateDTO, RegexScriptListOptionsDTO, RegexScriptActiveOptionsDTO, WorldInfoInterceptorEntryDTO, WorldInfoInterceptorMessageDTO, WorldInfoActivationSettingsDTO, WorldInfoActivationOverridesDTO, WorldInfoInterceptorRoleDTO, WorldInfoInterceptorPlacementDTO, WorldInfoInterceptorCtxDTO, WorldInfoInterceptorMutationDTO, WorldInfoInterceptorResultDTO, DatabankScopeDTO, DatabankDocumentStatusDTO, DatabankDTO, DatabankCreateDTO, DatabankUpdateDTO, DatabankDocumentDTO, DatabankDocumentCreateDTO, DatabankDocumentUpdateDTO, PersonaDTO, GlobalAddonDTO, GlobalAddonUpdateDTO, LumiaItemDTO, LoomItemCategoryDTO, LoomItemDTO, LoomToolDTO, LumiaDlcPackDTO, LumiaDlcCatalogDTO, PersonaCreateDTO, PersonaUpdateDTO, ActivatedWorldInfoEntryDTO, WorldBookSourceDTO, WorldInfoActivatedEventDTO, DryRunRequestDTO, DryRunResultDTO, AssembleRequestDTO, AssembleResultDTO, BoundPrefillAttachmentDTO, BoundAssembleRequestDTO, BoundAssemblySuccessDTO, BoundAssemblyFailureDTO, BoundAssemblyOutcomeDTO, QuietTrackedRequestDTO, QuietDispatchReceiptDTO, QuietTrackedResultDTO, AssemblyBreakdownEntryDTO, ActivationStatsDTO, MemoryStatsDTO, DryRunTokenCountDTO, ChatMemoryChunkDTO, ChatMemoryResultDTO, ImageGenConnectionDTO, ImageGenParameterSchemaDTO, ImageGenProviderDTO, ImageGenRequestDTO, ImageGenResultDTO, ImageGenStreamRequestDTO, ImageGenStreamStatusDTO, ImageGenStreamPreviewDTO, ImageGenStreamDoneDTO, ImageGenStreamEventDTO, ImageGetOptionsDTO, ImageDTO, ImageListOptionsDTO, ImageSpecificityDTO, ImageVideoCodecDTO, ImageUploadDTO, ImageUploadFromDataUrlOptionsDTO, MediaSourceDTO, MediaAudioFormatDTO, MediaVideoFormatDTO, MediaVideoCodecDTO, MediaAudioCodecDTO, MediaFitModeDTO, MediaTransformResultDTO, MediaConvertAudioRequestDTO, MediaConvertVideoRequestDTO, MediaTranscodeVideoRequestDTO, MediaRemoveAudioFromVideoRequestDTO, MediaAddAudioToVideoRequestDTO, MediaCreateVideoFromImageAndAudioRequestDTO, ThemeOverrideDTO, ThemeInfoDTO, ThemePaletteConfigDTO, ThemeVariablesConfigDTO, ColorExtractionResult, ColorRGB, ColorHSL, SpindleModalItemDTO, SpindleCommandDTO, SpindleCommandContextDTO, SpindleUIDrawerTabDTO, SpindleUISettingsTabDTO, FrontendProcessStateDTO, FrontendProcessExitReasonDTO, FrontendProcessSpawnOptionsDTO, FrontendProcessListOptionsDTO, FrontendProcessInfoDTO, FrontendProcessLifecycleEventDTO, FrontendProcessStopOptionsDTO, BackendProcessStateDTO, BackendProcessExitReasonDTO, BackendProcessSpawnOptionsDTO, BackendProcessListOptionsDTO, BackendProcessInfoDTO, BackendProcessLifecycleEventDTO, BackendProcessStopOptionsDTO, GenerationStartedPayloadDTO, StreamTokenPayloadDTO, GenerationEndedPayloadDTO, GenerationStoppedPayloadDTO, GenerationObserver, ChatMessageDTO, MessageSwipeAction, MessageSwipedPayloadDTO, SwipeEditedPayloadDTO, ToolInvocationPayloadDTO, TokenModelSourceDTO, TokenCountOptionsDTO, TokenCountResultDTO, SpindleUploadDTO, SharedRpcRequestContextDTO, SharedRpcEndpointPolicyDTO, MacroInterceptorPhase, MacroInterceptorCharacterEnvDTO, MacroInterceptorChatEnvDTO, MacroInterceptorEnvDTO, MacroInterceptorCtxDTO, MacroInterceptorResultDTO, MacroInterceptorRichResultDTO, MessageContentProcessorOrigin, MessageContentProcessorCtxDTO, MessageContentProcessorResultDTO, WebSearchProviderDTO, WebSearchSettingsDTO, WebSearchResultDTO, WebSearchDocumentDTO, WebSearchRequestDTO, WebSearchResponseDTO, WorkerToHost, HostToWorker, ProviderKind, ProviderDescriptor, ProviderBrokerSpec, ProviderKeyDTO, WorkerToHostProviderMessage, HostToWorkerProviderMessage, ProviderRuntimeMessage, BrokerRequest, BrokerResponse, ProviderManager, } from "./api.js";
14
+ export type { LlmMessagePartDTO, LlmMessageDTO, LlmThinkingBlockDTO, SpindleUserRoleDTO, InterceptorGenerationType, InterceptorMatchScalar, InterceptorMatchDTO, InterceptorRegistrationMatchOptions, InterceptorRegistrationOptions, InterceptorContextDTO, InterceptorDisposer, InterceptorHandler, DeferredGuidanceDTO, InterceptorBreakdownEntryDTO, FinalResponseDTO, InterceptorResultDTO, MacroDefinitionDTO, MacroInvocationContextDTO, MacroResolveOptionsDTO, MacroResolveResultDTO, ToolRegistrationDTO, ToolSchemaDTO, ToolCallDTO, ToolDefinitionDTO, GenerationUsageDTO, GenerationResponseDTO, GenerationDispatchSourceDTO, ConnectionDispatchDescriptorDTO, GenerationRequestDTO, GenerationReasoningOverrideDTO, ReasoningEffortDTO, ReasoningSettingsDTO, ThinkingDisplayDTO, ConnectionReasoningBindingsDTO, ChatAppendGenerationOptionsDTO, ChatAppendMessageOptionsDTO, StreamChunkDTO, RequestInitDTO, ConnectionProfileDTO, PermissionDeniedDetail, PermissionChangedDetail, McpTransportTypeDTO, McpServerDTO, McpServerCreateDTO, McpToolDTO, McpServerStatusDTO, McpToolCallOptionsDTO, CharacterDTO, CharacterCreateDTO, CharacterAvatarUploadDTO, CharacterUpdateDTO, ChatDTO, ChatUpdateDTO, ChatSwitchedPayloadDTO, ChatChangedPayloadDTO, ChatForkedPayloadDTO, PromptVariableOptionDTO, PromptVariableDefDTO, PromptVariableTypeDTO, PromptVariableValueDTO, PromptVariableValuesDTO, PromptBlockRoleDTO, PromptBlockPositionDTO, PromptBlockCategoryModeDTO, PromptBlockPlacementDTO, PromptBlockPlacementBindingDTO, PromptBlockDTO, PromptBlockSnapshotDTO, PromptBlockCreateDTO, PromptBlockUpdateDTO, PromptBlockCategoryGroupDTO, HostResponseErrorDTO, UserPresetDTO, UserPresetCreateDTO, UserPresetUpdateDTO, WorldBookDTO, WorldBookCreateDTO, WorldBookUpdateDTO, WorldBookEntryDTO, WorldBookEntryCreateDTO, WorldBookEntryUpdateDTO, RegexPlacementDTO, RegexScopeDTO, RegexTargetDTO, RegexMacroModeDTO, RegexScriptDTO, RegexScriptCreateDTO, RegexScriptUpdateDTO, RegexScriptListOptionsDTO, RegexScriptActiveOptionsDTO, WorldInfoInterceptorEntryDTO, WorldInfoInterceptorMessageDTO, WorldInfoActivationSettingsDTO, WorldInfoActivationOverridesDTO, WorldInfoInterceptorRoleDTO, WorldInfoInterceptorPlacementDTO, WorldInfoInterceptorCtxDTO, WorldInfoInterceptorMutationDTO, WorldInfoInterceptorResultDTO, DatabankScopeDTO, DatabankDocumentStatusDTO, DatabankDTO, DatabankCreateDTO, DatabankUpdateDTO, DatabankDocumentDTO, DatabankDocumentCreateDTO, DatabankDocumentUpdateDTO, PersonaDTO, GlobalAddonDTO, GlobalAddonUpdateDTO, LumiaItemDTO, LoomItemCategoryDTO, LoomItemDTO, LoomToolDTO, LumiaDlcPackDTO, LumiaDlcCatalogDTO, PersonaCreateDTO, PersonaUpdateDTO, ActivatedWorldInfoEntryDTO, WorldBookSourceDTO, WorldInfoActivatedEventDTO, DryRunRequestDTO, DryRunResultDTO, AssembleRequestDTO, AssembleResultDTO, BoundPrefillAttachmentDTO, BoundAssembleRequestDTO, BoundAssemblySuccessDTO, BoundAssemblyFailureDTO, BoundAssemblyOutcomeDTO, QuietTrackedRequestDTO, QuietDispatchReceiptDTO, QuietTrackedResultDTO, AssemblyBreakdownEntryDTO, ActivationStatsDTO, MemoryStatsDTO, DryRunTokenCountDTO, ChatMemoryChunkDTO, ChatMemoryResultDTO, ImageGenConnectionDTO, ImageGenParameterSchemaDTO, ImageGenProviderDTO, ImageGenRequestDTO, ImageGenResultDTO, ImageGenStreamRequestDTO, ImageGenStreamStatusDTO, ImageGenStreamPreviewDTO, ImageGenStreamDoneDTO, ImageGenStreamEventDTO, ImageGetOptionsDTO, ImageDTO, ImageListOptionsDTO, ImageSpecificityDTO, ImageVideoCodecDTO, ImageUploadDTO, ImageUploadFromDataUrlOptionsDTO, MediaSourceDTO, MediaAudioFormatDTO, MediaVideoFormatDTO, MediaVideoCodecDTO, MediaAudioCodecDTO, MediaFitModeDTO, MediaTransformResultDTO, MediaConvertAudioRequestDTO, MediaConvertVideoRequestDTO, MediaTranscodeVideoRequestDTO, MediaRemoveAudioFromVideoRequestDTO, MediaAddAudioToVideoRequestDTO, MediaCreateVideoFromImageAndAudioRequestDTO, ThemeOverrideDTO, ThemeInfoDTO, ThemePaletteConfigDTO, ThemeVariablesConfigDTO, ColorExtractionResult, ColorRGB, ColorHSL, SpindleModalItemDTO, SpindleCommandDTO, SpindleCommandContextDTO, SpindleUIDrawerTabDTO, SpindleUISettingsTabDTO, FrontendProcessStateDTO, FrontendProcessExitReasonDTO, FrontendProcessSpawnOptionsDTO, FrontendProcessListOptionsDTO, FrontendProcessInfoDTO, FrontendProcessLifecycleEventDTO, FrontendProcessStopOptionsDTO, BackendProcessStateDTO, BackendProcessExitReasonDTO, BackendProcessSpawnOptionsDTO, BackendProcessListOptionsDTO, BackendProcessInfoDTO, BackendProcessLifecycleEventDTO, BackendProcessStopOptionsDTO, GenerationStartedPayloadDTO, StreamTokenPayloadDTO, GenerationEndedPayloadDTO, GenerationStoppedPayloadDTO, GenerationObserver, ChatMessageDTO, MessageSwipeAction, MessageSwipedPayloadDTO, SwipeEditedPayloadDTO, ToolInvocationPayloadDTO, TokenModelSourceDTO, TokenCountOptionsDTO, TokenCountResultDTO, SpindleUploadDTO, SharedRpcRequestContextDTO, SharedRpcEndpointPolicyDTO, MacroInterceptorPhase, MacroInterceptorCharacterEnvDTO, MacroInterceptorChatEnvDTO, MacroInterceptorEnvDTO, MacroInterceptorCtxDTO, MacroInterceptorResultDTO, MacroInterceptorRichResultDTO, MessageContentProcessorOrigin, MessageContentProcessorCtxDTO, MessageContentProcessorResultDTO, WebSearchProviderDTO, WebSearchSettingsDTO, WebSearchResultDTO, WebSearchDocumentDTO, WebSearchRequestDTO, WebSearchResponseDTO, WorkerToHost, HostToWorker, ProviderKind, ProviderDescriptor, ProviderBrokerSpec, ProviderKeyDTO, WorkerToHostProviderMessage, HostToWorkerProviderMessage, ProviderRuntimeMessage, BrokerRequest, BrokerResponse, ProviderManager, } from "./api.js";
15
15
  export { PERMISSION_DENIED_PREFIX } from "./api.js";
16
16
  export type { ToolRegistration, JSONSchema } from "./tools.js";
17
17
  export type { SpindleMessageElement, SpindleTextEditorOptions, SpindleTextEditorResult, SpindleDOMHelper, SpindleMountPoint, SpindleUploadFile, SpindleMessageTagIntercept, SpindleMessageTagInterceptorOptions, SpindleMessageWidgetOptions, PermissionRequestOptions, SpindleFrontendContext, SpindleFrontendContextV2, SpindleSettingsAPI, SpindleSettingsTabOptions, SpindleSettingsTabSection, SpindleSettingsTabHandle, SpindleStateSelectors, SpindleResizeController, SpindleGeometryAPI, SpindleHostSurfaceKind, SpindleHostSurfaceRef, SpindleHostActionJsonValue, SpindleHostActionParams, SpindleHostSurfaceInfo, SpindleHostSurfaceTarget, SpindleHostSurfaceTargetHandler, SpindleHostSurfaceAPI, SpindleComponentOverrideOptions, SpindleComponentOverrideHandle, SpindleDomDecoratorOptions, SpindleDomDecoratorHandle, SpindleMessageActionOptions, SpindleMessageActionHandle, SpindleFrontendWorldBooksAPI, SpindleFrontendTokensAPI, SpindleFrontendConnectionsAPI, SpindleFrontendChatsAPI, SpindleFrontendMessagesAPI, SpindleRecentChatsQuery, SpindleRecentChat, SpindleGroupedRecentChat, SpindleRecentChatsPage, SpindleFrontendModule, SpindleFrontendTeardown, SpindleGuideDefinition, SpindleDrawerTabOptions, SpindleDrawerTabHandle, SpindleCharacterEditorTabOptions, SpindleCharacterEditorTabHandle, SpindleCharacterEditorState, SpindleCharacterEditorSaveOptions, SpindleCharacterEditorHelper, SpindlePresetEditorTabOptions, SpindlePresetEditorTabHandle, SpindlePresetEditorToolbarItemOptions, SpindlePresetEditorToolbarItemHandle, SpindlePresetEditorDraft, SpindlePresetEditorState, SpindlePresetEditorSaveOptions, SpindlePresetEditorHelper, SpindlePresetEditorBuiltinTabId, SpindlePresetEditorExtensionState, SpindlePresetEditorScopedHelper, SpindleFloatWidgetOptions, SpindleFloatWidgetHandle, SpindleDockEdge, SpindleDockPanelOptions, SpindleDockPanelHandle, SpindleAppMountOptions, SpindleAppMountHandle, SpindleInputBarActionOptions, SpindleInputBarActionHandle, SpindleSandboxFrameOptions, SpindleSandboxFrameHandle, SpindleSandboxMediaResource, SpindleSandboxAudioOptions, SpindleSandboxAudioHandle, SpindleSandboxAPI, SpindleContextMenuOptions, SpindleContextMenuItemDef, SpindleContextMenuResult, SpindleModalOptions, SpindleModalHandle, SpindleConfirmVariant, SpindleConfirmOptions, SpindleConfirmResult, SpindleUIDomActionEventType, SpindleUIKeyboardState, SpindleUIDrawerState, SpindleUISettingsState, SpindleUIDomActionDetail, SpindleUIDomActionBindingOptions, SpindleUIEventsHelper, SpindleFrontendProcessContext, SpindleFrontendProcessRegistry, SpindleDisplayResolver, SpindleDisplayResolverRegistry, SpindleDisplayContext, SpindleDisplayBodyArgs, SpindleDisplayTemplatesArgs, SpindleDisplayScriptsArgs, SpindleDisplayResolveResult, SpindleDisplayTemplatesResult, SpindleTabLocation, } from "./dom.js";
@@ -34,7 +34,9 @@
34
34
  * - "providers.tts.register" — register a TTS engine
35
35
  * - "providers.stt.register" — register an STT engine
36
36
  * - "providers.sidecar.register" — register a sidecar HTTP endpoint
37
+ * - "mcp_servers" — inspect/connect user MCP servers and invoke advertised tools
38
+ * - "mcp_servers.create" — add MCP server profiles for a user
37
39
  */
38
- export type SpindlePermission = "generation" | "interceptor" | "tools" | "cors_proxy" | "context_handler" | "ephemeral_storage" | "chat_mutation" | "event_tracking" | "ui_panels" | "app_manipulation" | "oauth" | "characters" | "chats" | "presets" | "world_books" | "regex_scripts" | "regex_scripts_unrestricted" | "databanks" | "memories" | "media" | "personas" | "push_notification" | "image_gen" | "images" | "generation_parameters" | "macro_interceptor" | "web_search" | "unsafe_eval" | "final_response" | "providers.embedding.register" | "providers.tts.register" | "providers.stt.register" | "providers.sidecar.register";
40
+ export type SpindlePermission = "generation" | "interceptor" | "tools" | "cors_proxy" | "context_handler" | "ephemeral_storage" | "chat_mutation" | "event_tracking" | "ui_panels" | "app_manipulation" | "oauth" | "characters" | "chats" | "presets" | "world_books" | "regex_scripts" | "regex_scripts_unrestricted" | "databanks" | "memories" | "media" | "personas" | "push_notification" | "image_gen" | "images" | "generation_parameters" | "macro_interceptor" | "web_search" | "unsafe_eval" | "final_response" | "providers.embedding.register" | "providers.tts.register" | "providers.stt.register" | "providers.sidecar.register" | "mcp_servers" | "mcp_servers.create";
39
41
  export declare const ALL_PERMISSIONS: readonly SpindlePermission[];
40
42
  export declare function isValidPermission(p: string): p is SpindlePermission;
@@ -32,6 +32,8 @@ export const ALL_PERMISSIONS = [
32
32
  "providers.tts.register",
33
33
  "providers.stt.register",
34
34
  "providers.sidecar.register",
35
+ "mcp_servers",
36
+ "mcp_servers.create",
35
37
  ];
36
38
  export function isValidPermission(p) {
37
39
  return ALL_PERMISSIONS.includes(p);
@@ -2,7 +2,7 @@ import type { SpindleManifest } from "./manifest.js";
2
2
  import type { SpindleHostDescriptorV1 } from "./host.js";
3
3
  import type { SpindleTextEditorOptions, SpindleTextEditorResult } from "./dom.js";
4
4
  import type { CouncilMemberContext, CouncilSettings } from "./council.js";
5
- import type { LlmMessageDTO, InterceptorDisposer, InterceptorHandler, InterceptorRegistrationMatchOptions, InterceptorRegistrationOptions, MacroDefinitionDTO, MacroResolveOptionsDTO, MacroResolveResultDTO, ToolRegistrationDTO, GenerationRequestDTO, ChatAppendMessageOptionsDTO, RequestInitDTO, ConnectionProfileDTO, ConnectionDispatchDescriptorDTO, PermissionDeniedDetail, PermissionChangedDetail, CharacterDTO, CharacterCreateDTO, CharacterAvatarUploadDTO, CharacterUpdateDTO, ChatDTO, ChatUpdateDTO, UserPresetDTO, UserPresetCreateDTO, UserPresetUpdateDTO, PromptBlockSnapshotDTO, PromptBlockCreateDTO, PromptBlockUpdateDTO, PromptBlockCategoryGroupDTO, WorldBookDTO, WorldBookCreateDTO, WorldBookUpdateDTO, WorldBookEntryDTO, WorldBookEntryCreateDTO, WorldBookEntryUpdateDTO, RegexScriptDTO, RegexScriptCreateDTO, RegexScriptUpdateDTO, RegexScriptListOptionsDTO, RegexScriptActiveOptionsDTO, DatabankDTO, DatabankCreateDTO, DatabankUpdateDTO, DatabankDocumentDTO, DatabankDocumentCreateDTO, DatabankDocumentUpdateDTO, PersonaDTO, GlobalAddonDTO, GlobalAddonUpdateDTO, LumiaItemDTO, LumiaDlcCatalogDTO, PersonaCreateDTO, PersonaUpdateDTO, ActivatedWorldInfoEntryDTO, DryRunRequestDTO, DryRunResultDTO, AssembleRequestDTO, AssembleResultDTO, BoundAssembleRequestDTO, BoundAssemblyOutcomeDTO, QuietTrackedRequestDTO, QuietTrackedResultDTO, BrokerRequest, BrokerResponse, ChatMemoryResultDTO, ProviderManager, ImageGenRequestDTO, ImageGenResultDTO, ImageGenStreamRequestDTO, ImageGenStreamEventDTO, ImageGenConnectionDTO, ImageGenProviderDTO, ImageGetOptionsDTO, ImageDTO, ImageListOptionsDTO, ImageUploadDTO, ImageUploadFromDataUrlOptionsDTO, MediaConvertAudioRequestDTO, MediaConvertVideoRequestDTO, MediaTranscodeVideoRequestDTO, MediaRemoveAudioFromVideoRequestDTO, MediaAddAudioToVideoRequestDTO, MediaCreateVideoFromImageAndAudioRequestDTO, MediaTransformResultDTO, ThemeOverrideDTO, ThemeInfoDTO, ThemePaletteConfigDTO, ThemeVariablesConfigDTO, ColorExtractionResult, SpindleUserRoleDTO, SpindleModalItemDTO, SpindleCommandDTO, SpindleCommandContextDTO, SpindleUIDrawerTabDTO, SpindleUISettingsTabDTO, FrontendProcessSpawnOptionsDTO, FrontendProcessListOptionsDTO, FrontendProcessInfoDTO, FrontendProcessLifecycleEventDTO, FrontendProcessStopOptionsDTO, BackendProcessSpawnOptionsDTO, BackendProcessListOptionsDTO, BackendProcessInfoDTO, BackendProcessLifecycleEventDTO, BackendProcessStopOptionsDTO, ChatChangedPayloadDTO, ChatForkedPayloadDTO, ChatMessageDTO, GenerationStartedPayloadDTO, StreamTokenPayloadDTO, GenerationEndedPayloadDTO, GenerationStoppedPayloadDTO, GenerationObserver, MessageSwipedPayloadDTO, SwipeEditedPayloadDTO, ToolInvocationPayloadDTO, StreamChunkDTO, TokenCountOptionsDTO, TokenCountResultDTO, SpindleUploadDTO, MacroInterceptorCtxDTO, MacroInterceptorResultDTO, WorldInfoInterceptorCtxDTO, WorldInfoInterceptorResultDTO, MessageContentProcessorCtxDTO, MessageContentProcessorResultDTO, SharedRpcRequestContextDTO, SharedRpcEndpointPolicyDTO, WebSearchRequestDTO, WebSearchResponseDTO, WebSearchSettingsDTO } from "./api.js";
5
+ import type { LlmMessageDTO, InterceptorDisposer, InterceptorHandler, InterceptorRegistrationMatchOptions, InterceptorRegistrationOptions, MacroDefinitionDTO, MacroResolveOptionsDTO, MacroResolveResultDTO, ToolRegistrationDTO, GenerationRequestDTO, ChatAppendMessageOptionsDTO, RequestInitDTO, ConnectionProfileDTO, ConnectionDispatchDescriptorDTO, PermissionDeniedDetail, PermissionChangedDetail, CharacterDTO, CharacterCreateDTO, CharacterAvatarUploadDTO, CharacterUpdateDTO, ChatDTO, ChatUpdateDTO, UserPresetDTO, UserPresetCreateDTO, UserPresetUpdateDTO, PromptBlockSnapshotDTO, PromptBlockCreateDTO, PromptBlockUpdateDTO, PromptBlockCategoryGroupDTO, WorldBookDTO, WorldBookCreateDTO, WorldBookUpdateDTO, WorldBookEntryDTO, WorldBookEntryCreateDTO, WorldBookEntryUpdateDTO, RegexScriptDTO, RegexScriptCreateDTO, RegexScriptUpdateDTO, RegexScriptListOptionsDTO, RegexScriptActiveOptionsDTO, DatabankDTO, DatabankCreateDTO, DatabankUpdateDTO, DatabankDocumentDTO, DatabankDocumentCreateDTO, DatabankDocumentUpdateDTO, PersonaDTO, GlobalAddonDTO, GlobalAddonUpdateDTO, LumiaItemDTO, LumiaDlcCatalogDTO, PersonaCreateDTO, PersonaUpdateDTO, ActivatedWorldInfoEntryDTO, DryRunRequestDTO, DryRunResultDTO, AssembleRequestDTO, AssembleResultDTO, BoundAssembleRequestDTO, BoundAssemblyOutcomeDTO, QuietTrackedRequestDTO, QuietTrackedResultDTO, BrokerRequest, BrokerResponse, ChatMemoryResultDTO, ProviderManager, ImageGenRequestDTO, ImageGenResultDTO, ImageGenStreamRequestDTO, ImageGenStreamEventDTO, ImageGenConnectionDTO, ImageGenProviderDTO, ImageGetOptionsDTO, ImageDTO, ImageListOptionsDTO, ImageUploadDTO, ImageUploadFromDataUrlOptionsDTO, MediaConvertAudioRequestDTO, MediaConvertVideoRequestDTO, MediaTranscodeVideoRequestDTO, MediaRemoveAudioFromVideoRequestDTO, MediaAddAudioToVideoRequestDTO, MediaCreateVideoFromImageAndAudioRequestDTO, MediaTransformResultDTO, ThemeOverrideDTO, ThemeInfoDTO, ThemePaletteConfigDTO, ThemeVariablesConfigDTO, ColorExtractionResult, SpindleUserRoleDTO, SpindleModalItemDTO, SpindleCommandDTO, SpindleCommandContextDTO, SpindleUIDrawerTabDTO, SpindleUISettingsTabDTO, FrontendProcessSpawnOptionsDTO, FrontendProcessListOptionsDTO, FrontendProcessInfoDTO, FrontendProcessLifecycleEventDTO, FrontendProcessStopOptionsDTO, BackendProcessSpawnOptionsDTO, BackendProcessListOptionsDTO, BackendProcessInfoDTO, BackendProcessLifecycleEventDTO, BackendProcessStopOptionsDTO, ChatChangedPayloadDTO, ChatForkedPayloadDTO, ChatMessageDTO, GenerationStartedPayloadDTO, StreamTokenPayloadDTO, GenerationEndedPayloadDTO, GenerationStoppedPayloadDTO, GenerationObserver, MessageSwipedPayloadDTO, SwipeEditedPayloadDTO, ToolInvocationPayloadDTO, StreamChunkDTO, TokenCountOptionsDTO, TokenCountResultDTO, SpindleUploadDTO, MacroInterceptorCtxDTO, MacroInterceptorResultDTO, WorldInfoInterceptorCtxDTO, WorldInfoInterceptorResultDTO, MessageContentProcessorCtxDTO, MessageContentProcessorResultDTO, SharedRpcRequestContextDTO, SharedRpcEndpointPolicyDTO, WebSearchRequestDTO, WebSearchResponseDTO, WebSearchSettingsDTO, McpServerDTO, McpServerCreateDTO, McpServerStatusDTO, McpToolDTO, McpToolCallOptionsDTO } from "./api.js";
6
6
  import type { ChatChunkDTO, ChatLinkAttachDTO, ChatLinkDTO, ChatMemoryWarmupResultDTO, CortexIngestionStatusDTO, CortexIngestionTelemetryDTO, CortexQueryDTO, CortexResultDTO, CortexUsageStatsDTO, LinkedCortexResultDTO, MemoryConsolidationDTO, MemoryCortexConfigDTO, MemoryEntityDTO, MemoryEntityStatusUpdateDTO, MemoryEntityUpsertDTO, MemoryRelationDTO, MemoryRelationUpsertDTO, MemorySalienceDTO, VaultChunkDTO, VaultCreateDTO, VaultDTO, VaultReindexResultDTO, VaultWithContentsDTO } from "./memories.js";
7
7
  export interface FrontendProcessHandle {
8
8
  /** Host-assigned process ID unique within the extension runtime. */
@@ -618,6 +618,34 @@ export interface SpindleAPI {
618
618
  */
619
619
  resolveDispatch(connectionId: string): Promise<ConnectionDispatchDescriptorDTO | null>;
620
620
  };
621
+ /**
622
+ * User-owned MCP server access. Profiles are redacted and all transport
623
+ * creation remains subject to the host's SSRF and stdio launch policies.
624
+ */
625
+ mcp: {
626
+ servers: {
627
+ /** List redacted server profiles (permission: `mcp_servers`). */
628
+ list(options?: {
629
+ limit?: number;
630
+ offset?: number;
631
+ userId?: string;
632
+ }): Promise<{
633
+ data: McpServerDTO[];
634
+ total: number;
635
+ }>;
636
+ get(serverId: string, userId?: string): Promise<McpServerDTO | null>;
637
+ /** Add a profile (permission: `mcp_servers.create`). */
638
+ create(input: McpServerCreateDTO, userId?: string): Promise<McpServerDTO>;
639
+ /** Connect through the guarded host MCP manager (permission: `mcp_servers`). */
640
+ connect(serverId: string, userId?: string): Promise<McpServerStatusDTO>;
641
+ status(serverId: string, userId?: string): Promise<McpServerStatusDTO>;
642
+ };
643
+ tools: {
644
+ list(serverId: string, userId?: string): Promise<McpToolDTO[]>;
645
+ /** Invoke only a tool currently advertised by the connected server. */
646
+ call(serverId: string, toolName: string, args?: Record<string, unknown>, options?: McpToolCallOptionsDTO): Promise<string>;
647
+ };
648
+ };
621
649
  /** Server-side token counting helpers (free tier). */
622
650
  tokens: {
623
651
  /** Count tokens for an arbitrary text string. `options.model` overrides `options.modelSource`. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lumiverse-spindle-types",
3
- "version": "0.6.23",
3
+ "version": "0.6.25",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "keywords": [